Posts

Showing posts with the label distributed transactions

FoundationDB Record Layer: A Multi-Tenant Structured Datastore

Image
This is a 2019 arxiv report . Back in 2019, when the report was out, I wrote a review about it, but did not publish it then because I felt I didn't have enough information on FoundationDB yet. With FoundationDB Sigmod 2021 paper out recently , I am now releasing that earlier write up. I will follow up on this soon with a review of the Sigmod21 paper on FoundationDB. Introduction FoundationDB made a bold design choice of ACID key-value store. They had released a transaction manifesto: Everyone needs transactions Transactions make concurrency simple Transactions enable abstraction Transactions enable efficient data representations Transactions enable flexibility Transactions are not as expensive as you think Transactions are the future of NoSQL FoundationDB, available as opensource , consists of the transactional minimalist storage engine as the base layer, and other layers are developed on top of the base layer to extend functionality. The record layer, that the report describes, is...

Consolidating concurrency control and consensus for commits under conflicts

Image
This paper is by Shuai Mu, Lamont Nelson, Wyatt Lloyd, and Jinyang Li and it appeared in OSDI 2016. This paper presents Janus, another two-in-one shampoo & conditioner solution. Why deal with providing a solution for replication and another solution layered on top for transaction ordering when you can do both together in less time with a unified solution?  TAPIR had investigated this question first, and Janus does a followup. Instead of using the general transaction model considered in TAPIR, Janus uses one shot transactions, where each transaction contains multiple pieces and each piece has one read/write operation on a single key.  This reduced power transaction model allows Janus to implement an abort-free transaction ordering capability. A novel insight in Janus is that it notices it is possible to consolidate replication ordering and transaction ordering using the same setup. To order the transactions and replication alike, Janus takes a dependency graph tracking ap...