summaryrefslogtreecommitdiff
path: root/src/third_party/wiredtiger/src/lsm/lsm_tree.c
diff options
context:
space:
mode:
authorAlex Gorrod <alexander.gorrod@mongodb.com>2017-08-21 09:26:14 +1000
committerAlex Gorrod <alexander.gorrod@mongodb.com>2017-08-21 09:26:14 +1000
commit0cfe4dfc2cf371f9e8196cb79414c3432b95b5af (patch)
tree3ea1dfc60609b4b6c424144f02af5e8045d1fe40 /src/third_party/wiredtiger/src/lsm/lsm_tree.c
parent1cbfc673303260c725ef428eb0f2b6372feb5ec1 (diff)
downloadmongo-0cfe4dfc2cf371f9e8196cb79414c3432b95b5af.tar.gz
Import wiredtiger: b055251678e6b4fcc74a1f651432aadbfeecc0e4 from branch mongodb-3.6
ref: 698847557c..b055251678 for: 3.5.12 WT-3328 Enhance docs around when schema operations can get EBUSY WT-3358 LSM will hang if the manager fails to start WT-3365 Understand how timestamps interact with LSM chunk switching WT-3399 Add new checkpoint blocking test case to automated testing WT-3417 Drain transactions during upgrade/downgrade. WT-3441 test_timestamp01 doesn't account for a large WT_TIMESTAMP_SIZE WT-3450 Add verbose option that tracks timestamp state and information WT-3452 Enhance existing recovery test to exercise timestamp API WT-3455 Enhance eviction to be aware of stable timestamp WT-3459 Test WiredTiger with clock shifting WT-3460 Add support for rollback_to_stable to column store WT-3465 Optimize performance when timestamp size is 8 bytes WT-3483 WT_SESSION::checkpoint returning WT_ROLLBACK WT-3492 ex_all.c not calling transaction_ops WT-3493 wt_verbose_dump_txn should display timestamp information WT-3497 Improve logging message when hitting the WT session limits WT-3498 Incorrect data read after caching overflow items WT-3499 Checkpoint can miss not yet committed item WT-3500 New timestamp-abort test is too chatty WT-3502 Only keep 10 delta updates between full copies WT-3503 Coverity 1379333: unchecked return value, full-build Friday WT-3508 timestamp-abort bug in verification phase WT-3509 __wt_illegal_value doesn't always provide a failure location WT-3514 WT_SESSION.checkpoint: read timestamp 6373c older than oldest timestamp WT-3517 WT_SESSION::reset doesn't need to call out EBUSY specially WT-3521 Unstable updates should not be written by lookaside eviction
Diffstat (limited to 'src/third_party/wiredtiger/src/lsm/lsm_tree.c')
-rw-r--r--src/third_party/wiredtiger/src/lsm/lsm_tree.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/third_party/wiredtiger/src/lsm/lsm_tree.c b/src/third_party/wiredtiger/src/lsm/lsm_tree.c
index 18e1f6d3115..e6eccf96467 100644
--- a/src/third_party/wiredtiger/src/lsm/lsm_tree.c
+++ b/src/third_party/wiredtiger/src/lsm/lsm_tree.c
@@ -35,6 +35,7 @@ __lsm_tree_discard_state(WT_SESSION_IMPL *session, WT_LSM_TREE *lsm_tree)
if ((chunk = lsm_tree->chunk[i]) == NULL)
continue;
+ __wt_spin_destroy(session, &chunk->timestamp_spinlock);
__wt_free(session, chunk->bloom_uri);
__wt_free(session, chunk->uri);
__wt_free(session, chunk);
@@ -44,6 +45,7 @@ __lsm_tree_discard_state(WT_SESSION_IMPL *session, WT_LSM_TREE *lsm_tree)
chunk = lsm_tree->old_chunks[i];
WT_ASSERT(session, chunk != NULL);
+ __wt_spin_destroy(session, &chunk->timestamp_spinlock);
__wt_free(session, chunk->bloom_uri);
__wt_free(session, chunk->uri);
__wt_free(session, chunk);
@@ -280,6 +282,8 @@ __wt_lsm_tree_setup_chunk(
WT_ASSERT(session, F_ISSET(session, WT_SESSION_LOCKED_SCHEMA));
__wt_epoch(session, &chunk->create_time);
+ __wt_spin_init(session,
+ &chunk->timestamp_spinlock, "LSM chunk timestamp");
WT_RET(__wt_lsm_tree_chunk_name(
session, lsm_tree, chunk->id, &chunk->uri));
@@ -474,8 +478,7 @@ __lsm_tree_open(WT_SESSION_IMPL *session,
F_ISSET(session, WT_SESSION_LOCKED_HANDLE_LIST_WRITE));
/* Start the LSM manager thread if it isn't running. */
- if (__wt_atomic_cas32(&conn->lsm_manager.lsm_workers, 0, 1))
- WT_RET(__wt_lsm_manager_start(session));
+ WT_RET(__wt_lsm_manager_start(session));
/* Make sure no one beat us to it. */
if ((ret = __lsm_tree_find(