When WT is running in --groupCollections mode all collections (but not indexes) with a prefix that are creating a WT table must change the configuration input key_format=q to key_format=qq. This changes the "key" value from being an int64 to instead be two adjacent int64. The key format for indexes should be changed from "u" to "qu".
When performing WT_CURSOR::set_key, the key value must be modified when its collection/index is sharing a WT table with other collection/indexes.
Furthermore, all calls to WT_CURSOR::next/prev that do not return a WT_NOTFOUND must also extract the key and compare the prefix found with that of the collection/index it represents.
It may be desirable to add a "[reading] cursor" abstraction that sits between the WiredTiger[RecordStore|Index]::Cursor and their current raw usage of WT_CURSOR. This abstraction would encapsulate the logic of transforming a cursor that iterates into an adjacent collection/index into a logical EOF.
Collections/indexes that have no prefix should not suffer an undue performance penalty unnecessarily constructing and parsing keys.
- is related to
-
SERVER-29113 Have WT grouped collections support random cursors
-
- Closed
-
-
WT-3341 Allow random cursor scan range to be constrained
-
- Closed
-