Make all WT cursor uses of keys --groupCollections aware.

XMLWordPrintableJSON

    • Type: Task
    • Resolution: Done
    • Priority: Major - P3
    • 3.5.9
    • Affects Version/s: None
    • Component/s: Storage
    • None
    • Fully Compatible
    • Storage 2017-05-08, Storage 2017-05-29, Storage 2017-06-19
    • None
    • 3
    • None
    • None
    • None
    • None
    • None
    • None
    • None

      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.

            Assignee:
            Daniel Gottlieb (Inactive)
            Reporter:
            Daniel Gottlieb (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: