Compare commits
5 Commits
6b99b85f9e
...
946694b8a5
Author | SHA1 | Date | |
---|---|---|---|
946694b8a5 | |||
7345eceab3 | |||
9b50393e15 | |||
6c8655798a | |||
86e99e4664 |
5
.vscode/settings.json
vendored
Normal file
5
.vscode/settings.json
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"files.associations": {
|
||||
"*.tikz": "latex"
|
||||
}
|
||||
}
|
@@ -2,11 +2,8 @@
|
||||
|
||||
all: paper.pdf
|
||||
|
||||
paper.pdf: bibliography.bib paper.tex
|
||||
pdflatex paper
|
||||
biber paper
|
||||
pdflatex paper
|
||||
pdflatex paper
|
||||
paper.pdf: paper.tex $(wildcard *.tikz)
|
||||
latexmk -pdf
|
||||
|
||||
clean:
|
||||
xargs -I '{}' bash -c "rm -f {}" < .gitignore
|
||||
|
@@ -2,6 +2,7 @@
|
||||
|
||||
\usepackage{hyperref}
|
||||
\usepackage[utf8]{inputenc}
|
||||
\usepackage[angle=90, hpos=\leftmargin]{draftwatermark}
|
||||
|
||||
\title{ARTful Conflict Checking for FoundationDB}
|
||||
\author{Andrew Noyes \thanks{\href{mailto:andrew@weaselab.dev}{andrew@weaselab.dev}}}
|
||||
@@ -14,10 +15,10 @@
|
||||
|
||||
\maketitle
|
||||
|
||||
\section{Abstract}
|
||||
\section*{Abstract}
|
||||
|
||||
FoundationDB \cite{DBLP:conf/sigmod/ZhouXSNMTABSLRD21} provides serializability using a specialized data structure called \textit{lastCommit} \footnote{See Algorithm 1 referenced in \cite{DBLP:conf/sigmod/ZhouXSNMTABSLRD21}} to implement optimistic concurrency control \cite{kung1981optimistic}.
|
||||
This data structure encodes the write sets for recent transactions as a map from key ranges (represented as bitwise-lexicographically-ordered half-open intervals or singleton keys) to most recent write version, represented as a 64-bit integer.
|
||||
This data structure encodes the write sets for recent transactions as a map from key ranges (represented as bitwise-lexicographically-ordered half-open intervals) to most recent write version, represented as a 64-bit integer.
|
||||
FoundationDB implements \textit{lastCommit} as a version-augmented probabilistic skip list \cite{10.1145/78973.78977}.
|
||||
In this paper, we propose an alternative implementation of \textit{lastCommit} as a version-augmented Adaptive Radix Tree (ART) \cite{DBLP:conf/icde/LeisK013}, and evaluate its performance.
|
||||
|
||||
@@ -51,7 +52,7 @@ It's possible to trade off the backtracking for the increased overhead of mainta
|
||||
|
||||
Our options also have various tradeoffs inherited from their un-augmented versions such as different worst-case and expected bounds on the length of search paths and the number of rotations performed upon insert.
|
||||
ART has been shown \cite{DBLP:conf/icde/LeisK013} to offer superior performance to comparison-based data structures on modern hardware, which is on its own a compelling reason to consider it.
|
||||
The Height Optimized Trie (HOT) \cite{binna2018hot} outperforms ART, but has a few practical disadvantages \footnote{HOT has more implementation complexity than the already-daunting ART. Additionally it requires AVX2 instructions and involves rebalancing operations during insertion. Even so, it's likely that a HOT-based \emph{lastCommit} version would be superior.} and will not be considered in this paper.
|
||||
The Height Optimized Trie (HOT) \cite{binna2018hot} outperforms ART, but has a few practical disadvantages \footnote{Implementing HOT is more complex than the already-daunting ART, and requires AVX2 and BMI2 instructions. HOT also involves rebalancing operations during insertion. Even so, it's likely that a HOT-based \emph{lastCommit} implementation would be superior.} and will not be considered in this paper.
|
||||
|
||||
\printbibliography
|
||||
|
||||
|
Reference in New Issue
Block a user