Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

System index reads in separate threadpool #57936

Merged
merged 33 commits into from
Aug 10, 2020

Conversation

jaymode
Copy link
Member

@jaymode jaymode commented Jun 10, 2020

This commit introduces a new thread pool, system_read, which is
intended for use by system indices for all read operations (get and
search). The system_read pool is a fixed thread pool with a maximum
number of threads equal to lesser of half of the available processors
or 5. Given the combination of both get and read operations in this
thread pool, the queue size has been set to 2000. The motivation for
this change is to allow system read operations to be serviced in spite
of the number of user searches.

In order to avoid a significant performance hit due to pattern matching
on all search requests, a new metadata flag is added to mark indices
as system or non-system. Previously created system indices will have
flag added to their metadata upon upgrade to a version with this
capability.

Additionally, this change also introduces a new class, SystemIndices,
which encapsulates logic around system indices. Currently, the class
provides a method to check if an index is a system index and a method
to find a matching index descriptor given the name of an index.

Relates #50251
Relates #37867

This commit moves all system index reads into their own threadpool.
@jaymode jaymode added >enhancement WIP :Core/Infra/Core Core issues without another label Team:Core/Infra Meta label for core/infra team labels Jun 10, 2020
@jaymode
Copy link
Member Author

jaymode commented Jun 11, 2020

This is still a WIP as I believe there are some points that will require being addressed and some discussion around others.

To do:

  • Rough measurement of performance impact
  • Consider adding metadata to system indices to avoid running all indices through pattern matching to determine the threadpool (see Replace private index settings with index metadata #50758)
  • Discuss whether we should group get and search for system indices into a single threadpool
  • Discuss the shape of the system index threadpool(s)

@jaymode
Copy link
Member Author

jaymode commented Jun 11, 2020

I took this approach and ran it in Rally. There is a performance hit here and some values are significant, so it looks like there is some work to do to understand this more.

|                                                        Metric |                           Task |    Baseline |   Contender |     Diff |    Unit |
|--------------------------------------------------------------:|-------------------------------:|------------:|------------:|---------:|--------:|
|                    Cumulative indexing time of primary shards |                                |     28.2007 |     27.6312 | -0.56948 |     min |
|             Min cumulative indexing time across primary shard |                                |     5.53993 |     5.37755 | -0.16238 |     min |
|          Median cumulative indexing time across primary shard |                                |     5.66485 |     5.54813 | -0.11672 |     min |
|             Max cumulative indexing time across primary shard |                                |      5.7531 |     5.62498 | -0.12812 |     min |
|           Cumulative indexing throttle time of primary shards |                                |           0 |           0 |        0 |     min |
|    Min cumulative indexing throttle time across primary shard |                                |           0 |           0 |        0 |     min |
| Median cumulative indexing throttle time across primary shard |                                |           0 |           0 |        0 |     min |
|    Max cumulative indexing throttle time across primary shard |                                |           0 |           0 |        0 |     min |
|                       Cumulative merge time of primary shards |                                |     10.7655 |     10.6209 |  -0.1446 |     min |
|                      Cumulative merge count of primary shards |                                |         220 |         216 |       -4 |         |
|                Min cumulative merge time across primary shard |                                |      2.0502 |     1.95657 | -0.09363 |     min |
|             Median cumulative merge time across primary shard |                                |     2.16432 |      2.1404 | -0.02392 |     min |
|                Max cumulative merge time across primary shard |                                |     2.24902 |     2.20972 |  -0.0393 |     min |
|              Cumulative merge throttle time of primary shards |                                |    0.959067 |     1.05737 |   0.0983 |     min |
|       Min cumulative merge throttle time across primary shard |                                |     0.15505 |    0.164967 |  0.00992 |     min |
|    Median cumulative merge throttle time across primary shard |                                |    0.174083 |     0.22025 |  0.04617 |     min |
|       Max cumulative merge throttle time across primary shard |                                |      0.2605 |    0.259467 | -0.00103 |     min |
|                     Cumulative refresh time of primary shards |                                |     1.93425 |     2.08813 |  0.15388 |     min |
|                    Cumulative refresh count of primary shards |                                |         341 |         337 |       -4 |         |
|              Min cumulative refresh time across primary shard |                                |     0.37605 |    0.403517 |  0.02747 |     min |
|           Median cumulative refresh time across primary shard |                                |    0.388733 |     0.41225 |  0.02352 |     min |
|              Max cumulative refresh time across primary shard |                                |     0.39735 |      0.4402 |  0.04285 |     min |
|                       Cumulative flush time of primary shards |                                |      0.2465 |     0.24835 |  0.00185 |     min |
|                      Cumulative flush count of primary shards |                                |          10 |          10 |        0 |         |
|                Min cumulative flush time across primary shard |                                |   0.0449833 |      0.0465 |  0.00152 |     min |
|             Median cumulative flush time across primary shard |                                |   0.0503333 |   0.0484833 | -0.00185 |     min |
|                Max cumulative flush time across primary shard |                                |   0.0541667 |      0.0545 |  0.00033 |     min |
|                                            Total Young Gen GC |                                |      17.484 |      16.923 |   -0.561 |       s |
|                                              Total Old Gen GC |                                |           0 |           0 |        0 |       s |
|                                                    Store size |                                |     3.09334 |      3.0813 | -0.01204 |      GB |
|                                                 Translog size |                                | 2.56114e-07 | 2.56114e-07 |        0 |      GB |
|                                        Heap used for segments |                                |    0.688808 |    0.700287 |  0.01148 |      MB |
|                                      Heap used for doc values |                                |   0.0337639 |   0.0265808 | -0.00718 |      MB |
|                                           Heap used for terms |                                |    0.527809 |    0.542816 |  0.01501 |      MB |
|                                           Heap used for norms |                                |   0.0693359 |   0.0712891 |  0.00195 |      MB |
|                                          Heap used for points |                                |           0 |           0 |        0 |      MB |
|                                   Heap used for stored fields |                                |   0.0578995 |   0.0596008 |   0.0017 |      MB |
|                                                 Segment count |                                |          89 |          92 |        3 |         |
|                                                    error rate |                   index-append |           0 |           0 |        0 |       % |
|                                                Min Throughput |                    index-stats |     90.0336 |     90.0454 |  0.01184 |   ops/s |
|                                             Median Throughput |                    index-stats |     90.0539 |     90.0622 |  0.00828 |   ops/s |
|                                                Max Throughput |                    index-stats |     90.1156 |     90.1116 | -0.00398 |   ops/s |
|                                       50th percentile latency |                    index-stats |     3.07864 |     3.68694 |   0.6083 |      ms |
|                                       90th percentile latency |                    index-stats |     4.31233 |      4.8033 |  0.49098 |      ms |
|                                       99th percentile latency |                    index-stats |     4.89069 |     5.72557 |  0.83488 |      ms |
|                                     99.9th percentile latency |                    index-stats |     7.97769 |     10.3432 |  2.36555 |      ms |
|                                      100th percentile latency |                    index-stats |     9.12308 |     11.2827 |  2.15959 |      ms |
|                                  50th percentile service time |                    index-stats |     2.24212 |     2.89029 |  0.64817 |      ms |
|                                  90th percentile service time |                    index-stats |     2.59705 |     3.88511 |  1.28806 |      ms |
|                                  99th percentile service time |                    index-stats |      2.9452 |     4.49815 |  1.55295 |      ms |
|                                99.9th percentile service time |                    index-stats |     7.19855 |     8.83871 |  1.64016 |      ms |
|                                 100th percentile service time |                    index-stats |     8.76572 |     10.6039 |  1.83821 |      ms |
|                                                    error rate |                    index-stats |           0 |           0 |        0 |       % |
|                                                Min Throughput |                     node-stats |     90.0353 |     90.0249 | -0.01041 |   ops/s |
|                                             Median Throughput |                     node-stats |     90.1065 |     90.0876 | -0.01886 |   ops/s |
|                                                Max Throughput |                     node-stats |     90.3719 |     90.3481 | -0.02378 |   ops/s |
|                                       50th percentile latency |                     node-stats |     3.18045 |     3.85535 |  0.67491 |      ms |
|                                       90th percentile latency |                     node-stats |     4.05919 |     4.84365 |  0.78446 |      ms |
|                                       99th percentile latency |                     node-stats |     6.94948 |     8.33069 |  1.38121 |      ms |
|                                     99.9th percentile latency |                     node-stats |      8.5091 |     10.7085 |  2.19945 |      ms |
|                                      100th percentile latency |                     node-stats |     9.34989 |     15.7015 |  6.35164 |      ms |
|                                  50th percentile service time |                     node-stats |     2.33882 |     3.05066 |  0.71184 |      ms |
|                                  90th percentile service time |                     node-stats |     2.80044 |     3.95506 |  1.15462 |      ms |
|                                  99th percentile service time |                     node-stats |     6.31952 |     7.37299 |  1.05347 |      ms |
|                                99.9th percentile service time |                     node-stats |     7.87383 |     9.69228 |  1.81845 |      ms |
|                                 100th percentile service time |                     node-stats |     9.03636 |     14.9944 |  5.95808 |      ms |
|                                                    error rate |                     node-stats |           0 |           0 |        0 |       % |
|                                                Min Throughput |                        default |     50.0288 |     50.0295 |  0.00072 |   ops/s |
|                                             Median Throughput |                        default |      50.043 |     50.0423 |  -0.0007 |   ops/s |
|                                                Max Throughput |                        default |     50.0798 |       50.08 |  0.00027 |   ops/s |
|                                       50th percentile latency |                        default |     2.99653 |     2.98256 | -0.01397 |      ms |
|                                       90th percentile latency |                        default |     3.93912 |     3.85108 | -0.08803 |      ms |
|                                       99th percentile latency |                        default |      4.4408 |     4.28487 | -0.15592 |      ms |
|                                     99.9th percentile latency |                        default |     5.81038 |     9.43023 |  3.61986 |      ms |
|                                      100th percentile latency |                        default |     5.83429 |     11.6365 |  5.80217 |      ms |
|                                  50th percentile service time |                        default |     1.82818 |     1.76086 | -0.06732 |      ms |
|                                  90th percentile service time |                        default |     2.05942 |     2.00995 | -0.04946 |      ms |
|                                  99th percentile service time |                        default |     2.44677 |     2.54715 |  0.10038 |      ms |
|                                99.9th percentile service time |                        default |     4.30233 |     9.02509 |  4.72275 |      ms |
|                                 100th percentile service time |                        default |      5.0654 |     11.2617 |   6.1963 |      ms |
|                                                    error rate |                        default |           0 |           0 |        0 |       % |
|                                                Min Throughput |                           term |     149.928 |     149.936 |  0.00772 |   ops/s |
|                                             Median Throughput |                           term |     150.074 |     150.086 |  0.01274 |   ops/s |
|                                                Max Throughput |                           term |     150.145 |     150.179 |  0.03464 |   ops/s |
|                                       50th percentile latency |                           term |     2.84279 |     2.51222 | -0.33057 |      ms |
|                                       90th percentile latency |                           term |     3.28992 |     2.96369 | -0.32623 |      ms |
|                                       99th percentile latency |                           term |     8.16982 |     4.49164 | -3.67818 |      ms |
|                                     99.9th percentile latency |                           term |     23.8656 |     12.5371 | -11.3285 |      ms |
|                                      100th percentile latency |                           term |     28.8919 |     13.8252 | -15.0666 |      ms |
|                                  50th percentile service time |                           term |     2.05876 |      1.7243 | -0.33446 |      ms |
|                                  90th percentile service time |                           term |     2.30601 |      1.9312 | -0.37481 |      ms |
|                                  99th percentile service time |                           term |     2.85904 |     2.57366 | -0.28538 |      ms |
|                                99.9th percentile service time |                           term |     15.4629 |      11.543 | -3.91984 |      ms |
|                                 100th percentile service time |                           term |     27.8915 |     13.1595 |  -14.732 |      ms |
|                                                    error rate |                           term |           0 |           0 |        0 |       % |
|                                                Min Throughput |                         phrase |     149.984 |     149.946 | -0.03731 |   ops/s |
|                                             Median Throughput |                         phrase |     150.079 |     150.079 |  0.00011 |   ops/s |
|                                                Max Throughput |                         phrase |     150.123 |     150.138 |  0.01474 |   ops/s |
|                                       50th percentile latency |                         phrase |      2.7601 |     2.67981 | -0.08029 |      ms |
|                                       90th percentile latency |                         phrase |     3.20967 |     3.12842 | -0.08125 |      ms |
|                                       99th percentile latency |                         phrase |     5.26297 |     8.52704 |  3.26406 |      ms |
|                                     99.9th percentile latency |                         phrase |     10.5219 |     25.6671 |  15.1452 |      ms |
|                                      100th percentile latency |                         phrase |     10.6695 |     30.4411 |  19.7716 |      ms |
|                                  50th percentile service time |                         phrase |     1.98156 |      1.9009 | -0.08066 |      ms |
|                                  90th percentile service time |                         phrase |     2.21437 |     2.10715 | -0.10722 |      ms |
|                                  99th percentile service time |                         phrase |     3.15306 |     2.92609 | -0.22698 |      ms |
|                                99.9th percentile service time |                         phrase |     9.50584 |     11.6079 |  2.10208 |      ms |
|                                 100th percentile service time |                         phrase |     10.2927 |     29.3826 |  19.0899 |      ms |
|                                                    error rate |                         phrase |           0 |           0 |        0 |       % |
|                                                Min Throughput |           country_agg_uncached |     3.60166 |     3.60264 |  0.00098 |   ops/s |
|                                             Median Throughput |           country_agg_uncached |     3.60469 |     3.60355 | -0.00114 |   ops/s |
|                                                Max Throughput |           country_agg_uncached |     3.60636 |     3.60466 | -0.00171 |   ops/s |
|                                       50th percentile latency |           country_agg_uncached |     182.409 |     206.151 |   23.742 |      ms |
|                                       90th percentile latency |           country_agg_uncached |     192.382 |     222.012 |  29.6298 |      ms |
|                                       99th percentile latency |           country_agg_uncached |     231.032 |     252.434 |  21.4029 |      ms |
|                                      100th percentile latency |           country_agg_uncached |     246.718 |     278.511 |   31.793 |      ms |
|                                  50th percentile service time |           country_agg_uncached |      181.52 |     205.027 |  23.5069 |      ms |
|                                  90th percentile service time |           country_agg_uncached |     191.454 |     221.249 |  29.7947 |      ms |
|                                  99th percentile service time |           country_agg_uncached |     230.402 |     250.022 |  19.6196 |      ms |
|                                 100th percentile service time |           country_agg_uncached |     245.997 |     277.918 |  31.9205 |      ms |
|                                                    error rate |           country_agg_uncached |           0 |           0 |        0 |       % |
|                                                Min Throughput |             country_agg_cached |     100.039 |     100.027 | -0.01192 |   ops/s |
|                                             Median Throughput |             country_agg_cached |     100.053 |     100.048 | -0.00448 |   ops/s |
|                                                Max Throughput |             country_agg_cached |     100.074 |      100.07 | -0.00379 |   ops/s |
|                                       50th percentile latency |             country_agg_cached |     2.34938 |     2.28071 | -0.06867 |      ms |
|                                       90th percentile latency |             country_agg_cached |     2.80493 |     2.85377 |  0.04885 |      ms |
|                                       99th percentile latency |             country_agg_cached |     3.96776 |     3.95398 | -0.01378 |      ms |
|                                     99.9th percentile latency |             country_agg_cached |        14.4 |     6.19853 |  -8.2015 |      ms |
|                                      100th percentile latency |             country_agg_cached |      20.486 |     7.33188 | -13.1541 |      ms |
|                                  50th percentile service time |             country_agg_cached |     1.56104 |     1.52789 | -0.03315 |      ms |
|                                  90th percentile service time |             country_agg_cached |     1.72258 |     1.68569 | -0.03689 |      ms |
|                                  99th percentile service time |             country_agg_cached |     2.02001 |     1.92223 | -0.09777 |      ms |
|                                99.9th percentile service time |             country_agg_cached |     10.9468 |     3.89989 | -7.04691 |      ms |
|                                 100th percentile service time |             country_agg_cached |     19.2048 |     6.66862 | -12.5362 |      ms |
|                                                    error rate |             country_agg_cached |           0 |           0 |        0 |       % |
|                                                Min Throughput |                         scroll |     20.0215 |     20.0199 | -0.00154 | pages/s |
|                                             Median Throughput |                         scroll |      20.027 |     20.0256 | -0.00138 | pages/s |
|                                                Max Throughput |                         scroll |     20.0342 |     20.0328 | -0.00148 | pages/s |
|                                       50th percentile latency |                         scroll |     825.936 |     848.774 |  22.8385 |      ms |
|                                       90th percentile latency |                         scroll |     846.527 |     872.138 |  25.6116 |      ms |
|                                       99th percentile latency |                         scroll |     864.418 |      889.18 |  24.7623 |      ms |
|                                      100th percentile latency |                         scroll |     864.459 |     893.971 |  29.5125 |      ms |
|                                  50th percentile service time |                         scroll |     824.417 |     847.251 |  22.8343 |      ms |
|                                  90th percentile service time |                         scroll |     845.306 |     870.203 |  24.8968 |      ms |
|                                  99th percentile service time |                         scroll |     862.338 |     888.496 |   26.158 |      ms |
|                                 100th percentile service time |                         scroll |     863.331 |     893.135 |  29.8042 |      ms |
|                                                    error rate |                         scroll |           0 |           0 |        0 |       % |
|                                                Min Throughput |                     expression |     2.00207 |     2.00243 |  0.00036 |   ops/s |
|                                             Median Throughput |                     expression |     2.00301 |     2.00296 |   -5e-05 |   ops/s |
|                                                Max Throughput |                     expression |     2.00408 |     2.00368 |  -0.0004 |   ops/s |
|                                       50th percentile latency |                     expression |     305.885 |     314.455 |  8.56985 |      ms |
|                                       90th percentile latency |                     expression |     318.868 |     325.497 |  6.62903 |      ms |
|                                       99th percentile latency |                     expression |     357.063 |     330.153 | -26.9104 |      ms |
|                                      100th percentile latency |                     expression |     362.867 |     331.367 | -31.5002 |      ms |
|                                  50th percentile service time |                     expression |     304.833 |     313.425 |  8.59216 |      ms |
|                                  90th percentile service time |                     expression |     318.031 |     324.277 |  6.24611 |      ms |
|                                  99th percentile service time |                     expression |     355.966 |     328.777 | -27.1884 |      ms |
|                                 100th percentile service time |                     expression |     362.058 |     330.699 |  -31.359 |      ms |
|                                                    error rate |                     expression |           0 |           0 |        0 |       % |
|                                                Min Throughput |                painless_static |     1.50089 |     1.50137 |  0.00048 |   ops/s |
|                                             Median Throughput |                painless_static |     1.50265 |      1.5024 | -0.00025 |   ops/s |
|                                                Max Throughput |                painless_static |     1.50362 |     1.50317 | -0.00045 |   ops/s |
|                                       50th percentile latency |                painless_static |     367.171 |     394.513 |  27.3426 |      ms |
|                                       90th percentile latency |                painless_static |     411.841 |     424.978 |  13.1368 |      ms |
|                                       99th percentile latency |                painless_static |     493.633 |     514.911 |  21.2778 |      ms |
|                                      100th percentile latency |                painless_static |     551.377 |     565.713 |  14.3363 |      ms |
|                                  50th percentile service time |                painless_static |      365.77 |     393.476 |   27.706 |      ms |
|                                  90th percentile service time |                painless_static |     410.821 |     423.496 |  12.6752 |      ms |
|                                  99th percentile service time |                painless_static |     492.508 |     513.597 |    21.09 |      ms |
|                                 100th percentile service time |                painless_static |     549.833 |     564.434 |  14.6007 |      ms |
|                                                    error rate |                painless_static |           0 |           0 |        0 |       % |
|                                                Min Throughput |               painless_dynamic |     1.50125 |     1.49943 | -0.00182 |   ops/s |
|                                             Median Throughput |               painless_dynamic |     1.50257 |     1.50244 | -0.00013 |   ops/s |
|                                                Max Throughput |               painless_dynamic |     1.50355 |     1.50334 | -0.00021 |   ops/s |
|                                       50th percentile latency |               painless_dynamic |      378.69 |     394.134 |  15.4438 |      ms |
|                                       90th percentile latency |               painless_dynamic |     417.738 |     428.371 |  10.6333 |      ms |
|                                       99th percentile latency |               painless_dynamic |     511.158 |     535.176 |  24.0176 |      ms |
|                                      100th percentile latency |               painless_dynamic |     516.012 |     718.309 |  202.296 |      ms |
|                                  50th percentile service time |               painless_dynamic |     377.635 |     391.934 |  14.2995 |      ms |
|                                  90th percentile service time |               painless_dynamic |     416.453 |     426.815 |  10.3611 |      ms |
|                                  99th percentile service time |               painless_dynamic |     509.976 |     534.216 |  24.2399 |      ms |
|                                 100th percentile service time |               painless_dynamic |     514.878 |     717.394 |  202.516 |      ms |
|                                                    error rate |               painless_dynamic |           0 |           0 |        0 |       % |
|                                                Min Throughput | decay_geo_gauss_function_score |     1.00219 |     1.00226 |    7e-05 |   ops/s |
|                                             Median Throughput | decay_geo_gauss_function_score |     1.00266 |     1.00271 |    5e-05 |   ops/s |
|                                                Max Throughput | decay_geo_gauss_function_score |     1.00336 |     1.00341 |    5e-05 |   ops/s |
|                                       50th percentile latency | decay_geo_gauss_function_score |     333.773 |     323.244 | -10.5293 |      ms |
|                                       90th percentile latency | decay_geo_gauss_function_score |     346.344 |      332.39 | -13.9537 |      ms |
|                                       99th percentile latency | decay_geo_gauss_function_score |      361.06 |     343.016 |  -18.044 |      ms |
|                                      100th percentile latency | decay_geo_gauss_function_score |     368.472 |     343.579 | -24.8923 |      ms |
|                                  50th percentile service time | decay_geo_gauss_function_score |     332.333 |       321.7 | -10.6325 |      ms |
|                                  90th percentile service time | decay_geo_gauss_function_score |     344.513 |     330.582 | -13.9311 |      ms |
|                                  99th percentile service time | decay_geo_gauss_function_score |     359.634 |     341.501 |  -18.133 |      ms |
|                                 100th percentile service time | decay_geo_gauss_function_score |     367.185 |     342.088 | -25.0976 |      ms |
|                                                    error rate | decay_geo_gauss_function_score |           0 |           0 |        0 |       % |
|                                                Min Throughput |   decay_geo_gauss_script_score |     1.00213 |     1.00165 | -0.00049 |   ops/s |
|                                             Median Throughput |   decay_geo_gauss_script_score |     1.00262 |     1.00251 | -0.00011 |   ops/s |
|                                                Max Throughput |   decay_geo_gauss_script_score |     1.00327 |     1.00326 |   -2e-05 |   ops/s |
|                                       50th percentile latency |   decay_geo_gauss_script_score |      348.09 |     361.329 |  13.2385 |      ms |
|                                       90th percentile latency |   decay_geo_gauss_script_score |     363.474 |     382.334 |  18.8608 |      ms |
|                                       99th percentile latency |   decay_geo_gauss_script_score |     406.192 |     441.223 |  35.0307 |      ms |
|                                      100th percentile latency |   decay_geo_gauss_script_score |     440.862 |     613.733 |  172.871 |      ms |
|                                  50th percentile service time |   decay_geo_gauss_script_score |     346.517 |     359.965 |   13.448 |      ms |
|                                  90th percentile service time |   decay_geo_gauss_script_score |     362.374 |     381.522 |  19.1482 |      ms |
|                                  99th percentile service time |   decay_geo_gauss_script_score |     404.276 |      439.38 |  35.1043 |      ms |
|                                 100th percentile service time |   decay_geo_gauss_script_score |     439.526 |      612.92 |  173.394 |      ms |
|                                                    error rate |   decay_geo_gauss_script_score |           0 |           0 |        0 |       % |
|                                                Min Throughput |     field_value_function_score |     1.50394 |     1.50402 |    8e-05 |   ops/s |
|                                             Median Throughput |     field_value_function_score |     1.50484 |     1.50474 |  -0.0001 |   ops/s |
|                                                Max Throughput |     field_value_function_score |     1.50598 |     1.50599 |    1e-05 |   ops/s |
|                                       50th percentile latency |     field_value_function_score |     132.307 |     135.794 |  3.48632 |      ms |
|                                       90th percentile latency |     field_value_function_score |     140.455 |     148.329 |  7.87379 |      ms |
|                                       99th percentile latency |     field_value_function_score |     158.699 |     157.765 |  -0.9336 |      ms |
|                                      100th percentile latency |     field_value_function_score |     162.457 |     174.039 |   11.582 |      ms |
|                                  50th percentile service time |     field_value_function_score |     130.822 |     134.128 |  3.30596 |      ms |
|                                  90th percentile service time |     field_value_function_score |     138.988 |     147.065 |  8.07766 |      ms |
|                                  99th percentile service time |     field_value_function_score |     157.751 |     156.957 | -0.79341 |      ms |
|                                 100th percentile service time |     field_value_function_score |     160.633 |     173.185 |   12.552 |      ms |
|                                                    error rate |     field_value_function_score |           0 |           0 |        0 |       % |
|                                                Min Throughput |       field_value_script_score |     1.50348 |     1.50368 |   0.0002 |   ops/s |
|                                             Median Throughput |       field_value_script_score |     1.50438 |     1.50436 |   -3e-05 |   ops/s |
|                                                Max Throughput |       field_value_script_score |     1.50548 |     1.50549 |    1e-05 |   ops/s |
|                                       50th percentile latency |       field_value_script_score |     179.763 |     175.106 | -4.65713 |      ms |
|                                       90th percentile latency |       field_value_script_score |     190.924 |      183.29 | -7.63421 |      ms |
|                                       99th percentile latency |       field_value_script_score |     208.542 |     192.639 | -15.9028 |      ms |
|                                      100th percentile latency |       field_value_script_score |     213.928 |     201.038 | -12.8908 |      ms |
|                                  50th percentile service time |       field_value_script_score |     178.413 |     173.652 | -4.76143 |      ms |
|                                  90th percentile service time |       field_value_script_score |     189.547 |     181.929 | -7.61761 |      ms |
|                                  99th percentile service time |       field_value_script_score |     207.461 |      191.55 | -15.9117 |      ms |
|                                 100th percentile service time |       field_value_script_score |     211.202 |     199.279 | -11.9227 |      ms |
|                                                    error rate |       field_value_script_score |           0 |           0 |        0 |       % |
|                                                Min Throughput |          random_function_score |     1.50131 |     1.50243 |  0.00112 |   ops/s |
|                                             Median Throughput |          random_function_score |     1.50329 |     1.50326 |   -3e-05 |   ops/s |
|                                                Max Throughput |          random_function_score |     1.50415 |     1.50436 |  0.00021 |   ops/s |
|                                       50th percentile latency |          random_function_score |     294.016 |     297.246 |  3.23024 |      ms |
|                                       90th percentile latency |          random_function_score |     311.164 |     315.623 |   4.4591 |      ms |
|                                       99th percentile latency |          random_function_score |      427.23 |     339.469 | -87.7605 |      ms |
|                                      100th percentile latency |          random_function_score |     549.242 |     361.657 | -187.585 |      ms |
|                                  50th percentile service time |          random_function_score |      292.47 |     295.868 |  3.39768 |      ms |
|                                  90th percentile service time |          random_function_score |     310.034 |     314.056 |  4.02194 |      ms |
|                                  99th percentile service time |          random_function_score |     426.018 |     338.432 | -87.5868 |      ms |
|                                 100th percentile service time |          random_function_score |     548.327 |     360.549 | -187.778 |      ms |
|                                                    error rate |          random_function_score |           0 |           0 |        0 |       % |
|                                                Min Throughput |            random_script_score |     1.50213 |     1.50157 | -0.00055 |   ops/s |
|                                             Median Throughput |            random_script_score |      1.5035 |     1.50344 |   -6e-05 |   ops/s |
|                                                Max Throughput |            random_script_score |     1.50452 |     1.50432 |  -0.0002 |   ops/s |
|                                       50th percentile latency |            random_script_score |     278.375 |     285.283 |  6.90843 |      ms |
|                                       90th percentile latency |            random_script_score |     298.983 |     313.988 |  15.0045 |      ms |
|                                       99th percentile latency |            random_script_score |     395.953 |     440.909 |  44.9563 |      ms |
|                                      100th percentile latency |            random_script_score |      415.53 |     458.343 |   42.813 |      ms |
|                                  50th percentile service time |            random_script_score |     276.964 |     284.091 |  7.12742 |      ms |
|                                  90th percentile service time |            random_script_score |     298.177 |     312.951 |  14.7739 |      ms |
|                                  99th percentile service time |            random_script_score |     394.996 |     440.079 |  45.0832 |      ms |
|                                 100th percentile service time |            random_script_score |     414.283 |     457.064 |  42.7808 |      ms |
|                                                    error rate |            random_script_score |           0 |           0 |        0 |       % |
|                                                Min Throughput |                    large_terms |      1.1014 |     1.10136 |   -4e-05 |   ops/s |
|                                             Median Throughput |                    large_terms |     1.10177 |     1.10176 |   -1e-05 |   ops/s |
|                                                Max Throughput |                    large_terms |     1.10228 |     1.10225 |   -3e-05 |   ops/s |
|                                       50th percentile latency |                    large_terms |     538.712 |     544.892 |  6.17995 |      ms |
|                                       90th percentile latency |                    large_terms |     555.039 |     558.735 |  3.69594 |      ms |
|                                       99th percentile latency |                    large_terms |     568.512 |     581.864 |  13.3519 |      ms |
|                                      100th percentile latency |                    large_terms |     587.286 |     583.799 | -3.48712 |      ms |
|                                  50th percentile service time |                    large_terms |     526.649 |     533.262 |   6.6131 |      ms |
|                                  90th percentile service time |                    large_terms |     544.063 |     546.942 |  2.87946 |      ms |
|                                  99th percentile service time |                    large_terms |     556.239 |     570.274 |  14.0347 |      ms |
|                                 100th percentile service time |                    large_terms |      575.28 |     572.405 | -2.87464 |      ms |
|                                                    error rate |                    large_terms |           0 |           0 |        0 |       % |
|                                                Min Throughput |           large_filtered_terms |     1.10142 |     1.10127 | -0.00014 |   ops/s |
|                                             Median Throughput |           large_filtered_terms |     1.10177 |     1.10174 |   -3e-05 |   ops/s |
|                                                Max Throughput |           large_filtered_terms |     1.10225 |     1.10218 |   -7e-05 |   ops/s |
|                                       50th percentile latency |           large_filtered_terms |     544.618 |      549.03 |  4.41157 |      ms |
|                                       90th percentile latency |           large_filtered_terms |     559.312 |     565.456 |  6.14384 |      ms |
|                                       99th percentile latency |           large_filtered_terms |     572.496 |     590.994 |  18.4977 |      ms |
|                                      100th percentile latency |           large_filtered_terms |     586.435 |     595.837 |  9.40162 |      ms |
|                                  50th percentile service time |           large_filtered_terms |     532.809 |     538.376 |  5.56755 |      ms |
|                                  90th percentile service time |           large_filtered_terms |     548.773 |     554.233 |  5.46027 |      ms |
|                                  99th percentile service time |           large_filtered_terms |     558.881 |     578.741 |  19.8594 |      ms |
|                                 100th percentile service time |           large_filtered_terms |      575.08 |     583.618 |  8.53782 |      ms |
|                                                    error rate |           large_filtered_terms |           0 |           0 |        0 |       % |
|                                                Min Throughput |         large_prohibited_terms |     1.10147 |     1.10139 |   -8e-05 |   ops/s |
|                                             Median Throughput |         large_prohibited_terms |     1.10178 |     1.10172 |   -6e-05 |   ops/s |
|                                                Max Throughput |         large_prohibited_terms |     1.10225 |     1.10222 |   -3e-05 |   ops/s |
|                                       50th percentile latency |         large_prohibited_terms |      535.94 |     547.118 |  11.1784 |      ms |
|                                       90th percentile latency |         large_prohibited_terms |     548.893 |     563.428 |  14.5344 |      ms |
|                                       99th percentile latency |         large_prohibited_terms |     557.205 |       580.5 |  23.2949 |      ms |
|                                      100th percentile latency |         large_prohibited_terms |     563.134 |     586.383 |  23.2489 |      ms |
|                                  50th percentile service time |         large_prohibited_terms |     524.175 |     535.983 |  11.8083 |      ms |
|                                  90th percentile service time |         large_prohibited_terms |     536.518 |      551.33 |  14.8115 |      ms |
|                                  99th percentile service time |         large_prohibited_terms |     546.158 |     569.021 |  22.8638 |      ms |
|                                 100th percentile service time |         large_prohibited_terms |     551.184 |     576.073 |  24.8895 |      ms |
|                                                    error rate |         large_prohibited_terms |           0 |           0 |        0 |       % |
|                                                Min Throughput |           desc_sort_population |     1.50456 |     1.50453 |   -2e-05 |   ops/s |
|                                             Median Throughput |           desc_sort_population |     1.50546 |     1.50546 |   -1e-05 |   ops/s |
|                                                Max Throughput |           desc_sort_population |     1.50682 |     1.50687 |    6e-05 |   ops/s |
|                                       50th percentile latency |           desc_sort_population |     57.0105 |     57.3223 |  0.31182 |      ms |
|                                       90th percentile latency |           desc_sort_population |     71.3236 |     72.5247 |  1.20114 |      ms |
|                                       99th percentile latency |           desc_sort_population |      83.533 |     85.2779 |  1.74489 |      ms |
|                                      100th percentile latency |           desc_sort_population |      86.515 |     88.0446 |  1.52956 |      ms |
|                                  50th percentile service time |           desc_sort_population |     55.7055 |     55.9111 |  0.20567 |      ms |
|                                  90th percentile service time |           desc_sort_population |     69.8074 |     71.1356 |  1.32814 |      ms |
|                                  99th percentile service time |           desc_sort_population |     81.6771 |     83.5993 |  1.92216 |      ms |
|                                 100th percentile service time |           desc_sort_population |      85.472 |     86.3341 |  0.86211 |      ms |
|                                                    error rate |           desc_sort_population |           0 |           0 |        0 |       % |
|                                                Min Throughput |            asc_sort_population |      1.5046 |     1.50459 |   -1e-05 |   ops/s |
|                                             Median Throughput |            asc_sort_population |     1.50551 |     1.50549 |   -2e-05 |   ops/s |
|                                                Max Throughput |            asc_sort_population |     1.50687 |     1.50684 |   -3e-05 |   ops/s |
|                                       50th percentile latency |            asc_sort_population |     57.4383 |      57.362 | -0.07637 |      ms |
|                                       90th percentile latency |            asc_sort_population |     63.9527 |     59.0956 | -4.85708 |      ms |
|                                       99th percentile latency |            asc_sort_population |     79.8018 |     79.0672 |  -0.7346 |      ms |
|                                      100th percentile latency |            asc_sort_population |     81.7145 |      80.895 | -0.81955 |      ms |
|                                  50th percentile service time |            asc_sort_population |     55.8782 |     55.7707 | -0.10748 |      ms |
|                                  90th percentile service time |            asc_sort_population |     62.3477 |     57.7517 | -4.59606 |      ms |
|                                  99th percentile service time |            asc_sort_population |     78.8495 |     77.3354 | -1.51412 |      ms |
|                                 100th percentile service time |            asc_sort_population |     80.2237 |     79.8055 | -0.41823 |      ms |
|                                                    error rate |            asc_sort_population |           0 |           0 |        0 |       % |
|                                                Min Throughput |            desc_sort_geonameid |     6.01897 |     6.01909 |  0.00012 |   ops/s |
|                                             Median Throughput |            desc_sort_geonameid |     6.02269 |     6.02252 | -0.00017 |   ops/s |
|                                                Max Throughput |            desc_sort_geonameid |      6.0275 |      6.0274 |  -0.0001 |   ops/s |
|                                       50th percentile latency |            desc_sort_geonameid |     9.97081 |     10.5474 |  0.57659 |      ms |
|                                       90th percentile latency |            desc_sort_geonameid |     11.1421 |     11.3281 |  0.18595 |      ms |
|                                       99th percentile latency |            desc_sort_geonameid |     12.5879 |     12.0353 | -0.55265 |      ms |
|                                      100th percentile latency |            desc_sort_geonameid |     16.4711 |     19.1101 |  2.63893 |      ms |
|                                  50th percentile service time |            desc_sort_geonameid |     8.93491 |     9.59559 |  0.66068 |      ms |
|                                  90th percentile service time |            desc_sort_geonameid |     9.96624 |     10.2854 |  0.31918 |      ms |
|                                  99th percentile service time |            desc_sort_geonameid |     12.0252 |     11.4374 | -0.58786 |      ms |
|                                 100th percentile service time |            desc_sort_geonameid |     15.4065 |     17.9388 |  2.53232 |      ms |
|                                                    error rate |            desc_sort_geonameid |           0 |           0 |        0 |       % |
|                                                Min Throughput |             asc_sort_geonameid |     6.01959 |     6.01947 | -0.00012 |   ops/s |
|                                             Median Throughput |             asc_sort_geonameid |     6.02316 |     6.02317 |    1e-05 |   ops/s |
|                                                Max Throughput |             asc_sort_geonameid |     6.02823 |     6.02821 |   -2e-05 |   ops/s |
|                                       50th percentile latency |             asc_sort_geonameid |      6.2579 |      6.6512 |  0.39329 |      ms |
|                                       90th percentile latency |             asc_sort_geonameid |     6.95342 |     7.43906 |  0.48564 |      ms |
|                                       99th percentile latency |             asc_sort_geonameid |     7.46602 |     7.69799 |  0.23197 |      ms |
|                                      100th percentile latency |             asc_sort_geonameid |     10.7804 |     7.84413 | -2.93622 |      ms |
|                                  50th percentile service time |             asc_sort_geonameid |     5.42366 |     5.78722 |  0.36356 |      ms |
|                                  90th percentile service time |             asc_sort_geonameid |     5.83628 |     6.23078 |  0.39451 |      ms |
|                                  99th percentile service time |             asc_sort_geonameid |     6.72197 |     6.37217 | -0.34979 |      ms |
|                                 100th percentile service time |             asc_sort_geonameid |     9.88161 |     6.42502 | -3.45659 |      ms |
|                                                    error rate |             asc_sort_geonameid |           0 |           0 |        0 |       % |

@jaymode
Copy link
Member Author

jaymode commented Jun 18, 2020

After some iterations, the performance impact has been reduced to basically noise.

|                                                        Metric |                           Task |    Baseline |   Contender |     Diff |    Unit |
|--------------------------------------------------------------:|-------------------------------:|------------:|------------:|---------:|--------:|
|                    Cumulative indexing time of primary shards |                                |     27.9629 |     27.4674 | -0.49548 |     min |
|             Min cumulative indexing time across primary shard |                                |     5.54262 |     5.38652 |  -0.1561 |     min |
|          Median cumulative indexing time across primary shard |                                |     5.59878 |     5.49352 | -0.10527 |     min |
|             Max cumulative indexing time across primary shard |                                |      5.6363 |     5.59397 | -0.04233 |     min |
|           Cumulative indexing throttle time of primary shards |                                |           0 |           0 |        0 |     min |
|    Min cumulative indexing throttle time across primary shard |                                |           0 |           0 |        0 |     min |
| Median cumulative indexing throttle time across primary shard |                                |           0 |           0 |        0 |     min |
|    Max cumulative indexing throttle time across primary shard |                                |           0 |           0 |        0 |     min |
|                       Cumulative merge time of primary shards |                                |     10.7735 |     10.7283 | -0.04522 |     min |
|                      Cumulative merge count of primary shards |                                |         223 |         217 |       -6 |         |
|                Min cumulative merge time across primary shard |                                |      1.9659 |     2.02442 |  0.05852 |     min |
|             Median cumulative merge time across primary shard |                                |     2.19115 |     2.13897 | -0.05218 |     min |
|                Max cumulative merge time across primary shard |                                |     2.25335 |       2.263 |  0.00965 |     min |
|              Cumulative merge throttle time of primary shards |                                |      1.1017 |     1.07728 | -0.02442 |     min |
|       Min cumulative merge throttle time across primary shard |                                |      0.1374 |    0.157733 |  0.02033 |     min |
|    Median cumulative merge throttle time across primary shard |                                |      0.2452 |    0.212767 | -0.03243 |     min |
|       Max cumulative merge throttle time across primary shard |                                |    0.255017 |    0.276967 |  0.02195 |     min |
|                     Cumulative refresh time of primary shards |                                |     1.89528 |     2.12902 |  0.23373 |     min |
|                    Cumulative refresh count of primary shards |                                |         339 |         338 |       -1 |         |
|              Min cumulative refresh time across primary shard |                                |    0.374667 |    0.408533 |  0.03387 |     min |
|           Median cumulative refresh time across primary shard |                                |    0.377633 |      0.4285 |  0.05087 |     min |
|              Max cumulative refresh time across primary shard |                                |    0.387817 |      0.4398 |  0.05198 |     min |
|                       Cumulative flush time of primary shards |                                |      0.2372 |    0.256417 |  0.01922 |     min |
|                      Cumulative flush count of primary shards |                                |          10 |          10 |        0 |         |
|                Min cumulative flush time across primary shard |                                |   0.0429667 |   0.0476167 |  0.00465 |     min |
|             Median cumulative flush time across primary shard |                                |      0.0466 |   0.0525667 |  0.00597 |     min |
|                Max cumulative flush time across primary shard |                                |      0.0527 |   0.0536833 |  0.00098 |     min |
|                                            Total Young Gen GC |                                |      17.001 |      17.422 |    0.421 |       s |
|                                              Total Old Gen GC |                                |           0 |           0 |        0 |       s |
|                                                    Store size |                                |     3.08973 |      3.0741 | -0.01563 |      GB |
|                                                 Translog size |                                | 2.56114e-07 | 2.56114e-07 |        0 |      GB |
|                                        Heap used for segments |                                |    0.764217 |    0.712002 | -0.05222 |      MB |
|                                      Heap used for doc values |                                |   0.0470695 |    0.049221 |  0.00215 |      MB |
|                                           Heap used for terms |                                |    0.578423 |    0.533241 | -0.04518 |      MB |
|                                           Heap used for norms |                                |   0.0759277 |   0.0700073 | -0.00592 |      MB |
|                                          Heap used for points |                                |           0 |           0 |        0 |      MB |
|                                   Heap used for stored fields |                                |   0.0627975 |   0.0595322 | -0.00327 |      MB |
|                                                 Segment count |                                |          99 |          91 |       -8 |         |
|                                                    error rate |                   index-append |           0 |           0 |        0 |       % |
|                                                Min Throughput |                    index-stats |     90.0462 |     90.0346 | -0.01161 |   ops/s |
|                                             Median Throughput |                    index-stats |     90.0586 |     90.0443 | -0.01425 |   ops/s |
|                                                Max Throughput |                    index-stats |     90.1187 |     90.0724 | -0.04623 |   ops/s |
|                                       50th percentile latency |                    index-stats |     3.22885 |     4.33896 |  1.11011 |      ms |
|                                       90th percentile latency |                    index-stats |     3.98777 |     5.75276 |    1.765 |      ms |
|                                       99th percentile latency |                    index-stats |     4.92574 |     7.27794 |   2.3522 |      ms |
|                                     99.9th percentile latency |                    index-stats |     6.42996 |     12.8985 |  6.46852 |      ms |
|                                      100th percentile latency |                    index-stats |     7.84386 |     18.6099 |  10.7661 |      ms |
|                                  50th percentile service time |                    index-stats |     2.44718 |     3.62428 |   1.1771 |      ms |
|                                  90th percentile service time |                    index-stats |     2.70624 |     4.88122 |  2.17499 |      ms |
|                                  99th percentile service time |                    index-stats |     3.02861 |     6.24987 |  3.22126 |      ms |
|                                99.9th percentile service time |                    index-stats |     5.51153 |     11.9292 |  6.41766 |      ms |
|                                 100th percentile service time |                    index-stats |     5.87049 |     17.9277 |  12.0572 |      ms |
|                                                    error rate |                    index-stats |           0 |           0 |        0 |       % |
|                                                Min Throughput |                     node-stats |     90.0334 |     89.9819 | -0.05145 |   ops/s |
|                                             Median Throughput |                     node-stats |     90.0998 |     90.0773 | -0.02253 |   ops/s |
|                                                Max Throughput |                     node-stats |     90.3575 |     90.2911 | -0.06637 |   ops/s |
|                                       50th percentile latency |                     node-stats |     3.41919 |     4.28294 |  0.86375 |      ms |
|                                       90th percentile latency |                     node-stats |     4.20366 |     5.21364 |  1.00998 |      ms |
|                                       99th percentile latency |                     node-stats |     7.53546 |      8.0329 |  0.49744 |      ms |
|                                     99.9th percentile latency |                     node-stats |     10.8176 |     9.90864 | -0.90895 |      ms |
|                                      100th percentile latency |                     node-stats |      12.115 |     11.8942 | -0.22082 |      ms |
|                                  50th percentile service time |                     node-stats |     2.62575 |     3.55369 |  0.92794 |      ms |
|                                  90th percentile service time |                     node-stats |     3.08955 |     4.27499 |  1.18544 |      ms |
|                                  99th percentile service time |                     node-stats |     6.72879 |     7.05215 |  0.32336 |      ms |
|                                99.9th percentile service time |                     node-stats |     9.56558 |     9.22998 |  -0.3356 |      ms |
|                                 100th percentile service time |                     node-stats |     11.4491 |      11.063 | -0.38609 |      ms |
|                                                    error rate |                     node-stats |           0 |           0 |        0 |       % |
|                                                Min Throughput |                        default |     50.0301 |     50.0289 | -0.00111 |   ops/s |
|                                             Median Throughput |                        default |     50.0447 |     50.0427 | -0.00203 |   ops/s |
|                                                Max Throughput |                        default |      50.074 |     50.0756 |  0.00158 |   ops/s |
|                                       50th percentile latency |                        default |     2.97682 |     2.99765 |  0.02082 |      ms |
|                                       90th percentile latency |                        default |     3.95216 |     3.96532 |  0.01315 |      ms |
|                                       99th percentile latency |                        default |     4.44331 |     4.46432 |  0.02101 |      ms |
|                                     99.9th percentile latency |                        default |     6.93001 |     8.10148 |  1.17148 |      ms |
|                                      100th percentile latency |                        default |     14.5552 |     14.5967 |  0.04148 |      ms |
|                                  50th percentile service time |                        default |     1.79992 |     1.84973 |  0.04981 |      ms |
|                                  90th percentile service time |                        default |     2.07201 |     2.10041 |   0.0284 |      ms |
|                                  99th percentile service time |                        default |     2.51326 |     2.47831 | -0.03496 |      ms |
|                                99.9th percentile service time |                        default |     4.83358 |     5.24056 |  0.40698 |      ms |
|                                 100th percentile service time |                        default |     14.1919 |      13.702 | -0.48987 |      ms |
|                                                    error rate |                        default |           0 |           0 |        0 |       % |
|                                                Min Throughput |                           term |     150.071 |     150.064 | -0.00725 |   ops/s |
|                                             Median Throughput |                           term |     150.102 |     150.096 | -0.00645 |   ops/s |
|                                                Max Throughput |                           term |     150.153 |     150.166 |  0.01307 |   ops/s |
|                                       50th percentile latency |                           term |     2.55242 |      2.7076 |  0.15518 |      ms |
|                                       90th percentile latency |                           term |     2.99873 |      3.1935 |  0.19477 |      ms |
|                                       99th percentile latency |                           term |     3.62588 |     7.09711 |  3.47123 |      ms |
|                                     99.9th percentile latency |                           term |     12.0412 |     24.4227 |  12.3814 |      ms |
|                                      100th percentile latency |                           term |     14.0203 |     29.2712 |  15.2509 |      ms |
|                                  50th percentile service time |                           term |     1.79458 |       1.914 |  0.11943 |      ms |
|                                  90th percentile service time |                           term |     1.99989 |     2.10956 |  0.10967 |      ms |
|                                  99th percentile service time |                           term |     2.58924 |     2.88141 |  0.29217 |      ms |
|                                99.9th percentile service time |                           term |     11.7106 |     12.1843 |   0.4737 |      ms |
|                                 100th percentile service time |                           term |     13.5148 |     28.4385 |  14.9238 |      ms |
|                                                    error rate |                           term |           0 |           0 |        0 |       % |
|                                                Min Throughput |                         phrase |     149.921 |     149.931 |  0.00934 |   ops/s |
|                                             Median Throughput |                         phrase |     150.064 |     150.079 |  0.01501 |   ops/s |
|                                                Max Throughput |                         phrase |     150.126 |     150.139 |  0.01328 |   ops/s |
|                                       50th percentile latency |                         phrase |     3.08936 |     2.73942 | -0.34994 |      ms |
|                                       90th percentile latency |                         phrase |     3.55945 |     3.16536 | -0.39409 |      ms |
|                                       99th percentile latency |                         phrase |     7.32954 |     6.18832 | -1.14122 |      ms |
|                                     99.9th percentile latency |                         phrase |     12.2701 |     14.2483 |  1.97819 |      ms |
|                                      100th percentile latency |                         phrase |     12.4819 |     17.3115 |  4.82965 |      ms |
|                                  50th percentile service time |                         phrase |     2.27954 |     1.94933 | -0.33021 |      ms |
|                                  90th percentile service time |                         phrase |     2.54126 |     2.14626 |   -0.395 |      ms |
|                                  99th percentile service time |                         phrase |     4.09933 |     2.97256 | -1.12677 |      ms |
|                                99.9th percentile service time |                         phrase |     11.3596 |     9.99235 | -1.36728 |      ms |
|                                 100th percentile service time |                         phrase |     12.2347 |     12.3987 |  0.16399 |      ms |
|                                                    error rate |                         phrase |           0 |           0 |        0 |       % |
|                                                Min Throughput |           country_agg_uncached |     3.60024 |     3.60298 |  0.00274 |   ops/s |
|                                             Median Throughput |           country_agg_uncached |     3.60392 |     3.60418 |  0.00026 |   ops/s |
|                                                Max Throughput |           country_agg_uncached |     3.60475 |     3.60561 |  0.00086 |   ops/s |
|                                       50th percentile latency |           country_agg_uncached |     200.741 |     195.615 | -5.12603 |      ms |
|                                       90th percentile latency |           country_agg_uncached |      215.55 |     204.069 | -11.4807 |      ms |
|                                       99th percentile latency |           country_agg_uncached |     265.859 |     224.777 | -41.0819 |      ms |
|                                      100th percentile latency |           country_agg_uncached |     273.537 |     230.848 |  -42.689 |      ms |
|                                  50th percentile service time |           country_agg_uncached |     199.509 |     194.464 | -5.04509 |      ms |
|                                  90th percentile service time |           country_agg_uncached |     214.504 |     203.288 | -11.2155 |      ms |
|                                  99th percentile service time |           country_agg_uncached |     264.443 |     224.285 | -40.1577 |      ms |
|                                 100th percentile service time |           country_agg_uncached |     273.096 |     229.891 | -43.2049 |      ms |
|                                                    error rate |           country_agg_uncached |           0 |           0 |        0 |       % |
|                                                Min Throughput |             country_agg_cached |     100.042 |     100.008 | -0.03432 |   ops/s |
|                                             Median Throughput |             country_agg_cached |     100.052 |     100.045 | -0.00656 |   ops/s |
|                                                Max Throughput |             country_agg_cached |     100.079 |     100.066 |  -0.0131 |   ops/s |
|                                       50th percentile latency |             country_agg_cached |     2.32412 |     2.47915 |  0.15504 |      ms |
|                                       90th percentile latency |             country_agg_cached |     2.82587 |     2.90024 |  0.07437 |      ms |
|                                       99th percentile latency |             country_agg_cached |     3.91532 |     3.87265 | -0.04267 |      ms |
|                                     99.9th percentile latency |             country_agg_cached |     16.9551 |     14.9099 | -2.04526 |      ms |
|                                      100th percentile latency |             country_agg_cached |     24.3528 |     18.9749 | -5.37793 |      ms |
|                                  50th percentile service time |             country_agg_cached |     1.55322 |     1.64603 |  0.09281 |      ms |
|                                  90th percentile service time |             country_agg_cached |     1.71736 |     1.82494 |  0.10758 |      ms |
|                                  99th percentile service time |             country_agg_cached |     2.07241 |     2.49061 |   0.4182 |      ms |
|                                99.9th percentile service time |             country_agg_cached |     7.29706 |      7.7812 |  0.48414 |      ms |
|                                 100th percentile service time |             country_agg_cached |     23.4985 |     18.6625 | -4.83603 |      ms |
|                                                    error rate |             country_agg_cached |           0 |           0 |        0 |       % |
|                                                Min Throughput |                         scroll |      20.023 |     20.0205 | -0.00249 | pages/s |
|                                             Median Throughput |                         scroll |     20.0275 |     20.0257 | -0.00184 | pages/s |
|                                                Max Throughput |                         scroll |      20.036 |     20.0323 | -0.00366 | pages/s |
|                                       50th percentile latency |                         scroll |     814.303 |     847.804 |  33.5011 |      ms |
|                                       90th percentile latency |                         scroll |     833.304 |     866.235 |  32.9306 |      ms |
|                                       99th percentile latency |                         scroll |     855.211 |     886.912 |  31.7013 |      ms |
|                                      100th percentile latency |                         scroll |     859.719 |     887.959 |  28.2392 |      ms |
|                                  50th percentile service time |                         scroll |     813.084 |     846.536 |  33.4525 |      ms |
|                                  90th percentile service time |                         scroll |      832.47 |     864.324 |  31.8542 |      ms |
|                                  99th percentile service time |                         scroll |     853.533 |     885.523 |  31.9907 |      ms |
|                                 100th percentile service time |                         scroll |     858.291 |     886.268 |  27.9769 |      ms |
|                                                    error rate |                         scroll |           0 |           0 |        0 |       % |
|                                                Min Throughput |                     expression |     2.00208 |     2.00248 |   0.0004 |   ops/s |
|                                             Median Throughput |                     expression |     2.00286 |     2.00316 |   0.0003 |   ops/s |
|                                                Max Throughput |                     expression |     2.00377 |     2.00401 |  0.00024 |   ops/s |
|                                       50th percentile latency |                     expression |     317.186 |     304.057 | -13.1288 |      ms |
|                                       90th percentile latency |                     expression |      334.39 |     312.329 | -22.0611 |      ms |
|                                       99th percentile latency |                     expression |     348.892 |     318.378 |  -30.514 |      ms |
|                                      100th percentile latency |                     expression |     350.863 |     319.661 | -31.2027 |      ms |
|                                  50th percentile service time |                     expression |     315.867 |     302.637 | -13.2297 |      ms |
|                                  90th percentile service time |                     expression |     333.085 |     311.037 | -22.0482 |      ms |
|                                  99th percentile service time |                     expression |     347.993 |      317.59 | -30.4029 |      ms |
|                                 100th percentile service time |                     expression |     349.404 |     318.457 | -30.9475 |      ms |
|                                                    error rate |                     expression |           0 |           0 |        0 |       % |
|                                                Min Throughput |                painless_static |     1.49931 |     1.49977 |  0.00047 |   ops/s |
|                                             Median Throughput |                painless_static |     1.50232 |     1.50249 |  0.00017 |   ops/s |
|                                                Max Throughput |                painless_static |      1.5032 |     1.50329 |   0.0001 |   ops/s |
|                                       50th percentile latency |                painless_static |     395.755 |     375.738 | -20.0176 |      ms |
|                                       90th percentile latency |                painless_static |     456.246 |     421.307 | -34.9389 |      ms |
|                                       99th percentile latency |                painless_static |     727.914 |     650.353 | -77.5611 |      ms |
|                                      100th percentile latency |                painless_static |     735.307 |     693.894 | -41.4136 |      ms |
|                                  50th percentile service time |                painless_static |     394.202 |       374.2 | -20.0025 |      ms |
|                                  90th percentile service time |                painless_static |     443.535 |     416.548 | -26.9865 |      ms |
|                                  99th percentile service time |                painless_static |     726.827 |     648.995 | -77.8325 |      ms |
|                                 100th percentile service time |                painless_static |     733.651 |     691.507 | -42.1435 |      ms |
|                                                    error rate |                painless_static |           0 |           0 |        0 |       % |
|                                                Min Throughput |               painless_dynamic |     1.50174 |     1.50145 | -0.00029 |   ops/s |
|                                             Median Throughput |               painless_dynamic |     1.50248 |     1.50259 |  0.00011 |   ops/s |
|                                                Max Throughput |               painless_dynamic |     1.50324 |     1.50346 |  0.00022 |   ops/s |
|                                       50th percentile latency |               painless_dynamic |     388.612 |     378.896 | -9.71588 |      ms |
|                                       90th percentile latency |               painless_dynamic |     430.542 |     413.464 | -17.0785 |      ms |
|                                       99th percentile latency |               painless_dynamic |     525.537 |     552.422 |  26.8842 |      ms |
|                                      100th percentile latency |               painless_dynamic |      534.16 |     556.015 |  21.8558 |      ms |
|                                  50th percentile service time |               painless_dynamic |     387.395 |     377.866 | -9.52849 |      ms |
|                                  90th percentile service time |               painless_dynamic |     429.413 |     412.618 | -16.7948 |      ms |
|                                  99th percentile service time |               painless_dynamic |       524.3 |     551.143 |  26.8426 |      ms |
|                                 100th percentile service time |               painless_dynamic |     533.392 |     555.483 |  22.0902 |      ms |
|                                                    error rate |               painless_dynamic |           0 |           0 |        0 |       % |
|                                                Min Throughput | decay_geo_gauss_function_score |      1.0021 |     1.00209 |   -1e-05 |   ops/s |
|                                             Median Throughput | decay_geo_gauss_function_score |     1.00266 |     1.00267 |    1e-05 |   ops/s |
|                                                Max Throughput | decay_geo_gauss_function_score |     1.00328 |     1.00334 |    6e-05 |   ops/s |
|                                       50th percentile latency | decay_geo_gauss_function_score |     336.888 |     331.874 | -5.01396 |      ms |
|                                       90th percentile latency | decay_geo_gauss_function_score |     349.385 |     344.431 | -4.95374 |      ms |
|                                       99th percentile latency | decay_geo_gauss_function_score |     369.932 |     378.346 |  8.41475 |      ms |
|                                      100th percentile latency | decay_geo_gauss_function_score |     378.358 |     383.781 |  5.42292 |      ms |
|                                  50th percentile service time | decay_geo_gauss_function_score |     335.357 |      330.46 | -4.89643 |      ms |
|                                  90th percentile service time | decay_geo_gauss_function_score |     348.041 |     343.095 |   -4.946 |      ms |
|                                  99th percentile service time | decay_geo_gauss_function_score |     368.166 |     376.583 |  8.41686 |      ms |
|                                 100th percentile service time | decay_geo_gauss_function_score |     376.833 |     382.638 |  5.80579 |      ms |
|                                                    error rate | decay_geo_gauss_function_score |           0 |           0 |        0 |       % |
|                                                Min Throughput |   decay_geo_gauss_script_score |     1.00114 |     1.00143 |  0.00029 |   ops/s |
|                                             Median Throughput |   decay_geo_gauss_script_score |     1.00257 |     1.00256 |   -1e-05 |   ops/s |
|                                                Max Throughput |   decay_geo_gauss_script_score |     1.00323 |      1.0032 |   -3e-05 |   ops/s |
|                                       50th percentile latency |   decay_geo_gauss_script_score |     354.206 |      357.58 |  3.37462 |      ms |
|                                       90th percentile latency |   decay_geo_gauss_script_score |     371.421 |     374.092 |  2.67148 |      ms |
|                                       99th percentile latency |   decay_geo_gauss_script_score |     451.905 |     532.492 |  80.5874 |      ms |
|                                      100th percentile latency |   decay_geo_gauss_script_score |     715.811 |     584.953 | -130.858 |      ms |
|                                  50th percentile service time |   decay_geo_gauss_script_score |     352.582 |     355.933 |  3.35119 |      ms |
|                                  90th percentile service time |   decay_geo_gauss_script_score |     369.508 |     372.814 |  3.30625 |      ms |
|                                  99th percentile service time |   decay_geo_gauss_script_score |     450.109 |     530.907 |  80.7977 |      ms |
|                                 100th percentile service time |   decay_geo_gauss_script_score |     714.034 |     583.349 | -130.685 |      ms |
|                                                    error rate |   decay_geo_gauss_script_score |           0 |           0 |        0 |       % |
|                                                Min Throughput |     field_value_function_score |     1.50383 |     1.50403 |   0.0002 |   ops/s |
|                                             Median Throughput |     field_value_function_score |      1.5047 |     1.50482 |  0.00012 |   ops/s |
|                                                Max Throughput |     field_value_function_score |     1.50582 |     1.50601 |   0.0002 |   ops/s |
|                                       50th percentile latency |     field_value_function_score |     146.953 |      133.09 | -13.8634 |      ms |
|                                       90th percentile latency |     field_value_function_score |     155.996 |     144.052 |  -11.944 |      ms |
|                                       99th percentile latency |     field_value_function_score |     167.876 |      153.32 | -14.5561 |      ms |
|                                      100th percentile latency |     field_value_function_score |     179.069 |     155.646 | -23.4232 |      ms |
|                                  50th percentile service time |     field_value_function_score |       145.4 |     131.034 | -14.3664 |      ms |
|                                  90th percentile service time |     field_value_function_score |     154.472 |     142.626 | -11.8463 |      ms |
|                                  99th percentile service time |     field_value_function_score |     166.747 |     152.066 | -14.6817 |      ms |
|                                 100th percentile service time |     field_value_function_score |      177.73 |     153.662 | -24.0686 |      ms |
|                                                    error rate |     field_value_function_score |           0 |           0 |        0 |       % |
|                                                Min Throughput |       field_value_script_score |     1.50359 |     1.50366 |    7e-05 |   ops/s |
|                                             Median Throughput |       field_value_script_score |     1.50438 |     1.50446 |    8e-05 |   ops/s |
|                                                Max Throughput |       field_value_script_score |     1.50559 |     1.50564 |    5e-05 |   ops/s |
|                                       50th percentile latency |       field_value_script_score |     181.855 |     171.831 |  -10.024 |      ms |
|                                       90th percentile latency |       field_value_script_score |     195.158 |     181.931 | -13.2268 |      ms |
|                                       99th percentile latency |       field_value_script_score |      216.09 |     192.692 | -23.3981 |      ms |
|                                      100th percentile latency |       field_value_script_score |     221.491 |     192.709 | -28.7814 |      ms |
|                                  50th percentile service time |       field_value_script_score |     180.566 |     170.472 | -10.0933 |      ms |
|                                  90th percentile service time |       field_value_script_score |     193.106 |     180.428 |  -12.678 |      ms |
|                                  99th percentile service time |       field_value_script_score |      215.02 |     190.297 | -24.7235 |      ms |
|                                 100th percentile service time |       field_value_script_score |     220.586 |     191.124 | -29.4619 |      ms |
|                                                    error rate |       field_value_script_score |           0 |           0 |        0 |       % |
|                                                Min Throughput |          random_function_score |     1.50226 |     1.50254 |  0.00028 |   ops/s |
|                                             Median Throughput |          random_function_score |     1.50335 |     1.50333 |   -2e-05 |   ops/s |
|                                                Max Throughput |          random_function_score |     1.50435 |     1.50431 |   -4e-05 |   ops/s |
|                                       50th percentile latency |          random_function_score |     294.239 |     288.994 | -5.24544 |      ms |
|                                       90th percentile latency |          random_function_score |     315.896 |     313.984 | -1.91253 |      ms |
|                                       99th percentile latency |          random_function_score |     367.508 |     367.471 | -0.03767 |      ms |
|                                      100th percentile latency |          random_function_score |     383.336 |     399.245 |  15.9082 |      ms |
|                                  50th percentile service time |          random_function_score |     293.085 |     287.799 | -5.28609 |      ms |
|                                  90th percentile service time |          random_function_score |     314.315 |     312.826 | -1.48826 |      ms |
|                                  99th percentile service time |          random_function_score |     365.703 |     366.504 |  0.80165 |      ms |
|                                 100th percentile service time |          random_function_score |     382.057 |     398.599 |  16.5422 |      ms |
|                                                    error rate |          random_function_score |           0 |           0 |        0 |       % |
|                                                Min Throughput |            random_script_score |     1.50181 |     1.50192 |  0.00011 |   ops/s |
|                                             Median Throughput |            random_script_score |     1.50333 |     1.50342 |   0.0001 |   ops/s |
|                                                Max Throughput |            random_script_score |     1.50451 |     1.50445 |   -6e-05 |   ops/s |
|                                       50th percentile latency |            random_script_score |     286.662 |     281.163 | -5.49845 |      ms |
|                                       90th percentile latency |            random_script_score |     318.262 |      311.11 | -7.15202 |      ms |
|                                       99th percentile latency |            random_script_score |     438.636 |     388.408 | -50.2285 |      ms |
|                                      100th percentile latency |            random_script_score |     457.643 |     420.851 | -36.7924 |      ms |
|                                  50th percentile service time |            random_script_score |     285.623 |     279.973 | -5.65017 |      ms |
|                                  90th percentile service time |            random_script_score |      317.33 |     310.058 | -7.27184 |      ms |
|                                  99th percentile service time |            random_script_score |     437.547 |     387.283 | -50.2638 |      ms |
|                                 100th percentile service time |            random_script_score |     456.289 |     419.811 |  -36.478 |      ms |
|                                                    error rate |            random_script_score |           0 |           0 |        0 |       % |
|                                                Min Throughput |                    large_terms |     1.10143 |     1.10143 |        0 |   ops/s |
|                                             Median Throughput |                    large_terms |     1.10181 |     1.10178 |   -3e-05 |   ops/s |
|                                                Max Throughput |                    large_terms |     1.10228 |     1.10221 |   -7e-05 |   ops/s |
|                                       50th percentile latency |                    large_terms |     538.032 |     540.477 |  2.44458 |      ms |
|                                       90th percentile latency |                    large_terms |     552.918 |     557.451 |  4.53274 |      ms |
|                                       99th percentile latency |                    large_terms |     567.615 |     566.558 | -1.05696 |      ms |
|                                      100th percentile latency |                    large_terms |      569.55 |     569.275 | -0.27462 |      ms |
|                                  50th percentile service time |                    large_terms |      525.91 |     528.603 |  2.69299 |      ms |
|                                  90th percentile service time |                    large_terms |     540.729 |     545.394 |  4.66473 |      ms |
|                                  99th percentile service time |                    large_terms |     556.058 |     555.454 | -0.60405 |      ms |
|                                 100th percentile service time |                    large_terms |     557.184 |      557.48 |  0.29639 |      ms |
|                                                    error rate |                    large_terms |           0 |           0 |        0 |       % |
|                                                Min Throughput |           large_filtered_terms |     1.10142 |     1.10141 |   -1e-05 |   ops/s |
|                                             Median Throughput |           large_filtered_terms |     1.10178 |     1.10177 |   -1e-05 |   ops/s |
|                                                Max Throughput |           large_filtered_terms |     1.10228 |     1.10223 |   -5e-05 |   ops/s |
|                                       50th percentile latency |           large_filtered_terms |     539.686 |     541.978 |  2.29119 |      ms |
|                                       90th percentile latency |           large_filtered_terms |     553.551 |      559.58 |  6.02914 |      ms |
|                                       99th percentile latency |           large_filtered_terms |     569.038 |     573.543 |  4.50498 |      ms |
|                                      100th percentile latency |           large_filtered_terms |     594.361 |     583.364 | -10.9966 |      ms |
|                                  50th percentile service time |           large_filtered_terms |     528.387 |     529.861 |  1.47403 |      ms |
|                                  90th percentile service time |           large_filtered_terms |      541.75 |     547.102 |  5.35198 |      ms |
|                                  99th percentile service time |           large_filtered_terms |     557.169 |     562.456 |  5.28718 |      ms |
|                                 100th percentile service time |           large_filtered_terms |      582.28 |     571.411 |   -10.87 |      ms |
|                                                    error rate |           large_filtered_terms |           0 |           0 |        0 |       % |
|                                                Min Throughput |         large_prohibited_terms |     1.10147 |     1.10154 |    7e-05 |   ops/s |
|                                             Median Throughput |         large_prohibited_terms |     1.10177 |     1.10186 |    8e-05 |   ops/s |
|                                                Max Throughput |         large_prohibited_terms |     1.10231 |     1.10235 |    3e-05 |   ops/s |
|                                       50th percentile latency |         large_prohibited_terms |     537.094 |     520.493 | -16.6012 |      ms |
|                                       90th percentile latency |         large_prohibited_terms |     551.183 |      529.89 | -21.2927 |      ms |
|                                       99th percentile latency |         large_prohibited_terms |     562.323 |     546.749 |  -15.574 |      ms |
|                                      100th percentile latency |         large_prohibited_terms |     562.479 |     549.404 | -13.0751 |      ms |
|                                  50th percentile service time |         large_prohibited_terms |     524.908 |     508.487 | -16.4211 |      ms |
|                                  90th percentile service time |         large_prohibited_terms |     539.525 |     518.704 | -20.8201 |      ms |
|                                  99th percentile service time |         large_prohibited_terms |     550.852 |     534.467 | -16.3848 |      ms |
|                                 100th percentile service time |         large_prohibited_terms |     551.638 |     539.889 | -11.7491 |      ms |
|                                                    error rate |         large_prohibited_terms |           0 |           0 |        0 |       % |
|                                                Min Throughput |           desc_sort_population |     1.50434 |     1.50458 |  0.00024 |   ops/s |
|                                             Median Throughput |           desc_sort_population |     1.50539 |     1.50543 |    4e-05 |   ops/s |
|                                                Max Throughput |           desc_sort_population |     1.50676 |     1.50688 |  0.00012 |   ops/s |
|                                       50th percentile latency |           desc_sort_population |     67.1748 |     53.1711 | -14.0037 |      ms |
|                                       90th percentile latency |           desc_sort_population |     86.9955 |      72.881 | -14.1144 |      ms |
|                                       99th percentile latency |           desc_sort_population |     95.9204 |     76.2024 | -19.7179 |      ms |
|                                      100th percentile latency |           desc_sort_population |     99.1929 |     77.5933 | -21.5996 |      ms |
|                                  50th percentile service time |           desc_sort_population |     65.4656 |      51.633 | -13.8326 |      ms |
|                                  90th percentile service time |           desc_sort_population |     85.6683 |      71.584 | -14.0842 |      ms |
|                                  99th percentile service time |           desc_sort_population |     94.2064 |     74.4885 |  -19.718 |      ms |
|                                 100th percentile service time |           desc_sort_population |     97.7325 |     75.5478 | -22.1847 |      ms |
|                                                    error rate |           desc_sort_population |           0 |           0 |        0 |       % |
|                                                Min Throughput |            asc_sort_population |      1.5045 |     1.50461 |  0.00011 |   ops/s |
|                                             Median Throughput |            asc_sort_population |     1.50541 |     1.50557 |  0.00016 |   ops/s |
|                                                Max Throughput |            asc_sort_population |     1.50677 |      1.5069 |  0.00013 |   ops/s |
|                                       50th percentile latency |            asc_sort_population |     67.1229 |     52.8036 | -14.3194 |      ms |
|                                       90th percentile latency |            asc_sort_population |     71.6029 |     57.8257 | -13.7772 |      ms |
|                                       99th percentile latency |            asc_sort_population |      77.674 |     74.1502 | -3.52385 |      ms |
|                                      100th percentile latency |            asc_sort_population |     92.7181 |     76.0442 | -16.6739 |      ms |
|                                  50th percentile service time |            asc_sort_population |     65.7023 |     51.4031 | -14.2991 |      ms |
|                                  90th percentile service time |            asc_sort_population |     70.0396 |     56.3902 | -13.6494 |      ms |
|                                  99th percentile service time |            asc_sort_population |     76.6584 |     72.9712 | -3.68726 |      ms |
|                                 100th percentile service time |            asc_sort_population |     91.2769 |     74.9819 |  -16.295 |      ms |
|                                                    error rate |            asc_sort_population |           0 |           0 |        0 |       % |
|                                                Min Throughput |            desc_sort_geonameid |     6.01909 |     6.01926 |  0.00016 |   ops/s |
|                                             Median Throughput |            desc_sort_geonameid |     6.02258 |     6.02269 |  0.00011 |   ops/s |
|                                                Max Throughput |            desc_sort_geonameid |     6.02753 |     6.02769 |  0.00016 |   ops/s |
|                                       50th percentile latency |            desc_sort_geonameid |     10.2489 |     9.57222 |  -0.6767 |      ms |
|                                       90th percentile latency |            desc_sort_geonameid |     11.4439 |      11.019 | -0.42494 |      ms |
|                                       99th percentile latency |            desc_sort_geonameid |     12.5032 |     11.7199 | -0.78331 |      ms |
|                                      100th percentile latency |            desc_sort_geonameid |     14.4589 |     15.5632 |  1.10425 |      ms |
|                                  50th percentile service time |            desc_sort_geonameid |     9.34168 |     8.43382 | -0.90786 |      ms |
|                                  90th percentile service time |            desc_sort_geonameid |     10.5047 |     9.92387 | -0.58083 |      ms |
|                                  99th percentile service time |            desc_sort_geonameid |     11.3401 |     10.5407 | -0.79944 |      ms |
|                                 100th percentile service time |            desc_sort_geonameid |     13.4364 |     14.9495 |  1.51311 |      ms |
|                                                    error rate |            desc_sort_geonameid |           0 |           0 |        0 |       % |
|                                                Min Throughput |             asc_sort_geonameid |     6.01967 |      6.0195 | -0.00016 |   ops/s |
|                                             Median Throughput |             asc_sort_geonameid |     6.02324 |     6.02302 | -0.00022 |   ops/s |
|                                                Max Throughput |             asc_sort_geonameid |     6.02826 |     6.02811 | -0.00016 |   ops/s |
|                                       50th percentile latency |             asc_sort_geonameid |     6.07398 |     6.90361 |  0.82963 |      ms |
|                                       90th percentile latency |             asc_sort_geonameid |     6.65987 |     7.51124 |  0.85137 |      ms |
|                                       99th percentile latency |             asc_sort_geonameid |     7.63951 |     8.28597 |  0.64646 |      ms |
|                                      100th percentile latency |             asc_sort_geonameid |     10.9648 |     11.0423 |  0.07754 |      ms |
|                                  50th percentile service time |             asc_sort_geonameid |     5.20296 |     5.87951 |  0.67655 |      ms |
|                                  90th percentile service time |             asc_sort_geonameid |     5.70808 |     6.37516 |  0.66708 |      ms |
|                                  99th percentile service time |             asc_sort_geonameid |     7.11751 |     6.89601 |  -0.2215 |      ms |
|                                 100th percentile service time |             asc_sort_geonameid |     9.93027 |      10.589 |  0.65875 |      ms |
|                                                    error rate |             asc_sort_geonameid |           0 |           0 |        0 |       % |

Regarding the shape of the system index threadpool, @jimczi provided some feedback:

setting the thread pool capacity too high by default can be counter productive on a node that share the resource with the search thread pool. This is why I was hoping to start with a small default like 1-5 threads max

This is reasonable and I believe we may be able to do this as long as we do not run many long searches on these threads. I plan to test using ThreadPool.halfAllocatedProcessorsMaxFive as the default.

@jaymode jaymode requested a review from gwbrown July 29, 2020 19:12
@jaymode jaymode marked this pull request as ready for review July 29, 2020 19:12
@elasticmachine
Copy link
Collaborator

Pinging @elastic/es-core-infra (:Core/Infra/Core)

@jaymode jaymode requested a review from jimczi July 29, 2020 19:12
Copy link
Contributor

@jimczi jimczi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I left some minor comments but the change looks good to me.

@@ -296,7 +297,8 @@ public IndexShard(
final List<IndexingOperationListener> listeners,
final Runnable globalCheckpointSyncer,
final RetentionLeaseSyncer retentionLeaseSyncer,
final CircuitBreakerService circuitBreakerService) throws IOException {
final CircuitBreakerService circuitBreakerService,
final boolean isSystem) throws IOException {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Isn't it possible to check the metadata to retrieve this information through the already provided IndexSettings ?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes it is; I missed that metadata was available. Addressed in cffb69d

@@ -180,6 +182,7 @@ public ThreadPool(final Settings settings, final ExecutorBuilder<?>... customBui
builders.put(Names.FORCE_MERGE, new FixedExecutorBuilder(settings, Names.FORCE_MERGE, 1, -1, false));
builders.put(Names.FETCH_SHARD_STORE,
new ScalingExecutorBuilder(Names.FETCH_SHARD_STORE, 1, 2 * allocatedProcessors, TimeValue.timeValueMinutes(5)));
builders.put(Names.SYSTEM_READ, new FixedExecutorBuilder(settings, Names.SYSTEM_READ, halfProcMaxAt5, 2000, false));
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since search should be fast on these indices I wonder if a queue size of 1000 is not enough ?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I combined the queue size for get and search here since we share the threadpool for both types of operations

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ok thanks for explaining. The query and get request are lightweight so 2000 should be ok.

@@ -82,6 +82,7 @@
public static final String FORCE_MERGE = "force_merge";
public static final String FETCH_SHARD_STARTED = "fetch_shard_started";
public static final String FETCH_SHARD_STORE = "fetch_shard_store";
public static final String SYSTEM_READ = "system_read";
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: I like SEARCH_SYSTEM better but that's just a preference...

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you still like that since this also affects both search and get operations?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Right, SYSTEM_READ sounds good then, thanks

@jaymode jaymode requested a review from gwbrown August 4, 2020 19:31
@jaymode
Copy link
Member Author

jaymode commented Aug 10, 2020

@elasticmachine run elasticsearch-ci/packaging-sample-windows

Copy link
Contributor

@gwbrown gwbrown left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, thank you!

@jaymode
Copy link
Member Author

jaymode commented Aug 10, 2020

@elasticmachine run elasticsearch-ci/packaging-sample-windows

jaymode added a commit to jaymode/elasticsearch that referenced this pull request Aug 10, 2020
This commit introduces a new thread pool, `system_read`, which is
intended for use by system indices for all read operations (get and
search). The `system_read` pool is a fixed thread pool with a maximum
number of threads equal to lesser of half of the available processors
or 5. Given the combination of both get and read operations in this
thread pool, the queue size has been set to 2000. The motivation for
this change is to allow system read operations to be serviced in spite
of the number of user searches.

In order to avoid a significant performance hit due to pattern matching
on all search requests, a new metadata flag is added to mark indices
as system or non-system. Previously created system indices will have
flag added to their metadata upon upgrade to a version with this
capability.

Additionally, this change also introduces a new class, `SystemIndices`,
which encapsulates logic around system indices. Currently, the class
provides a method to check if an index is a system index and a method
to find a matching index descriptor given the name of an index.

Relates elastic#50251
Relates elastic#37867
@jaymode jaymode merged commit 8c51fc7 into elastic:master Aug 10, 2020
@jaymode jaymode deleted the system_index_threadpool branch August 10, 2020 18:39
jaymode added a commit that referenced this pull request Aug 11, 2020
This commit introduces a new thread pool, `system_read`, which is
intended for use by system indices for all read operations (get and
search). The `system_read` pool is a fixed thread pool with a maximum
number of threads equal to lesser of half of the available processors
or 5. Given the combination of both get and read operations in this
thread pool, the queue size has been set to 2000. The motivation for
this change is to allow system read operations to be serviced in spite
of the number of user searches.

In order to avoid a significant performance hit due to pattern matching
on all search requests, a new metadata flag is added to mark indices
as system or non-system. Previously created system indices will have
flag added to their metadata upon upgrade to a version with this
capability.

Additionally, this change also introduces a new class, `SystemIndices`,
which encapsulates logic around system indices. Currently, the class
provides a method to check if an index is a system index and a method
to find a matching index descriptor given the name of an index.

Relates #50251
Relates #37867
Backport of #57936
jaymode added a commit to jaymode/elasticsearch that referenced this pull request Aug 11, 2020
This change adjusts the IndexMetadata serialization version for the
system index flag after the backport of elastic#57936. Additionally, bwc tests
have been reenabled.
jaymode added a commit that referenced this pull request Aug 11, 2020
This change adjusts the IndexMetadata serialization version for the
system index flag after the backport of #57936. Additionally, bwc tests
have been reenabled.
@jaymode jaymode mentioned this pull request Aug 25, 2020
23 tasks
tlrx added a commit that referenced this pull request Sep 1, 2020
…m indices (#61785)

The change #57936 introduced a dedicated thread pool for reads in system indices. 
It also introduced a potential NPE in the case the index to read in not yet present in 
the cluster state. This commit fixes that bug by using the getIndexSafe() instead of 
just index() method when retrieving the index's metadata so that an INFE is thrown 
if the index does not exist.
tlrx added a commit that referenced this pull request Sep 1, 2020
…m indices (#61785) (#61791)

The change #57936 introduced a dedicated thread pool for reads in system indices. 
It also introduced a potential NPE in the case the index to read in not yet present in 
the cluster state. This commit fixes that bug by using the getIndexSafe() instead of 
just index() method when retrieving the index's metadata so that an INFE is thrown 
if the index does not exist.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants