-
Type: Bug
-
Resolution: Fixed
-
Priority: Major - P3
-
Affects Version/s: None
-
Component/s: None
-
None
-
Catalog and Routing
-
Fully Compatible
-
ALL
-
CAR Team 2025-01-20
-
200
SERVER-78381 changed the memory layout of the ChunkInfo class.
In particular, it made class ChunkRange bigger and thus it caused the offset of the ChunkInfo::_maxKeyString member to shift down from 32 to 48 bytes.
This caused a performance regression for reads operations that need to perform orphan filtering.
Ensure performant access to the ChunkInfo::_maxKeyString is crucial to guarantee good performance of some read queries, in particular the ones that need to perform orphan filtering. In fact to perform orphan filtering, we need to perform a binary search over a vector of shared_ptr<ChunkInfo> indexed by _maxKeyString. On hardware based equipped with Intel architecture we observed ( BF-35897) that if ChunkInfo::_maxKeyString has a small enough offset, the performance of the binary search is better.
Thus, we decided to make the _maxKeyString member the first in the layout of the ChunkInfo class.
- is caused by
-
SERVER-78381 IDLize ChunkRange
- Closed