Structured storage is computer storage for structured data, often in the form of a distributed database. Computer software formally known as structured storage systems include Apache Cassandra, Google's Bigtable and Apache HBase.

Comparison

The following is a comparison of notable structured storage systems.

Project NameTypePersistenceReplicationHigh AvailabilityTransactionsRack-locality AwarenessImplementation LanguageInfluences, SponsorsLicense
AerospikeNoSQL databaseYes, Hybrid DRAM and flash for persistenceYesYes, Distributed for scaleYesYesC (small bits of assembly language)AerospikeAGPL v3
AllegroGraphGraph databaseYesNo - v5, 2010YesYesNoCommon LispFranz Inc.Proprietary
Apache IgniteKey-valueTo and from an underlying persistent storage (e.g. an RDBMS)YesYesYesYesJavaApache, GridGain SystemsApache 2.0
Apache JackrabbitKey-value & Hierarchical & DocumentYesYesYesYeslikelyJavaApache, Roy Fielding, Day SoftwareApache 2.0
Berkeley DB/Dbm 1.xKey-valueYesNoNoNoNoCold schoolVarious
Berkeley DB Sleepycat/Oracle Berkeley DB 5.xKey-valueYesYesYesYesNoC, C++, or Javadbm, Sleepycat/Oracledual GPL-like Sleepycat License
Apache CassandraKey-valueYesYesDistributedPartial Only supports CAS (Check And Set) after 2.1.1 and laterYesJavaDynamo and Bigtable, Facebook/Digg/RackspaceApache 2.0
ClustrixDBscale-out relationalYesYesDistributed and ReplicationYesNoCClustrixProprietary
CoherenceKey-valuePersistent data typically in an RDBMSYesYesYesYesJavaOracle (previously Tangosol)Proprietary
Oracle NoSQL DatabaseKey-valueYesYesYesYesNoJavaOracleAGPLv3 License or proprietary
CouchbaseDocumentYesYesYesYes, with two-phase commitsYesC++, Erlang, C, GoCouchDB, MemcachedApache 2.0
CouchDBDocumentYesYesreplication + load balancingAtomicity is per document, per CouchDB instanceNoErlangLotus Notes / Ubuntu, Mozilla, IBMApache 2.0
Extensible Storage Engine(ESE/NT)Document or Key-valueYesNoNoYesNoC++, AssemblyMicrosoftProprietary
FoundationDBOrdered Key-valueYesYesYesYesDepends on user configurationC++FoundationDBProprietary
GT.MKey-valueYesYesYesYesDepends on user configurationC (small bits of assembly language)FISAGPL v3
Project NameTypePersistenceReplicationHigh AvailabilityTransactionsRack-locality AwarenessImplementation LanguageInfluences, SponsorsLicense
Apache HBaseKey-valueYes. Major version upgrades require re-import.Yes HDFS, Amazon S3 or Amazon Elastic Block Store.YesYesSee HDFS, S3 or EBS.JavaBigtableApache 2.0
Information Management System IBM IMS aka DB1Key-value. Multi-levelYesYesYes, with HALDBYes, with IMS TMUnknownAssemblerIBM since 1966Proprietary
InfinispanKey-valueYesYesYesYesYesJavaRed HatApache 2.0
MemcachedKey-valueNoNoNoPartial Only supports CAS (Check And Set - or Compare And Swap)NoCSix Apart/Couchbase/Fotolog/FacebookBSD-like permissive copyright by Danga
LevelDBKey-value, BigtableYesNoNoPartial Multiple writes can be combined into single operationNoC++GoogleNew BSD License
LightningDBKey-value, memory-mapped filesYesNoNoYes, ACID, MVCCNoCSymasOpenLDAP Public License
MongoDBDocument (JSON)YesYesfail-overPartial Single document atomicityNoC++10genGNU AGPL v3.0
Neo4jGraph databaseYesYesYesYesNoJavaNeo TechnologyGNU GPL v3.0
OrientDBMulti-Model (Graph-Document-Object-Key/Value)YesYesYesYesYesJavaOrient TechnologiesApache 2.0
RedisKey-valueYes. But last few queries can be lost.YesYesYesNoAnsi-CVMWare, MemcacheBSD
ScyllaDBKey-valueYesYesDistributed and ReplicationNoUnknownC++Apache CassandraAGPL v3
SimpleDB (Amazon.com)Document & Key-valueYesYes (automatic)YesUnknownlikelyErlangAmazon.comAmazon internal only
TarantoolFree-dimensional tuples with primary and secondary keysYes. (Asynchronous)YesYesYesNoC, LuaMemcached, Mnesia, MySQL, Mail.ruBSD
Project NameTypePersistenceReplicationHigh AvailabilityTransactionsRack-locality AwarenessImplementation LanguageInfluences, SponsorsLicense

See also