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

Add searches on multiple segments for dense vector #454

Merged
merged 2 commits into from
Sep 27, 2023

Conversation

mayya-sharipova
Copy link
Contributor

With introduction of concurrent search across multiple segments elastic/elasticsearch/pull/98204 there is a need to measure search across multiple segments before force merge.

This PR adds this operation.

With introduction of concurrent search across multiple segments
elastic/elasticsearch#98204
there is a need to measure search across multiple segments before
force merge.

This PR adds this operation.
@mayya-sharipova
Copy link
Contributor Author

mayya-sharipova commented Sep 2, 2023

Results from my M1 Mac laptop

Task 90th percentile latency
knn-search-100-1000-concurrent-with-indexing 91.33 ms
knn-search-100-1000_multiple_segments 53.49 ms
knn-search-100-1000 (after force merge) 6.20 ms

Full results:

|                                                         Metric |                                         Task |           Value |   Unit |
|---------------------------------------------------------------:|---------------------------------------------:|----------------:|-------:|
|                     Cumulative indexing time of primary shards |                                              |    11.6303      |    min |
|             Min cumulative indexing time across primary shards |                                              |     5.80602     |    min |
|          Median cumulative indexing time across primary shards |                                              |     5.81517     |    min |
|             Max cumulative indexing time across primary shards |                                              |     5.82432     |    min |
|            Cumulative indexing throttle time of primary shards |                                              |     0           |    min |
|    Min cumulative indexing throttle time across primary shards |                                              |     0           |    min |
| Median cumulative indexing throttle time across primary shards |                                              |     0           |    min |
|    Max cumulative indexing throttle time across primary shards |                                              |     0           |    min |
|                        Cumulative merge time of primary shards |                                              |    21.251       |    min |
|                       Cumulative merge count of primary shards |                                              |    12           |        |
|                Min cumulative merge time across primary shards |                                              |    10.5589      |    min |
|             Median cumulative merge time across primary shards |                                              |    10.6255      |    min |
|                Max cumulative merge time across primary shards |                                              |    10.6921      |    min |
|               Cumulative merge throttle time of primary shards |                                              |     0.6366      |    min |
|       Min cumulative merge throttle time across primary shards |                                              |     0.3181      |    min |
|    Median cumulative merge throttle time across primary shards |                                              |     0.3183      |    min |
|       Max cumulative merge throttle time across primary shards |                                              |     0.3185      |    min |
|                      Cumulative refresh time of primary shards |                                              |     0.14535     |    min |
|                     Cumulative refresh count of primary shards |                                              |   148           |        |
|              Min cumulative refresh time across primary shards |                                              |     0.0723      |    min |
|           Median cumulative refresh time across primary shards |                                              |     0.072675    |    min |
|              Max cumulative refresh time across primary shards |                                              |     0.07305     |    min |
|                        Cumulative flush time of primary shards |                                              |     0.2776      |    min |
|                       Cumulative flush count of primary shards |                                              |    14           |        |
|                Min cumulative flush time across primary shards |                                              |     0.1377      |    min |
|             Median cumulative flush time across primary shards |                                              |     0.1388      |    min |
|                Max cumulative flush time across primary shards |                                              |     0.1399      |    min |
|                                        Total Young Gen GC time |                                              |     0.293       |      s |
|                                       Total Young Gen GC count |                                              |    15           |        |
|                                          Total Old Gen GC time |                                              |     0           |      s |
|                                         Total Old Gen GC count |                                              |     0           |        |
|                                                     Store size |                                              |     1.41872     |     GB |
|                                                  Translog size |                                              |     1.02445e-07 |     GB |
|                                         Heap used for segments |                                              |     0           |     MB |
|                                       Heap used for doc values |                                              |     0           |     MB |
|                                            Heap used for terms |                                              |     0           |     MB |
|                                            Heap used for norms |                                              |     0           |     MB |
|                                           Heap used for points |                                              |     0           |     MB |
|                                    Heap used for stored fields |                                              |     0           |     MB |
|                                                  Segment count |                                              |     2           |        |
|                                    Total Ingest Pipeline count |                                              |     0           |        |
|                                     Total Ingest Pipeline time |                                              |     0           |      s |
|                                   Total Ingest Pipeline failed |                                              |     0           |        |
|                                                 Min Throughput |                                 index-append |  5962.25        | docs/s |
|                                                Mean Throughput |                                 index-append |  6815.01        | docs/s |
|                                              Median Throughput |                                 index-append |  6431.51        | docs/s |
|                                                 Max Throughput |                                 index-append |  9862.13        | docs/s |
|                                        50th percentile latency |                                 index-append |   989.722       |     ms |
|                                        90th percentile latency |                                 index-append |  1223.96        |     ms |
|                                        99th percentile latency |                                 index-append |  1323.03        |     ms |
|                                       100th percentile latency |                                 index-append |  1361.2         |     ms |
|                                   50th percentile service time |                                 index-append |   989.722       |     ms |
|                                   90th percentile service time |                                 index-append |  1223.96        |     ms |
|                                   99th percentile service time |                                 index-append |  1323.03        |     ms |
|                                  100th percentile service time |                                 index-append |  1361.2         |     ms |
|                                                     error rate |                                 index-append |     0           |      % |
|                                                 Min Throughput |                          refresh-after-index |     1.63        |  ops/s |
|                                                Mean Throughput |                          refresh-after-index |     1.63        |  ops/s |
|                                              Median Throughput |                          refresh-after-index |     1.63        |  ops/s |
|                                                 Max Throughput |                          refresh-after-index |     1.63        |  ops/s |
|                                       100th percentile latency |                          refresh-after-index |   609.247       |     ms |
|                                  100th percentile service time |                          refresh-after-index |   609.247       |     ms |
|                                                     error rate |                          refresh-after-index |     0           |      % |
|                                                 Min Throughput |        index-update-concurrent-with-searches | 12006.2         | docs/s |
|                                                Mean Throughput |        index-update-concurrent-with-searches | 12213.3         | docs/s |
|                                              Median Throughput |        index-update-concurrent-with-searches | 12198.6         | docs/s |
|                                                 Max Throughput |        index-update-concurrent-with-searches | 12464.8         | docs/s |
|                                        50th percentile latency |        index-update-concurrent-with-searches |   415.556       |     ms |
|                                        90th percentile latency |        index-update-concurrent-with-searches |   486.748       |     ms |
|                                       100th percentile latency |        index-update-concurrent-with-searches |   586.58        |     ms |
|                                   50th percentile service time |        index-update-concurrent-with-searches |   415.556       |     ms |
|                                   90th percentile service time |        index-update-concurrent-with-searches |   486.748       |     ms |
|                                  100th percentile service time |        index-update-concurrent-with-searches |   586.58        |     ms |
|                                                     error rate |        index-update-concurrent-with-searches |     0           |      % |
|                                                 Min Throughput | knn-search-100-1000-concurrent-with-indexing |    11.17        |  ops/s |
|                                                Mean Throughput | knn-search-100-1000-concurrent-with-indexing |    12.15        |  ops/s |
|                                              Median Throughput | knn-search-100-1000-concurrent-with-indexing |    12.24        |  ops/s |
|                                                 Max Throughput | knn-search-100-1000-concurrent-with-indexing |    12.35        |  ops/s |
|                                        50th percentile latency | knn-search-100-1000-concurrent-with-indexing |    77.543       |     ms |
|                                        90th percentile latency | knn-search-100-1000-concurrent-with-indexing |    91.3286      |     ms |
|                                        99th percentile latency | knn-search-100-1000-concurrent-with-indexing |   101.774       |     ms |
|                                       100th percentile latency | knn-search-100-1000-concurrent-with-indexing |   104.474       |     ms |
|                                   50th percentile service time | knn-search-100-1000-concurrent-with-indexing |    77.543       |     ms |
|                                   90th percentile service time | knn-search-100-1000-concurrent-with-indexing |    91.3286      |     ms |
|                                   99th percentile service time | knn-search-100-1000-concurrent-with-indexing |   101.774       |     ms |
|                                  100th percentile service time | knn-search-100-1000-concurrent-with-indexing |   104.474       |     ms |
|                                                     error rate | knn-search-100-1000-concurrent-with-indexing |     0           |      % |
|                                                 Min Throughput |                         refresh-after-update |   268.76        |  ops/s |
|                                                Mean Throughput |                         refresh-after-update |   268.76        |  ops/s |
|                                              Median Throughput |                         refresh-after-update |   268.76        |  ops/s |
|                                                 Max Throughput |                         refresh-after-update |   268.76        |  ops/s |
|                                       100th percentile latency |                         refresh-after-update |     2.86342     |     ms |
|                                  100th percentile service time |                         refresh-after-update |     2.86342     |     ms |
|                                                     error rate |                         refresh-after-update |     0           |      % |
|                                                 Min Throughput |        knn-search-100-1000_multiple_segments |    22.68        |  ops/s |
|                                                Mean Throughput |        knn-search-100-1000_multiple_segments |    23.35        |  ops/s |
|                                              Median Throughput |        knn-search-100-1000_multiple_segments |    23.41        |  ops/s |
|                                                 Max Throughput |        knn-search-100-1000_multiple_segments |    23.58        |  ops/s |
|                                        50th percentile latency |        knn-search-100-1000_multiple_segments |    42.6122      |     ms |
|                                        90th percentile latency |        knn-search-100-1000_multiple_segments |    53.4881      |     ms |
|                                        99th percentile latency |        knn-search-100-1000_multiple_segments |    58.4304      |     ms |
|                                      99.9th percentile latency |        knn-search-100-1000_multiple_segments |    62.9062      |     ms |
|                                       100th percentile latency |        knn-search-100-1000_multiple_segments |    64.3613      |     ms |
|                                   50th percentile service time |        knn-search-100-1000_multiple_segments |    42.6122      |     ms |
|                                   90th percentile service time |        knn-search-100-1000_multiple_segments |    53.4881      |     ms |
|                                   99th percentile service time |        knn-search-100-1000_multiple_segments |    58.4304      |     ms |
|                                 99.9th percentile service time |        knn-search-100-1000_multiple_segments |    62.9062      |     ms |
|                                  100th percentile service time |        knn-search-100-1000_multiple_segments |    64.3613      |     ms |
|                                                     error rate |        knn-search-100-1000_multiple_segments |     0           |      % |
|                                                 Min Throughput |                                  force-merge |     0           |  ops/s |
|                                                Mean Throughput |                                  force-merge |     0           |  ops/s |
|                                              Median Throughput |                                  force-merge |     0           |  ops/s |
|                                                 Max Throughput |                                  force-merge |     0           |  ops/s |
|                                       100th percentile latency |                                  force-merge |     1.08051e+06 |     ms |
|                                  100th percentile service time |                                  force-merge |     1.08051e+06 |     ms |
|                                                     error rate |                                  force-merge |     0           |      % |
|                                                 Min Throughput |                            knn-search-10-100 |   488.5         |  ops/s |
|                                                Mean Throughput |                            knn-search-10-100 |   510.64        |  ops/s |
|                                              Median Throughput |                            knn-search-10-100 |   510.64        |  ops/s |
|                                                 Max Throughput |                            knn-search-10-100 |   532.79        |  ops/s |
|                                        50th percentile latency |                            knn-search-10-100 |     1.50335     |     ms |
|                                        90th percentile latency |                            knn-search-10-100 |     1.77541     |     ms |
|                                        99th percentile latency |                            knn-search-10-100 |     2.07738     |     ms |
|                                      99.9th percentile latency |                            knn-search-10-100 |     3.04672     |     ms |
|                                       100th percentile latency |                            knn-search-10-100 |    73.277       |     ms |
|                                   50th percentile service time |                            knn-search-10-100 |     1.50335     |     ms |
|                                   90th percentile service time |                            knn-search-10-100 |     1.77541     |     ms |
|                                   99th percentile service time |                            knn-search-10-100 |     2.07738     |     ms |
|                                 99.9th percentile service time |                            knn-search-10-100 |     3.04672     |     ms |
|                                  100th percentile service time |                            knn-search-10-100 |    73.277       |     ms |
|                                                     error rate |                            knn-search-10-100 |     0           |      % |
|                                                 Min Throughput |                          knn-search-100-1000 |   188.05        |  ops/s |
|                                                Mean Throughput |                          knn-search-100-1000 |   193.79        |  ops/s |
|                                              Median Throughput |                          knn-search-100-1000 |   194.89        |  ops/s |
|                                                 Max Throughput |                          knn-search-100-1000 |   196.29        |  ops/s |
|                                        50th percentile latency |                          knn-search-100-1000 |     4.79223     |     ms |
|                                        90th percentile latency |                          knn-search-100-1000 |     6.20567     |     ms |
|                                        99th percentile latency |                          knn-search-100-1000 |     7.03504     |     ms |
|                                      99.9th percentile latency |                          knn-search-100-1000 |     7.49006     |     ms |
|                                       100th percentile latency |                          knn-search-100-1000 |     7.59317     |     ms |
|                                   50th percentile service time |                          knn-search-100-1000 |     4.79223     |     ms |
|                                   90th percentile service time |                          knn-search-100-1000 |     6.20567     |     ms |
|                                   99th percentile service time |                          knn-search-100-1000 |     7.03504     |     ms |
|                                 99.9th percentile service time |                          knn-search-100-1000 |     7.49006     |     ms |
|                                  100th percentile service time |                          knn-search-100-1000 |     7.59317     |     ms |
|                                                     error rate |                          knn-search-100-1000 |     0           |      % |
|                                                 Min Throughput |                           script-score-query |     5.52        |  ops/s |
|                                                Mean Throughput |                           script-score-query |     5.57        |  ops/s |
|                                              Median Throughput |                           script-score-query |     5.57        |  ops/s |
|                                                 Max Throughput |                           script-score-query |     5.59        |  ops/s |
|                                        50th percentile latency |                           script-score-query |   177.843       |     ms |
|                                        90th percentile latency |                           script-score-query |   180.293       |     ms |
|                                        99th percentile latency |                           script-score-query |   203.78        |     ms |
|                                      99.9th percentile latency |                           script-score-query |   225.203       |     ms |
|                                       100th percentile latency |                           script-score-query |   233.27        |     ms |
|                                   50th percentile service time |                           script-score-query |   177.843       |     ms |
|                                   90th percentile service time |                           script-score-query |   180.293       |     ms |
|                                   99th percentile service time |                           script-score-query |   203.78        |     ms |
|                                 99.9th percentile service time |                           script-score-query |   225.203       |     ms |
|                                  100th percentile service time |                           script-score-query |   233.27        |     ms |
|                                                     error rate |                           script-score-query |     0           |      % |

@mayya-sharipova
Copy link
Contributor Author

cc @jimczi @javanna

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.

Thanks Mayya.
A few comments:

  • Should we also run the ann recall with multiple segments ?
  • Why not running knn-search-10-100 (in addition to 100-1000)?

We should also add a test for the multi-threaded search.
We can (de)activate the setting with:

{
      "name": "disable_search_worker_thread",
      "tags": ["setup"],
      "operation": {
        "operation-type": "raw-request",
        "method": "PUT",
        "path": "/_cluster/settings",
        "body": {
          "transient": {
            "search.worker_threads_enabled" : false
          }
        },
        "include-in-reporting": false
      }
    }

Can be a follow up though so feel free to ignore if you prefer to keep this PR smaller.

@javanna
Copy link
Member

javanna commented Sep 5, 2023

Is it still necessary to test without concurrency? The search.worker_threads_enabled setting is really meant to be an escape hatch in case there are issues. I wonder if it's necessary to compare performance with and without concurrency at this stage. What is the purpose? Are we still validating whether concurrency adds value or causes issues?

@mayya-sharipova
Copy link
Contributor Author

@jimczi @javanna Thanks for the feedback.

Great idea for adding knn-search-10-100 and knn-recall, will work on those.

But I agree with Luca, I don't see a need to test without concurrency as I understand we don't even document search.worker_threads_enabled setting.

@jimczi
Copy link
Contributor

jimczi commented Sep 7, 2023

Are we still validating whether concurrency adds value or causes issues?

I think we're passed that but I thought that it would be nice to expose this in our benchmarks. I am fine if we don't though since we'll still be able to find regression.

@mayya-sharipova
Copy link
Contributor Author

Sorry for the late follow-up, this completely slipped my radar.

@jimczi I've addressed you comments in 0a53e3a, adding knn-search-10-100 and recall for multiple segments. Please continue the review.

Results from the latest run:
|                                                         Metric |                                         Task |           Value |   Unit |
|---------------------------------------------------------------:|---------------------------------------------:|----------------:|-------:|
|                     Cumulative indexing time of primary shards |                                              |    13.8543      |    min |
|             Min cumulative indexing time across primary shards |                                              |     6.91683     |    min |
|          Median cumulative indexing time across primary shards |                                              |     6.92713     |    min |
|             Max cumulative indexing time across primary shards |                                              |     6.93742     |    min |
|            Cumulative indexing throttle time of primary shards |                                              |     0           |    min |
|    Min cumulative indexing throttle time across primary shards |                                              |     0           |    min |
| Median cumulative indexing throttle time across primary shards |                                              |     0           |    min |
|    Max cumulative indexing throttle time across primary shards |                                              |     0           |    min |
|                        Cumulative merge time of primary shards |                                              |    25.0443      |    min |
|                       Cumulative merge count of primary shards |                                              |    12           |        |
|                Min cumulative merge time across primary shards |                                              |    12.3943      |    min |
|             Median cumulative merge time across primary shards |                                              |    12.5222      |    min |
|                Max cumulative merge time across primary shards |                                              |    12.65        |    min |
|               Cumulative merge throttle time of primary shards |                                              |     0.909133    |    min |
|       Min cumulative merge throttle time across primary shards |                                              |     0.445267    |    min |
|    Median cumulative merge throttle time across primary shards |                                              |     0.454567    |    min |
|       Max cumulative merge throttle time across primary shards |                                              |     0.463867    |    min |
|                      Cumulative refresh time of primary shards |                                              |     0.202617    |    min |
|                     Cumulative refresh count of primary shards |                                              |   154           |        |
|              Min cumulative refresh time across primary shards |                                              |     0.0916667   |    min |
|           Median cumulative refresh time across primary shards |                                              |     0.101308    |    min |
|              Max cumulative refresh time across primary shards |                                              |     0.11095     |    min |
|                        Cumulative flush time of primary shards |                                              |     0.30285     |    min |
|                       Cumulative flush count of primary shards |                                              |    16           |        |
|                Min cumulative flush time across primary shards |                                              |     0.1507      |    min |
|             Median cumulative flush time across primary shards |                                              |     0.151425    |    min |
|                Max cumulative flush time across primary shards |                                              |     0.15215     |    min |
|                                        Total Young Gen GC time |                                              |     1.801       |      s |
|                                       Total Young Gen GC count |                                              |    23           |        |
|                                          Total Old Gen GC time |                                              |     0           |      s |
|                                         Total Old Gen GC count |                                              |     0           |        |
|                                                     Store size |                                              |     1.09149     |     GB |
|                                                  Translog size |                                              |     1.02445e-07 |     GB |
|                                         Heap used for segments |                                              |     0           |     MB |
|                                       Heap used for doc values |                                              |     0           |     MB |
|                                            Heap used for terms |                                              |     0           |     MB |
|                                            Heap used for norms |                                              |     0           |     MB |
|                                           Heap used for points |                                              |     0           |     MB |
|                                    Heap used for stored fields |                                              |     0           |     MB |
|                                                  Segment count |                                              |     2           |        |
|                                    Total Ingest Pipeline count |                                              |     0           |        |
|                                     Total Ingest Pipeline time |                                              |     0           |      s |
|                                   Total Ingest Pipeline failed |                                              |     0           |        |
|                                                 Min Throughput |                                 index-append |  4913.76        | docs/s |
|                                                Mean Throughput |                                 index-append |  5531.26        | docs/s |
|                                              Median Throughput |                                 index-append |  5257.43        | docs/s |
|                                                 Max Throughput |                                 index-append |  7289.69        | docs/s |
|                                        50th percentile latency |                                 index-append |  1101.02        |     ms |
|                                        90th percentile latency |                                 index-append |  1428.28        |     ms |
|                                        99th percentile latency |                                 index-append |  1626.87        |     ms |
|                                       100th percentile latency |                                 index-append |  1957.04        |     ms |
|                                   50th percentile service time |                                 index-append |  1101.02        |     ms |
|                                   90th percentile service time |                                 index-append |  1428.28        |     ms |
|                                   99th percentile service time |                                 index-append |  1626.87        |     ms |
|                                  100th percentile service time |                                 index-append |  1957.04        |     ms |
|                                                     error rate |                                 index-append |     0           |      % |
|                                                 Min Throughput |                          refresh-after-index |     1.05        |  ops/s |
|                                                Mean Throughput |                          refresh-after-index |     1.05        |  ops/s |
|                                              Median Throughput |                          refresh-after-index |     1.05        |  ops/s |
|                                                 Max Throughput |                          refresh-after-index |     1.05        |  ops/s |
|                                       100th percentile latency |                          refresh-after-index |   942.291       |     ms |
|                                  100th percentile service time |                          refresh-after-index |   942.291       |     ms |
|                                                     error rate |                          refresh-after-index |     0           |      % |
|                                                 Min Throughput |        index-update-concurrent-with-searches | 10158.3         | docs/s |
|                                                Mean Throughput |        index-update-concurrent-with-searches | 10362.7         | docs/s |
|                                              Median Throughput |        index-update-concurrent-with-searches | 10367.6         | docs/s |
|                                                 Max Throughput |        index-update-concurrent-with-searches | 10583.7         | docs/s |
|                                        50th percentile latency |        index-update-concurrent-with-searches |   488.668       |     ms |
|                                        90th percentile latency |        index-update-concurrent-with-searches |   562.156       |     ms |
|                                       100th percentile latency |        index-update-concurrent-with-searches |   659.488       |     ms |
|                                   50th percentile service time |        index-update-concurrent-with-searches |   488.668       |     ms |
|                                   90th percentile service time |        index-update-concurrent-with-searches |   562.156       |     ms |
|                                  100th percentile service time |        index-update-concurrent-with-searches |   659.488       |     ms |
|                                                     error rate |        index-update-concurrent-with-searches |     0           |      % |
|                                                 Min Throughput | knn-search-100-1000-concurrent-with-indexing |    10.22        |  ops/s |
|                                                Mean Throughput | knn-search-100-1000-concurrent-with-indexing |    11.6         |  ops/s |
|                                              Median Throughput | knn-search-100-1000-concurrent-with-indexing |    11.67        |  ops/s |
|                                                 Max Throughput | knn-search-100-1000-concurrent-with-indexing |    11.92        |  ops/s |
|                                        50th percentile latency | knn-search-100-1000-concurrent-with-indexing |    83.2802      |     ms |
|                                        90th percentile latency | knn-search-100-1000-concurrent-with-indexing |   100.365       |     ms |
|                                        99th percentile latency | knn-search-100-1000-concurrent-with-indexing |   117.069       |     ms |
|                                       100th percentile latency | knn-search-100-1000-concurrent-with-indexing |   142.088       |     ms |
|                                   50th percentile service time | knn-search-100-1000-concurrent-with-indexing |    83.2802      |     ms |
|                                   90th percentile service time | knn-search-100-1000-concurrent-with-indexing |   100.365       |     ms |
|                                   99th percentile service time | knn-search-100-1000-concurrent-with-indexing |   117.069       |     ms |
|                                  100th percentile service time | knn-search-100-1000-concurrent-with-indexing |   142.088       |     ms |
|                                                     error rate | knn-search-100-1000-concurrent-with-indexing |     0           |      % |
|                                                 Min Throughput |                         refresh-after-update |    34.91        |  ops/s |
|                                                Mean Throughput |                         refresh-after-update |    34.91        |  ops/s |
|                                              Median Throughput |                         refresh-after-update |    34.91        |  ops/s |
|                                                 Max Throughput |                         refresh-after-update |    34.91        |  ops/s |
|                                       100th percentile latency |                         refresh-after-update |    27.7056      |     ms |
|                                  100th percentile service time |                         refresh-after-update |    27.7056      |     ms |
|                                                     error rate |                         refresh-after-update |     0           |      % |
|                                                 Min Throughput |          knn-search-10-100_multiple_segments |    62.89        |  ops/s |
|                                                Mean Throughput |          knn-search-10-100_multiple_segments |    65.6         |  ops/s |
|                                              Median Throughput |          knn-search-10-100_multiple_segments |    65.83        |  ops/s |
|                                                 Max Throughput |          knn-search-10-100_multiple_segments |    66.35        |  ops/s |
|                                        50th percentile latency |          knn-search-10-100_multiple_segments |    14.5122      |     ms |
|                                        90th percentile latency |          knn-search-10-100_multiple_segments |    17.6313      |     ms |
|                                        99th percentile latency |          knn-search-10-100_multiple_segments |    21.5907      |     ms |
|                                      99.9th percentile latency |          knn-search-10-100_multiple_segments |    29.014       |     ms |
|                                       100th percentile latency |          knn-search-10-100_multiple_segments |    45.2024      |     ms |
|                                   50th percentile service time |          knn-search-10-100_multiple_segments |    14.5122      |     ms |
|                                   90th percentile service time |          knn-search-10-100_multiple_segments |    17.6313      |     ms |
|                                   99th percentile service time |          knn-search-10-100_multiple_segments |    21.5907      |     ms |
|                                 99.9th percentile service time |          knn-search-10-100_multiple_segments |    29.014       |     ms |
|                                  100th percentile service time |          knn-search-10-100_multiple_segments |    45.2024      |     ms |
|                                                     error rate |          knn-search-10-100_multiple_segments |     0           |      % |
|                                                 Min Throughput |        knn-search-100-1000_multiple_segments |    17.65        |  ops/s |
|                                                Mean Throughput |        knn-search-100-1000_multiple_segments |    18.23        |  ops/s |
|                                              Median Throughput |        knn-search-100-1000_multiple_segments |    18.32        |  ops/s |
|                                                 Max Throughput |        knn-search-100-1000_multiple_segments |    18.49        |  ops/s |
|                                        50th percentile latency |        knn-search-100-1000_multiple_segments |    54.5828      |     ms |
|                                        90th percentile latency |        knn-search-100-1000_multiple_segments |    66.3826      |     ms |
|                                        99th percentile latency |        knn-search-100-1000_multiple_segments |    74.6912      |     ms |
|                                      99.9th percentile latency |        knn-search-100-1000_multiple_segments |    92.6844      |     ms |
|                                       100th percentile latency |        knn-search-100-1000_multiple_segments |   124.386       |     ms |
|                                   50th percentile service time |        knn-search-100-1000_multiple_segments |    54.5828      |     ms |
|                                   90th percentile service time |        knn-search-100-1000_multiple_segments |    66.3826      |     ms |
|                                   99th percentile service time |        knn-search-100-1000_multiple_segments |    74.6912      |     ms |
|                                 99.9th percentile service time |        knn-search-100-1000_multiple_segments |    92.6844      |     ms |
|                                  100th percentile service time |        knn-search-100-1000_multiple_segments |   124.386       |     ms |
|                                                     error rate |        knn-search-100-1000_multiple_segments |     0           |      % |
|                                                 Min Throughput |                                  force-merge |     0           |  ops/s |
|                                                Mean Throughput |                                  force-merge |     0           |  ops/s |
|                                              Median Throughput |                                  force-merge |     0           |  ops/s |
|                                                 Max Throughput |                                  force-merge |     0           |  ops/s |
|                                       100th percentile latency |                                  force-merge |     1.29661e+06 |     ms |
|                                  100th percentile service time |                                  force-merge |     1.29661e+06 |     ms |
|                                                     error rate |                                  force-merge |     0           |      % |
|                                                 Min Throughput |                            knn-search-10-100 |   176.28        |  ops/s |
|                                                Mean Throughput |                            knn-search-10-100 |   211.69        |  ops/s |
|                                              Median Throughput |                            knn-search-10-100 |   211.69        |  ops/s |
|                                                 Max Throughput |                            knn-search-10-100 |   247.09        |  ops/s |
|                                        50th percentile latency |                            knn-search-10-100 |     1.94117     |     ms |
|                                        90th percentile latency |                            knn-search-10-100 |     2.40757     |     ms |
|                                        99th percentile latency |                            knn-search-10-100 |     2.99473     |     ms |
|                                      99.9th percentile latency |                            knn-search-10-100 |     3.68169     |     ms |
|                                       100th percentile latency |                            knn-search-10-100 |     4.25008     |     ms |
|                                   50th percentile service time |                            knn-search-10-100 |     1.94117     |     ms |
|                                   90th percentile service time |                            knn-search-10-100 |     2.40757     |     ms |
|                                   99th percentile service time |                            knn-search-10-100 |     2.99473     |     ms |
|                                 99.9th percentile service time |                            knn-search-10-100 |     3.68169     |     ms |
|                                  100th percentile service time |                            knn-search-10-100 |     4.25008     |     ms |
|                                                     error rate |                            knn-search-10-100 |     0           |      % |
|                                                 Min Throughput |                          knn-search-100-1000 |    88.76        |  ops/s |
|                                                Mean Throughput |                          knn-search-100-1000 |   112.81        |  ops/s |
|                                              Median Throughput |                          knn-search-100-1000 |   117.2         |  ops/s |
|                                                 Max Throughput |                          knn-search-100-1000 |   123.56        |  ops/s |
|                                        50th percentile latency |                          knn-search-100-1000 |     6.9834      |     ms |
|                                        90th percentile latency |                          knn-search-100-1000 |     8.92781     |     ms |
|                                        99th percentile latency |                          knn-search-100-1000 |    10.2354      |     ms |
|                                      99.9th percentile latency |                          knn-search-100-1000 |    18.5465      |     ms |
|                                       100th percentile latency |                          knn-search-100-1000 |    36.2759      |     ms |
|                                   50th percentile service time |                          knn-search-100-1000 |     6.9834      |     ms |
|                                   90th percentile service time |                          knn-search-100-1000 |     8.92781     |     ms |
|                                   99th percentile service time |                          knn-search-100-1000 |    10.2354      |     ms |
|                                 99.9th percentile service time |                          knn-search-100-1000 |    18.5465      |     ms |
|                                  100th percentile service time |                          knn-search-100-1000 |    36.2759      |     ms |
|                                                     error rate |                          knn-search-100-1000 |     0           |      % |
|                                                 Min Throughput |                           script-score-query |     4.69        |  ops/s |
|                                                Mean Throughput |                           script-score-query |     4.7         |  ops/s |
|                                              Median Throughput |                           script-score-query |     4.7         |  ops/s |
|                                                 Max Throughput |                           script-score-query |     4.71        |  ops/s |
|                                        50th percentile latency |                           script-score-query |   212.854       |     ms |
|                                        90th percentile latency |                           script-score-query |   214.338       |     ms |
|                                        99th percentile latency |                           script-score-query |   216.56        |     ms |
|                                      99.9th percentile latency |                           script-score-query |   231.679       |     ms |
|                                       100th percentile latency |                           script-score-query |   247.683       |     ms |
|                                   50th percentile service time |                           script-score-query |   212.854       |     ms |
|                                   90th percentile service time |                           script-score-query |   214.338       |     ms |
|                                   99th percentile service time |                           script-score-query |   216.56        |     ms |
|                                 99.9th percentile service time |                           script-score-query |   231.679       |     ms |
|                                  100th percentile service time |                           script-score-query |   247.683       |     ms |
|                                                     error rate |                           script-score-query |     0           |      % |


----------------------------------
[INFO] SUCCESS (took 5497 seconds)
----------------------------------

Copy link
Contributor

@gbanasiak gbanasiak left a comment

Choose a reason for hiding this comment

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

LGTM

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.

LGTM

@mayya-sharipova mayya-sharipova merged commit 3996714 into elastic:master Sep 27, 2023
@mayya-sharipova mayya-sharipova deleted the dense-vector-search branch September 27, 2023 17:52
inqueue pushed a commit to inqueue/rally-tracks that referenced this pull request Dec 6, 2023
With introduction of concurrent search across multiple segments
elastic/elasticsearch#98204
there is a need to measure search across multiple segments before
force merge.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants