Hello Kudu Jenkins,

I'd like you to reexamine a change. Please visit

    http://gerrit.cloudera.org:8080/16034

to look at the new patch set (#2).

Change subject: WIP [consensus] KUDU-2727 lock-free CheckLeadershipAndBindTerm()
......................................................................

WIP [consensus] KUDU-2727 lock-free CheckLeadershipAndBindTerm()

This patch is an attempt to address the following lock contention issue
outlined in KUDU-2727:

  
tids=[93293,93284,93285,93286,93287,93288,93289,93290,93291,93292,93304,93294,93295,93296,93297,93298,93299,93300,93301,93302,93303,93313,93322,93321,93320,93319,93318,93317,93316,93315,93314,93283,93312,93311,93310,93309,93308,93307,93306,93305]
      0x7f61b79fc5e0 <unknown>
           0x1ec35f4 base::internal::SpinLockDelay()
           0x1ec347c base::SpinLock::SlowLock()
            0xb7deb8 
kudu::consensus::RaftConsensus::CheckLeadershipAndBindTerm()
            0xaab010 kudu::tablet::TransactionDriver::ExecuteAsync()
            0xaa344c kudu::tablet::TabletReplica::SubmitWrite()
            0x928fb0 kudu::tserver::TabletServiceImpl::Write()
           0x1d2e8d9 kudu::rpc::GeneratedServiceIf::Handle()
           0x1d2efd9 kudu::rpc::ServicePool::RunThread()
           0x1ea4a84 kudu::Thread::SuperviseThread()
      0x7f61b79f4e25 start_thread
      0x7f61b5cd234d __clone
  tids=[93383]
      0x7f61b79fc5e0 <unknown>
      0x7f61b79f8cf2 __pthread_cond_timedwait
           0x1dfcfa9 kudu::ConditionVariable::WaitUntil()
            0xb73bc7 kudu::consensus::RaftConsensus::UpdateReplica()
            0xb75128 kudu::consensus::RaftConsensus::Update()
            0x92c5d1 kudu::tserver::ConsensusServiceImpl::UpdateConsensus()
           0x1d2e8d9 kudu::rpc::GeneratedServiceIf::Handle()
           0x1d2efd9 kudu::rpc::ServicePool::RunThread()
           0x1ea4a84 kudu::Thread::SuperviseThread()
      0x7f61b79f4e25 start_thread
      0x7f61b5cd234d __clone

The inspiration for this update comes from Yugabyte-DB:
  
https://github.com/yugabyte/yugabyte-db/commit/7b3271e4a0f34ff3c3f6e8961288db9cee335461

WIP:
  * the regression test for KUDU-597 is failing 
(RaftConsensusITest.TestKUDU_597)
  * the assert from mvcc.cc sometimes triggers elsewhere:
      F0606 05:16:10.402253  1593 mvcc.cc:68] Check failed: 
!cur_snap_.IsCommitted(timestamp) Trying to start a new txn at an already 
committed timestamp: 6518458634355691520, current MVCC snapshot: 
MvccSnapshot[committed={T|T < 6518458634355847168}]

Change-Id: I934ae3035d893fd850afe27d96f8dd6612c9ffbd
---
M src/kudu/consensus/consensus_meta.cc
M src/kudu/consensus/consensus_meta.h
M src/kudu/consensus/raft_consensus.cc
M src/kudu/consensus/raft_consensus.h
M src/kudu/integration-tests/raft_consensus-itest.cc
5 files changed, 135 insertions(+), 30 deletions(-)


  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/34/16034/2
--
To view, visit http://gerrit.cloudera.org:8080/16034
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I934ae3035d893fd850afe27d96f8dd6612c9ffbd
Gerrit-Change-Number: 16034
Gerrit-PatchSet: 2
Gerrit-Owner: Alexey Serbin <[email protected]>
Gerrit-Reviewer: Kudu Jenkins (120)

Reply via email to