Skip to content

Query Workloads of the Benchmark

Olaf Hartig edited this page Aug 16, 2019 · 9 revisions

The basis of the LinGBM query workloads are 16 templates of GraphQL queries. This mix of query templates has been hand-crafted to cover all the choke points that have been identified in the initial design phase of the benchmark.

The query templates contain one or more placeholders for values that exist in the generated benchmark datasets. Hence, to instantiate any of the templates into an actual query, every placeholder has to be substituted by one of the possible values. The query workloads consist of such queries obtained by instantiating the templates.

In addition to the textual definition of the query templates, the templates are defined in the GraphQL query language. That is, every template is defined as a GraphQL query with variables that represent the placeholders of the template. These template GraphQL queries are expressed in terms of the LinGBM GraphQL schema and can be found in the directory ./artifacts/queryTemplates/main/ of the LinGBM github repository. The LinGBM Query Generator can be used to generate actual GraphQL queries as instances of this, and any other, GraphQL-based representation of the query templates.

Query Workloads for Scenario 1

As mentioned above, the GraphQL-based representation of the query templates uses the LinGBM GraphQL schema. This schema has been defined specifically for the first of the two scenarios captured by LinGBM. Hence, instantiating this GraphQL-based representation of the query templates gives us query workloads for tests in the context of this first scenario. We consider two classes of such workloads:

  1. Workloads for experiments that focus on a fine-grain analysis of response times achieved by GraphQL servers: such workloads consist of one (or very few) instances per query template.
    • A concrete version of such a workload that can be used in combination with any benchmark dataset of scale factor 100 or greater can be found at: TODO This workload consists of one instance of each of the 16 query templates.
  2. Workloads for experiments to analyze throughput of GraphQL-based client-server systems: such workloads consist of many instances per query template.
    • A concrete version of such a workload that can be used in combination with any benchmark dataset of scale factor 1000 or greater can be found at: TODO This workload consists of 100 instances of each of the 16 query templates except for the following instances, for which there does not exist at least 100 instances at scale factor 1000: templates QT2 (22 instances), QT6 (12 instances), QT11 (12 instances), QT15 (12 instances), and QT16 (12 instances).

Query Workloads for Scenario 2

TODO ...

Clone this wiki locally