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[Digital Quantum Computer]
uses
quantum logic gates
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[Quantum] versus .darkblue[Simulated Annealing] .reference[T. Bittner, S. Groppe, Avoiding Blocking by Scheduling Transactions using Quantum Annealing, IDEAS 2020]
--- # .em[Optimizing] .darkblue[Transaction Schedules] via .darkblue[Quantum Annealing] .reference[T. Bittner, S. Groppe, Avoiding Blocking by Scheduling Transactions using Quantum Annealing, IDEAS 2020] .no-margin.no-padding.more-more-condensed[
.more-more-condensed[ - .darkblue[Transaction Model] - T: .darkblue[set of transactions] with |T| = n - M: .darkblue[set of machines] with |M| = k - $O \subseteq T \times T$: set of .darkblue[blocking] transactions - l
i
: .darkblue[length of transaction] i - R: .darkblue[maximum execution time] - .darkblue[upper bound] r
i
= R − l
i
.darkblue[for start time of transaction] i ]
.more-more-condensed[ - Example - T = {t
1
, t
2
, t
3
}, n=3 - M = {m
1
, m
2
}, k=2 - $O$ = {(t
2
, t
3
)} - l
1
= 2, l
2
= 1, l
3
= 1 - R = 2 - r
1
= 0, r
2
= 1, r
3
= 1 ]
- .darkblue[Quadratic unconstrained binary optimization (QUBO)] problems (solving is NP-hard) - A QUBO-problem is defined by N weighted binary variables $X_1, ..., X_N\in\{0, 1\}$, either as linear or quadratic term .darkblue[to be minimized]:
] --- # .em[Optimizing] .darkblue[Transaction Schedules] via .darkblue[Quantum Annealing] .reference[T. Bittner, S. Groppe, Avoiding Blocking by Scheduling Transactions using Quantum Annealing, IDEAS 2020] .more-more-condensed[ - Multi-Core CPU - Process whole transaction on core X - Solution formulated as set of binary variables - X
i,j,s
is 1 iff transaction t
i
is started at time s on machine m
j
, otherwise 0 - Example:
Black: Blocking transactions
Transaction schedule
.more-more-condensed[ - Solution:
X
1,1,0
, X
3,1,2
, X
4,2,0
, X
7,2,1
, X
6,2,3
, X
5,2,6
, X
2,3,0
, X
8,3,5
]
] --- # .em[Optimizing] .darkblue[Transaction Schedules] via .darkblue[Quantum Annealing] .reference[T. Bittner, S. Groppe, Avoiding Blocking by Scheduling Transactions using Quantum Annealing, IDEAS 2020] .more-more-condensed[ - .darkblue[Valid] Solution - A: each
transaction starts exactly once
- B:
transactions cannot be executed at the same time on the same machine
- C:
transactions that block each other cannot be executed at the same time
] --- # .em[Optimizing] .darkblue[Transaction Schedules] via .darkblue[Quantum Annealing] .reference[T. Bittner, S. Groppe, Avoiding Blocking by Scheduling Transactions using Quantum Annealing, IDEAS 2020] .more-more-condensed[ - .darkblue[Optimal] Solution - D:
minimizing the maximum execution time
- Increasing weights: Weight of step n is larger than of
all preceding steps 1 to n-1 $\Rightarrow$
prefer
ring
transactions ending earlier
- Weigths in A, B and C $\geq$ 1
$\Rightarrow$
first priority is validity
, second priority is optimality - .darkblue[Overall] Solution - Minimize $P = A + B + C + D$ ] --- # .em[Optimizing] .darkblue[Transaction Schedules] via .darkblue[Quantum Annealing] .reference[T. Bittner, S. Groppe, Avoiding Blocking by Scheduling Transactions using Quantum Annealing, IDEAS 2020] .more-more-condensed[
.more-more-condensed[ - Experiments on real .darkblue[Quantum Annealer] (D-Wave 2000Q cloud service) - first minute free
(afterwards too much for our budget) - Versus .darkblue[Simulated Annealing on CPU] - .darkblue[Preprocessing time/Number of QuBits]: $O((n\cdot k\cdot R)^2)$ ]
] --- # .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] - Formulating .darkblue[transaction schedule problem as] quadratic unconstrained binary optimization (.darkblue[QUBO]) .darkblue[problem] - .darkblue[Hardware acceleration via quantum annealing] - .darkblue[Constant execution time] .darkgray[in contrast to simulated annealing on classical computers] - .darkblue[Preprocessing time] increasing with larger problem sizes - .darkblue[Future Work] - .darkblue[Caching] of formulas to minimize preprocessing time - .darkblue[Quantum annealing of other database problems] ]