Skip to content

Commit c08d724

Browse files
Remove custom create index runner
With this commit we remove the custom runner `createindex` which creates index templates, matching indices and also aliases and replace it with runners that are available out of the box with Rally. Furthermore, we cleanup some duplication and have removed the challenge `append-no-conflicts` which acted as a dummy default challenge but does not serve any other purpose. Relates elastic#36
1 parent 4557e72 commit c08d724

19 files changed

+266
-782
lines changed

README.md

Lines changed: 10 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -29,19 +29,7 @@ Note: In general, track parameters are only defined for a subset of the challeng
2929

3030
## Available Challenges
3131

32-
### 1) append-no-conflicts
33-
34-
This is the default challenge, which performs bulk indexing at maximum throughput against a single index for a period of 20 minutes.
35-
36-
The table below shows the track parameters that can be adjusted along with default values:
37-
38-
| Parameter | Explanation | Type | Default Value |
39-
| --------- | ----------- | ---- | ------------- |
40-
| `number_of_replicas` | Number of index replicas | `int` | `0` |
41-
| `shard_count` | Number of primary shards | `int` | `2` |
42-
| `bulk_indexing_clients` | Number of bulk indexing clients/connections | `int` | `8` |
43-
44-
### 2) bulk-size-evaluation
32+
### bulk-size-evaluation
4533

4634
This challenge performs bulk-indexing against a single index with varying bulk request sizes, ranging from 125 events/request to 50000 events/request.
4735

@@ -53,7 +41,7 @@ The table below shows the track parameters that can be adjusted along with defau
5341
| `shard_count` | Number of primary shards | `int` | `2` |
5442
| `bulk_indexing_clients` | Number of bulk indexing clients/connections | `int` | `16` |
5543

56-
### 3) shard-sizing
44+
### shard-sizing
5745

5846
This challenge indexes 2 million events into an index consisting of a single shard 25 times. After each group of 2 million events has been inserted, 4 different Kibana dashboard configurations are benchmarked against the index. At this time no indexing takes place. There are two different dashboards being simulated, aggregating across 50% and 90% of the data in the shard.
5947

@@ -69,7 +57,7 @@ The table below shows the track parameters that can be adjusted along with defau
6957
| `shard_sizing_iterations` | Number of indexing querying iterations to run | `int` | `25` |
7058
| `shard_sizing_queries` | Number of queries of each type to run for each iteration | `int` | `20` |
7159

72-
### 4) elasticlogs-1bn-load
60+
### elasticlogs-1bn-load
7361

7462
This challenge indexes 1 billion events into a number of indices of 2 primary shards each, and results in around 200GB of indices being generated on disk. This can vary depending on the environment. It can be used give an idea of how max indexing performance behaves over an extended period of time.
7563

@@ -84,11 +72,11 @@ The table below shows the track parameters that can be adjusted along with defau
8472
| `translog_sync` | If value is not `request`, translog will be configured to use `async` mode | `string` | `request` |
8573
| `rollover_enabled` | Enables the automatic rollover of indices after 100 million entries or 1 day. | `bool` | `true` |
8674

87-
### 5) elasticlogs-querying
75+
### elasticlogs-querying
8876

8977
This challenge runs mixed Kibana queries against the index created in the **elasticlogs-1bn-load** track. No concurrent indexing is performed.
9078

91-
### 6) combined-indexing-and-querying
79+
### combined-indexing-and-querying
9280

9381
This challenge assumes that the *elasticlogs-1bn-load* track has been executed as it simulates querying against these indices. It shows how indexing and querying through simulated Kibana dashboards can be combined to provide a more realistic benchmark.
9482

@@ -107,7 +95,7 @@ The table below shows the track parameters that can be adjusted along with defau
10795
| `rate_limit_step` | Number of requests per second to use as a rate_limit_step. `2` indicates rate limiting will increase in steps of 2k EPS | `int` | `2` |
10896
| `rate_limit_max` | Maximum number of requests per second to use for rate-limiting. `32` indicates a top target indexing rate of 32k EPS | `int` | `32` |
10997

110-
### 7) elasticlogs-continuous-index-and-query
98+
### elasticlogs-continuous-index-and-query
11199

112100
This challenge is suitable for long term execution and runs in two phases. Both phases (`p1`, `p2`) index documents containing auto-generated event, however, `p1` indexes events at the max possible speed, whereas `p2` throttles indexing to a specified rate and in parallel executes four queries simulating Kibana dashboards and queries. The created index gets rolled over after the configured max size and the maximum amount of rolled over indices are also configurable.
113101

@@ -167,7 +155,7 @@ $ cat params-file.json
167155
}
168156
```
169157

170-
### 8) large-shard-sizing
158+
### large-shard-sizing
171159

172160
This challenge examines the performance and memory usage of large shards. It indexes data into a single shard index ~25GB at a time and runs up to a shard size of ~300GB. After every 25GB that has been indexed, select index statistics are recorded and a number of simulated Kibana dashboards are run against the index to show how query performance varies with shard size.
173161

@@ -184,7 +172,7 @@ The table below shows the track parameters that can be adjusted along with defau
184172
| `bulk_indexing_clients` | Number of bulk indexing clients/connections | `int` | `32` |
185173
| `query_iterations` | Number of times each dashboard is simulated at each level | `int` | `10` |
186174

187-
### 9) large-shard-id-type-evaluation
175+
### large-shard-id-type-evaluation
188176

189177
This challenge examines the storage and heap usage implications of a wide variety of document ID types. It indexes data into a set of ~25GB single shard index, each for a different type of document ID (`auto`, `uuid`, `epoch_uuid`, `sha1`, `sha256`, `sha384`, and `sha512`). For each index a refresh is then run before select index statistics are recorded.
190178

@@ -197,7 +185,7 @@ The table below shows the track parameters that can be adjusted along with defau
197185
| --------- | ----------- | ---- | ------------- |
198186
| `bulk_indexing_clients` | Number of bulk indexing clients/connections | `int` | `32` |
199187

200-
### 10) document_id_evaluation
188+
### document_id_evaluation
201189

202190
This challenge examines the indexing throughput as a function of shard size as well as the resulting storage requirements for a set of different types of document IDs. For each document ID type, it indexes 200 million documents into a single-shard index, which should be about 40GB in size. Once all data has been indexed, index statistics are recorded before and after a forcemerge down to a single segment.
203191

@@ -357,7 +345,7 @@ License
357345

358346
This software is licensed under the Apache License, version 2 ("ALv2"), quoted below.
359347

360-
Copyright 2015-2018 Elasticsearch <https://www.elastic.co>
348+
Copyright 2015-2019 Elasticsearch <https://www.elastic.co>
361349

362350
Licensed under the Apache License, Version 2.0 (the "License"); you may not
363351
use this file except in compliance with the License. You may obtain a copy of

eventdata/challenges/combined-indexing-and-querying.json

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,9 @@
1717
{
1818
"operation": "deleteindex_elasticlogs_i-*"
1919
},
20+
{
21+
"operation": "delete-index-template"
22+
},
2023
{
2124
"operation": "fieldstats_elasticlogs_q-*",
2225
"warmup-iterations": {{ p_client_count }},
@@ -35,10 +38,19 @@
3538
}
3639
},
3740
{
38-
"operation": "create_elasticlogs_i_write",
39-
"clients": 1,
40-
"warmup-iterations": 0,
41-
"iterations": 1
41+
"operation": "create-index-template"
42+
},
43+
{
44+
"operation": {
45+
"name": "create_elasticlogs_i_write",
46+
"operation-type": "create-index",
47+
"index": "elasticlogs_i-000001",
48+
"body": {
49+
"aliases" : {
50+
"elasticlogs_i_write" : {}
51+
}
52+
}
53+
}
4254
},
4355
{# Add some data to index so it does not start empty #}
4456
{

eventdata/challenges/document_id_benchmark.json

Lines changed: 32 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -12,33 +12,30 @@
1212
},
1313
"schedule": [
1414
{
15-
"name": "deleteindex_elasticlogs-warmup",
15+
"name": "delete-index-elasticlogs-warmup",
1616
"operation": {
1717
"operation-type": "delete-index",
1818
"index": "elasticlogs-warmup"
19-
},
20-
"include-in-reporting": false
19+
}
20+
},
21+
{
22+
"operation": "delete-index-template"
2123
},
2224
{
23-
"name": "create_elasticlogs-warmup",
2425
"operation": {
25-
"operation-type": "createindex",
26-
"index_name": "elasticlogs-warmup",
27-
"index_template_body": {
28-
"template": "elasticlogs-warmup",
29-
"settings": {
30-
"index.refresh_interval": "5s",
31-
"index.codec": "best_compression",
26+
"operation-type": "create-index-template",
27+
"settings": {
3228
"index.translog.retention.size": "10mb",
33-
"index.number_of_replicas": 0,
34-
"index.number_of_shards": 1
35-
},
36-
"mappings": "mappings.json",
37-
"aliases": {}
38-
},
39-
"index_template_name": "elasticlogs-warmup"
40-
},
41-
"include-in-reporting": false
29+
"index.number_of_shards": {{ shard_count | default(1) }}
30+
}
31+
}
32+
},
33+
{
34+
"name": "create-index-elasticlogs-warmup",
35+
"operation": {
36+
"operation-type": "create-index",
37+
"index": "elasticlogs-warmup"
38+
}
4239
},
4340
{
4441
"name": "index-append-1000-elasticlogs-warmup",
@@ -55,12 +52,11 @@
5552
"include-in-reporting": false
5653
},
5754
{
58-
"name": "deleteindex_elasticlogs-warmup-final",
55+
"name": "delete-index-elasticlogs-warmup-final",
5956
"operation": {
6057
"operation-type": "delete-index",
6158
"index": "elasticlogs-warmup"
62-
},
63-
"include-in-reporting": false
59+
}
6460
},
6561
{% for id in [{ 'type': 'auto', 'desc': 'auto' },
6662
{ 'type': 'uuid', 'desc': 'uuid' },
@@ -69,33 +65,18 @@
6965
{ 'type': 'epoch_uuid', 'desc': 'epoch_uuid' },
7066
{ 'type': 'epoch_md5', 'desc': 'epoch_md5'} ] %}
7167
{
72-
"name": "deleteindex_elasticlogs-{{ id['desc'] }}",
68+
"name": "delete-index-elasticlogs-{{ id['desc'] }}",
7369
"operation": {
7470
"operation-type": "delete-index",
7571
"index": "elasticlogs-{{ id['desc'] }}"
76-
},
77-
"include-in-reporting": false
72+
}
7873
},
7974
{
80-
"name": "create_elasticlogs-{{ id['desc'] }}",
75+
"name": "create-index-elasticlogs-{{ id['desc'] }}",
8176
"operation": {
82-
"operation-type": "createindex",
83-
"index_name": "elasticlogs-{{ id['desc'] }}",
84-
"index_template_body": {
85-
"template": "elasticlogs-{{ id['desc'] }}",
86-
"settings": {
87-
"index.refresh_interval": "5s",
88-
"index.codec": "best_compression",
89-
"index.translog.retention.size": "10mb",
90-
"index.number_of_replicas": 0,
91-
"index.number_of_shards": 1
92-
},
93-
"mappings": "mappings.json",
94-
"aliases": {}
95-
},
96-
"index_template_name": "elasticlogs-{{ id['desc'] }}"
97-
},
98-
"include-in-reporting": false
77+
"operation-type": "create-index",
78+
"index": "elasticlogs-{{ id['desc'] }}"
79+
}
9980
},
10081
{
10182
"name": "index-append-1000-elasticlogs-{{ id['desc'] }}",
@@ -149,33 +130,18 @@
149130
{% for id in [{ 'type': 'epoch_md5', 'desc': 'epoch_md5-10pct_60s', 'delay': 60 },
150131
{ 'type': 'epoch_md5', 'desc': 'epoch_md5-10pct_300s', 'delay': 300 }] %}
151132
{
152-
"name": "deleteindex_elasticlogs-{{ id['desc'] }}",
133+
"name": "delete-index-elasticlogs-{{ id['desc'] }}",
153134
"operation": {
154135
"operation-type": "delete-index",
155136
"index": "elasticlogs-{{ id['desc'] }}"
156-
},
157-
"include-in-reporting": false
137+
}
158138
},
159139
{
160-
"name": "create_elasticlogs-{{ id['desc'] }}",
140+
"name": "create-index-elasticlogs-{{ id['desc'] }}",
161141
"operation": {
162-
"operation-type": "createindex",
163-
"index_name": "elasticlogs-{{ id['desc'] }}",
164-
"index_template_body": {
165-
"template": "elasticlogs-{{ id['desc'] }}",
166-
"settings": {
167-
"index.refresh_interval": "5s",
168-
"index.codec": "best_compression",
169-
"index.translog.retention.size": "10mb",
170-
"index.number_of_replicas": 0,
171-
"index.number_of_shards": 1
172-
},
173-
"mappings": "mappings.json",
174-
"aliases": {}
175-
},
176-
"index_template_name": "elasticlogs-{{ id['desc'] }}"
177-
},
178-
"include-in-reporting": false
142+
"operation-type": "create-index",
143+
"index": "elasticlogs-{{ id['desc'] }}"
144+
}
179145
},
180146
{
181147
"name": "index-append-1000-elasticlogs-{{ id['desc'] }}",
@@ -230,10 +196,7 @@
230196
{% endfor %}
231197
{
232198
"name": "refresh-final",
233-
"operation": "refresh",
234-
"iterations": 1,
235-
"clients": 1,
236-
"include-in-reporting": false
199+
"operation": "refresh"
237200
}
238201
]
239202
}

eventdata/challenges/elasticlogs-1bn-load.json

Lines changed: 18 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,35 @@
11
{% set p_bulk_indexing_clients = (bulk_indexing_clients | default(20)) %}
22
{% set p_iterations = bulk_indexing_iterations | default(1000000) %}
33
{% set p_iterations_per_client = (p_iterations / p_bulk_indexing_clients) | int %}
4-
{% set p_disk_type = disk_type | default('ssd') | lower %}
5-
{% set p_translog_sync = translog_sync | default('request') | lower %}
64

75
{
86
"name": "elasticlogs-1bn-load",
97
"description": "Indexes 1bn (default) documents into elasticlogs_q-* indices. IDs are autogenerated by Elasticsearch, meaning there are no conflicts.",
8+
"default": true,
109
"meta": {
1110
"client_count": {{ p_bulk_indexing_clients }},
1211
"benchmark_type": "indexing"
1312
},
1413
"schedule": [
1514
{
16-
"operation": "deleteindex_elasticlogs_q-*",
17-
"clients": 1,
18-
"warmup-iterations": 0,
19-
"iterations": 1
15+
"operation": "deleteindex_elasticlogs_q-*"
2016
},
2117
{
22-
"operation": "create_elasticlogs_q_write",
23-
"clients": 1,
24-
"warmup-iterations": 0,
25-
"iterations": 1
18+
"operation": "delete-index-template"
19+
},
20+
{
21+
"operation": "create-index-template"
22+
},
23+
{
24+
"operation": {
25+
"operation-type": "create-index",
26+
"index": "elasticlogs_q-000001",
27+
"body": {
28+
"aliases" : {
29+
"elasticlogs_q_write" : {}
30+
}
31+
}
32+
}
2633
},
2734
{
2835
"parallel": {
@@ -47,8 +54,7 @@
4754
}
4855
},
4956
{
50-
"operation": "node_storage",
51-
"iterations": 1
57+
"operation": "node_storage"
5258
}
5359
]
5460
}

eventdata/challenges/elasticlogs-continuous-index-and-query.json

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,16 +14,25 @@
1414
},
1515
"schedule": [
1616
{
17-
"operation": "deleteindex_elasticlogs_q-*",
18-
"clients": 1,
19-
"warmup-iterations": 0,
20-
"iterations": 1
17+
"operation": "deleteindex_elasticlogs_q-*"
2118
},
2219
{
23-
"operation": "create_elasticlogs_q_write",
24-
"clients": 1,
25-
"warmup-iterations": 0,
26-
"iterations": 1
20+
"operation": "delete-index-template"
21+
},
22+
{
23+
"operation": "create-index-template"
24+
},
25+
{
26+
"operation": {
27+
"name": "create_elasticlogs_q_write",
28+
"operation-type": "create-index",
29+
"index": "elasticlogs_q-000001",
30+
"body": {
31+
"aliases" : {
32+
"elasticlogs_q_write" : {}
33+
}
34+
}
35+
}
2736
},
2837
{
2938
"parallel": {

0 commit comments

Comments
 (0)