Comparison of structured storage software

Last updated

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]

Contents

Comparison

The following is a comparison of notable structured storage systems.

Project NameType Persistence Replication High Availability Transactions Rack-locality Awareness Implementation Language Influences, Sponsors License
Aerospike NoSQL databaseYes, Hybrid DRAM and flash for persistenceYesYes, Distributed for scaleYesYesC (small bits of assembly language)Aerospike AGPL v3
AllegroGraph Graph database YesNo - v5, 2010YesYesNo Common Lisp Franz Inc. Proprietary
Apache Ignite Key-valueTo and from an underlying persistent storage (e.g. an RDBMS)YesYesYesYes Java Apache, GridGain Systems Apache 2.0
Apache Jackrabbit Key-value & Hierarchical & DocumentYesYesYesYeslikely Java Apache, Roy Fielding, Day Software Apache 2.0
Berkeley DB/Dbm 1.xKey-valueYesNoNoNoNo C old schoolVarious
Berkeley DB Sleepycat/Oracle Berkeley DB 5.xKey-valueYesYesYesYesNoC, C++, or Javadbm, Sleepycat/Oracledual GPL-like Sleepycat License
Apache Cassandra Key-valueYesYesDistributedPartial Only supports CAS (Check And Set) after 2.1.1 and later [5] [6] YesJavaDynamo and Bigtable, Facebook/Digg/Rackspace Apache 2.0
ClustrixDB scale-out relationalYesYesDistributed and ReplicationYesNoCClustrixProprietary
Coherence Key-valuePersistent data typically in an RDBMS YesYesYesYes Java Oracle (previously Tangosol) Proprietary
Oracle NoSQL Database Key-valueYesYesYesYesNoJavaOracle AGPLv3 License or proprietary
Couchbase DocumentYesYesYesYes, with two-phase commits [7] Yes C++, Erlang, C, [8] Go CouchDB, Memcached Apache 2.0
CouchDB DocumentYesYesreplication + load balancingAtomicity 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-valueYesNoNoYesNoC++, Assembly Microsoft Proprietary
FoundationDB Ordered Key-valueYesYesYesYesDepends on user configurationC++FoundationDB Proprietary
GT.M Key-valueYesYesYesYesDepends on user configurationC (small bits of assembly language)FIS AGPL v3
Project NameTypePersistenceReplicationHigh AvailabilityTransactionsRack-locality AwarenessImplementation LanguageInfluences, SponsorsLicense
Apache HBase Key-valueYes. 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 DB1Key-value. Multi-levelYesYesYes, with HALDBYes, with IMS TMUnknown Assembler IBM since 1966 Proprietary
Infinispan Key-valueYesYesYesYesYesJavaRed Hat Apache 2.0
Memcached Key-valueNoNoNoPartial Only supports CAS (Check And Set - or Compare And Swap) [15] [16] NoCSix Apart/Couchbase/Fotolog/FacebookBSD-like permissive copyright by Danga
LevelDB Key-value, Bigtable YesNoNoPartial Multiple writes can be combined into single operationNoC++GoogleNew BSD License
LightningDB Key-value, memory-mapped filesYesNoNoYes, ACID, MVCCNoCSymasOpenLDAP Public License
MongoDB Document (JSON)YesYesfail-overPartial Single document atomicity [17] NoC++10gen GNU AGPL v3.0
Neo4j Graph database YesYesYesYesNoJavaNeo Technology GNU GPL v3.0
OrientDB Multi-Model (Graph-Document-Object-Key/Value)YesYes [18] Yes [19] Yes [20] YesJavaOrient Technologies Apache 2.0
Redis Key-valueYes. But last few queries can be lost. [21] YesYes [22] Yes [23] NoAnsi-CVMWare, Memcache BSD
ScyllaDB Key-valueYesYesDistributed and Replication [24] No [25] UnknownC++ Apache Cassandra AGPL v3
SimpleDB (Amazon.com)Document & Key-valueYesYes (automatic)YesUnknownlikelyErlangAmazon.comAmazon internal only
Tarantool Free-dimensional tuples with primary and secondary keysYes. (Asynchronous)YesYesYesNoC, Lua [26] Memcached, Mnesia, MySQL, Mail.ru BSD
Project NameTypePersistenceReplicationHigh AvailabilityTransactionsRack-locality AwarenessImplementation LanguageInfluences, SponsorsLicense

See also

References

  1. Hamilton, James (3 November 2009). "Perspectives: One Size Does Not Fit All" . Retrieved 13 November 2009.
  2. Lakshman, Avinash; Malik, Prashant. "Cassandra - A Decentralized Structured Storage System" (PDF). Cornell University. Retrieved 13 November 2009.{{cite journal}}: Cite journal requires |journal= (help)
  3. Chang, Fay; Jeffrey Dean; Sanjay Ghemawat; Wilson C. Hsieh; Deborah A. Wallach; Mike Burrows; Tushar Chandra; Andrew Fikes; Robert E. Gruber. "Bigtable: A Distributed Storage System for Structured Data" (PDF). Archived from the original (PDF) on 11 May 2008. Retrieved 13 November 2009.{{cite journal}}: Cite journal requires |journal= (help)
  4. Kellerman, Jim. "HBase: structured storage of sparse data for Hadoop" (PDF). Retrieved 20 February 2016.
  5. java - Cassandra - transaction support - Stack Overflow
  6. Lightweight transactions
  7. Providing transactional logic
  8. Damien Katz (January 8, 2013). "The Unreasonable Effectiveness of C" . Retrieved September 30, 2016.
  9. "How do I use transactions with CouchDB?". Archived from the original on 2012-07-16. Retrieved 2012-07-12.
  10. HBase: Bigtable-like structured storage for Hadoop HDFS
  11. HBase on EC2 [ permanent dead link ]
  12. HBase on EC2 using EBS volumes : Lessons Learned | My AWS Musings
  13. Hbase/MultipleMasters - Hadoop Wiki
  14. ACID in HBase
  15. sql - Memcache with transactions? - Stack Overflow
  16. Memcached
  17. Atomic Operations - MongoDB
  18. "OrientDB Replication". Archived from the original on 2014-12-28. Retrieved 2015-01-08.
  19. "OrientDB Distributed Architecture Lifecycle". Archived from the original on 2015-01-19. Retrieved 2015-01-08.
  20. "OrientDB Transactions". Archived from the original on 2015-01-18. Retrieved 2015-01-08.
  21. Redis Persistence
  22. high availability - Redis master/slave replication - single point of failure? - Stack Overflow
  23. Transactions – Redis
  24. "Scylla Architecture - Fault Tolerance". Scylla Docs. Retrieved 2018-07-07.
  25. "Scylla Apache Cassandra Compatibility". Scylla Docs. Retrieved 2018-07-07.
  26. "Tarantool". GitHub . 29 April 2022.