Ordering vs. parallelism
Global order costs serialization; parallelism costs order.
Where you meet it: key partitioning, single-writer designs, stream keyBy, non-associative float aggregation, sequential consistency.
What it is
In one line, the topic is ordering versus parallelism: a global order costs serialization, and parallelism costs order.
From Transactions & Concurrency Control › Why concurrency is different
Push versus pull (who decides when data moves) and ordering versus parallelism are the two that make transport decisions hard to reverse. Once you have partitioned for parallelism, you cannot get global order back without sending everything through one point again.
From Data Movement › What data movement is
Ordering structures answer "what is next?". That question is relational: the answer for one element depends on its relationship to every other element. A global property cannot be established without global communication, directly or in steps. This is why the whole group sits on the tension order versus parallelism, and why it behaves so differently from the lookup group.
From Core Data Structures › Order is relational
Where it appears
In 12 mechanisms. Each says what the mechanism is about, then how this trade-off shows up there, in its own words.
- Data Movement
How do records cross between two systems that have independent rates, independent availability and independent lifetimes, and what are you willing to lose when the assumption underneath the crossing breaks?
Once you have partitioned for parallelism, you cannot get global order back without sending everything through one point again.
Read it inWhat changed: from one machine to twoWhich of N destinations gets this record?Priority routing and multiplexingQueue versus log: where progress state lives
- Persistence & Durability
When a system says "yes, your data is safe", what exactly has it promised, and what did it have to do to keep that promise?
The general lesson: state the constraint you actually need, not a global ordering that implies it.
Read it inFsync, flush barriers and O_DSYNC
- Core Data Structures
How do we choose a data structure when the real cost is set by the hardware, not by Big-O?
Full order is almost always more than the question requires, and every structure in this group is a way of buying exactly the fraction you need.
Read it inWhat comes next is a relational question
- Encoding, Serialization & Compression
What do we turn our values into when we turn them into bytes, and what does that choice cost?
This is a price paid on purpose, and it has a receipt: ZSTD's multi-threaded mode measurably loses ratio at frame boundaries, and the loss grows with the thread count.
Read it inBlock size, level and trained dictionariesBit packing, front coding, nulls and floatsVarints and order-preserving encoding
- Indexing
When does a separate "where is it?" structure pay for itself, and what does it cost to keep it true?
Data has exactly one physical arrangement.
Read it inWhy indexes exist and when they win
- Transactions & Concurrency Control
What happens when many users change the same data at the same time, and how do we keep the result correct?
Partitioning buys parallelism by declaring that cross-partition order does not matter.
Read it inDeterministic and partition-serial executionWhy concurrency is a different kind of problem
- Query Processing
Why can one question be answered by plans whose costs differ by a factor of ten thousand, and what does each operator force the engine to do?
The lesson: exactness and determinism are different properties.
- Distributed Systems Coordination
Who is allowed to decide, and how does everyone else learn the decision without asking?
> Partitioning divides work and replication multiplies it; the hard problems all live in the map that connects them, because that map is mutable state that every participant caches and no participant can be forced to refresh.
Read it inState has massRead replicas and follower reads: the cost ladder
- Scheduling & Workload Management
Which work runs now, which work waits, and who pays for the waiting?
HOL blocking reappears at every layer that imposes a total order on independent work.
- Change Data Capture & Incremental Processing
What does it cost to know what changed, and is that cheaper than not needing to know?
So transactional atomicity does not survive key-partitioned transport.
Read it inOrdering and transactional grouping
- Orchestration & Workflow
How do you make unreliable, unobservable, irreversible side effects behave like a pure function of a time interval?
This is the trade of ordering versus parallelism with an unusually exact price tag: the cost of ordering is exactly the sequential backfill duration, and you can compute it before you decide.
Read it inBackfills, catchup and versioningPools, max active runs and depends_on_past
- Specialized Processing Models
What do you build when a query predicate cannot be reduced to a range over an ordered key?
Graph work is the case where the access pattern is discovered rather than declared, so you cannot batch by address.
Read it inThe access pattern is discovered, not declared; CSRTraversal and degree skew
Related
Made on the same pages most often.