summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Chen <luke.chen@mongodb.com>2022-12-28 15:55:17 +1100
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2022-12-28 05:30:28 +0000
commitddb8b7b32c96ffc7bf0768d576750c5117432099 (patch)
tree959cbd7d564bbbd3abeff4eada8eb44d918e676e
parent6b457981fd3e919460828c2dcaf7fefd2c49407d (diff)
downloadmongo-ddb8b7b32c96ffc7bf0768d576750c5117432099.tar.gz
Import wiredtiger: e01aa00db09463ecb39ba87d9f9a8a9571362f8f from branch mongodb-master
ref: 475a1516e7..e01aa00db0 for: 6.3.0-rc0 WT-10336 Avoid incrementing session stats bytes read with a lock wait info
-rw-r--r--src/third_party/wiredtiger/import.data2
-rw-r--r--src/third_party/wiredtiger/src/include/mutex_inline.h9
-rw-r--r--src/third_party/wiredtiger/src/support/mtx_rw.c16
3 files changed, 23 insertions, 4 deletions
diff --git a/src/third_party/wiredtiger/import.data b/src/third_party/wiredtiger/import.data
index 4c924a0b288..c2019ef19b4 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": "475a1516e7be518d337fecb653c70743b20fb04f"
+ "commit": "e01aa00db09463ecb39ba87d9f9a8a9571362f8f"
}
diff --git a/src/third_party/wiredtiger/src/include/mutex_inline.h b/src/third_party/wiredtiger/src/include/mutex_inline.h
index bc51c36672a..768d9d1ed22 100644
--- a/src/third_party/wiredtiger/src/include/mutex_inline.h
+++ b/src/third_party/wiredtiger/src/include/mutex_inline.h
@@ -22,6 +22,7 @@ __spin_init_internal(WT_SPINLOCK *t, const char *name)
{
t->name = name;
t->stat_count_off = t->stat_app_usecs_off = t->stat_int_usecs_off = -1;
+ t->stat_session_usecs_off = -1;
t->initialized = 1;
}
@@ -313,7 +314,13 @@ __wt_spin_lock_track(WT_SESSION_IMPL *session, WT_SPINLOCK *t)
else {
stats[session->stat_bucket][t->stat_app_usecs_off] += (int64_t)time_diff;
}
- session_stats[t->stat_session_usecs_off] += (int64_t)time_diff;
+
+ /*
+ * Not all spin locks increment session statistics. Check whether the offset is initialized
+ * to determine whether they are enabled.
+ */
+ if (t->stat_session_usecs_off != -1)
+ session_stats[t->stat_session_usecs_off] += (int64_t)time_diff;
} else
__wt_spin_lock(session, t);
}
diff --git a/src/third_party/wiredtiger/src/support/mtx_rw.c b/src/third_party/wiredtiger/src/support/mtx_rw.c
index 1ad5c24edd7..a2262172d77 100644
--- a/src/third_party/wiredtiger/src/support/mtx_rw.c
+++ b/src/third_party/wiredtiger/src/support/mtx_rw.c
@@ -253,7 +253,13 @@ stall:
else {
stats[session->stat_bucket][l->stat_app_usecs_off] += (int64_t)time_diff;
}
- session_stats[l->stat_session_usecs_off] += (int64_t)time_diff;
+
+ /*
+ * Not all read-write locks increment session statistics. Check whether the offset is
+ * initialized to determine whether they are enabled.
+ */
+ if (l->stat_session_usecs_off != -1)
+ session_stats[l->stat_session_usecs_off] += (int64_t)time_diff;
}
/*
@@ -412,7 +418,13 @@ __wt_writelock(WT_SESSION_IMPL *session, WT_RWLOCK *l)
stats[session->stat_bucket][l->stat_int_usecs_off] += (int64_t)time_diff;
else
stats[session->stat_bucket][l->stat_app_usecs_off] += (int64_t)time_diff;
- session_stats[l->stat_session_usecs_off] += (int64_t)time_diff;
+
+ /*
+ * Not all read-write locks increment session statistics. Check whether the offset is
+ * initialized to determine whether they are enabled.
+ */
+ if (l->stat_session_usecs_off != -1)
+ session_stats[l->stat_session_usecs_off] += (int64_t)time_diff;
}
/*