-
Notifications
You must be signed in to change notification settings - Fork 14
/
interactive-workload-definition.tex
76 lines (66 loc) · 4.56 KB
/
interactive-workload-definition.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
The \emph{Test Driver} is in charge of the execution of the Interactive Workload.
At the beginning of the execution, the Test Driver creates a query mix by
assigning to each query instance, a query issue time and a set of parameters
taken from the generated substitution parameter set described above.
Query issue times have to be carefully assigned. Although substitution
parameters are chosen in such a way that queries of the same type take similar
time, not all query types have the same complexity and touch the same amount of
data, which causes them to scale differently for the different scale factors.
Therefore, if all query instances, regardless of their type, are issued
at the same rate, those more complex queries will dominate the execution's
result, making faster query types purposeless. To avoid this situation, each
query type is executed at a different rate. The way the execution rate is decided,
also depends on the nature of the query: complex read, short read or update.
Update queries' issue times are taken from the update streams generated by the
data generator. These are the times where the actual event happened during the
simulation of the social network. Complex reads' times are expressed in terms
of update operations. For each complex read query type, a frequency value is
assigned which specifies the relation between the number of updates performed
per complex read. \autoref{table:freqs} shows the frequencies for each complex query and SF used in the \interactivevone workload (\autoref{sec:interactive-v1}).
\input{tables/table-interactive-frequencies}
Finally, short reads are inserted in order to balance the ratio between reads
and writes, and to simulate the behavior of a real user of the social network.
For each complex read instance, a sequence of short reads is planned. There are two
types of short read sequences: Person centric and Message centric. Depending on
the type of the complex read, one of them is chosen. Each sequence consists of
a set of short reads which are issued in a row. The issue time assigned to each
short read in the sequence is determined at run time, and is based on the
completion time of the complex read it depends on.
The substitution parameters for short reads are taken from the results of previously
executed queries, including both complex and short reads:
\begin{itemize}
\item Complex reads:
\queryRefCard{interactive-complex-read-01}{IC}{1}
\queryRefCard{interactive-complex-read-02}{IC}{2}
\queryRefCard{interactive-complex-read-03}{IC}{3}
\queryRefCard{interactive-complex-read-07}{IC}{7}
\queryRefCard{interactive-complex-read-08}{IC}{8}
\queryRefCard{interactive-complex-read-09}{IC}{9}
\queryRefCard{interactive-complex-read-10}{IC}{10}
\queryRefCard{interactive-complex-read-11}{IC}{11}
\queryRefCard{interactive-complex-read-12}{IC}{12}
\queryRefCard{interactive-complex-read-14-v1}{IC}{14v1}
\queryRefCard{interactive-complex-read-14-v2}{IC}{14v2}
\item Short reads:
\queryRefCard{interactive-short-read-02}{IS}{2}
\queryRefCard{interactive-short-read-03}{IS}{3}
\queryRefCard{interactive-short-read-05}{IS}{5}
\queryRefCard{interactive-short-read-06}{IS}{6}
\queryRefCard{interactive-short-read-07}{IS}{7}
\end{itemize}
To see which short and complex queries can potentially trigger additional short query queries, see \autoref{tab:short-read-queries-triggered}.
Once a short read sequence is issued (and provided that sufficient substitution parameters
exist), there is a probability that another short read sequence is issued. This probability decreases for each new sequence issued.%
\footnote{The probability can be adjusted using the \texttt{ldbc.snb.interactive.short\_read\_dissipation} configuration option.}
Since the same random number generator seed is used across
executions, the workload is deterministic.
\input{tables/table-short-read-queries}
The specified frequencies, implicitly define the query ratios between queries
of different types, as well as a default target throughput. However, the Test
Sponsor may specify a different target throughput to test, by ``squeezing''
together or ``stretching'' apart the queries of the workload. This is
achieved by means of the ``Time Compression Ratio'' that is multiplied by the
frequencies (see \autoref{table:freqs}). Therefore, different
throughputs can be tested while maintaining the relative ratios between the
different query types.
\textbf{Warning.} Note that in the current implementation of SNB Interactive v1, short queries are only produced if updates are enabled. In the absence of updates, no short queries will be executed.