[SERVER-66509] Investigate performance of ID range queries in SBE Created: 16/May/22  Updated: 27/Oct/23  Resolved: 27/Mar/23

Status: Closed
Project: Core Server
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Task Priority: Major - P3
Reporter: Ethan Zhang (Inactive) Assignee: Backlog - Query Execution
Resolution: Gone away Votes: 0
Labels: pm2697-m4
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Assigned Teams:
Query Execution
Participants:
Story Points: 5

 Description   

We see a 12.75% performance regression in Queries.IntIDRange microbenchmark (See Ian SBE microbenchmark notes). An example query can be found here

We're likely to improve it further by implementing a few optimizations in 6.1 and backport them into 6.0.x.



 Comments   
Comment by David Storch [ 27/Mar/23 ]

According to our most recent data, SBE now shows an improvement over classic for the "Queries.IntIDRange" benchmark:

[
  {
    args_str: "{'thread_level': 1}",
    classification: 'improvement nice',
    'meanpercent adjusted': 1.0369692295093325,
    measurement: 'ops_per_sec',
    sign: 1,
    signed_percent_change_stable: 3.7485320976172716,
    signed_z_score_change_stable: 2.181034366109803,
    stable_mean_baseline: 3959.8157887979933,
    stable_mean_measure: 4000.8778600730807,
    test: 'Queries.IntIDRange',
    value_measure: 4108.250754647603,
    stable_to_stable_signed: 1.0369692295093325
  },
  {
    args_str: "{'thread_level': 8}",
    classification: 'improvement important',
    'meanpercent adjusted': 3.186001684488793,
    measurement: 'ops_per_sec',
    sign: 1,
    signed_percent_change_stable: 5.790670145447251,
    signed_z_score_change_stable: 2.582550275024265,
    stable_mean_baseline: 14321.512900810076,
    stable_mean_measure: 14777.796543074164,
    test: 'Queries.IntIDRange',
    value_measure: 15150.82447273366,
    stable_to_stable_signed: 3.186001684488793
  },
  {
    args_str: "{'thread_level': 4}",
    classification: 'improvement important',
    'meanpercent adjusted': 3.476179972929727,
    measurement: 'ops_per_sec',
    sign: 1,
    signed_percent_change_stable: 6.0591496335530906,
    signed_z_score_change_stable: 1.4820261996123922,
    stable_mean_baseline: 14494.80794208072,
    stable_mean_measure: 14998.673552877959,
    test: 'Queries.IntIDRange',
    value_measure: 15373.070044387528,
    stable_to_stable_signed: 3.476179972929727
  },
  {
    args_str: "{'thread_level': 2}",
    classification: 'improvement important',
    'meanpercent adjusted': 5.4451653841491865,
    measurement: 'ops_per_sec',
    sign: 1,
    signed_percent_change_stable: 10.587738592815214,
    signed_z_score_change_stable: 1.4471490738408506,
    stable_mean_baseline: 7314.044024320889,
    stable_mean_measure: 7712.305817714641,
    test: 'Queries.IntIDRange',
    value_measure: 8088.435886179405,
    stable_to_stable_signed: 5.4451653841491865
  }
]

Closing this ticket as "Gone Away".

Comment by Kyle Suarez [ 28/Sep/22 ]

Given the small regression, reducing the story points from 10 to 5.

Generated at Thu Feb 08 06:05:38 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.