We provide three temporal workloads to evaluate temporal performances: T-mgBench, T-LDBC, and T-gMark. We extend mgBench, LDBC, and g-Mark workloads to introduce temporal features. We first generate historical data on the originl non-temporal dataset by processing create/delete/update graph operations. Then, we provide temporal query statements to access temporal data.
Our original datasets for each workload are as follows.
- mgBench:
- LDBC:
- gMark: For g-Mark, we use its open-source codes to generate graph. In our experiments, we relied on four use cases: the default gMark use case, and three gMark encodings of the schemas of existing state-of-the-art benchmarks. For each graph, we generate a raw dataset of 100K nodes and perform 320K update operations on each graph.
- Bib: is gMarks' default scenario, describing the bibliographical database.
- LSN: is gMark encoding of the fixed schema provided with the LDBC Social Network Benchmark, which simulates user activity in a social network.
- SP: is gMark encoding of the fixed DBLP-based schema provided with SP2Bench.
- WD: is gMark encoding of the default schema provided with Waterloo SPARQL Diversity Test Suite (WatDiv).
Upon on original datasets, we provide generation tools for each workload to automaticlly generate graph operation query statements. The generation tool can be found in create_graph_op_queries.py in each workload directory. Those operation query statements can be used to generate temporal/historical data.
cd $workloadname
python create_graph_op_quries.py --arg $arg_value
You need to specify optional arguments to generate corresponding graph operation query statements. The common arguments are listed below. You can also check specific arguments in each workload.
python create_graph_op_quries.py --help
Flag | Description |
---|---|
--size | Dataset size |
--num-op | The number of graph operation queries |
--update-ratio | The update ratio of graph operation queries |
--delete-ratio | The delete ratio of graph operation queries |
--write-path | The write path of results |
Each temporal workload includes various temporal query types. We extend non-temporal queries with temporal dimension (TT AS OF
-
T-mgBench includes four temporal queries.
Query Statements Q1 Match (n: User {id: $id}) TT AS OF $t$ RETURN nQ2 Match (n: User {id: $id}) TT From $t_1$ to$t_2$ RETURN nQ3 Match (n: User {id: $id})-[e]->(m) TT AS OF $t$ RETURN n,e,mQ4 Match (n: User {id: $id})-[e]->(m) TT From $t_1$ to$t_2$ RETURN n,e,m -
T-LDBC includes seven interactive short (IS) temporal queries. We incorporate “TT AS OF
$t$ ” into the LDBC IS queries (IS1-IS7). -
T-gMark uses gMark’s query generation tool to create non-temporal queries, and then transform them into temporal queries by adding the time condition “FOR TT AS OF 𝑡”. T
The generation tool can be found in create_temporal_quries.py in each workload directory. Those temporal query statements can be used to test temporal database performance. We can generate temporal query statements using following commonds.
cd $workloadname
python create_temporal_quries.py --arg $arg_value
You need to specify optional arguments to generate corresponding temporal query statements. The common arguments are listed below. You can also check specific arguments in each workload.
python create_temporal_quries.py --help
Flag | Description |
---|---|
--size | Dataset size |
--num-op | The number of graph operation queries |
--min-time | Min time of temporal databas's life |
--max-time | Max time of temporal databas's life |
--write-path | The write path of results |
--interval | Interval of time-slice queries |
--frequency-type | Frequency type of temporal queries |