FR version is available. Content is displayed in original English for accuracy.
Advertisement
Advertisement
⚡ Community Insights
Discussion Sentiment
29% Positive
Analyzed from 489 words in the discussion.
Trending Topics
#ack#write#complexity#data#system#client#move#around#waterbed#don

Discussion (13 Comments)Read Original on HackerNews
https://en.wikipedia.org/wiki/Waterbed_theory
At a certain point in a solution everything you do to optimize (“push”) in one area will cause a negative effect in a different area (“bulge”).
But this is a nice concrete example.
edit: see also ‘No Silver Bullet’ and its essential vs accidental complexity; but don’t disregard Kolmogorov, either, even if it isn’t strictly engineering.
Like pushing clay around into the right shape of the problem while it’s fighting you.
Constraints and tradeoff feels like the simplified textbook model.
You can make writes faster and part of that is by not dealing with schema resolution but you do push the work somewhere else there too.
I guess the same principles apply on many different levels, from when you write to the file system up to how you deal with conflicted data types during data ingestion.
1. Durability extends to the client. Replicated db might ack a write to client, but what if that ack gets lost on the way back over network? If client talks to the DB over simple HTTP, the write might first look like a failure. Can the client retry?
2. Human perception times are biological and don’t change much. But everything in the tech stack has gotten so so much faster since the 80s. Throughput matters, sure, but latency (relatively speaking), is much less of a constraint now than it was.
2) depends, i have a database that farks up a pretty complex distributed system when clients write from another az, latency really can be an issue for some workloads
(This also happens at the SSD level: burst writes can be very fast as data is buffered in the SSD's own RAM, then performance steady-states at the true write speed once that's saturated)