Uploaded image for project: 'WiredTiger'
  1. WiredTiger
  2. WT-11385

Investigate how a page with a few entries can be created despite of the existence of pages with lots of entries

    • Type: Icon: Task Task
    • Resolution: Unresolved
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None
    • 8
    • StorEng - Defined Pipeline, TheMoon-StorEng - 2023-09-19

      In WT-8003, thisĀ comment shows that a page with a single entry was created which is not supposed to happen when other pages with many entries exist. They should all have a similar number of entries

      alexander.gorrod@mongodb.com pointed out in this comment we should have some code in reconciliation that should avoid creating a page with a single entry, see __rec_split_finish_process_prev.

      The branch wt-8003-duplicate-cpp-test-repro-skewed can be used to reproduce the issue:

      cmake -DCMAKE_TOOLCHAIN_FILE=../cmake/toolchains/mongodbtoolchain_v4_gcc.cmake -G Ninja ../. && ninja
      cd test/cppsuite
      ./csuite_style_example_test  > out.txt // The last lines correspond to how many times a key is hit by the random cursor.
      cd ../../
      ./wt -r -h test/cppsuite/WT_TEST_csuite_style_example_test -r verify -u -d dump_pages file:my_collection.wt > dump.txt
      

      In the dump.txt file, you should observe the last row-store leaf containing one or a few values. They should be the most hit keys as shown in out.txt.

            Assignee:
            backlog-server-storage-engines [DO NOT USE] Backlog - Storage Engines Team
            Reporter:
            etienne.petrel@mongodb.com Etienne Petrel
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated: