diff options
author | Michael Cahill <michael.cahill@wiredtiger.com> | 2014-02-28 23:10:35 +1100 |
---|---|---|
committer | Michael Cahill <michael.cahill@wiredtiger.com> | 2014-02-28 23:10:35 +1100 |
commit | 180f1a59ec0e025c13202185ece0847133a78687 (patch) | |
tree | ead1fbc206ee5b9abc3248705bd388830e1db31f | |
parent | 3681e9cbdbed3eee7d80d89fa50bcb2c145aa1c7 (diff) | |
download | mongo-180f1a59ec0e025c13202185ece0847133a78687.tar.gz |
Loosen the assertions around LSM merges and Bloom filters: it's okay to merge chunks in generations greater than zero even if they don't have Bloom filters.
-rw-r--r-- | src/lsm/lsm_merge.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/lsm/lsm_merge.c b/src/lsm/lsm_merge.c index 74e5e58df97..0bf1bb49b2f 100644 --- a/src/lsm/lsm_merge.c +++ b/src/lsm/lsm_merge.c @@ -101,15 +101,15 @@ __wt_lsm_merge( WT_RET(__wt_lsm_tree_lock(session, lsm_tree, 1)); /* - * Only include chunks that already have a Bloom filter and not - * involved in a merge. + * Only include chunks that already have a Bloom filter or are the + * result of a merge and not involved in a merge. */ for (end_chunk = lsm_tree->nchunks - 1; end_chunk > 0; --end_chunk) { chunk = lsm_tree->chunk[end_chunk]; WT_ASSERT(session, chunk != NULL); if (F_ISSET(chunk, WT_LSM_CHUNK_MERGING)) continue; - if (F_ISSET(chunk, WT_LSM_CHUNK_BLOOM)) + if (F_ISSET(chunk, WT_LSM_CHUNK_BLOOM) || chunk->generation > 0) break; else if (FLD_ISSET(lsm_tree->bloom, WT_LSM_BLOOM_OFF) && F_ISSET(chunk, WT_LSM_CHUNK_ONDISK)) @@ -154,7 +154,7 @@ __wt_lsm_merge( WT_ASSERT(session, F_ISSET(chunk, WT_LSM_CHUNK_BLOOM) || FLD_ISSET(lsm_tree->bloom, WT_LSM_BLOOM_OFF) || - start_chunk == 1); + chunk->generation > 0); /* * Look for small merges before trying a big one: some threads |