Alexey Serbin has uploaded this change for review. ( 
http://gerrit.cloudera.org:8080/16060


Change subject: [tests] add same_tablet_concurrent_writes test
......................................................................

[tests] add same_tablet_concurrent_writes test

Added SameTabletConcurrentWritesTest.InsertsOnly test scenario.
The scenario exercises concurrent inserts from multiple clients
into the same tablet.

The purpose of the newly introduced test is to check for lock contention
if running multiple write operations on the same tablet concurrently.
There is an interaction between threads pushing Raft consensus updates
and RPC worker threads serving write requests, and the test pinpoints
the contention over the lock primitives in RaftConsensus.

To validate the results reported by the test, I verified that RPC queue
overflows happen a bit less often if using the lock-free implementation
of RaftConsensus::CheckLeadershipAndBindTerm() with patch posted here:
  https://gerrit.cloudera.org/#/c/16034/

The rates of successful write operations was the same for both cases.
However, the number of messages from spinlock_profiling.cc like
  Waited 190 ms on lock 0x237acd4 ...
dropped significantly after applying patch 16034 on top.  That's a good
news to have less contention because the freed CPU resources might be
spend on something useful.

Change-Id: I7eef6e46e7685450354473cee9d804c5054723eb
---
M src/kudu/integration-tests/CMakeLists.txt
A src/kudu/integration-tests/same_tablet_concurrent_writes-itest.cc
2 files changed, 244 insertions(+), 0 deletions(-)



  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/60/16060/1
--
To view, visit http://gerrit.cloudera.org:8080/16060
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: I7eef6e46e7685450354473cee9d804c5054723eb
Gerrit-Change-Number: 16060
Gerrit-PatchSet: 1
Gerrit-Owner: Alexey Serbin <[email protected]>

Reply via email to