Comparison of structured storage software

From Wikipedia, the free encyclopedia

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 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
Hypertable Key-value Yes Yes, with KosmosFS and Ceph coming in 2.0 coming Yes, with KosmosFS C++ Bigtable GPL 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
Graph database Yes Yes Yes Yes No C/C++ Memgraph BSL and MEL
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". 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). 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. ^ https://github.com/tarantool/tarantool
Retrieved from ""