Skip to content
About
Main content

What concurrency-friendly structures forbid

Which guarantees can no concurrent design give, and in what order should the escapes be tried?

What this group forbids

  • Shared mutable state and linear scalability cannot coexist. The coherency term is quadratic, and no implementation removes it. Only designs that avoid sharing do.
  • You cannot free memory in a structure without a reclamation protocol.
  • You cannot bound tail with lock-freedom. Only wait-freedom does that.
  • You cannot make readers free without either immutability or a .

The escapes, in order of preference

EscapeWhat it costs
Partition to a single writerPartitionability; skew is the ceiling
ImmutabilitySpace and a
Optimistic concurrencyRetries, at a rate of 1/(1 − ρ)
Scalability; frequently the right answer for structures that are not hot