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

Investigate why the incremental backup needs to open all dhandles

    • Type: Icon: Task Task
    • Resolution: Unresolved
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: None
    • Component/s: Backup
    • Storage Engines, Storage Engines - Persistence
    • StorEng - Defined Pipeline

      It looks like when opening an incremental backup cursor, all the files in the database are being opened. It could be working as expected if it has been designed this way, but it could be a bug too or some inefficiency.

      The suspicious line is this one. It seems that we are opening a cursor on a given URI and it seems that this code is executed for each file present in the database.

      One way to prove this is with the diff.txt attached and execute test_backup13.py. The repro does the following:

      • Creates N tables
      • Add data
      • Restart the connection so all the dhandles are closed
      • Start an incremental backup cursor

      You should observe each URI opened in the logs. Furthermore, the FTDC shows the number of dhandles active rising up after restarting the connection and opening the increment backup cursor:

        1. diff_repro_ftdc.png
          diff_repro_ftdc.png
          86 kB
        2. diff.txt
          5 kB
        3. image-2025-03-26-13-39-59-004.png
          image-2025-03-26-13-39-59-004.png
          32 kB

            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:
            4 Start watching this issue

              Created:
              Updated: