Exploring the design of a distributed read-write lock for PolarDB-X, this blog delves into the complexities and considerations of ensuring synchronized DDL execution in a distributed database environment.
The article discusses the necessity of ACID properties for database DDL operations, challenges in traditional systems, and how PolarDB-X implements transactional DDL, ensuring atomicity, consistency, isolation, and durability to enhance reliability and operational flexibility.
Database schema evolution (DDL) poses unique challenges in ensuring concurrency with transactions while maintaining ACID properties. Traditional approaches use metadata locks (MDLs) to serialize DDL and DML/DQL, but this can severely impact performance. This blog discusses the issues and explores solutions like multi-version concurrency control to enable highly concurrent non-blocking schema changes.
This blog discusses the fatal problem of distributed metadata lock (MDL) deadlocks that can occur when distributed transactions and database definition language (DDL) statements execute concurrently across multiple database nodes. It explains the causes and presents a solution for detecting these distributed MDL deadlocks.
This blog post explores the fascinating interplay between Hybrid Logical Clocks (HLC) and Multi-Version Concurrency Control (MVCC) in enabling distributed transactions in CockroachDB. It covers how HLC addresses causality issues and how MVCC handles concurrency conflicts in a distributed setting.
This document analyzes the distributed transaction protocol used in Percolator, a system for large-scale incremental processing deployed by Google. Percolator extends Bigtable to provide multi-row ACID transactions through a standard two-phase commit protocol.
In this post, I analyze several key design aspects of the Google File System presented in the original paper. I discuss the assumptions GFS made regarding workload characteristics and how that informed choices.