[SERVER-68081] Investigate performance regression when using shared buffers in RecordId Created: 15/Jul/22  Updated: 27/Oct/23  Resolved: 28/Sep/22

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

Type: Task Priority: Major - P3
Reporter: Jordi Olivares Provencio Assignee: Jordi Olivares Provencio
Resolution: Gone away Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: File baseline.lookup.branchmiss.svg     Text File reproducer.patch     File shared-buffer.lookup.branchmiss.svg    
Issue Links:
Issue split
split from SERVER-67471 Improve RecordId performance during i... Closed
Related
related to SERVER-70040 Revert RecordId performance improveme... Closed
Sprint: Execution Team 2022-09-19, Execution Team 2022-10-03
Participants:

 Description   

With the work done on SERVER-67471 we realised that swapping the Shared Buffer with a unique buffer manually managed by RecordId yielded significant performance improvements even if the branching itself wasn't taken.

This task is about investigating why this is the case and to see if we can go back to the old behaviour while maintaining the performance characteristics.



 Comments   
Comment by Jordi Olivares Provencio [ 28/Sep/22 ]

The conclusion of the investigation is that the regression seen (and fixed) in SERVER-67471 is contained only to the particular CPU model used in internal benchmarks.

This regression does not happen in more recent CPU models from Intel (Ice Lake and above) nor in AWS Graviton2 instances.

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