layout: true
--- class: title-slide, center, middle
--- # Using .darkblue[Hardware Accelerator] for optimizing Transaction Schedules .reference[T. Bittner, S. Groppe, Avoiding Blocking by Scheduling Transactions using Quantum Annealing, IDEAS 2020]
--- # .small-font32.bold[.darkblue[2 Phase Locking (2PL)] versus .darkblue[Strict Conservative 2PL]] .reference[T. Bittner, S. Groppe, Avoiding Blocking by Scheduling Transactions using Quantum Annealing, IDEAS 2020]
.more-condensed[ - .darkblue[required locks] to be determined by - .darkblue[static analysis] of transaction, .darkgray[or if static analysis is not possible:] - an .darkblue[additional phase at runtime] before transaction processing -
A. Thomson et al., "Calvin: Fast distributed transactions for partitioned database systems", SIGMOD 2012.
] --- # .em[Optimizing] .darkblue[Transaction Schedules] .reference[$^*$ M.R. Garey, D.S. Johnson and R. Sethi, The Complexity of Flowshop and Jobshop Scheduling, 1(2):117-129, 1976] .more-more-condensed[ - Variant of job shop schedule problem (JSSP): - Multi-Core CPU - Process whole
job (here transaction) on core X
- .darkblue[Schedule: $\forall$ cores: Sequence of jobs] to be processed - What is the .darkblue[optimal schedule] for minimal overall processing time? - .darkgray[Additionally to JSSP:]
.darkblue[Blocking transactions not] to be processed .darkblue[in parallel] - Example:
Black: Blocking transactions
Transaction schedule
.more-more-condensed[ - JSSP is among the .darkblue[hardest combinatorial optimizing problems]$^*$ - $\Rightarrow$ .darkblue[Hardware accelerating] the optimization of transaction schedules ]
] --- # Architectures of .darkblue[Emergent Hardware] .reference[Extended from
C. Plessl, Accelerating Scientific Computing with Massively Parallel Computer Architectures, IMPRS Winter School, Wroclaw, 2012
]
--- #
.darkblue[Quantum Computer] .condensed[
use of .darkblue[quantum-mechanical phenomena such as superposition and entanglement] to perform computation
Different types of quantum computer, e.g.
.darkblue[Universal Quantum Computer]
uses
quantum logic gates
arranged in a circuit to do computation
measurement
(sometimes called observation) assigns the observed variable to a single value
.darkblue[Quantum Annealing]
metaheuristic for finding the global minimum
of a given objective function over a given set of candidate solutions
i.e., some way to solve a special type of
mathematical optimization problem
] --- # .darkblue[Grover]'s Search Algorithm
.more-more-condensed[ - .darkblue[Black box] function $f:${$0,...,2^b -1$} $\mapsto$ {$true, false$} - Grover's search algorithm finds one $x \in${$0,...,2^b -1$},
such that $f(x)=true$ - if there is only .darkblue[one solution]: $\frac{\pi}{4}\cdot\sqrt{2^b}$ basic steps each of which calls $f$
Let $f'(b)$ be runtime complexity of $f$ for testing $x$ to be true:
.darkblue[$\Rightarrow O(\sqrt{2^b}\cdot f'(b))$] - if there are .darkblue[$k$] possible .darkblue[solutions]: .darkblue[$O(\sqrt{\frac{2^b}{k}}\cdot f'(b))$] ] --- # .darkblue[Overview] of Optimizing Transaction Schedules via Quantum Computing
--- # .darkblue[Encoding Scheme] .small-font36[of Transaction Schedules]
.more-more-condensed[ - $29 =$ .darkgreen[$000111$] .darkred[$01$] $_{binary} \equiv$ Core 0 .darkgreen[$[3,1]$] .darkred[$\mu_1=1$] .darkgreen[$[0,2]$] Core 1, some bits for .darkgreen[permutation] and some for .darkred[separators] - $b = (m-1)\cdot \left \lceil log_2(n-1)\right \rceil + \left \lceil log_2(n!-1)\right \rceil$ ] --- # Generated .darkblue[Black Box] Function .more-more-condensed[ - Quantum computation: .darkblue[circuit of quantum logic gates
$\Rightarrow$ circuit must be generated] dependent on the concrete problem instance, no general circuit to solve all instances of a problem - Sketch of algo: .smaller-font[
1. Determine Separators and Permutation
$O(m+n)$
2. Check Validity of Separators
$O(m)$
3. $\forall i$: Determine lengths of $i$-th transaction in permutation
$O(n\cdot log_2(n))$ with decision tree over transaction number
4. Check: Which separator configuration? For current case:
$O(n)$
4a. determine total runtime of core and check if it's below given limit
$O(n)$
4a. determine start and end times of conflicting transactions
$O(n\cdot log_2(min(n,c))+c)$ with decision tree over conflicting transactions (for $n>>c$) or transaction numbers (for $c>>n$)
5. Check: Do conflicting transactions overlap?
$O(c)$
.darkblue[$\sum:O(n\cdot log_2(n)+c)$]
]] --- # .darkblue[Complexity Analysis] .more-more-condensed.smaller-font[
Approach
CPU
Quantum Computer
Quantum Annealing
Preprocessing
$O(1)$
$O(n^2\cdot c)$
$O(m\cdot R^2\cdot(c\cdot m + n^2))$
Execution
$O(\frac{(m+n-1)!}{(m-1)!}\cdot (n+c))$
$O(\sqrt{\frac{n!\cdot n^m}{k}}\cdot(n\cdot log_2(n)+c))$
$O(1)$
Space
$O(n+m+c)$
$O((n+m)\cdot log_2(n))$
$O(m\cdot R^2\cdot(c\cdot m + n^2))$
Code
$O(1)$
$O(n^2\cdot c)$
$O(m\cdot R^2\cdot(c\cdot m + n^2))$
.bold[$m$:] number of machines .bold[$n$:] number of transactions .bold[$c$:] number of conflicts .bold[$R$:] max. runtime .bold[$k$:] number of solutions
] --- # .darkblue[Number of Solutions]
.more-more-condensed.smaller-font[
$m=2$
$m=4$
$N$
8,589,934,592
2,199,023,255,552
$k$
48,384,000
559,872
$k$ for
$\leq 1.25\cdot R_{opt}$
1,472,567,040
2,047,306,752
]
--- # .darkblue[Summary & Conclusions] .more-more-condensed[ - .darkblue[Scheduling transactions as jobshop problem with] additionally considering .darkblue[blocking transactions] - .darkblue[Hard combinatorial optimization problem
$\Rightarrow$ hardware acceleration] - .darkblue[Enumeration of all possible transaction schedules] for finding an optimal one - Grover's search offers approx. .darkblue[quadratic speedup] to approach on traditional computer - .darkblue[Estimation of number of solutions for] a further .darkblue[speedup] - Estimation of speedup for suboptimal solutions being a guaranteed factor away from optimal solution - .darkblue[Code Generator] available at .small-font[
https://github.com/luposdate/OptimizingTransactionSchedulesWithSilq
] - .darkblue[Future Work] - .darkblue[Quantum computing of other database problems] ]