Comparison of structured storage software
From HandWiki
Short description: None
This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these template messages)
(Learn how and when to remove this template message)
|
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. Template:Sort-under
| 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 |
See also
References
- ↑ Hamilton, James (3 November 2009). "Perspectives: One Size Does Not Fit All". http://perspectives.mvdirona.com/CommentView,guid,afe46691-a293-4f9a-8900-5688a597726a.aspx.
- ↑ Lakshman, Avinash; Malik, Prashant. Cassandra - A Decentralized Structured Storage System. Cornell University. https://www.cs.cornell.edu/projects/ladis2009/papers/lakshman-ladis2009.pdf. Retrieved 13 November 2009.
- ↑ 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.
- ↑ Kellerman, Jim. "HBase: structured storage of sparse data for Hadoop". http://wiki.apache.org/hadoop/HBase/HBasePresentations?action=AttachFile&do=get&target=hbaseintro.pdf.
- ↑ java - Cassandra - transaction support - Stack Overflow
- ↑ Lightweight transactions
- ↑ Providing transactional logic
- ↑ Damien Katz (January 8, 2013). "The Unreasonable Effectiveness of C". http://damienkatz.net/2013/01/the_unreasonable_effectiveness_of_c.html.
- ↑ "How do I use transactions with CouchDB?". http://wiki.apache.org/couchdb/Frequently_asked_questions#How_do_I_use_transactions_with_CouchDB.3F.
- ↑ HBase: Bigtable-like structured storage for Hadoop HDFS
- ↑ HBase on EC2
- ↑ HBase on EC2 using EBS volumes : Lessons Learned | My AWS Musings
- ↑ Hbase/MultipleMasters - Hadoop Wiki
- ↑ ACID in HBase
- ↑ sql - Memcache with transactions? - Stack Overflow
- ↑ Memcached
- ↑ Atomic Operations - MongoDB
- ↑ "OrientDB Replication". http://www.orientechnologies.com/docs/last/orientdb.wiki/Replication.html.
- ↑ "OrientDB Distributed Architecture Lifecycle". http://www.orientechnologies.com/docs/last/orientdb.wiki/Distributed-Architecture-Lifecycle.html.
- ↑ "OrientDB Transactions". http://www.orientechnologies.com/docs/last/orientdb.wiki/Transactions.html.
- ↑ Redis Persistence
- ↑ high availability - Redis master/slave replication - single point of failure? - Stack Overflow
- ↑ Transactions – Redis
- ↑ "Scylla Architecture - Fault Tolerance" (in en). http://docs.scylladb.com/architecture/architecture-fault-tolerance/.
- ↑ "Scylla Apache Cassandra Compatibility" (in en). http://docs.scylladb.com/cassandra-compatibility/.
- ↑ "Tarantool". 29 April 2022. https://github.com/tarantool/tarantool.
