In this article, the topic of Comparison of structured storage software will be addressed from different perspectives, with the purpose of exploring its implications, applications and relevance today. Its historical context, its possible impacts in various areas and its relevance in the current panorama will be analyzed in detail. Likewise, its possible future implications will be delved into and various points of view on Comparison of structured storage software will be discussed. Through a journey through different approaches and opinions, the aim is to provide the reader with a comprehensive and detailed vision of this topic, with the aim of encouraging debate and reflection.
This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these messages)
|
Structured storage is computer storage for structured data, often in the form of a distributed database.[1] Computer software formally known as structured storage systems include Apache Cassandra,[2] Google's Bigtable[3] and Apache HBase.[4]
The following is a comparison of notable structured storage systems.
| Project Name | Type | Persistence | Replication | High Availability | Transactions | Rack-locality Awareness | Implementation Language | Influences, Sponsors | License |
|---|---|---|---|---|---|---|---|---|---|
| Aerospike | NoSQL database | Yes, Hybrid DRAM and flash for persistence | Yes | Yes, Distributed for scale | Yes | Yes | C (small bits of assembly language) | Aerospike | AGPL v3 |
| AllegroGraph | Graph database | Yes | No - v5, 2010 | Yes | Yes | No | Common Lisp | Franz Inc. | Proprietary |
| Apache Ignite | Key-value | To and from an underlying persistent storage (e.g. an RDBMS) | Yes | Yes | Yes | Yes | Java | Apache, GridGain Systems | Apache 2.0 |
| Apache Jackrabbit | Key-value & Hierarchical & Document | Yes | Yes | Yes | Yes | likely | Java | Apache, Roy Fielding, Day Software | Apache 2.0 |
| Berkeley DB/Dbm 1.x | Key-value | Yes | No | No | No | No | C | old school | Various |
| Berkeley DB Sleepycat/Oracle Berkeley DB 5.x | Key-value | Yes | Yes | Yes | Yes | No | C, C++, or Java | dbm, Sleepycat/Oracle | dual GPL-like Sleepycat License |
| Apache Cassandra | Key-value | Yes | Yes | Distributed | Partial Only supports CAS (Check And Set) after 2.1.1 and later[5][6] | Yes | Java | Dynamo and Bigtable, Facebook/Digg/Rackspace | Apache 2.0 |
| ClustrixDB | scale-out relational | Yes | Yes | Distributed and Replication | Yes | No | C | Clustrix | Proprietary |
| Coherence | Key-value | Persistent data typically in an RDBMS | Yes | Yes | Yes | Yes | Java | Oracle (previously Tangosol) | Proprietary |
| Oracle NoSQL Database | Key-value | Yes | Yes | Yes | Yes | No | Java | Oracle | AGPLv3 License or proprietary |
| Couchbase | Document | Yes | Yes | Yes | Yes, with two-phase commits[7] | Yes | C++, Erlang, C,[8] Go | CouchDB, Memcached | Apache 2.0 |
| CouchDB | Document | Yes | Yes | replication + load balancing | Atomicity is per document, per CouchDB instance[9] | No | Erlang | Lotus Notes / Ubuntu, Mozilla, IBM | Apache 2.0 |
| Extensible Storage Engine(ESE/NT) | Document or Key-value | Yes | No | No | Yes | No | C++, Assembly | Microsoft | Proprietary |
| FoundationDB | Ordered Key-value | Yes | Yes | Yes | Yes | Depends on user configuration | C++ | FoundationDB | Proprietary |
| GT.M | Key-value | Yes | Yes | Yes | Yes | Depends on user configuration | C (small bits of assembly language) | FIS | AGPL v3 |
| Project Name | Type | Persistence | Replication | High Availability | Transactions | Rack-locality Awareness | Implementation Language | Influences, Sponsors | License |
| Apache HBase | Key-value | Yes. Major version upgrades require re-import. | Yes HDFS,[10] Amazon S3[11] or Amazon Elastic Block Store.[12] | Yes[13] | Yes[14] | See HDFS, S3 or EBS. | Java | Bigtable | Apache 2.0 |
| Information Management System IBM IMS aka DB1 | Key-value. Multi-level | Yes | Yes | Yes, with HALDB | Yes, with IMS TM | Unknown | Assembler | IBM since 1966 | Proprietary |
| Infinispan | Key-value | Yes | Yes | Yes | Yes | Yes | Java | Red Hat | Apache 2.0 |
| Memcached | Key-value | No | No | No | Partial Only supports CAS (Check And Set - or Compare And Swap)[15][16] | No | C | Six Apart/Couchbase/Fotolog/Facebook | BSD-like permissive copyright by Danga |
| LevelDB | Key-value, Bigtable | Yes | No | No | Partial Multiple writes can be combined into single operation | No | C++ | New BSD License | |
| LightningDB | Key-value, memory-mapped files | Yes | No | No | Yes, ACID, MVCC | No | C | Symas | OpenLDAP Public License |
| MongoDB | Document (JSON) | Yes | Yes | fail-over | Partial Single document atomicity[17] | No | C++ | 10gen | GNU AGPL v3.0 |
| Neo4j | Graph database | Yes | Yes | Yes | Yes | No | Java | Neo Technology | GNU GPL v3.0 |
| OrientDB | Multi-Model (Graph-Document-Object-Key/Value) | Yes | Yes[18] | Yes[19] | Yes[20] | Yes | Java | Orient Technologies | Apache 2.0 |
| Redis | Key-value | Yes. But last few queries can be lost.[21] | Yes | Yes[22] | Yes[23] | No | Ansi-C | VMWare, Memcache | BSD |
| ScyllaDB | Key-value | Yes | Yes | Distributed and Replication[24] | No[25] | Unknown | C++ | Apache Cassandra | AGPL v3 |
| SimpleDB (Amazon.com) | Document & Key-value | Yes | Yes (automatic) | Yes | Unknown | likely | Erlang | Amazon.com | Amazon internal only |
| Tarantool | Free-dimensional tuples with primary and secondary keys | Yes. (Asynchronous) | Yes | Yes | Yes | No | C, Lua[26] | Memcached, Mnesia, MySQL, Mail.ru | BSD |
| Project Name | Type | Persistence | Replication | High Availability | Transactions | Rack-locality Awareness | Implementation Language | Influences, Sponsors | License |
{{cite journal}}: Cite journal requires |journal= (help)
{{cite journal}}: Cite journal requires |journal= (help)