summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChenhao Qu <chenhao.qu@mongodb.com>2022-11-02 11:57:14 +1100
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2022-11-02 02:00:19 +0000
commit392d75159d0e07b7bff74f04e7cf8d936f138a6d (patch)
treef30d1b5a46f6b56d4dad7cd6786c926d84293ddd
parentf73680cbeacc33046dfc7f7708daebf04ace81b0 (diff)
downloadmongo-392d75159d0e07b7bff74f04e7cf8d936f138a6d.tar.gz
Import wiredtiger: 2f8aa90552a2a27900cb31bc938369585343611d from branch mongodb-master
ref: 99bedf2bb6..2f8aa90552 for: 6.2.0-rc0 WT-9860 Debug dumps include page deletion information for fast truncate
-rw-r--r--src/third_party/wiredtiger/import.data2
-rw-r--r--src/third_party/wiredtiger/src/btree/bt_debug.c16
2 files changed, 17 insertions, 1 deletions
diff --git a/src/third_party/wiredtiger/import.data b/src/third_party/wiredtiger/import.data
index 447eb7e8130..8cd14f3e3fa 100644
--- a/src/third_party/wiredtiger/import.data
+++ b/src/third_party/wiredtiger/import.data
@@ -2,5 +2,5 @@
"vendor": "wiredtiger",
"github": "wiredtiger/wiredtiger.git",
"branch": "mongodb-master",
- "commit": "99bedf2bb6dc8a225fa399a87dc83d0845024a81"
+ "commit": "2f8aa90552a2a27900cb31bc938369585343611d"
}
diff --git a/src/third_party/wiredtiger/src/btree/bt_debug.c b/src/third_party/wiredtiger/src/btree/bt_debug.c
index af9ead0dbec..d7b77055ee8 100644
--- a/src/third_party/wiredtiger/src/btree/bt_debug.c
+++ b/src/third_party/wiredtiger/src/btree/bt_debug.c
@@ -545,6 +545,7 @@ __debug_cell_int(WT_DBG *ds, const WT_PAGE_HEADER *dsk, WT_CELL_UNPACK_ADDR *unp
{
WT_DECL_ITEM(buf);
WT_DECL_RET;
+ WT_PAGE_DELETED *page_del;
WT_SESSION_IMPL *session;
char time_string[WT_TIME_STRING_SIZE];
@@ -562,6 +563,14 @@ __debug_cell_int(WT_DBG *ds, const WT_PAGE_HEADER *dsk, WT_CELL_UNPACK_ADDR *unp
/* Dump timestamps and addresses. */
switch (unpack->raw) {
case WT_CELL_ADDR_DEL:
+ /* Dump the deleted pages transaction ID, commit timestamp, and durable timestamp. */
+ if (F_ISSET(dsk, WT_PAGE_FT_UPDATE)) {
+ page_del = &unpack->page_del;
+ WT_RET(ds->f(ds, ", page_del : %s",
+ __wt_time_point_to_string(
+ page_del->timestamp, page_del->durable_timestamp, page_del->txnid, time_string)));
+ }
+ /* FALLTHROUGH */
case WT_CELL_ADDR_INT:
case WT_CELL_ADDR_LEAF:
case WT_CELL_ADDR_LEAF_NO:
@@ -1621,6 +1630,7 @@ static int
__debug_ref(WT_DBG *ds, WT_REF *ref)
{
WT_ADDR_COPY addr;
+ WT_PAGE_DELETED *page_del;
WT_SESSION_IMPL *session;
char time_string[WT_TIME_STRING_SIZE];
@@ -1638,6 +1648,12 @@ __debug_ref(WT_DBG *ds, WT_REF *ref)
if (__wt_ref_addr_copy(session, ref, &addr) && !WT_TIME_AGGREGATE_IS_EMPTY(&addr.ta))
WT_RET(ds->f(ds, ", %s, %s", __wt_time_aggregate_to_string(&addr.ta, time_string),
__wt_addr_string(session, addr.addr, addr.size, ds->t1)));
+ if (ref->page_del != NULL) {
+ page_del = ref->page_del;
+ WT_RET(ds->f(ds, ", page_del : %s",
+ __wt_time_point_to_string(
+ page_del->timestamp, page_del->durable_timestamp, page_del->txnid, time_string)));
+ }
return (ds->f(ds, "\n"));
}
#endif