Distributed Transactions for Google App Engine: Optimistic Distributed Transactions built upon Local Multi-Version Concurrency Control

Massively scalable web applications encounter a fundamental tension in computing between "performance" and "correctness": performance is often addressed by using a large and therefore distributed machine where programs are multi-threaded and interruptible, whereas correctness requires data invariants to be maintained with certainty. A solution to this problem is "transactions" [Gray-Reuter]. Some distributed systems such as Google App Engine [http://code.google.com/appengine/docs/] provide transaction semantics but only for functions that access one of a set of predefined local regions of the database: a "Local Transaction" (LT) [http://code.google.com/appengine/docs/python/datastore/transactions.html]. To address this problem we give a "Distributed Transaction" (DT) algorithm which provides transaction semantics for functions that operate on any set of objects distributed across the machine. Our algorithm is in an "optimistic" [http://en.wikipedia.org/wiki/Optimistic_concurrency_control] style. We assume Sequential [Time-]Consistency [http://en.wikipedia.org/wiki/Sequential_consistency] for Local Transactions.

READ FULL TEXT
research
08/02/2021

Skeena: Efficient and Consistent Cross-Engine Transactions

With the growing DRAM capacity and core count in modern servers, databas...
research
07/20/2023

TransNFV: Integrating Transactional Semantics for Efficient State Management in Virtual Network Functions

Managing shared mutable states in high concurrency state access operatio...
research
11/29/2021

Verifying Transactional Consistency of MongoDB

MongoDB is a popular general-purpose, document-oriented, distributed NoS...
research
04/17/2018

Modelling Bitcoin in Agda

We present two models of the block chain of Bitcoin in the interactive t...
research
12/29/2022

Transactions Make Debugging Easy

We propose TROD, a novel transaction-oriented framework for debugging mo...
research
08/15/2022

Stable Scheduling in Transactional Memory

We study computer systems with transactions executed on a set of shared ...
research
07/19/2020

Lazy State Determination: More concurrency for contending linearizable transactions

The concurrency control algorithms in transactional systems limits concu...

Please sign up or login with your details

Forgot password? Click here to reset