3 ms·
You misunderstand my point. A replica may of course safely assume it is not involved in a transaction it hasn’t witnessed so long as it has a “complete” log (as
by _benedict 4y ago
You misunderstand my point. A replica may of course safely assume it is not involved in a transaction it hasn’t witnessed so long as it has a “complete” log (as in, the portion involving it).
> that fact is obvious from their absence.
Yes, but absence from what? There must be some message that contains the relevant portion of the log declared by each other shard. If that shard is offline, so it cannot declare its transactions at all, how does the system continue? This absence is one step back from the one you are discussing.
If a shard’s leader is offline, a new leader must be elected before its slot comes around for processing - and until this happens all transactions in later slots must wait, as it might have declared a transaction that interferes with those a later slot would declare.
If no leader can be elected (because a majority of replicas are offline) then the entire log stops, no?
- bitbckt 4y agoIt's true: I've had trouble determining what exactly your point is, as you seem to think you know more about FaunaDB's architecture than you do. You're under the mistaken impression that we have the same data/log architecture as described in the Calvin paper, which requires that every host talk with every other host. That is not true of FaunaDB.
- _benedict 4y agoWhat you describe is a very important distinction from Calvin, as this mechanism for deriving a global log is core to its design. Have you published this new approach in any public venue? If not, we’re now in an unfortunate situation where neither your practical nor theoretical capabilities are public knowledge. > every host talk with every other host Only every shard > you seem to think you know more about FaunaDB's architecture than you do You are perhaps being uncharitable. The only public statements I am aware of about Fauna's capabilities relate to its Calvin heritage. I have only been asking if my understanding is correct regarding both Calvin and its application to Fauna. However, none of the prior issues you responded to were problems with the original Calvin paper either, at least by my reading.
- bitbckt 4y agoLMGTFY: https://fauna.com/blog/consistency-without-clocks-faunadb-transaction-protocol https://fauna.com/blog/consistency-without-clocks-faunadb-tr...
- _benedict 4y agoThanks > for scalability, this insertion process happens in batches, and the log itself is replicated and partitioned This is the link's total exposition on this topic, but it is consistent with my reading of the Calvin paper. If any log partition becomes unavailable, the log in its entirety becomes unavailable until that partition recovers[1]. Anyway, it feels like we’ve wasted enough of each others’ time without making much progress. Might as well leave it there. [1] ... and every log partition must communicate with every replica, hence NxN (or MxN)
- bitbckt 4y ago> What you describe is a very important distinction from Calvin, as this mechanism for deriving a global log is core to its design. The salient aspect of the paper is how it derives the log logically, not how that is mechanically implemented in a real system outside of academia. > However, none of the prior issues you responded to were problems with the original Calvin paper either, at least by my reading. I wasn't clear what exactly you do (or don't) know of the architecture which would lead you to believe this NxN messaging story, as that relates directly to your contention regarding the scalability (or not) of the architecture. That much is clear to me now.