In this presentation, we’re comparing two of the most popular NoSQL databases: Redis (in-memory) and MongoDB (Percona memory storage engine).
Redis is a popular and very fast in-memory database structure store primarily used as a cache or a message broker. Being in-memory, it’s the data store of choice when response times trump everything else.
MongoDB is an on-disk document store that provides a JSON interface to data and has a very rich query language. Known for its speed, efficiency, and scalability, it’s currently the most popular NoSQL database used today. However, being an on-disk database, it can’t compare favorably to an in-memory database like Redis in terms of absolute performance. But, with the availability of the in-memory storage engines for MongoDB, a more direct comparison becomes feasible.
Read the full post on the ScaleGrid blog: https://scalegrid.io/blog/comparing-in-memory-databases-redis-vs-mongodb-percona-memory-engine/
MySQL Group Replication - Ready For Production? (2018-04)Kenny Gryp
At the end of 2016, Oracle released a new Plugin called MySQL Group Replication, which is a new MySQL replication method that aims to provide better High Availability, and built-in failover with consistency guarantees.
I evaluated the initial GA versions back in early 2017. I presented my initial findings with several best practices and concerns with the current implementation which made me state that Group Replication was not quite ready yet.
(https://www.slideshare.net/Grypyrg/my-sql-group-replication)
(Un)lucky as I was, a large part of the attendees were Oracle developers and the months after this, many of these bugs and missing features were implemented in both MySQL 8.0 as well as backported to MySQL 5.7. (Thank you!)
This is a followup presentation on my previous analysis, where I will look into the changes since and re-evaluate the readiness of Group Replication for production usage and provide my insights and opinion on the state of GR.
Wars of MySQL Cluster ( InnoDB Cluster VS Galera ) Mydbops
MySQL Clustering over InnoDB engines has grown a lot over the last decade. Galera began working with InnoDB early and then Group Replication came to the environment later, where the features are now rich and robust. This presentation offers a technical comparison of both of them.
MySQL Load Balancers - Maxscale, ProxySQL, HAProxy, MySQL Router & nginx - A ...Severalnines
This presentation by Krzysztof Książek at Percona Live 2017 in Santa Clara, California gives detailed descriptions and comparisons of the leading open source database load balancing technologies
Storage tiering and erasure coding in Ceph (SCaLE13x)Sage Weil
Ceph is designed around the assumption that all components of the system (disks, hosts, networks) can fail, and has traditionally leveraged replication to provide data durability and reliability. The CRUSH placement algorithm is used to allow failure domains to be defined across hosts, racks, rows, or datacenters, depending on the deployment scale and requirements.
Recent releases have added support for erasure coding, which can provide much higher data durability and lower storage overheads. However, in practice erasure codes have different performance characteristics than traditional replication and, under some workloads, come at some expense. At the same time, we have introduced a storage tiering infrastructure and cache pools that allow alternate hardware backends (like high-end flash) to be leveraged for active data sets while cold data are transparently migrated to slower backends. The combination of these two features enables a surprisingly broad range of new applications and deployment configurations.
This talk will cover a few Ceph fundamentals, discuss the new tiering and erasure coding features, and then discuss a variety of ways that the new capabilities can be leveraged.
There are many ways to run high availability with PostgreSQL. Here, we present a template for you to create your own customized, high-availability solution using Python and for maximum accessibility, a distributed configuration store like ZooKeeper or etcd.
MySQL Group Replication - Ready For Production? (2018-04)Kenny Gryp
At the end of 2016, Oracle released a new Plugin called MySQL Group Replication, which is a new MySQL replication method that aims to provide better High Availability, and built-in failover with consistency guarantees.
I evaluated the initial GA versions back in early 2017. I presented my initial findings with several best practices and concerns with the current implementation which made me state that Group Replication was not quite ready yet.
(https://www.slideshare.net/Grypyrg/my-sql-group-replication)
(Un)lucky as I was, a large part of the attendees were Oracle developers and the months after this, many of these bugs and missing features were implemented in both MySQL 8.0 as well as backported to MySQL 5.7. (Thank you!)
This is a followup presentation on my previous analysis, where I will look into the changes since and re-evaluate the readiness of Group Replication for production usage and provide my insights and opinion on the state of GR.
Wars of MySQL Cluster ( InnoDB Cluster VS Galera ) Mydbops
MySQL Clustering over InnoDB engines has grown a lot over the last decade. Galera began working with InnoDB early and then Group Replication came to the environment later, where the features are now rich and robust. This presentation offers a technical comparison of both of them.
MySQL Load Balancers - Maxscale, ProxySQL, HAProxy, MySQL Router & nginx - A ...Severalnines
This presentation by Krzysztof Książek at Percona Live 2017 in Santa Clara, California gives detailed descriptions and comparisons of the leading open source database load balancing technologies
Storage tiering and erasure coding in Ceph (SCaLE13x)Sage Weil
Ceph is designed around the assumption that all components of the system (disks, hosts, networks) can fail, and has traditionally leveraged replication to provide data durability and reliability. The CRUSH placement algorithm is used to allow failure domains to be defined across hosts, racks, rows, or datacenters, depending on the deployment scale and requirements.
Recent releases have added support for erasure coding, which can provide much higher data durability and lower storage overheads. However, in practice erasure codes have different performance characteristics than traditional replication and, under some workloads, come at some expense. At the same time, we have introduced a storage tiering infrastructure and cache pools that allow alternate hardware backends (like high-end flash) to be leveraged for active data sets while cold data are transparently migrated to slower backends. The combination of these two features enables a surprisingly broad range of new applications and deployment configurations.
This talk will cover a few Ceph fundamentals, discuss the new tiering and erasure coding features, and then discuss a variety of ways that the new capabilities can be leveraged.
There are many ways to run high availability with PostgreSQL. Here, we present a template for you to create your own customized, high-availability solution using Python and for maximum accessibility, a distributed configuration store like ZooKeeper or etcd.
In this session, you'll learn how RBD works, including how it:
Uses RADOS classes to make access easier from user space and within the Linux kernel.
Implements thin provisioning.
Builds on RADOS self-managed snapshots for cloning and differential backups.
Increases performance with caching of various kinds.
Uses watch/notify RADOS primitives to handle online management operations.
Integrates with QEMU, libvirt, and OpenStack.
NATS is a high performance messaging server and also one of the latest additions to the CNCF. In this talk, we will make a deep dive to the internals of the project covering its design, protocol, clustering implementation, security and authorization features that make it an attractive solution for microservices and low latency applications.
High Availability in MySQL 8 using InnoDB ClusterSven Sandberg
InnoDB Cluster is the built-in and open-source High Availability solution for MySQL 8. It consists of three components. The engine is MySQL Group Replication: the highly available cluster of database servers. This is where your data is safe and available, due to the replicated state machine, relying on the famous Paxos protocol. At the driver's seat is MySQL Shell: the DevOp's multilingual console. Here you can deploy, query, and arrange your cluster using either Javascript or Python, to your taste. Your application is welcomed to join the ride by connecting to MySQL Router: the intelligent, seamless interface to the cluster. We introduce all three components, with a special focus on Group Replication.
Improve PostgreSQL replication with Oracle GoldenGateBobby Curtis
PostgreSQL databases use the Write-Ahead Logging approach for the replication of data. At the same time, customers worldwide have asked for Oracle GoldenGate to support replication to and from PostgreSQL databases. The wait is over! This session will introduce Oracle GoldenGate for PostgreSQL and highlight what needs to be looked at to ensure successful replication for any PostgreSQL environment.
This presentation provides an overview of the Dell PowerEdge R730xd server performance results with Red Hat Ceph Storage. It covers the advantages of using Red Hat Ceph Storage on Dell servers with their proven hardware components that provide high scalability, enhanced ROI cost benefits, and support of unstructured data.
Load Balancing MySQL with HAProxy - SlidesSeveralnines
Agenda:
* What is HAProxy?
* SQL Load balancing for MySQL
* Failure detection using MySQL health checks
* High Availability with Keepalived and Virtual IP
* Use cases: MySQL Cluster, Galera Cluster and MySQL Replication
* Alternative methods: Database drivers with inbuilt cluster support, MySQL proxy, MaxScale, ProxySQL
Almost Perfect Service Discovery and Failover with ProxySQL and OrchestratorJean-François Gagné
Of course there is no such thing as perfect service discovery, and we will see why in the talk. However, the way ProxySQL is deployed in this case minimizes the risk for split-brains, and this is why I qualify it as almost perfect. But let’s step back a little...
MySQL alone is not a high availability solution. To provide resilience to primary failure, other components need to be integrated with MySQL. At MessageBird, these additional components are ProxySQL and Orchestrator. In this talk, we describe how ProxySQL is architectured to provide close to perfect Service Discovery and how this, combined with Orchestrator, allows for automatic failover. The talk presents the details of the integration of MySQL, ProxySQL and Orchestrator in Google Cloud (and it would be easy to re-implement a similar architecture at other cloud vendors or on-premises). We will also cover lessons learned for the 2 years this architecture has been in production. Come to this talk to learn more about MySQL high availability, ProxySQL and Orchestrator.
Pros and Cons of MongoDB in Web DevelopmentNirvana Canada
Databases are available in plenty, and choosing the right one for your organization is a challenging task. In this blog, we will specifically focus on MongoDB and its pros and cons for web development.
In this session, you'll learn how RBD works, including how it:
Uses RADOS classes to make access easier from user space and within the Linux kernel.
Implements thin provisioning.
Builds on RADOS self-managed snapshots for cloning and differential backups.
Increases performance with caching of various kinds.
Uses watch/notify RADOS primitives to handle online management operations.
Integrates with QEMU, libvirt, and OpenStack.
NATS is a high performance messaging server and also one of the latest additions to the CNCF. In this talk, we will make a deep dive to the internals of the project covering its design, protocol, clustering implementation, security and authorization features that make it an attractive solution for microservices and low latency applications.
High Availability in MySQL 8 using InnoDB ClusterSven Sandberg
InnoDB Cluster is the built-in and open-source High Availability solution for MySQL 8. It consists of three components. The engine is MySQL Group Replication: the highly available cluster of database servers. This is where your data is safe and available, due to the replicated state machine, relying on the famous Paxos protocol. At the driver's seat is MySQL Shell: the DevOp's multilingual console. Here you can deploy, query, and arrange your cluster using either Javascript or Python, to your taste. Your application is welcomed to join the ride by connecting to MySQL Router: the intelligent, seamless interface to the cluster. We introduce all three components, with a special focus on Group Replication.
Improve PostgreSQL replication with Oracle GoldenGateBobby Curtis
PostgreSQL databases use the Write-Ahead Logging approach for the replication of data. At the same time, customers worldwide have asked for Oracle GoldenGate to support replication to and from PostgreSQL databases. The wait is over! This session will introduce Oracle GoldenGate for PostgreSQL and highlight what needs to be looked at to ensure successful replication for any PostgreSQL environment.
This presentation provides an overview of the Dell PowerEdge R730xd server performance results with Red Hat Ceph Storage. It covers the advantages of using Red Hat Ceph Storage on Dell servers with their proven hardware components that provide high scalability, enhanced ROI cost benefits, and support of unstructured data.
Load Balancing MySQL with HAProxy - SlidesSeveralnines
Agenda:
* What is HAProxy?
* SQL Load balancing for MySQL
* Failure detection using MySQL health checks
* High Availability with Keepalived and Virtual IP
* Use cases: MySQL Cluster, Galera Cluster and MySQL Replication
* Alternative methods: Database drivers with inbuilt cluster support, MySQL proxy, MaxScale, ProxySQL
Almost Perfect Service Discovery and Failover with ProxySQL and OrchestratorJean-François Gagné
Of course there is no such thing as perfect service discovery, and we will see why in the talk. However, the way ProxySQL is deployed in this case minimizes the risk for split-brains, and this is why I qualify it as almost perfect. But let’s step back a little...
MySQL alone is not a high availability solution. To provide resilience to primary failure, other components need to be integrated with MySQL. At MessageBird, these additional components are ProxySQL and Orchestrator. In this talk, we describe how ProxySQL is architectured to provide close to perfect Service Discovery and how this, combined with Orchestrator, allows for automatic failover. The talk presents the details of the integration of MySQL, ProxySQL and Orchestrator in Google Cloud (and it would be easy to re-implement a similar architecture at other cloud vendors or on-premises). We will also cover lessons learned for the 2 years this architecture has been in production. Come to this talk to learn more about MySQL high availability, ProxySQL and Orchestrator.
Pros and Cons of MongoDB in Web DevelopmentNirvana Canada
Databases are available in plenty, and choosing the right one for your organization is a challenging task. In this blog, we will specifically focus on MongoDB and its pros and cons for web development.
how_can_businesses_address_storage_issues_using_mongodb.pptxsarah david
MongoDB enables seamless data storage and performance. Explore our blog to learn how MongoDB handles storage issues for startups and large-scale enterprises. Discover how to optimize MongoDB performance using open-source database storage.
Memcached or Redis? It's a question that nearly always arises in any discussion about squeezing more performance out of a modern, database-driven Web application. When performance needs to be improved, caching is often the first step employed, and Memcached and Redis are typically the first places to turn.
how_can_businesses_address_storage_issues_using_mongodb.pdfsarah david
MongoDB enables seamless data storage and performance. Explore our blog to learn how MongoDB handles storage issues for startups and large-scale enterprises. Discover how to optimize MongoDB performance using open-source database storage.
A fotopedia presentation made at the MongoDay 2012 in Paris at Xebia Office.
Talk by Pierre Baillet and Mathieu Poumeyrol.
French Article about the presentation:
http://www.touilleur-express.fr/2012/02/06/mongodb-retour-sur-experience-chez-fotopedia/
Video to come.
MongoDB BY VASUDEV PRAJAPATI, DOCUMENT BASED DATABASE PRESENTATION, NO SQL DATABASE, WHY MONGO DB IS USEFUL, USES OF MONGO DB, FEATURES OF MongoDB , WHO USE MongoDB , WHEN MongoDB IS USEFUL
Production NoSQL in an Hour: Introduction to Amazon DynamoDB (DAT101) | AWS r...Amazon Web Services
Amazon DynamoDB is a fully-managed, zero-admin, high-speed NoSQL database service. Amazon DynamoDB was built to support applications at any scale. With the click of a button, you can scale your database capacity from a few hundred I/Os per second to hundreds of thousands of I/Os per second or more. You can dynamically scale your database to keep up with your application's requirements while minimizing costs during low-traffic periods. The service has no limit on storage. You also learn about Amazon DynamoDB's design principles and history.
Everything You Need to Know About MongoDB Development.pptx75waytechnologies
Today, organizations from different verticals want to harness the power of data to grab new business opportunities and touch new heights of success. Such an urge leads them to follow unique ways to use and handle data effectively. After all, the right use of data boosts the ability to make business decisions faster. But at the same time, working with data is not as easy as a walk in the garden. It sometimes turns out to be a long-standing problem for businesses that also affects their overall functioning.
Companies expect fast phase development and better data management in every scenario. Modern web-based applications development demands a quality working system that can be deployed faster, and the application is able to scale in the future as per the constantly changing environment.
Earlier, relational databases were used as a primary data store for web application development. But today, developers show a high interest in adopting alternative data stores for modern applications such as NoSQL (Not Only Structured Query Language) because of its incredible benefits. And if you ask us, one of the technologies that can do wonders in modern web-based application development is MongoDB.
MongoDB is the first name strike in our heads when developing scalable applications with evolving data schemas. Because MongoDB is a document database, it makes it easier for developers to store both structured and unstructured data. Stores and handles large amounts of data quickly, MongoDB is undoubtedly the smart move toward building scalable and data-driven applications. If you’re wondering what MongoDB is and how it can help your digital success, this blog is surely for you.
Benchmarking Couchbase Server for Interactive ApplicationsAltoros
Designed to replace the traditional RDBMS, NoSQL databases provide near-endless scalability and great performance for data-intensive use cases. However, with so many different options around, choosing the right NoSQL database for your interactive Web application can be tricky. This whitepaper provides an overview of three popular NoSQL solutions: Cassandra, MongoDB, and Couchbase, as well as a vendor-independent performance comparison of these products that can be used as a guide when choosing a NoSQL database.
Similar to Redis vs. MongoDB: Comparing In-Memory Databases with Percona Memory Engine (20)
Working with JSON Data in PostgreSQL vs. MongoDBScaleGrid.io
In this post, we are going to show you tips and techniques on how to effectively store and index JSON data in PostgreSQL vs. MongoDB. Learn more in the blog post: https://scalegrid.io/blog/using-jsonb-in-postgresql-how-to-effectively-store-index-json-data-in-postgresql
What’s the Best PostgreSQL High Availability Framework? PAF vs. repmgr vs. Pa...ScaleGrid.io
Compare top PostgreSQL high availability frameworks - PostgreSQL Automatic Failover (PAF), Replication Manager (repmgr) and Patroni to improve your app uptime. ScaleGrid blog - https://scalegrid.io/blog/whats-the-best-postgresql-high-availability-framework-paf-vs-repmgr-vs-patroni-infographic/
Introduction to Redis Data Structures: Sets ScaleGrid.io
In this overview of Redis Data Sets, we'll present:
What is Redis?
What are Redis sets?
Common use cases for Redis sets
Set operations in Redis
Internal implementation
Redis Sets vs. Redis Bitmaps
Introduction to Redis Data Structures: Sorted SetsScaleGrid.io
We provide an overview on what Redis is, what are sorted sets, common use cases for sorted sets, sorted set operations in Redis, internal implementation, and a comparison of Redis hashes and Redis sorted sets.
We provide an overview of the expressive object model, secondary indexes, high availability, write scalability, query language support, performance benchmarks - database model, performance benchmarks - load characteristics, performance benchmarks - consistency requirements, ease of use, and navigation aggregation.
Introduction to Redis Data Structures: HashesScaleGrid.io
Learn about Redis data structures: hashes and contact us for hassle-free hosting for mongodb® and Redis®
Retrieve your connection string and start using your cluster.
Sudheer Mechineni, Head of Application Frameworks, Standard Chartered Bank
Discover how Standard Chartered Bank harnessed the power of Neo4j to transform complex data access challenges into a dynamic, scalable graph database solution. This keynote will cover their journey from initial adoption to deploying a fully automated, enterprise-grade causal cluster, highlighting key strategies for modelling organisational changes and ensuring robust disaster recovery. Learn how these innovations have not only enhanced Standard Chartered Bank’s data infrastructure but also positioned them as pioneers in the banking sector’s adoption of graph technology.
Communications Mining Series - Zero to Hero - Session 1DianaGray10
This session provides introduction to UiPath Communication Mining, importance and platform overview. You will acquire a good understand of the phases in Communication Mining as we go over the platform with you. Topics covered:
• Communication Mining Overview
• Why is it important?
• How can it help today’s business and the benefits
• Phases in Communication Mining
• Demo on Platform overview
• Q/A
Climate Impact of Software Testing at Nordic Testing DaysKari Kakkonen
My slides at Nordic Testing Days 6.6.2024
Climate impact / sustainability of software testing discussed on the talk. ICT and testing must carry their part of global responsibility to help with the climat warming. We can minimize the carbon footprint but we can also have a carbon handprint, a positive impact on the climate. Quality characteristics can be added with sustainability, and then measured continuously. Test environments can be used less, and in smaller scale and on demand. Test techniques can be used in optimizing or minimizing number of tests. Test automation can be used to speed up testing.
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...Neo4j
Leonard Jayamohan, Partner & Generative AI Lead, Deloitte
This keynote will reveal how Deloitte leverages Neo4j’s graph power for groundbreaking digital twin solutions, achieving a staggering 100x performance boost. Discover the essential role knowledge graphs play in successful generative AI implementations. Plus, get an exclusive look at an innovative Neo4j + Generative AI solution Deloitte is developing in-house.
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfPeter Spielvogel
Building better applications for business users with SAP Fiori.
• What is SAP Fiori and why it matters to you
• How a better user experience drives measurable business benefits
• How to get started with SAP Fiori today
• How SAP Fiori elements accelerates application development
• How SAP Build Code includes SAP Fiori tools and other generative artificial intelligence capabilities
• How SAP Fiori paves the way for using AI in SAP apps
Elevating Tactical DDD Patterns Through Object CalisthenicsDorra BARTAGUIZ
After immersing yourself in the blue book and its red counterpart, attending DDD-focused conferences, and applying tactical patterns, you're left with a crucial question: How do I ensure my design is effective? Tactical patterns within Domain-Driven Design (DDD) serve as guiding principles for creating clear and manageable domain models. However, achieving success with these patterns requires additional guidance. Interestingly, we've observed that a set of constraints initially designed for training purposes remarkably aligns with effective pattern implementation, offering a more ‘mechanical’ approach. Let's explore together how Object Calisthenics can elevate the design of your tactical DDD patterns, offering concrete help for those venturing into DDD for the first time!
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024Neo4j
Neha Bajwa, Vice President of Product Marketing, Neo4j
Join us as we explore breakthrough innovations enabled by interconnected data and AI. Discover firsthand how organizations use relationships in data to uncover contextual insights and solve our most pressing challenges – from optimizing supply chains, detecting fraud, and improving customer experiences to accelerating drug discoveries.
GridMate - End to end testing is a critical piece to ensure quality and avoid...ThomasParaiso2
End to end testing is a critical piece to ensure quality and avoid regressions. In this session, we share our journey building an E2E testing pipeline for GridMate components (LWC and Aura) using Cypress, JSForce, FakerJS…
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...SOFTTECHHUB
The choice of an operating system plays a pivotal role in shaping our computing experience. For decades, Microsoft's Windows has dominated the market, offering a familiar and widely adopted platform for personal and professional use. However, as technological advancements continue to push the boundaries of innovation, alternative operating systems have emerged, challenging the status quo and offering users a fresh perspective on computing.
One such alternative that has garnered significant attention and acclaim is Nitrux Linux 3.5.0, a sleek, powerful, and user-friendly Linux distribution that promises to redefine the way we interact with our devices. With its focus on performance, security, and customization, Nitrux Linux presents a compelling case for those seeking to break free from the constraints of proprietary software and embrace the freedom and flexibility of open-source computing.
Essentials of Automations: The Art of Triggers and Actions in FMESafe Software
In this second installment of our Essentials of Automations webinar series, we’ll explore the landscape of triggers and actions, guiding you through the nuances of authoring and adapting workspaces for seamless automations. Gain an understanding of the full spectrum of triggers and actions available in FME, empowering you to enhance your workspaces for efficient automation.
We’ll kick things off by showcasing the most commonly used event-based triggers, introducing you to various automation workflows like manual triggers, schedules, directory watchers, and more. Plus, see how these elements play out in real scenarios.
Whether you’re tweaking your current setup or building from the ground up, this session will arm you with the tools and insights needed to transform your FME usage into a powerhouse of productivity. Join us to discover effective strategies that simplify complex processes, enhancing your productivity and transforming your data management practices with FME. Let’s turn complexity into clarity and make your workspaces work wonders!
Threats to mobile devices are more prevalent and increasing in scope and complexity. Users of mobile devices desire to take full advantage of the features
available on those devices, but many of the features provide convenience and capability but sacrifice security. This best practices guide outlines steps the users can take to better protect personal devices and information.
2. v
Redis
Redis is a popular and very fast in-memory database
structure store primarily used as a cache or a message
broker. Being in-memory, it’s the data store of choice
when response times trump everything else.
MongoDB
MongoDB is an on-disk document store that provides a
JSON interface to data and has a very rich query language.
Known for its speed, efficiency, and scalability, it’s
currently the most popular NoSQL database used today.
However, being an on-disk database, it can’t compare
favorably to an in-memory database like Redis in terms of
absolute performance. But, with the availability of the
in-memory storage engines for MongoDB, a more direct
comparison becomes feasible.
Read the Redis vs. MongoDB Blog Database-as-a-Service |
3. Percona Memory Engine for MongoDB
Starting in version 3.0, MongoDB provides an API to plug in the storage engine of your choice.
A storage engine, from the MongoDB context, is the component of the database that’s
responsible for managing how the data is stored, both in-memory and on-disk.
MongoDB supports an in-memory storage engine, however, it’s limited to their Enterprise product. In 2016, Percona released
an open source in-memory engine for the MongoDB Community Edition called the Percona Memory Engine for MongoDB.
Like MonogDB’s in-memory engine, it’s also a variation of the WiredTiger storage engine, but with no persistence to disk.
With an in-memory MongoDB storage engine in place, we have a level playing field between Redis and MongoDB. So, why do
we need to compare the two? Let’s look at the advantages of each of them as a caching solution.
Read the Redis vs. MongoDB Blog Database-as-a-Service |
4. Let’s take a look at Redis
Read the Redis vs. MongoDB Blog Database-as-a-Service |
5. Redis Advantages
A well-known caching solution that excels at it.
Redis isn’t a plain cache solution – it has an
advanced data structures that provide many
powerful ways to save and query data that can’t be
achieved with a vanilla key-value cache.
Redis is fairly simple to setup, use and learn.
Redis provides persistence that you can opt to set
up, so cache warming in the event of a crash is
hassle free.
Redis Disadvantages
It doesn’t have inbuilt encryption on the wire.
No role-based account control (RBAC).
There isn’t a seamless, mature clustering solution.
Can be a pain to deploy in large-scale cloud
deployments.
✔
✔
✔
✔
✔
✔
✔
✔
Red a C c
Read the Redis vs. MongoDB Blog Database-as-a-Service |
6. Let’s take a look at MongoDB
Read the Redis vs. MongoDB Blog Database-as-a-Service |
7. MongoDB Advantages
Traditional database with advanced data
manipulation features (think aggregations and
map-reduce) and a rich query language.
SSL, RBAC, and scale-out built in.
Operational and development costs drop for current
MongoDB users as you only have one database to
learn and manage.
With an in-memory engine, it offers no persistence
until it’s deployed as a replica set with persistence
configured on the read replica(s).
✔
✔
✔
✔
Mon a C cLook at this post from Peter Zaitsev on where the
MongoDB in-memory engine might be a good fit.
Read the Redis vs. MongoDB Blog Database-as-a-Service |
MongoDB Disadvantages
8. Redis vs. In-Memory MongoDB
Read the Redis vs. MongoDB Blog Database-as-a-Service |
9. Performance: Redis vs. MongoDB
Redis performs considerably better for reads for all sorts of workloads, and for writes as the workloads increase.
Even though MongoDB utilizes all the cores of the system, it gets CPU bound comparatively early. While it still had
compute available, it was better at writes than Redis.
Both databases are eventually compute-bound. Even though Redis is single-threaded, it (mostly) gets more done
with running on one core than MongoDB does while saturating all the cores.
Redis, for non-trivial data sets, uses a lot more RAM compared to MongoDB to store the same amount of data.
✔
✔
✔
✔
Now, le ’s o t e c gu on r u s
Read the Redis vs. MongoDB Blog Database-as-a-Service |
10. Configuration: Redis vs. MongoDB
Database instance type: AWS EC2 c4.xlarge featuring 4 cores, 7.5 GB memory, and enhanced networking to ensure
we don’t have any network bottlenecks.
Client Machine: AWS EC2 c4.xlarge in the same virtual private cloud (VPC) as the database servers.
Redis: Version 3.2.8 with AOF and RDB turned off. Standalone.
MongoDB: Percona Memory Engine based on MongoDB version 3.2.12. Standalone.
✔
✔
✔
✔
We used YCSB to measure the performance. Learn more about YCSB in our How to Benchmark MongoDB with YCSB
post to see how we compare and benchmark database performance with various cloud providers and
configurations.. We assume a basic understanding of YCSB workloads and features in the test rig description.
Read the Redis vs. MongoDB Blog Database-as-a-Service |
11. Configuration: Redis vs. MongoDB (2)
Network Throughput: Measured via iperf as recommended by AWS:
Workload Details
1. Insert Workload: 100% Writes – 2.5 million records
2. Workload A: Update heavy workload – 50%/50% Reads/Writes – 25 million operations
3. Workload B: Read mostly workload – 95%/5% Reads/Writes – 25 million operations
Client Load: Throughput and latency measured over incrementally increasing loads generated from the client. This
was done by increasing the number of YCSB client load threads, starting at 8 and growing in multiples of 2
✔
✔
✔
[ ID] Interval Transfer Bandwidth Retr
[ 4] 0.00-60.00 sec 8.99 GBytes 1.29 Gbits/sec 146 sender
[ 4] 0.00-60.00 sec 8.99 GBytes 1.29 Gbits/sec receiver
Read the Redis vs. MongoDB Blog Database-as-a-Service |
12. Results: Insert Workload Performance
✔ 100% Writes
✔ 2.5M Throughput/Latency
The number of records was selected to
ensure the total memory was used in
the event Redis that did not exceed
80% (since Redis is the memory hog,
see Appendix B).
Read the Redis vs. MongoDB Blog Database-as-a-Service |
13. Insert Workload Observations
For MongoDB, CPU was saturated by 32 threads onwards. Greater than 300% usage with single-digit idle percentages.
For Redis, CPU utilization never crossed 95%.
✔
✔
Read the Redis vs. MongoDB Blog Database-as-a-Service |
14. Results: Workload A Performance
✔ 50/50% Read/Update
✔ 25M Throughput/Latency
Read the Redis vs. MongoDB Blog Database-as-a-Service |
15. Workload A Observations
For MongoDB, CPU was saturated by 32 threads onwards. Greater than 300% usage with single-digit idle
percentages.
For Redis, CPU utilization never crossed 95%.
For Redis, by 64 threads and above, runs failed often with read-timeout exceptions.
✔
✔
✔
Read the Redis vs. MongoDB Blog Database-as-a-Service |
16. Results: Workload B Performance
✔ 95/5% Read/Update
✔ 25M Throughput/Latency
✔ Cache-reading workload
Read the Redis vs. MongoDB Blog Database-as-a-Service |
17. Workload B Observations
For MongoDB, CPU was saturated by 32 threads onwards. Greater than 300% usage with single-digit idle
percentages.
For Redis, CPU utilization never crossed 95%.
So, Redis was consistently performing better than MongoDB while running on a
single thread, while MongoDB was saturating all the cores of the machine.
For Redis, at 128 threads, runs failed often with read-timeout exceptions.
✔
✔
✔
Read the Redis vs. MongoDB Blog Database-as-a-Service |
19. Appendice A: Single-Thread Performance
Even though it’s not very useful in real-world
conditions, who would be better when applying
the same load to each of them from a single
thread. That is, how would a single-threaded
application perform?
(ops/sec) Insert 2.5M
Workload A
25M
Workload B
25M
MongoDB
Percona
Throughput
2998.910796 3420.613713 3551.311407
Redis
Throughput
2196.184262 4376.60512 4286.422158
Read the Redis vs. MongoDB Blog Database-as-a-Service |
20. Appendice B: Database Size
The default format of records inserted by YCSB are: each record is of 10 fields and each field is 100 bytes. Assuming each record to
be around 1KB, the total expected size in memory would be upwards of 2.4GB. There was a stark contrast in the actual sizes as
seen in the databases.
Read the Redis vs. MongoDB Blog Database-as-a-Service |
21. MongoDB
> db.usertable.count()
2500000
> db.usertable.findOne()
{
"_id" : "user6284781860667377211",
"field1" : BinData(0,"OUlxLllnPC0sJEovLTpyL18jNjk6ME8vKzF4Kzt2OUEzMSEwMkBvPytyODZ4Plk7KzRmK0FzOiYoNFU1O185KFB/IVF7LykmPkE9NF1pLDFoNih0KiIwJU89K0ElMSAgKCF+Lg=="),
"field0" : BinData(0,"ODlwIzg0Ll5vK1s7NUV1O0htOVRnMk53JEd3KiwuOFN7Mj5oJ1FpM11nJ1hjK0BvOExhK1Y/LjEiJDByM14zPDtgPlcpKVYzI1kvKEc5PyY6OFs9PUMpLEltNEI/OUgzIFcnNQ=="),
"field7" : BinData(0,"N155M1ZxPSh4O1B7IFUzJFNzNEB1OiAsM0J/NiMoIj9sP1Y1Kz9mKkJ/OiQsMSk2OCouKU1jOltrMj4iKEUzNCVqIV4lJC0qIFY3MUo9MFQrLUJrITdqOjJ6NVs9LVcjNExxIg=="),
"field6" : BinData(0,"Njw6JVQnMyVmOiZyPFxrPz08IU1vO1JpIyZ0I1txPC9uN155Ij5iPi5oJSIsKVFhP0JxM1svMkphL0VlNzdsOlQxKUQnJF4xPkk9PUczNiF8MzdkNy9sLjg6NCNwIy1sKTw6MA=="),
"field9" : BinData(0,"KDRqP1o3KzwgNUlzPjwgJEgtJC44PUUlPkknKU5pLzkuLEAtIlg9JFwpKzBqIzo2MCIoKTxgNU9tIz84OFB/MzJ4PjwoPCYyNj9mOjY+KU09JUk1I0l9O0s/IEUhNU05NShiNg=="),
"field8" : BinData(0,"NDFiOj9mJyY6KTskO0A/OVg/NkchKEFtJUprIlJrPjYsKT98JyI8KFwzOEE7ICR4LUF9JkU1KyRkKikoK0g3MEMxKChsL10pKkAvPFRxLkxhOlotJFZlM0N/LiR4PjlqJ0FtOw=="),
"field3" : BinData(0,"OSYoJTR+JEp9K00pKj0iITVuIzVqPkBpJFN9Myk4PDhqOjVuP1YhPSM2MFp/Kz14PTF4Mlk3PkhzKlx3L0xtKjkqPCY4JF0vIic6LEx7PVBzI0U9KEM1KDV4NiEuKFx5MiZyPw=="),
"field2" : BinData(0,"Njd8LywkPlg9IFl7KlE5LV83ISskPVQpNDYgMEprOkprMy06LlotMUF5LDZ0IldzLl0tJVkjMTdgJkNxITFsNismLDxuIyYoNDgsLTc+OVpzKkBlMDtoLyBgLlctLCxsKzl+Mw=="),
"field5" : BinData(0,"OCJiNlI1O0djK1BtIyc4LEQzNj9wPyQiPT8iNE1pODI2LShqNDg4JF1jNiZiNjZuNE5lNzA8OCAgMDp2OVkjNVU3MzIuJTgkNDp0IyVkJyk6IEEvKzVyK1s9PEAhKUJvPDxyOw=="),
"field4" : BinData(0,"OFN1I0B7N1knNSR2LFp7PjUyPlJjP15jIUdlN0AhNEkhMC9+Lkd5P10jO1B3K10/I0orIUI1NzYuME81I0Y1NSYkMCxyI0w/LTc8PCEgJUZvMiQiIkIhPCF4LyN6K14rIUJlJg==")
}
> db.runCommand({ dbStats: 1, scale: 1 })
{
"db" : "ycsb",
"collections" : 1,
"objects" : 2500000,
"avgObjSize" : 1167.8795252,
"dataSize" : 2919698813,
"storageSize" : 2919698813,
"numExtents" : 0,
"indexes" : 1,
"indexSize" : 76717901,
"ok" : 1
}
So, the space taken is ~2.7GB which is pretty close to what we expected.
Read the Redis vs. MongoDB Blog Database-as-a-Service |
22. Redis
> info keyspace
# Keyspace
db0:keys=2500001,expires=0,avg_ttl=0
127.0.0.1:6379> RANDOMKEY
"user3176318471616059981"
127.0.0.1:6379> hgetall user3176318471616059981
1) "field1"
2) "#K/<No"&l*M{,;f;]x7f)Ss'+2<D}7^a8I/01&9.:)Q71T7,3r&y6:< Gk;6n*]-)*f>:p:O=?<:(;v/)0)Yw.W!8]+4B=8.z+*4!"
3) "field2"
4) "(9<9P5**d7<v((2-6*3Zg/.p4G=4Us;N+!C! I50>h=>p"X9:Qo#C9:;z.Xs=Wy*H3/Fe&0`8)t.Ku0Q3)E#;Sy*C).Sg++t4@7-"
5) "field5"
6) "#1 %8x='l?5d38~&U!+/b./b;(6-:v!5h.Ou2R}./(*)4!8>"B'!I)5U?0" >Ro.Ru=849Im+Qm/Ai(;:$Z',]q:($%&(=3~5(~?"
7) "field0"
8) "+"(1Pw.>*=807Jc?Y-5Nq#Aw=%*57r7!*=Tm!<j6%t3-45L5%Cs#/h;Mg:Vo690-/>-X}/X#.U) )f9-~;?p4;p*$< D-1_s!0p>"
9) "field7"
10) ":]o/2p/3&(!b> |#:0>#0-9b>Pe6[}<Z{:S}9Uc*0<)?60]37'~'Jk-Li',x!;.5H'"'|.!v4Y-!Hk=Ex7f2;8*9((-09*b#)x!Pg2"
11) "field3"
12) " C; ,f6Uq+^i Fi'8&0By"^##Qg":$+7$%Y;7Rs'"d3Km'Es>.|33$ Vo*M%="<$&j%/<5]%".h&Kc'5.46x5D35'0-3l:"| !l;"
13) "field6"
14) "-5x6!22)j;O=?1&!:&.S=$;|//r'?d!W54(j!$:-H5.*n&Zc!0f;Vu2Cc?E{1)r?M'!Kg'-b<Dc*1d2M-9*d&(l?Uk5=8,>0.B#1"
15) "field9"
16) "(Xa&1t&Xq"$((Ra/Q9&": &>4Ua;Q=!T;(Vi2G+)Uu.+|:Ne;Ry3Ux7f!Bx7f>O7!Dc;V7?Eu7E9"&<-Vi>7"$Q%%A%1<2/V11: :^c+"
17) "field8"
18) "78(8L9.H#5N+.E5=2`<Wk+Pw?+j'Q=3"$,Nk3O{+3p4K?0/ 5/r:W)5X}#;p1@x7f"+&#Ju+Z97#t:J9$'*(K).7&0/` 125O38O)0"
19) "field4"
20) "$F=)Ke5V15_)-'>=C-/Ka7<$;6r#_u F9)G/?;t& x?D%=Ba Zk+]) ($=I%3P3$<`>?*=*r9M1-Ye:S%%0,(Ns3,0'Ax7f&Y12A/5"
127.0.0.1:6379> info memory
# Memory
used_memory:6137961456
used_memory_human:5.72G
used_memory_rss:6275940352
used_memory_rss_human:5.84G
used_memory_peak:6145349904
used_memory_peak_human:5.72G
total_system_memory:7844429824
total_system_memory_human:7.31G
used_memory_lua:37888
used_memory_lua_human:37.00K
maxmemory:7516192768
maxmemory_human:7.00G
maxmemory_policy:noeviction
mem_fragmentation_ratio:1.02
mem_allocator:jemalloc-3.6.0
At peak usage, Redis seems to take
around 5.72G of memory, 2X as much
as MongoDB (comparison may not be
perfect due to differences in the
databases, but still too large to ignore).
YCSB inserts record in a hash in Redis,
and an index is maintained in a sorted
set. Since an individual entry is larger
than 64, the hash is encoded normally
and there is no savings in space. Redis
performance comes at the price of
increased memory footprint.
MongoDB might be preferable of you
want to reduce your memory costs.
Read the Redis vs. MongoDB Blog Database-as-a-Service |
23. Appendice C: Network Throughput
An in-memory database server is liable to be either compute-bound or network I/O-bound, so it was important throughout the
entire set of these tests to ensure that we were never getting network-bound. Measuring network throughput while running
application throughput tests adversely affects the overall throughput measurement. So, we ran subsequent network throughput
measurements using iftop at the thread counts where the highest write throughputs were observed. This was found to be around
440 Mbps for both Redis and MongoDB at their respective peak throughput. Given our initial measurement of the maximum
network bandwidth to be around 1.29 Gbps, we are certain that we never hit the network bounds. In fact, it only supports the
inference that if Redis were multi-core, we might get much better numbers.
Read the Redis vs. MongoDB Blog Database-as-a-Service |
24. Tha s r a g
Redis vs. MongoDB: Comparing In-Memory
Databases with Percona Memory Engine
You may also like:
Cassandra vs. MongoDB
Which is the Best MongoDB GUI?
Fast Paging with MongoDB
Using Redis with Node.js & Socket.IO
ScaleGrid’s fully managed Database-as-a-Service (DBaaS)
solution is used by thousands of developers, startups and
enterprise customers, including UPS, Dell and Adobe. Easily
manage MongoDB and Redis in the cloud with AWS, Azure,
and DigitalOcean, and automate your database operations
at any scale so you can focus on product.
scalegrid.io | help.scalegrid.io | @scalegridio