Alexey Serbin has uploaded this change for review. (
http://gerrit.cloudera.org:8080/16034
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
WIP:
* this is just a POC, need to run more testing (linked-list-test, etc)
* some standard pre-commit tests are still failing
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
4 files changed, 33 insertions(+), 15 deletions(-)
git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/34/16034/1
--
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: newchange
Gerrit-Change-Id: I934ae3035d893fd850afe27d96f8dd6612c9ffbd
Gerrit-Change-Number: 16034
Gerrit-PatchSet: 1
Gerrit-Owner: Alexey Serbin <[email protected]>