ExportXMLWordPrintableJSON

    • Type: Task
    • Resolution: Unresolved
    • Priority: Major - P3
    • None
    • Affects Version/s: None
    • Component/s: Cursors, Layered Tables
    • None
    • Storage Engines - Foundations
    • 455.528
    • None
    • None

      Problem 1: possibly dead branch in __clayered_modify_try_ingest (src/cursor/cur_layered.c)

      • When the ingest value for the key is a tombstone or delete-encoded, the branch forces a full update because such a value cannot serve as a modify base.
      • A lookup returns WT_NOTFOUND for a deleted key, so the branch is only reachable if the modify skips the lookup on an already-positioned cursor.
      • __clayered_modify_ingest skips the lookup only when both WT_CURSTD_KEY_INT and WT_CURSTD_VALUE_INT are set and a positioned remove clears VALUE_INT. No known path positions a cursor on a tombstone with VALUE_INT set.
      • Outcome: either prove the branch unreachable and replace it with an assertion or identify the reaching path and cover it with a Python test.

      Problem 2: no modify operation in test/suite/test_layered_cursor_stress.py

      • The stress workload exercises insert, update, remove, search and iteration on plain, leader and follower layered cursors but never modify.
      • Add a modify op, including modify on a just-removed slot and give it non-zero weight in the workload profiles.

      Goal:

      • The branch in __clayered_modify_try_ingest is either asserted unreachable or tested.

            Assignee:
            [DO NOT USE] Backlog - Storage Engines Team
            Reporter:
            Yury Ershov
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated: