Versions Compared

Key

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

...


Table of Contents

Motivation

If I have seen further it is by standing on ye sholders of Giants

Isaac Newton

One of the major features of AI3, as a distributed database, is the ability to execute multiple table operations as single atomic operation, known as transaction. We need to design modern and robust transaction protocol, taking into account current best practices. Both key-value and SQL APIs database access methods will rely upon it. Comparing to AI2, we aim to support transactional SQL from the beginning and remove limitations like size of transaction.

Definitions

Record (aka Row, Tuple, Relation) -a collection of attribute-value pairs.

Transaction - a sequence of atomic (either all occurs, or nothing occurs) logically related action(s) over the database, which moves it from one consistent state to another.

Isolation - a measure of mutual influence between concurrent transactions.

Durability - a property which guarantees that database state remains unchanged after a transaction is committed despite any failures.

Transaction execution - a sequence of reads and writes belonging to a single transaction.

Concurrency control (CC) - a technique to preserve database consistency in case of interleaved executions.

Serializable execution - a transaction execution, equivalent to some serial execution of interleaved transactions.

Multi-version concurrency control (MVCC) - a family of concurrency control techniques based on writing multiple record versions (copy-on-write). Reduces a blocking between reads and writes.

Recoverable execution - a transaction execution which is not affected by aborting of some other transaction. A transaction reads only committed values to achieve this.

Transactions history - a set of concurrent transaction executions.

Serializable history - a history representing serializable execution.

Interactive transaction - a transaction whose operation set is not known in advance. Can be aborted at any time before commit.

Design Goals

Description

// Provide the design of the solution.

...