Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Cascading abort - a situation in which the abort of one transaction causes the abort of another dependent transaction to avoid inconsistency.

Design Goals

...

To define key points of the design, let's look at some features, which can be provided by a product, and value them from 1 to 3, where 3 means maximum importance for product success.

  1. Strong transaction isolation
  2. Avoid cascading aborts
  3. Support for interactive transactions
  4. Avoid tx restarts
  5. Long lived lightweight read-only transactions
  6. Consistent replica reads
  7. Optimized for fast path execution
  8. Geo-distribution friendly when replicas are in different regions
  9. Unlimited or very large transaction size
  10. Transactional DDL
  11. How many node failures we can tolerate without data loss

Let's take a look at each feature in detail and give it a value.

Strong transaction isolation - 2

Avoid cascading aborts - 1

Support for interactive transactions - 3

Avoid tx restarts (serialization conflicts, unstable topology) - 1

Long lived lightweight read-only transactions (enough to build some complex report - several minutes duration maybe - good for OLAP cases - guaranteed to commit on a stable topology) - 3

Consistent replica reads - 3

Optimized for fast path execution (short transactions, low contention, whatever ?) - 1

Geo-distribution friendly when replicas are in different regions - reduce a number of cross region IO - 2

Unlimited or very large transaction size - 3

Transactional DDL - 1

How many node failures we can tolerate without data loss - 1

Description

// Provide the design of the solution.

...