Samba on Scale: Difference between revisions
From SambaWiki
Slowfranklin (talk | contribs) |
Slowfranklin (talk | contribs) |
||
Line 5: | Line 5: | ||
{| class="wikitable sortable" |
{| class="wikitable sortable" |
||
|- |
|- |
||
! Name !! Consistency Model || Transactions || C Client || Notes |
! Name !! Consistency Model || Type ||Transactions || C Client || Notes |
||
|- |
|- |
||
| [https://wiki.samba.org/index.php/CTDB_and_Clustered_Samba ctdb] || Volatile DBs: [https://jepsen.io/consistency/models/sequential Basically Sequential Consistency]<br />Persistent DBs: [https://jepsen.io/consistency/models/linearizable Strict Serializability] || No<br/>Yes || yes || |
| [https://wiki.samba.org/index.php/CTDB_and_Clustered_Samba ctdb] || || Volatile DBs: [https://jepsen.io/consistency/models/sequential Basically Sequential Consistency]<br />Persistent DBs: [https://jepsen.io/consistency/models/linearizable Strict Serializability] || No<br/>Yes || yes || |
||
|- |
|- |
||
| [https://etcd.io/ etcd] || [https://etcd.io/docs/v3.3/learning/api_guarantees/ Linearizability] || LWT ("mini") || yes || |
| [https://etcd.io/ etcd] || ||[https://etcd.io/docs/v3.3/learning/api_guarantees/ Linearizability] || LWT ("mini") || yes || |
||
|- |
|- |
||
| [https://docs.ceph.com/en/quincy/rados/api/librados-intro/ Ceph Rados] || [http://www.cs.nthu.edu.tw/~ychung/conference/2016_ICPADS.pdf Linearizability] || LWT via Object Operations || yes || |
| [https://docs.ceph.com/en/quincy/rados/api/librados-intro/ Ceph Rados] || ||[http://www.cs.nthu.edu.tw/~ychung/conference/2016_ICPADS.pdf Linearizability] || LWT via Object Operations || yes || |
||
|- |
|- |
||
| [https://www.yugabyte.com/ YugabyteDB] || [https://youtu.be/w_zYYF3-iSo?t=2001 Single-key Linearizability with LWT] || yes || yes || |
| [https://www.yugabyte.com/ YugabyteDB] || || [https://youtu.be/w_zYYF3-iSo?t=2001 Single-key Linearizability with LWT] || yes || yes || |
||
|- |
|- |
||
Line 19: | Line 19: | ||
|- |
|- |
||
| [https://cassandra.apache.org/_/index.html Apache Cassandra 5] || Upcoming:<br />[https://thenewstack.io/an-apache-cassandra-breakthrough-acid-transactions-at-scale/ Strict Serializability] [https://cwiki.apache.org/confluence/display/CASSANDRA/CEP-15%3A+General+Purpose+Transactions?preview=/188744725/188744736/Accord.pdf]|| yes || [https://docs.datastax.com/en/developer/cpp-driver/2.16/topics/ yes] || |
| [https://cassandra.apache.org/_/index.html Apache Cassandra 5] || || Upcoming:<br />[https://thenewstack.io/an-apache-cassandra-breakthrough-acid-transactions-at-scale/ Strict Serializability] [https://cwiki.apache.org/confluence/display/CASSANDRA/CEP-15%3A+General+Purpose+Transactions?preview=/188744725/188744736/Accord.pdf]|| yes || [https://docs.datastax.com/en/developer/cpp-driver/2.16/topics/ yes] || |
||
|- |
|- |
||
| [https://www.foundationdb.org/ FoundationDB] || [https://jepsen.io/consistency/models/strict-serializable Strict Serializability] || yes || yes || |
| [https://www.foundationdb.org/ FoundationDB] || || [https://jepsen.io/consistency/models/strict-serializable Strict Serializability] || yes || yes || |
||
|- |
|- |
||
| [https://www.cockroachlabs.com/ CockroachDB] || [https://www.cockroachlabs.com/blog/consistency-model/#cockroachdbs-consistency-model-more-than-serializable-less-than-strict-serializability Serializable+], [https://www.cockroachlabs.com/blog/db-consistency-isolation-terminology/ Strong Partition Serializability] || LWT || yes || [https://jepsen.io/analyses/cockroachdb-beta-20160829 1] |
| [https://www.cockroachlabs.com/ CockroachDB] || || [https://www.cockroachlabs.com/blog/consistency-model/#cockroachdbs-consistency-model-more-than-serializable-less-than-strict-serializability Serializable+], [https://www.cockroachlabs.com/blog/db-consistency-isolation-terminology/ Strong Partition Serializability] || LWT || yes || [https://jepsen.io/analyses/cockroachdb-beta-20160829 1] |
||
|- |
|- |
||
| [https://www.scylladb.com/ ScyllaDB] || [https://docs.scylladb.com/stable/using-scylla/lwt.html Single-key Linearizability with LWT] || LWT || yes || |
| [https://www.scylladb.com/ ScyllaDB] || [https://docs.scylladb.com/stable/using-scylla/lwt.html Single-key Linearizability with LWT] || LWT || yes || |
||
|- |
|- |
||
| [https://tikv.org/ tikv] || [https://tikv.org/docs/3.0/reference/faq/ Strong Consistency][https://github.com/tikv/tikv/issues/13956] || yes (Percolator based) || no (C++) || |
| [https://tikv.org/ tikv] || || [https://tikv.org/docs/3.0/reference/faq/ Strong Consistency][https://github.com/tikv/tikv/issues/13956] || yes (Percolator based) || no (C++) || |
||
|- |
|- |
||
| [https://pegasus.apache.org/ Apache Pegasus] || ? || ? || no (C++) || |
| [https://pegasus.apache.org/ Apache Pegasus] || ? || ? || ? || no (C++) || |
||
|- |
|- |
||
| [https://hbase.apache.org/ Apache HBase] || ? || ? || ? || |
| [https://hbase.apache.org/ Apache HBase] || ? || ? || ? || ? || |
||
|- |
|- |
||
| [https://ignite.apache.org/ Apache Ignite] || ? || ? || ? || |
| [https://ignite.apache.org/ Apache Ignite] || ? || ? || ? || ? || |
||
|} |
|} |
||
Revision as of 17:47, 8 March 2023
List of scalable Key/Value Stores
For an overview of Consistency Models see Jepsen or Wikipedia. Note: LWT are defined as multiple operations on a single key.
Name | Consistency Model | Type | Transactions | C Client | Notes |
---|---|---|---|---|---|
ctdb | Volatile DBs: Basically Sequential Consistency Persistent DBs: Strict Serializability |
No Yes |
yes | ||
etcd | Linearizability | LWT ("mini") | yes | ||
Ceph Rados | Linearizability | LWT via Object Operations | yes | ||
YugabyteDB | Single-key Linearizability with LWT | yes | yes | ||
Apache Cassandra 1-4 | Configurable, highest: Single-key Linearizability with LWT |
yes | yes | ||
Apache Cassandra 5 | Upcoming: Strict Serializability [1] |
yes | yes | ||
FoundationDB | Strict Serializability | yes | yes | ||
CockroachDB | Serializable+, Strong Partition Serializability | LWT | yes | 1 | |
ScyllaDB | Single-key Linearizability with LWT | LWT | yes | ||
tikv | Strong Consistency[2] | yes (Percolator based) | no (C++) | ||
Apache Pegasus | ? | ? | ? | no (C++) | |
Apache HBase | ? | ? | ? | ? | |
Apache Ignite | ? | ? | ? | ? |
Rapid Samba dbwrap backend prototyping
A new dbwrap backend called dbwrap_py that calls into Python for the database operations. Available backends:
List of Opensource Clustered Filesystems
Name | Built on-top of Object Storage | Notes |
---|---|---|
Ceph | yes | |
GlusterFS | no | |
JuiceFS | yes | |
MooseFS | no | |
ObjectiveFS | yes | |
Lustre | no | |
BeegFS | no |
Links
- A Comparison of Scalable Database Isolation Levels
- Correctness Anomalies Under Serializable Isolation
- Comparison of a few SQL and no-SQL DBs
- Summary of Paxos, Multipaxos, Raft, Epaxos and ACCORD
- Nice Summary of Consistency Models and Issues in CockroachDB
- FUSE Filesystem on-top of FoundationDB
- YCSB
- Benchant YCSB Ranking
- How FoundationDB works
- Fast General Purpose Transactions in Apache Cassandra
- Comparing Distributed Transaction Architectures for the Cloud Era
- MIT Distributed Systems Course