Choosing an open source database management system

Redis

Redis [13] is a key-value, NoSQL, in-memory store used as a DBMS. You can use Redis as a cache, a vector database, a document database, a streaming engine, or as a message broker. In its most popular use case, Redis can function as an enterprise-class session cache.

To handle caching, queuing, and event processing, Redis supports in-memory data structures (e.g., strings, hashes, sets, sorted sets, streams, etc.). You can program Redis using server-side scripting with Lua and server-side stored procedures with the Redis Functions API. You can also build custom extensions for Redis in C, C++, and Rust using a module API.

With Redis, your dataset is kept in memory for fast access. You can also persist all writes to permanent storage to protect against reboots and system failures. Redis supports asynchronous replication, and replication and automatic failover are available for both standalone and clustered deployments.

Clustering provides horizontal scalability in Redis with hash-based sharding. To grow a cluster, automatic repartitioning lets Redis scale up to millions of nodes.

Redis is licensed under a three-clause BSD license [14]. You can use, modify, and redistribute Redis in source and binary form as long as you include the provided copyright notice, list of conditions, and disclaimer. You also cannot use the names of Redis and its contributors to promote or endorse products derived from the software without prior written permission.

For documentation, community support, and mailing lists, see the Redis site.

CouchDB

CouchDB [15] from Apache, a NoSQL document-based DBMS, is a single-node DBMS that works behind the application server of your choice.

With a schema-free document model and built-in query engine, CouchDB can handle spikes in usage. It uses an intuitive JSON/HTTP API, supports binary data, and can be used on servers ranging from a Rasp Pi to a cloud installation.

The CouchDB Replication Protocol [16] makes Offline First apps possible. An Offline First app lets an organization perform some or all of its business logic without access to an Internet connection. This is particularly useful for mobile apps or any environment with an unreliable network infrastructure.

CouchDB is designed for reliability. Single nodes rely on a crash resistant, append-only data structure, while multi-node clusters use redundancy to make your data available whenever you need it.

You can easily scale CouchDB horizontally by adding more clusters to meet your demands.

CouchDB is licensed under an Apache v2 license. You'll find documentation, community chat channels, and mailing lists on the CouchDB website.

Making a Choice

Picking the right open source DBMS comes down to your project's unique data management needs. In making your decision, there are several things you should consider.

First, think about how your project uses data to determine which DBMS will provide the needed features, capabilities, and complexity. In terms of capacity, look at how data will flow through your database structure with particular consideration for the amount of data, storage needs, access requirements, and number of concurrent users. Another thing to consider is workload. Not only should you be thinking about your project's data types, query types, performance expectations, and business requirements, but also consider whether your workload is consistent or if it experiences event-driven changes. Finally, business needs change over time, so look for a DBMS that supports multiple use cases (not just your current use case) with no downtime. A rigid system with limited use cases may force you to migrate to a different DBMS in the future if your needs change.

In terms of scalability, determine whether a given DBMS can meet your organization's evolving data usage, customer needs, and compliance requirements over time. For enterprise-grade systems, it's particularly important to consider high availability and disaster recovery and whether a DBMS can scale to meet those demands. Also, don't rule out the need to scale down in the future.

In considering a DBMS, take a close look at its community support. A strong active community means developers are actively working to make stronger, more secure code. Because free open source DBMSs don't usually include tech support, look to see if the community supplies tutorials, forums, and documentation. In addition to being a good source of information, these resources will come in handy if you encounter any technical issues.

While open source is free, keep in mind that there may be associated costs with implementation. Most open source DBMSs charge extra fees for enterprise-grade plans and additional features. If you need more robust support than what is provided by the community documentation and forums, you may need to pay for the commercial version or contract with a third-party vendor.

In addition to cost, you should also consider the technical skills required to implement and maintain an open source DBMS. Do you have existing staff (with both the skills and the resources) to handle your chosen DBMS? If not, then you need to factor in whether you can afford to hire more staff or get outside help.

Two final things to consider are security and compatibility. When it comes to security, look for DBMS features such as secure logins, encryption, role-based access, control, and compliance. As for compatibility, you need to ensure that the new DBMS software works with the existing software and tools that your organization uses.

Buy this article as PDF

Express-Checkout as PDF
Price $2.95
(incl. VAT)

Buy Linux Magazine

SINGLE ISSUES
 
SUBSCRIPTIONS
 
TABLET & SMARTPHONE APPS
Get it on Google Play

US / Canada

Get it on Google Play

UK / Australia

Related content

  • In-Memory DBMS

    Thanks to powerful hardware, in-memory databases run without accessing mass memory devices, which means they handle transactions and evaluations at high speed, introducing a paradigm shift in the database market.

  • PostgreSQL

    PostgreSQL, an open source object-relational database management system known for its reliability and extensibility, offers a robust feature set. If you are new to PostgreSQL, we help you get started with some of its most useful features.

  • FAQ

    Big data is like The Matrix – Better without the sequel

  • MySQL Workbench 5.1

    A small database is easy to plan on paper, but the structure quickly becomes more complex as you add more elements. MySQL Workbench can help you keep the tables arranged.

  • Cross-Platform Database Management with DBeaver

    Save time and effort as you rummage through large quantities of data.

comments powered by Disqus
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Subscribe to our ADMIN Newsletters

Support Our Work

Linux Magazine content is made possible with support from readers like you. Please consider contributing when you’ve found an article to be beneficial.

Learn More

News