Benedict Elliott Smith 🇺🇦

1K posts

Benedict Elliott Smith 🇺🇦

Benedict Elliott Smith 🇺🇦

@_belliottsmith

Apache Cassandra @apple

Katılım Mart 2014
1.1K Takip Edilen205 Takipçiler
Benedict Elliott Smith 🇺🇦
Benedict Elliott Smith 🇺🇦@_belliottsmith·
@AlexMillerDB @penberg Leader-based protocols probably have an easier time enforcing a nice property here once a command reaches the leader, but I imagine that quorum-like optimisations for eg performing reads from followers *probably* fall prey to these same issues.
English
1
0
0
72
Pekka Enberg
Pekka Enberg@penberg·
With a single-writer and multiple readers, can you guarantee linearizability with eventual consistent system such as Apache Cassandra or Scylla using read-write quorum? betterprogramming.pub/cassandra-cons… suggests yes, but I am having hard time convincing myself.
English
7
5
25
6.5K
Benedict Elliott Smith 🇺🇦
Benedict Elliott Smith 🇺🇦@_belliottsmith·
@AlexMillerDB @penberg Skimmed paper. It doesn’t seem their definition is much better than the best I’ve come up with; it would be nice to have a better formalisation than “its outcome is decided soon, preferably before the process crashes”. I like the idea of “strict strict serializablility” though…
English
0
0
1
42
Benedict Elliott Smith 🇺🇦
Benedict Elliott Smith 🇺🇦@_belliottsmith·
@AlexMillerDB @penberg It’s worth noting that we have partially addressed this in Accord - if a transaction is recovered and known not to have been agreed then we abort it. If the “following” operation does not witness it then it is aborted, for instance, however “following” is ambiguous…
English
0
0
0
34
Benedict Elliott Smith 🇺🇦
Benedict Elliott Smith 🇺🇦@_belliottsmith·
@AlexMillerDB @penberg Indeed, leaderless consensus protocols are worse as a write can submarine forever, whereas here the next write will resolve the situation. Personally I think this is a flaw in the definition of linearizability, but I’m not sure the best way to formalise an improvement.
English
1
0
0
96
Benedict Elliott Smith 🇺🇦
Benedict Elliott Smith 🇺🇦@_belliottsmith·
@AlexMillerDB @penberg I think timeout is essentially an operation that has no defined end, the server indicates the operation’s status is unknown. This is also true of most leaderless consensus protocols, which are considered linearizable.
English
1
0
0
90
Joran Dirk Greef
Joran Dirk Greef@jorandirkgreef·
Is Deterministic Simulation Testing “mainstream”? (Would ❤️ it to be!) A deep dive discussion with @DominikTornow recorded last week. x.com/dominiktornow/…
Joran Dirk Greef@jorandirkgreef

To be clear, Deterministic Simulation Testing is more than simply fault injection or chaos engineering (common misconception). To do DST, the “system under test” itself must also be written 100% deterministically. Very few DBMS systems (I know of only 3!) actually do DST. And that’s why @AntithesisHQ wrote literally a deterministic computer (again, not simply fault injection) to run non-deterministic binaries, deterministically. Even with our own DST as “internal audit function”, we have been using Antithesis as our “external audit function” at @TigerBeetleDB since 2022 (customer no. 13). Antithesis’ technology is a sea change for anyone coming from chaos engineering or non-deterministic simulation testing—it’s that different.

English
1
6
34
3.2K
Benedict Elliott Smith 🇺🇦
Benedict Elliott Smith 🇺🇦@_belliottsmith·
@eatonphil The paper doesn’t take a position on this; a coordinator simply does not need to be a replica, which is an important property for protocol analysis. But in practice in Cassandra coordinators are replicas. I believe DataStax intend to disaggregate coordinators from replicas.
English
1
0
2
219
Phil Eaton
Phil Eaton@eatonphil·
One question I have about Accord is on the Coordinators. Are they separate from replicas? Sometimes it is made to sound like that. Does that mean you're running some number of replicas and some number of coordinators?
Phil Eaton tweet media
English
1
0
0
1K
Phil Eaton
Phil Eaton@eatonphil·
Good time as any to revisit Cassandra's new leaderless consensus protocol, Accord, aimed at replacing Paxos inside of Cassandra. Many interesting critiques in here. Introduced last year; brought back to my attention courtesy of Sam Lightfoot. github.com/eatonphil/acco…
Phil Eaton tweet media
English
7
38
222
25.5K
Benedict Elliott Smith 🇺🇦
Benedict Elliott Smith 🇺🇦@_belliottsmith·
@eatonphil EPaxos has particularly poor properties under contention, as the exact same fast-path quorum must witness every contending transaction in the exact same order for the fast-path to be taken.
English
0
0
2
36
Benedict Elliott Smith 🇺🇦
Benedict Elliott Smith 🇺🇦@_belliottsmith·
@eatonphil This section actually suggests that existing leaderless protocols perform poorly under contention, not that leader-based protocols do.
English
1
0
1
35
Joran Dirk Greef
Joran Dirk Greef@jorandirkgreef·
@_belliottsmith @eatonphil Great question. Do you know anyone using 128-bit CRCs [1]? Whereas Blake3 has become so fast, with the benefit of also being cryptographic—which we leverage for TB’s hash chain verification of the WAL. CRCs wouldn’t work for that. [1] cf. github.com/rurban/smhasher
English
1
0
1
90
Phil Eaton
Phil Eaton@eatonphil·
Interesting discussion in Slack today about the effectiveness of Ethernet/TCP/IP checksums. They exist, but the guarantees they give are not particularly great! No alternative but to do cryptographic checksums at the application layer (above TCP/IP). noahdavids.org/self_published…
Phil Eaton tweet mediaPhil Eaton tweet media
English
3
3
33
3.9K
Benedict Elliott Smith 🇺🇦
Benedict Elliott Smith 🇺🇦@_belliottsmith·
@AlexMillerDB @maximecaron @penberg We’d absolutely be open to contributions providing baseline implementations of these for use cases that want to just plug it in. The library itself today only comes with non-persistent implementations of everything, or in the case of cluster config only toy ones for testing
English
1
0
0
48
Phil Eaton
Phil Eaton@eatonphil·
Cuz it came up in Discord recently and it's hard to search while avoiding blockchain. How I think about consensus: Leader-based: * Paxos/Raft * Viewstamped Replication Leaderless (or decentralized or peer-to-peer): * CRDT * Operational Transform * CHORD * IPFS Sound right?
English
5
5
41
0
Benedict Elliott Smith 🇺🇦
Benedict Elliott Smith 🇺🇦@_belliottsmith·
@cetico @_Felipe Most of the time your transaction still completes successfully in one round-trip. If there were a competing transaction on the same key that the reorder buffer failed to order correctly though, it just takes one additional round trip to complete.
English
0
0
0
27
Felipe O. Carvalho
Felipe O. Carvalho@_Felipe·
How big of a breaktrough is the new consensus protocol that Cassandra is adopting — Accord? It seems like the best of both worlds in a way that sounds too good to be true. I haven't read the paper yet. thenewstack.io/an-apache-cass…
English
0
0
0
334