2013 Recap: 21 Best Open Source Databases

        
        As a software developer or DBA, one essential part of the job is working with databases, such as MS SQL Server, MySQL, Oracle, PostgreSQL, MongoDB, and so on. As we all know, MySQL is currently the most widely used and best free open-source database. In addition, there are some excellent open-source databases you might not know or have never used, such as PostgreSQL, MongoDB, HBase, Cassandra, Couchbase, Neo4j, Riak, Redis, Firebird, and others.

In this article, the author has summarized a total of 21 of the best open-source databases. Let’s take a look at them together.

1. MySQL

MySQL is an open-source relational database management system, a product of Oracle Corporation. It supports multiple storage engines, clustering, full-text

/

indexing, multi-threading, full utilization of CPU resources, multi-user support, and many other highly professional features.

Due to its high performance, low cost, and good reliability, MySQL has become the most popular open-source database and is widely used in web applications and other small to medium-sized projects. From WordPress to Movable Type, MySQL is used as the default database. Furthermore, after Oracle acquired MySQL, there was a potential risk of it being closed-source. Therefore, the community adopted a forking approach to avoid this risk, developing and operating the fully MySQL-compatible MariaDB database.

2. PostgreSQL

PostgreSQL, often referred to simply as “postgres”, is an object-relational database management system. PostgreSQL adopts the classic

/

C/S (client/server) structure, which is a mode where one client corresponds to one server-side daemon process. PostgreSQL has very well-developed drivers and supports standard ANSI-SQL and extended features, surpassing MySQL in many aspects.

PostgreSQL is a full-featured free software database. For a long time, PostgreSQL was the only free software database management system that supported features like transactions, subqueries, Multi-Version Concurrency Control (MVCC), and data integrity checks. Many cloud service providers, such as Heroku, use PostgreSQL as their RDBMS storage.

In terms of drawbacks, PostgreSQL still lacks some features required by more high-end database management systems, such as database clustering, better management tools, and more automated system optimization features to enhance database performance.

3. MongoDB

MongoDB is an open-source, document-oriented and currently the most popular NoSQL database. It is also a product that sits between relational

/

and non-relational databases. The biggest feature of MongoDB is its very powerful query language, whose syntax is somewhat similar to object-oriented query languages, capable of implementing almost most functions of single-table queries in relational databases, and it also supports indexing data. It features high performance, easy deployment and use, and very convenient data storage. 

4. Hadoop (HBase)

Hadoop (HBase) is an open-source, distributed database based on a column-oriented storage model. It is part of the Apache Hadoop project, developed in Java.

HBase differs from general relational databases; it is a database suitable for storing unstructured data. Another difference is that

/

HBase is based on a column-oriented rather than a row-oriented model. It is a distributed database built upon the relational model with high reliability, high performance, and scalability.

HBase is the open-source implementation of Google Bigtable. Similar to how Google Bigtable uses GFS as its file storage system, HBase uses Hadoop HDFS for storing large-scale structured data. Google runs MapReduce to process massive data in Bigtable, and HBase similarly uses Hadoop MapReduce to process massive data within it. Google Bigtable uses Chubby as a coordination service, while HBase uses Zookeeper as its counterpart.

5. Apache Cassandra

Apache Cassandra is an open-source distributed NoSQL database system, similar to Google’s BigTable. It was initially developed by

/

Facebook for storing simple format data like inboxes, combining Google BigTable’s data model with Amazon Dynamo’s fully distributed architecture. Facebook open-sourced it in 2008.

 

Cassandra’s main feature is that it is not a single database but a distributed network service composed of a cluster of database nodes. A write operation to Cassandra is replicated to other nodes, and a read operation from Cassandra is routed to a specific node. For a Cassandra cluster, scaling performance is relatively simple; you just need to add nodes to the cluster.

 

 

6. Couchbase

Couchbase is a document database based on the JSON model. It is a fork of CouchDB, capable of horizontal scaling and providing low-latency access for both data reads and writes. Couchbase is more full-featured than CouchDB, and the Couchbase product includes a copy of CouchDB. The Couchbase product adds features like caching and clustering to CouchDB. Furthermore, Couchbase includes some excellent integration capabilities, making it a good choice for data storage systems. 

7. Neo4j

Neo4j is an open-source, high-performance NoSQL graph database. It uses graph-related concepts to describe the data model, storing

 /

data as nodes in the graph and the relationships between nodes. It supports ACID transactions (Atomicity, Consistency, Isolation, Durability).

In reality, much data is expressed using graphs, such as relationships between people in social networks, map data, or genetic information. The most basic concepts in Neo4j are nodes and relationships. Nodes represent entities, and different relationships can exist between two nodes.

8. Riak

Riak is developed based on Erlang and C languages. Riak is Amazon’s high-availability key-value store, written in Erlang and based on

/

Dynamo, and is a highly scalable distributed data store. Riak does not have the concept of a master node, offering greater flexibility in handling failures. The open-source version does not include the SNMP distributed model.

9. Redis

Redis is an open-source, network-enabled, in-memory, key-value pair storage database. Developers can store not just numbers and strings but

/

also dump entire hashes, lists, sets, and other complex result storage structures. Additionally, Redis provides features like replication/synchronization and persistence.

Redis is a high-performance key-value pair database. The emergence of Redis has greatly compensated for the shortcomings of key/value stores like memcached, and in some scenarios, it can serve as a good complement to relational databases.

10. Firebird

Firebird is a cross-platform relational database, developed using C and C++. It currently runs on Windows, Linux, and various Unix operating
 

/

systems, providing high performance and powerful language support for stored procedures and triggers.

Firebird can run both as a database server in multi-user environments and also offers an embedded database implementation. 

11. Memcached

Memcached is a distributed high-speed caching system. It can be used to store data in various formats, including images, videos, files,

/

and database retrieval results. Simply put, it calls data into memory and then reads from memory, thereby greatly increasing read speed.

Since Memcached is typically used only as a high-speed caching system, applications using Memcached require extra code to update data within Memcached when writing back to slower systems (like a backend database). 

12. Oracle Berkeley DB

Oracle Berkeley DB is an efficient embedded database programming library. Berkeley DB can store any type of key/value pair and can save multiple data items for a single key. Berkeley DB supports thousands of concurrent threads operating on the database simultaneously, supports up to 256TB of data, and is widely used across various operating systems, including most Unix-like OSes, Windows OSes, and real-time operating systems. 

13. Hypertable

Hypertable is a high-performance distributed data storage system that adopts a model similar to Google’s BigTable. It features high

/

performance, scalability, and expandability, and primarily focuses on massively large datasets.

Hypertable organizes data in table-like forms, but currently, it does not support the rich relational properties found in relational databases. Hypertable organizes data into a multi-dimensional sparse matrix. All row information in this matrix can be sorted based on the Primary Key. 

14. Keyspace

Keyspace is a key-value pair database storage system. Keyspace is based on a Master-Slave mode, where all writes are undertaken by the Master and propagated consistently to Slaves via Paxos. Reads can be routed to either the Master or a Slave based on basic algorithms. Therefore, when the Master goes down or becomes inaccessible, there is a Master election mechanism, known in Keyspace as the PaxosLease algorithm. 

15. 4store

4store is an efficient, scalable RDF database developed using ANSI C99. It can simultaneously run queries on over 15GT of data,

/

and web applications developed using it can support thousands of concurrent visitors. 

16. MariaDB

MariaDB database management system is a fork of MySQL, fully compatible with MySQL, including APIs and command-line interfaces, making it an easy

/

drop-in replacement for MySQL. In terms of storage engines, it uses XtraDB instead of MySQL’s InnoDB. It has also added some features to support native non-blocking operations and progress reporting. This means that all connectors, libraries, and applications that use MySQL will also work under MariaDB.

MariaDB is led by Michael · Widenius, the founder of MySQL. As mentioned above, due to concerns about Oracle potentially closing the source of MySQL, many companies have already migrated their projects to MariaDB, such as Wikipedia and Google. 

17. Drizzle

Drizzle is a free/open-source relational database management system, developed based on C++. It is a fork of MySQL 6.0. Like

/

MySQL, Drizzle also adopts the classic C/S (Client/Server) architecture model, and its main focus is on providing a reliable and stable database for cloud applications.

18. HyperSQL

HyperSQL is a SQL relational database engine written in Java. Its core is multi-threaded, supporting two-phase locking and MVCC,

/

and provides a small and fast database engine for both in-memory and disk-based tables, supporting embedded/server modes. It also comes with a variety of tools, such as a command-line SQL tool and a GUI query application. 

19. MonetDB

MonetDB is an open-source, column-oriented database management system specifically designed to provide high-performance applications for

/

data mining, OLAP, GIS, XML queries, and text and multimedia retrieval.

The MonetDB database management system includes MonetDB/SQL, MonetDB/GIS, and MonetDB Server. It also features automatic and self-tuning indexes, run-time query optimization, and a modular software architecture.

20. Persevere

Persevere is an object storage engine and application server (based on Java/Rhino) that provides a server-side JavaScript environment for persistent data storage of dynamic JSON data. It supports creating, reading, updating, and deleting data through a standard JSON HTTP/REST web interface.

 

Persevere prides itself on being “schema-free”, a characteristic that greatly distinguishes it from other databases. Persevere allows you to add schema as you please. Rather than calling the top level of the hierarchy a domain (as SimpleDB does) or a document (as CouchDB does), Persevere calls it an object, and it even lets you create subclasses of objects. If you want to break the rules, you can insist on specific types for certain fields, but this is not recommended. Schema rules are optional.

21. eXist-db

eXist-db is an open-source XML database built using XML technology. It stores XML data according to the XML data model and features, utilizing an index-based XQuery processor. Programs interact with eXist through the HTTP server bundled with eXist. The eXist database also provides SOAP, XML-RPC, and RESTful interfaces, through which developers can submit XPath, XQuery, and XUpdate requests to the core server. Command-line and GUI clients are also available.

Leave a Comment

Your email address will not be published.