Comparison of structured storage software

From HandWiki
Short description: None

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

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
Scylla 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

References

  1. Hamilton, James (3 November 2009). "Perspectives: One Size Does Not Fit All". http://perspectives.mvdirona.com/CommentView,guid,afe46691-a293-4f9a-8900-5688a597726a.aspx. 
  2. Lakshman, Avinash; Malik, Prashant. Cassandra - A Decentralized Structured Storage System. Cornell University. http://www.cs.cornell.edu/projects/ladis2009/papers/lakshman-ladis2009.pdf. Retrieved 13 November 2009. 
  3. Chang, Fay; Jeffrey Dean; Sanjay Ghemawat; Wilson C. Hsieh; Deborah A. Wallach; Mike Burrows; Tushar Chandra; Andrew Fikes et al.. Bigtable: A Distributed Storage System for Structured Data. http://labs.google.com/papers/bigtable-osdi06.pdf. Retrieved 13 November 2009. 
  4. Kellerman, Jim. "HBase: structured storage of sparse data for Hadoop". http://wiki.apache.org/hadoop/HBase/HBasePresentations?action=AttachFile&do=get&target=hbaseintro.pdf. 
  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". http://damienkatz.net/2013/01/the_unreasonable_effectiveness_of_c.html. 
  9. "How do I use transactions with CouchDB?". http://wiki.apache.org/couchdb/Frequently_asked_questions#How_do_I_use_transactions_with_CouchDB.3F. 
  10. HBase: Bigtable-like structured storage for Hadoop HDFS
  11. HBase on EC2
  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". http://www.orientechnologies.com/docs/last/orientdb.wiki/Replication.html. 
  19. "OrientDB Distributed Architecture Lifecycle". http://www.orientechnologies.com/docs/last/orientdb.wiki/Distributed-Architecture-Lifecycle.html. 
  20. "OrientDB Transactions". http://www.orientechnologies.com/docs/last/orientdb.wiki/Transactions.html. 
  21. Redis Persistence
  22. high availability - Redis master/slave replication - single point of failure? - Stack Overflow
  23. Transactions – Redis
  24. "Scylla Architecture - Fault Tolerance" (in en). http://docs.scylladb.com/architecture/architecture-fault-tolerance/. 
  25. "Scylla Apache Cassandra Compatibility" (in en). http://docs.scylladb.com/cassandra-compatibility/. 
  26. "Tarantool". 29 April 2022. https://github.com/tarantool/tarantool.