diff options
author | Luke Chen <luke.chen@mongodb.com> | 2022-12-28 15:55:17 +1100 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2022-12-28 05:30:28 +0000 |
commit | ddb8b7b32c96ffc7bf0768d576750c5117432099 (patch) | |
tree | 959cbd7d564bbbd3abeff4eada8eb44d918e676e | |
parent | 6b457981fd3e919460828c2dcaf7fefd2c49407d (diff) | |
download | mongo-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.data | 2 | ||||
-rw-r--r-- | src/third_party/wiredtiger/src/include/mutex_inline.h | 9 | ||||
-rw-r--r-- | src/third_party/wiredtiger/src/support/mtx_rw.c | 16 |
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; } /* |