Paper Note: GRIT: Consistent Distributed Transactions across Polyglot Microservices with Multiple Databases

FAQ What is a deterministic database? A deterministic database is a system where the outcomes of any database operations are guaranteed to be the same every time they are executed, provided that the operations are started from the same database state. This concept implies a level of reliability and predictability in the behavior of the database system. Deterministic behavior is essential in many contexts, especially in distributed databases, where operations might need to be coordinated across multiple nodes, or in any system where replication, fault tolerance, and consistency are important. If a database operation is deterministic, it means the following: ...

December 8, 2023 · 4 min · KKKZOZ

Paper Note: How to Read a Paper

The Three-Pass Approach Each pass accomplishes specific goals and builds upon the previous pass: The first pass gives you a general idea about the paper. The second pass lets you grasp the paper’s content, but not its details. The third pass helps you understand the paper in depth. The First Pass A quick scan to get a bird’s-eye view of the paper. This pass should take about five to ten minutes and consists of the following steps: ...

December 5, 2023 · 3 min · KKKZOZ

Paper Note: Ad Hoc Transactions in Web Applications: The Good, the Bad, and the Ugly

这篇文章讲道理不应该写这么长的,但讲的东西比较“好玩”,于是就多记录了一些。 FAQ What is an ad hoc transaction? It refers to database operations coordinated by application code. Specifically, developers might explicitly use locking primitives and validation procedures to implement concurrency control amid the application code to coordinate critical database operations. Why do not use database transactions instead? For flexibility or efficiency. 在一般的数据库使用场景下,伴随着数据库的隔离级别提升,性能下降十分严重,为此,应用层临时事务需要做到既利用低隔离级别的数据库防止性能下降,又要实现应用层的事务机制防止数据一致性错误等问题。 What is a false conflict in database systems? In database systems, a false conflict, also known as a phantom conflict, occurs when a transaction appears to conflict with other transactions, but in reality, it does not. This can happen in situations where transactions are using optimistic concurrency control or multi-version concurrency control mechanisms. ...

November 30, 2023 · 9 min · KKKZOZ

Paper Note: Cobra: Making Transactional Key-Value Stores Verifiably Serializable

Analyze 这篇论文关注在如何使用黑盒的方式验证键值存储的的可串行化。 Background 如今许多客户选择使用云数据库提供的键值存储服务,客户程序的正确性受到云数据库的正确性的影响,云数据库的正确性常常通过可串行化来定义,即客户的事务仿佛以串行的方式执行,那么云数据库是否符合了可串行化的约束?这个问题有几个挑战,一方面数据库是黑盒的,我们无法得到数据库的代码,只能分析数据库的行为,即输入和输出,另一方面需要在数据库不断运行中,同步验证其是否符合可串行化的要求,这需要验证手段高效并具有可扩展性。 这篇论文的直觉来源于 SMT solver 以及计算能力的进步,认为其足以自动化的验证可串行化的问题,于是他们基于 SMT solver 提出 Cobra 框架,Cobra 包含一系列技术,做到了高效可扩展的验证可串行化,实验表明 Cobra 能验证实际场景下数据库的可串行化。 Structures Each client request is one of five operations: start, commit, abort (which refer to transactions), and read and write (which refer to keys). History collectors sit between clients and the database, capturing the requests that clients issue and the (possibly wrong) results delivered by the database. A verifier retrieves history fragments from collectors and attempts to verify whether the history is serializable. ...

November 23, 2023 · 2 min · KKKZOZ

Paper Note: Epoxy: ACID Transactions Across Diverse Data Stores

Summary 一句话总结,就是:Re-implement the multi-version concurrency control mechanism of Postgres on shim layers. 因为这篇文章在组会上做了汇报,所以我就直接贴 PPT 了。 Content

November 22, 2023 · 1 min · KKKZOZ