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

Investigate if background compaction can run in parallel with RTS

    • Type: Icon: Task Task
    • Resolution: Works as Designed
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: None
    • Component/s: Compaction, RTS
    • None
    • Storage Engines
    • 3
    • c(3x10^8)-StorEng - 2023-11-14

      When RTS is executed, the function __wt_rts_check checks that there is no other running transaction in the system. If there is, RTS cannot proceed and returns EBUSY.

      When the background compaction server is executing compaction on a table, this implies a running transaction but this won't be captured by the RTS check as it skips internal sessions:

          WT_ORDERED_READ(session_cnt, conn->session_cnt);
          for (i = 0, session_in_list = conn->sessions; i < session_cnt; i++, session_in_list++) {
      
              /* Skip inactive or internal sessions. */
              if (!session_in_list->active || F_ISSET(session_in_list, WT_SESSION_INTERNAL))
                  continue;
      

       
      This ticket should make sure background compaction is stopped when RTS is requested.

        1. rts_ckpt_bg_compaction.png
          147 kB
          Etienne Petrel

            Assignee:
            etienne.petrel@mongodb.com Etienne Petrel
            Reporter:
            etienne.petrel@mongodb.com Etienne Petrel
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated:
              Resolved: