Versions Compared

Key

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

...

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

  1. Strong transaction isolation
  2. Support for interactive transactions
  3. Avoid tx restarts
  4. Conflict resistance
  5. Read-only (long lived) 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 regionsdistributed clusters support
  9. Unlimited or very large transaction size
  10. Transactional DDL
  11. How many node failures we can tolerate without data lossData loss toleration

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

...

This is the most intuitive way to use transactions. I measure it with 3

...

Conflict resistance

This is a general property of a transactional protocol, defining how many transactions will be restarted in case of serialization conflict, causing a work progress loss. For example, optimistic CC causes more frequent restarts under contention, because a conflict check is delayed until a commit. Avoiding cascade aborts also reduces a number of restarts. I measure it with 1

...

Very useful feature for load-balancing, especially in conjunction with the previous. I measure it with 3

Optimized for common scenarios

...

Geo-distributed clusters are gaining popularity. While they suffer from network latency issues due to light of speed limit, they are the best for high availability. So, the protocol should minimize a number of messages send between regions. I measure it with 2

...

Some databases limit the number and total size of records enlisted in a transaction. This is not convenient for a user. I measure it with 3

...

It's important to know how many node failures we can tolerate until declaring the unavailability due to temporary data loss (or full in case of in-memory deployment). More is better. I measure it with 2

High level

...

interpretation

There are two main things - CC and atomic commitment.

...