You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kudu.apache.org by al...@apache.org on 2020/04/15 23:14:09 UTC

[kudu] 03/03: Revert "[catalog_manager] reduce contention in ScopedLeaderSharedLock"

This is an automated email from the ASF dual-hosted git repository.

alexey pushed a commit to branch branch-1.12.x
in repository https://gitbox.apache.org/repos/asf/kudu.git

commit e69b67367c09470a802516cba252c3f3c400871d
Author: Alexey Serbin <al...@apache.org>
AuthorDate: Wed Apr 15 14:56:11 2020 -0700

    Revert "[catalog_manager] reduce contention in ScopedLeaderSharedLock"
    
    This reverts commit 1b5c143b5323e82e33e79098269b46544cf4be09.
    
    Change-Id: Ia3757004421de0a06319ba392de7ed142624911c
    Reviewed-on: http://gerrit.cloudera.org:8080/15741
    Reviewed-by: Hao Hao <ha...@cloudera.com>
    Tested-by: Kudu Jenkins
---
 src/kudu/master/catalog_manager.cc | 18 +++++++-----------
 1 file changed, 7 insertions(+), 11 deletions(-)

diff --git a/src/kudu/master/catalog_manager.cc b/src/kudu/master/catalog_manager.cc
index 598c5f6..af1b5f1 100644
--- a/src/kudu/master/catalog_manager.cc
+++ b/src/kudu/master/catalog_manager.cc
@@ -5316,16 +5316,12 @@ CatalogManager::ScopedLeaderSharedLock::ScopedLeaderSharedLock(
       initial_term_(-1) {
 
   // Check if the catalog manager is running.
-  int64_t leader_ready_term;
-  {
-    std::lock_guard<simple_spinlock> l(catalog_->state_lock_);
-    if (PREDICT_FALSE(catalog_->state_ != kRunning)) {
-      catalog_status_ = Status::ServiceUnavailable(
-          Substitute("Catalog manager is not initialized. State: $0",
-                     StateToString(catalog_->state_)));
-      return;
-    }
-    leader_ready_term = catalog_->leader_ready_term_;
+  std::lock_guard<simple_spinlock> l(catalog_->state_lock_);
+  if (PREDICT_FALSE(catalog_->state_ != kRunning)) {
+    catalog_status_ = Status::ServiceUnavailable(
+        Substitute("Catalog manager is not initialized. State: $0",
+                   StateToString(catalog_->state_)));
+    return;
   }
 
   ConsensusStatePB cstate;
@@ -5347,7 +5343,7 @@ CatalogManager::ScopedLeaderSharedLock::ScopedLeaderSharedLock(
                    uuid, SecureShortDebugString(cstate)));
     return;
   }
-  if (PREDICT_FALSE(leader_ready_term != initial_term_ ||
+  if (PREDICT_FALSE(catalog_->leader_ready_term_ != cstate.current_term() ||
                     !leader_shared_lock_.owns_lock())) {
     leader_status_ = Status::ServiceUnavailable(
         "Leader not yet ready to serve requests");