Hao Hao has posted comments on this change. ( http://gerrit.cloudera.org:8080/17097 )
Change subject: KUDU-2612: add PartitionLock and ScopedPartitionLock ...................................................................... Patch Set 6: (7 comments) http://gerrit.cloudera.org:8080/#/c/17097/6/src/kudu/tablet/lock_manager-test.cc File src/kudu/tablet/lock_manager-test.cc: http://gerrit.cloudera.org:8080/#/c/17097/6/src/kudu/tablet/lock_manager-test.cc@158 PS6, Line 158: ASSERT_EQ(1, lock_manager_.partition_lock_refs()); > Looking at this as a block box, does it make sense to check that the first Done http://gerrit.cloudera.org:8080/#/c/17097/6/src/kudu/tablet/lock_manager-test.cc@252 PS6, Line 252: if (acquired) { > Why it might not be acquired? Is it possible? This might happen if the non-transactional op take the op first. http://gerrit.cloudera.org:8080/#/c/17097/6/src/kudu/tablet/lock_manager-test.cc@267 PS6, Line 267: if (acquired) { : CHECK_EQ(TabletServerErrorPB::UNKNOWN_ERROR, code); : CHECK_EQ(1, lock_manager_.partition_lock_refs()); : } > I'm not sure I understand this piece if reading the comment for the thread' Sorry forget to update the comment.. Updated it. http://gerrit.cloudera.org:8080/#/c/17097/6/src/kudu/tablet/lock_manager.h File src/kudu/tablet/lock_manager.h: http://gerrit.cloudera.org:8080/#/c/17097/6/src/kudu/tablet/lock_manager.h@193 PS6, Line 193: ScopedPartitionLock > What if an instance of this class is copied? Would it result in incorrect I don't think so, since we only update the reference at the constructor. But I disabled the copy constructor anyway. http://gerrit.cloudera.org:8080/#/c/17097/6/src/kudu/tablet/lock_manager.cc File src/kudu/tablet/lock_manager.cc: http://gerrit.cloudera.org:8080/#/c/17097/6/src/kudu/tablet/lock_manager.cc@448 PS6, Line 448: kMaxBackoffExp > nit: this might be a constexpr Ack http://gerrit.cloudera.org:8080/#/c/17097/6/src/kudu/tablet/lock_manager.cc@496 PS6, Line 496: ms > Is it in seconds or milliseconds? Ah, sorry for the confusion. It is in milliseconds, since I think we don't need to wait at the second level, as the caller() should already know the lock can be acquired (fast) with TryAcquirePartitionLock() succeeded previously. WDYT? I moved the log to TryAcquirePartitionLock() to avoid the report being screwed. http://gerrit.cloudera.org:8080/#/c/17097/6/src/kudu/tablet/lock_manager.cc@520 PS6, Line 520: partition_lock_refs_ -= 1; : DCHECK_GE(partition_lock_refs_, 0); : if (partition_lock_refs_ == 0) { : partition_lock_.reset(); : } > nit: this might be shortened to Done -- To view, visit http://gerrit.cloudera.org:8080/17097 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-Project: kudu Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I158115739ce3e7cfb77bbcb854e834336c1256b1 Gerrit-Change-Number: 17097 Gerrit-PatchSet: 6 Gerrit-Owner: Hao Hao <hao....@cloudera.com> Gerrit-Reviewer: Alexey Serbin <aser...@cloudera.com> Gerrit-Reviewer: Andrew Wong <aw...@cloudera.com> Gerrit-Reviewer: Bankim Bhavsar <ban...@cloudera.com> Gerrit-Reviewer: Hao Hao <hao....@cloudera.com> Gerrit-Reviewer: Kudu Jenkins (120) Gerrit-Reviewer: Tidy Bot (241) Gerrit-Comment-Date: Fri, 12 Mar 2021 06:28:23 +0000 Gerrit-HasComments: Yes