summaryrefslogtreecommitdiff
path: root/src/include/lsm.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/include/lsm.h')
-rw-r--r--src/include/lsm.h24
1 files changed, 15 insertions, 9 deletions
diff --git a/src/include/lsm.h b/src/include/lsm.h
index 2550ca444c1..b433e4c3c44 100644
--- a/src/include/lsm.h
+++ b/src/include/lsm.h
@@ -31,6 +31,17 @@ struct __wt_lsm_worker_args {
};
/*
+ * WT_LSM_CURSOR_CHUNK --
+ * Iterator struct containing all the LSM cursor access points for a chunk.
+ */
+struct __wt_lsm_cursor_chunk {
+ WT_BLOOM *bloom; /* Bloom filter handle for each chunk.*/
+ WT_CURSOR *cursor; /* Cursor handle for each chunk. */
+ uint64_t count; /* Number of items in chunk */
+ uint64_t switch_txn; /* Switch txn for each chunk */
+};
+
+/*
* WT_CURSOR_LSM --
* An LSM cursor.
*/
@@ -43,17 +54,12 @@ struct __wt_cursor_lsm {
u_int nchunks; /* Number of chunks in the cursor */
u_int nupdates; /* Updates needed (including
snapshot isolation checks). */
- WT_BLOOM **blooms; /* Bloom filter handles. */
- size_t bloom_alloc;
-
- WT_CURSOR **cursors; /* Cursor handles. */
- size_t cursor_alloc;
-
- WT_CURSOR *current; /* The current cursor for iteration */
+ WT_CURSOR *current; /* The current cursor for iteration */
WT_LSM_CHUNK *primary_chunk; /* The current primary chunk */
- uint64_t *switch_txn; /* Switch txn for each chunk */
- size_t txnid_alloc;
+ WT_LSM_CURSOR_CHUNK **chunks; /* Array of LSM cursor units */
+ size_t chunks_alloc; /* Current size iterators array */
+ size_t chunks_count; /* Current number of iterators */
u_int update_count; /* Updates performed. */