A non-relational database that typically includes the following underlying data structures:
- K/V pair
- Essentially a giant, distributed hash table/associative array
- Consistency models can be in a range from eventual consistency to serializability
- Some are all in-memory and other a combination of in-memory and disk based.
- Example implementations and Projects
- CouchDB
- etcd
- memcached
- Redis
- Riak
- Wide Column
- Wide-column, or an extensible record store, uses tables, rows, and columns in a manner that enables heterogeneity of columns between rows in the same table. Sometimes described as a two dimensional key/value store.
- Example implementations and Projects
- HBase
- Google’s Big Table
- Cassandra
- https://cassandra.apache.org/doc/latest/cassandra/data_modeling/intro.html
- https://www.instaclustr.com/blog/cassandra-data-modeling/
- Graph
- A database that uses a graph structure comprised of nodes and edges to store data.
- Example implementations and Projects
- ArangoDB
- Neo4j
- RedisGraph
- Document Stores
- Also known a semi-structured databases or one that stores and retrieves document based data structures.
- All data for a given object is stored in a separate document that can have a unique structure.
- Example implementations and Projects
- CouchDB
- Elasticsearch
- MongoDB
- RedisJSON
SSTables and LSM (Log Structured Merge Trees)
Sorted Strings Table
- http://distributeddatastore.blogspot.com/2013/08/cassandra-sstable-storage-format.html
- https://yetanotherdevblog.com/lsm/