Comparison of structured storage software

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]

Comparison

edit

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++ Google 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

See also

edit

References

edit
  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.