Félix GV

Félix GV

@felixgv.ninja

Mostly here to talk about data infra. Opinions will eventually be your own.

433 followers311 following604 posts

🧵 How do Quorums Work? I’m continuing to read through the 2nd edition of the excellent DDIA book, as I prepare for teaching a dist db class next semester. I highly recommend the book for all software engineers.

View full thread

The book says that the quorum condition is met (w + r > n) but that does not seem true, at least not at the point in time where w = 1 and r = 2. The quorum is not met *yet*…

🧵 How do Quorums Work? I’m continuing to read through the 2nd edition of the excellent DDIA book, as I prepare for teaching a dist db class next semester. I highly recommend the book for all software engineers.

View full thread

If the fastest 2 replicas return inconsistent results, then the client must wait on a response from the 3rd replica to serve as a tie breaker. If 2 out of 3 results are the old value, then that is what would be returned to the client.

In effect, the example seems to show a phenomenon akin to "read uncommited" isolation, where the first read request sees a write that is not complete yet.

🧵 How do Quorums Work? I’m continuing to read through the 2nd edition of the excellent DDIA book, as I prepare for teaching a dist db class next semester. I highly recommend the book for all software engineers.

View full thread

My understanding of quorums is that reads are sent in parallel to all replicas, and that in the common case there is a "fast path" scenario where the result can be returned after waiting only for the fastest 2 of 3 replicas.

But that fast path, IIUC, is predicated on the fastest 2 replicas returning a consistent result (which is not the case in the example’s first request).

🧵 How do Quorums Work? I’m continuing to read through the 2nd edition of the excellent DDIA book, as I prepare for teaching a dist db class next semester. I highly recommend the book for all software engineers.

View full thread

The book then concludes that, because of this, the first read request returned the new value while the second read request returned the old value—a breach of Linearizability.

But is this really how systems which claim to provide a quorum work? And even if such implementations exist, is that compliant with the definition of how quorums are supposed to work?

🧵 How do Quorums Work? I’m continuing to read through the 2nd edition of the excellent DDIA book, as I prepare for teaching a dist db class next semester. I highly recommend the book for all software engineers.

While going through the Linearizability portion of chapter 10, I saw a description of quorums that left me perplexed. The book describes a race condition where a write to 3 replicas has reached only 1 of them, and meanwhile two seperate read requests touch 2 replicas each.

One of the read requests sees the new value from the updated replica, and the old value from another. The other request reads from the 2 stale replicas and therefore sees only the old value.

View full thread

The key question is: what is applying the writes? 1. A Kafka consumer? (definitely async, even if nearline) 2. Some incremental batch ingestion job? (Periodic / async, unless the analyst can wait on that job in a blocking fashion?) 3. Some REST/gRPC endpoint? That part I’m not sure if it exists 🤔

The DDIA v2 book makes it sound like this by saying: "From an analyst's point of view, data that has been modified with inserts, updates, or deletes is immediately reflected in subsequent queries. […] Apache Pinot, […] and many other databases do this."

I think the #Pinot storage engine does something similar where it buffers rows in-memory and later flush them to persistent storage in column-oriented format, BUT… that does not mean inserts are reflected in queries from the analyst’s point of view. Writes to Pinot are async, IIRC.

So… @dexcom.com tells me in the future tense that they stopped manufacturing my stuff 7 days ago… and to bring it up at my next appointment… that’s the intersection of the cavalierness of tech with the pace of healthcare. Move slow and break things. Just great.

"We've also taken a few things away —for example, as Map Reduce is now largely obsolete, we have rewritten the batch processing chapter accordingly, and we sadly decided to drop the Tolkien-style maps." - DDIA 2nd edition Nooooo… why? Not my precious maps 😅🥲😢😭

Félix GV reposted

Don’t Sell Yourself Short With New Year Resolutions Last night, I was thinking of a new year’s resolution where I would do one more push up each day, until I reached 365 in a day at the end of the year. Then I thought: why wait? I can already do 365 push ups in a day.

It’s not that hard. I just need to grease the groove and take the time to do it. So today I did 24 sets of 10 reps before lunch, and another 12 sets of 10 before dinner, with 10m breaks after each. And I topped it off with 3 sets of 2 reps each with 27 kg (60 lbs) on my back.

And there we go, 366 push ups in a day, on January 2nd. What will the rest of the year have in store? We’ll see, but I ain’t waiting around all year to do it, when a single day suffices. And neither should you! Which next year goal can you complete tomorrow?

Félix GV reposted

Replying to @meri.garden

Interesting post, though I’m slightly disappointed in this paragraph which (to me at least) is the crux of the issue. On one hand, the approach of the "linear feed" in which a central authority decides the order and imposes it on all participants is the classical one, so it makes sense to copy it.

Which Slop is Right? I asked two AIs exactly the same prompt: Does postgres guarantee atomicity of a transaction at all isolation levels? 🤔

And I got these two answers: 1. Yes, PostgreSQL guarantees the atomicity of a transaction at all isolation levels. 2. PostgreSQL does not guarantee atomicity of a transaction at all isolation levels. Which one is wrong 🤷‍♂️ ?

I think we may be at a fork in the road… If we keep going down the path of hyperscalers, fundamentally, AI will lead to more inequalities. If we are smart/lucky enough to compound several more Deepseek-style leaps forward, we may get AIs efficient enough for on-device and democratization.

Pandora's box is open. We're not going back to a pre-AI world, even if some of the big AI companies collapse. There are tons of great open source AI models now. So I hope over time more of you join me in using these tools against the powerful rather than fruitlessly hoping they will vanish.

Concerning.

Anton Barbashin@abarbashin.bsky.social

The so-called "LLM Grooming" is a tool that Russia, China, Iran, North Korea and others use but Russia is doing it on the grandest scale. Various tests indicate that depending on topic, from 5% to 38% of AI generated response you get may have information that comes from 2/5