True serializability imposes system constraints


Last Updated on Mar 04, 2021

Serializable Isolation is the only way to prevent all write-related race conditions, but is rarely used in applications or supported by databases because of severe performance issues. Most Serializable Isolation implementations do not perform or scale well.

Even when a database supports it, the application has to be built with some constraints in mind:

  • All transactions must be small and fast. This is especially true in databases that support serial execution of transactions.
  • The active dataset should entirely fit into memory to avoid network I/O and for fast execution.
  • A single CPU should be able to handle all writes of the system. If this is not possible, the data model should lend itself to be partitioned so that multiple CPUs across machines will become available for processing transactions.
  • Rare cross-partition transactions can still be accommodated, but with severe performance issues.

© 2022 Ambitious Systems. All Rights Reserved.