Details
Description
After we checkpoint the history store we don't bump the checkpoint_generation. The checkpoint generation controls whether we include the checkpoint transaction in our calculations of the pinned and oldest_ids for a given btree.
But because we release the checkpoint_timestamp and checkpoint_txn_shared.pinned_id almost immediately after finishing checkpointing the history store as such it shouldn't have that big of an impact.
The fix should be:
diff --git a/src/txn/txn_ckpt.c b/src/txn/txn_ckpt.c
|
index d9a15ed06..dd959c2eb 100644
|
--- a/src/txn/txn_ckpt.c
|
+++ b/src/txn/txn_ckpt.c
|
@@ -899,6 +899,7 @@ __txn_checkpoint(WT_SESSION_IMPL *session, const char *cfg[])
|
time_start_hs = __wt_clock(session);
|
WT_WITH_DHANDLE(session, hs_dhandle, ret = __wt_checkpoint(session, cfg));
|
WT_ERR(ret);
|
+ __checkpoint_update_generation(session);
|
time_stop_hs = __wt_clock(session);
|
hs_ckpt_duration_usecs = WT_CLOCKDIFF_US(time_stop_hs, time_start_hs);
|
WT_STAT_CONN_SET(session, txn_hs_ckpt_duration, hs_ckpt_duration_usecs);
|
|