summaryrefslogtreecommitdiff
path: root/src/include/connection.h
diff options
context:
space:
mode:
authorKeith Bostic <keith.bostic@mongodb.com>2017-04-04 23:54:41 -0400
committerMichael Cahill <michael.cahill@mongodb.com>2017-04-05 13:54:41 +1000
commit963624a0c6a63419199e144526cd6912d3303511 (patch)
treede423fd9f3cb21f9174e30fcf2bb4e5861c46581 /src/include/connection.h
parentd924d58f8b3becf2ecb8ace720da9e5ac6645568 (diff)
downloadmongo-963624a0c6a63419199e144526cd6912d3303511.tar.gz
WT-3076 Add a general-purpose epoch manager (#3362)
* Switch the table schema generation numbers over the general purpose generations manager. * Switch the btree split generation numbers over the general purpose generations manager. * Add replaced hazard pointer arrays to the session's stash for later free (__wt_txn_release() and all functions that release session resources will free old hazard pointer arrays where possible). * The connection's free-on-close functionality is no longer used outside of the config code, make it private again. * To convert hazard pointers to the standard generation code, we have to add enter/leave segments when looking at other session's hazard pointer arrays. (The only paths freeing hazard pointer memory are in the context of the thread that "owns" the memory, so there's no need to enter the hazard pointer resource generation when the thread that owns the hazard pointer memory is examining it, it can't be freed from underneath that thread.)
Diffstat (limited to 'src/include/connection.h')
-rw-r--r--src/include/connection.h9
1 files changed, 4 insertions, 5 deletions
diff --git a/src/include/connection.h b/src/include/connection.h
index 6c23492e926..7e4ef212b82 100644
--- a/src/include/connection.h
+++ b/src/include/connection.h
@@ -210,10 +210,6 @@ struct __wt_connection_impl {
WT_FH *lock_fh; /* Lock file handle */
- volatile uint64_t split_gen; /* Generation number for splits */
- uint64_t split_stashed_bytes; /* Atomic: split statistics */
- uint64_t split_stashed_objects;
-
/*
* The connection keeps a cache of data handles. The set of handles
* can grow quite large so we maintain both a simple list and a hash
@@ -401,7 +397,10 @@ struct __wt_connection_impl {
/* If non-zero, all buffers used for I/O will be aligned to this. */
size_t buffer_alignment;
- uint32_t schema_gen; /* Schema generation number */
+ uint64_t stashed_bytes; /* Atomic: stashed memory statistics */
+ uint64_t stashed_objects;
+ /* Generations manager */
+ volatile uint64_t generations[WT_GENERATIONS];
wt_off_t data_extend_len; /* file_extend data length */
wt_off_t log_extend_len; /* file_extend log length */