-
Type:
Improvement
-
Resolution: Fixed
-
Priority:
Major - P3
-
Affects Version/s: None
-
Component/s: None
-
None
-
Storage Execution
-
Fully Compatible
-
Execution Team 2025-01-20, Execution Team 2025-02-03
This is a non-owning version of key_string::Value that preserves the property that the key, recordid, and typebits are guaranteed to be contiguous in memory.
This differs from our current abstractions as follows:
1. key_string::Value: View does not own its buffer, is smaller, and is trivially copiable. These later two details will make sorting Views somewhat faster than sorting Values.
2. std::span<const char>: This can't (reasonably) represent a buffer with type bits. We need to know the partition point between the key+recordid and the typebits, and while putting the typebits after the end of the std::span could technically work that's awful.
3. SortedDataKeyValueView: This type supports the key, recordid, and typebits being three separate buffers. This is required for reading from indexes, but inserting into indexes without making extra copies requires that they all be adjacent in memory.
- split from
-
SERVER-89359 Support unowned keys in the SortedDataInterface in all paths
-
- In Progress
-