-
Type:
Task
-
Resolution: Unresolved
-
Priority:
Major - P3
-
None
-
Affects Version/s: None
-
Component/s: Checkpoints
-
None
-
Storage Engines - Persistence
-
SE Persistence backlog
-
None
We change the check:
/*
* If reconciliation requires multiple blocks and checkpoint is running we'll eventually fail,
* unless we're the checkpoint thread. Big pages take a lot of writes, avoid wasting work.
*/
if (!last_block && __wt_btree_syncing_by_other_session(session)) {
to
/*
* If reconciliation requires multiple blocks and checkpoint is running we'll eventually fail,
* unless we're the checkpoint thread. Big pages take a lot of writes, avoid wasting work.
*/
if (!last_block && WT_BTREE_SYNCING(btree) && !WT_SESSION_BTREE_SYNC(session) &&
!WT_SESSION_IS_CHECKPOINT(session)) {
We should review why we make this change and add a comment. We should also review in other places we call __wt_btree_syncing_by_other_session. Do they need to be changed as well?