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++ | 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
- ↑ 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. http://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.
Original source: https://en.wikipedia.org/wiki/Comparison of structured storage software.
Read more |