Samba on Scale: Difference between revisions

From SambaWiki
 
(6 intermediate revisions by the same user not shown)
Line 7: Line 7:
! Name !! Type || Consistency Model || Transactions || C Client || Notes
! Name !! Type || Consistency Model || Transactions || C Client || Notes
|-
|-
| [https://wiki.samba.org/index.php/CTDB_and_Clustered_Samba ctdb] || K/V || Volatile DBs: [https://jepsen.io/consistency/models/linearizable Linearizabile minus RVAL]<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] || K/V || Volatile DBs: [https://arxiv.org/pdf/1512.00168.pdf Prefix-Linearizable?]<br />Persistent DBs: [https://jepsen.io/consistency/models/linearizable Strict Serializability] || No<br/>Yes || yes ||
|-
|-
| [https://etcd.io/ etcd] || K/V || [https://etcd.io/docs/v3.3/learning/api_guarantees/ Linearizability] || LWT ("mini") || yes || [https://etcd.io/docs/v3.3/learning/why/ Why?]
| [https://etcd.io/ etcd] || K/V || [https://etcd.io/docs/v3.3/learning/api_guarantees/ Linearizability] || LWT ("mini") || yes || [https://etcd.io/docs/v3.3/learning/why/ Why?]
Line 35: Line 35:
|-
|-
| [https://ignite.apache.org/ Apache Ignite] || ? || ? || ? || ? ||
| [https://ignite.apache.org/ Apache Ignite] || ? || ? || ? || ? ||
|-
| [https://riak.com/ Riak] || K/V || [https://docs.riak.com/riak/kv/2.2.3/learn/concepts/strong-consistency.1.html Linearizability] || No || ? ||
|}
|}


Line 90: Line 92:
* [https://pdos.csail.mit.edu/6.824/index.html MIT Distributed Systems Course]
* [https://pdos.csail.mit.edu/6.824/index.html MIT Distributed Systems Course]
* [http://www.vldb.org/pvldb/vol7/p181-bailis.pdf Highly Available Transactions: Virtues and Limitations]
* [http://www.vldb.org/pvldb/vol7/p181-bailis.pdf Highly Available Transactions: Virtues and Limitations]
* [https://storage.googleapis.com/pub-tools-public-publication-data/pdf/45855.pdf Spanner, TrueTime and The CAP Theorem]
* [https://paxos.systems/ Paxos Made Moderately Complex]

Latest revision as of 13:03, 6 May 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 Type Consistency Model Transactions C Client Notes
ctdb K/V Volatile DBs: Prefix-Linearizable?
Persistent DBs: Strict Serializability
No
Yes
yes
etcd K/V Linearizability LWT ("mini") yes Why?
Ceph Rados K/V Linearizability LWT via Object Operations yes
FoundationDB K/V Strict Serializability yes yes Architecture review
YugabyteDB SQL Single-key Linearizability with LWT yes yes
Apache Cassandra 1-4 CQL Configurable, highest:
Single-key Linearizability with LWT
yes yes
Apache Cassandra 5 CQL Upcoming:
Strict Serializability [1]
yes yes
CockroachDB SQL Serializable+, Strong Partition Serializability LWT yes Jepsen
ScyllaDB CQL Single-key Linearizability with LWT LWT yes Intel DPDK via Seastar
tikv K/V Strong Consistency[2] yes (Percolator based) no (C++)
Apache Pegasus ? ? ? no (C++)
Apache HBase ? ? ? ?
Apache Ignite ? ? ? ?
Riak K/V Linearizability No ?

Rapid Samba dbwrap backend prototyping

A new dbwrap backend called dbwrap_py that calls into Python for the database operations. Available backends:

Strict-serializability, can we get away with something weaker?

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