Testing Distributed Database Isolation through Anti-Pattern Detection

Master Thesis (2023)
Author(s)

Jingxuan Qiu (TU Delft - Electrical Engineering, Mathematics and Computer Science)

Contributor(s)

Burcu Kulahcioglu Ozkan – Mentor (TU Delft - Software Engineering)

Stefania Dumbrava – Mentor (ENSIIE)

Arie Van Deursen – Mentor (TU Delft - Software Technology)

A. Katsifodimos – Coach (TU Delft - Web Information Systems)

Faculty
Electrical Engineering, Mathematics and Computer Science
Copyright
© 2023 Jingxuan Qiu
More Info
expand_more
Publication Year
2023
Language
English
Copyright
© 2023 Jingxuan Qiu
Graduation Date
23-06-2023
Awarding Institution
Delft University of Technology
Programme
['Computer Science']
Faculty
Electrical Engineering, Mathematics and Computer Science
Reuse Rights

Other than for strictly personal use, it is not permitted to download, forward or distribute the text or part of it, without the consent of the author(s) and/or copyright holder(s), unless the work is under an open content license such as Creative Commons.

Abstract

Distributed databases often struggle to fulfill their transactional isolation guarantees due to sharding and replication. As a result, the problem of checking isolation levels is consistently receiving attention from academia and industries. Transactional dependency graphs form a useful abstraction to analyze the transactions’ dependencies and check for isolation anomalies using graph-based anti-patterns. Meanwhile, graph databases, known for their efficiency and convenience in graph representations and analytics, become promising for implementing isolation level checkers. In this work, we present a novel isolation level checker in the distributed graph database, ArangoDB. We collect execution histories from ArangoDB, operating in both single-machine and cluster modes. Also, we transform the execution histories to a dependency graph in another ArangoDB server. We then utilize customized AQL queries to detect anti-patterns on the graph. Our evaluation demonstrates the effectiveness and scalability of our checker, as well as its efficiency compared to existing isolation checkers. Also, we have found three underlying factors that are significantly correlated with the runtime of the checker: history length (the number of committed transactions), density (the density of the dependency graph), and contributing traversals (the number of traversals spent on cycles). The thesis artifact is online at https://github.com/jasonqiu98/GRAIL-artifact/tree/thesis.

Files

License info not available