Andrew Wong has uploaded this change for review. ( 
http://gerrit.cloudera.org:8080/8859


Change subject: KUDU-2115: remove unnecessary compaction selection check
......................................................................

KUDU-2115: remove unnecessary compaction selection check

Tablets will perform compaction selection on a copy of the currently
available rowsets in order to avoid holding the component_lock_ for the
duration of rowset selection.

It is then verified that nothing else compacted the selected rowsets by
iterating over the selected rowsets and checking that they still exist
to be compacted.

However, the initial selection of rowsets is performed on a snapshotted
copy of the available rowsets, and in between the snapshot of the
rowsets and the verification, the component_lock_ is dropped. As such,
the verification hits false positives when other threads are able to
take the component_lock_ and modify the available rowsets.

This verification failure here is harmless, and the verification itself
so I've taken the block of code for it. Removal of this should be
harmless, as it still maintains the invariant that only things that are
available to be compacted are returned by PickRowSetsToCompact().

I verified the diagnosis by placing a random sleep just after making the
copy in PickRowSetsToCompact() and seeing TestRandomOpSequence, which
schedules many compactions, fail consistently with the failed
verification. Upon making the fix, it passed.

Change-Id: I4dab330d61facb18717f6faf179f9b94a9e55236
---
M src/kudu/tablet/tablet.cc
1 file changed, 0 insertions(+), 18 deletions(-)



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

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: I4dab330d61facb18717f6faf179f9b94a9e55236
Gerrit-Change-Number: 8859
Gerrit-PatchSet: 1
Gerrit-Owner: Andrew Wong <[email protected]>

Reply via email to