Comparison of structured storage software
Jump to navigation
Jump to search
This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these messages)
|
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 | edit source]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 |
| 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 | edit source]References
[edit | edit source]- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ java - Cassandra - transaction support - Stack Overflow
- ^ Lightweight transactions
- ^ Providing transactional logic
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ HBase: Bigtable-like structured storage for Hadoop HDFS
- ^ HBase on EC2[permanent dead link]
- ^ 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
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Redis Persistence
- ^ high availability - Redis master/slave replication - single point of failure? - Stack Overflow
- ^ Transactions – Redis
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).