-
Type: Task
-
Resolution: Works as Designed
-
Priority: 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.
- is related to
-
WT-11450 Investigate how to give up compaction when a schema operation occurs on the same table
- Backlog
-
SERVER-89727 Remove acquisition of database and collection locks in compaction
- Closed
- related to
-
SERVER-87112 Stop/resume background compaction before/after RTS
- Closed
-
WT-11678 Investigate issues generated by background compaction in MDB tests
- Closed