Yingchun Lai has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/19571 )

Change subject: KUDU-3452 Create tablet without enough healthy tservers
......................................................................


Patch Set 3:

(4 comments)

http://gerrit.cloudera.org:8080/#/c/19571/3/src/kudu/master/catalog_manager.cc
File src/kudu/master/catalog_manager.cc:

http://gerrit.cloudera.org:8080/#/c/19571/3/src/kudu/master/catalog_manager.cc@5933
PS3, Line 5933:       int nreplicas = 0;
              :       // Get replica factor.
              :       {
              :         TableMetadataLock table_guard(tablet->table().get(), 
LockMode::READ);
              :         nreplicas = table_guard.data().pb.num_replicas();
              :       }
              :       // Try to create a table without enough alive tablet 
servers.
              :       if (alive_num_ts < nreplicas &&
              :           
FLAGS_enable_create_tablet_without_enough_healthy_tservers) {
              :         // RAFT protocol require: (replica_factor + 1) / 2 >= 
the number of alive tservers,
              :         // or it can not run.
              :         if (alive_num_ts < (nreplicas + 1) / 2) {
              :           return Status::InvalidArgument(Substitute("RAFT 
protocal requires at least $0 "
              :                                                     "alive 
tablet servers, but only left $1 "
              :                                                     "alive 
tablet servers",
              :                                                     ((nreplicas 
+ 1) / 2), alive_num_ts));
              :         }
              :         nreplicas = alive_num_ts;
              :       }
How about encapsulate the logic into SelectNReplicasForTablet()? since it's a 
part of "select replicas" IMO.


http://gerrit.cloudera.org:8080/#/c/19571/3/src/kudu/master/catalog_manager.cc@6006
PS3, Line 6006: Status CatalogManager::SelectReplicasForTablet(const 
PlacementPolicy& policy,
I didn't find any where else using SelectReplicasForTablet(), why not remove it?


http://gerrit.cloudera.org:8080/#/c/19571/3/src/kudu/tools/kudu-tool-test.cc
File src/kudu/tools/kudu-tool-test.cc:

http://gerrit.cloudera.org:8080/#/c/19571/3/src/kudu/tools/kudu-tool-test.cc@9204
PS3, Line 9204:   SleepFor(MonoDelta::FromMilliseconds(2000));
nit: use cluster_->WaitForTabletServerCount() to ensure this.


http://gerrit.cloudera.org:8080/#/c/19571/3/src/kudu/tools/kudu-tool-test.cc@9228
PS3, Line 9228:
Is it able to alter the table in this case?



--
To view, visit http://gerrit.cloudera.org:8080/19571
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I742ba1ff770f5c8b1be5800334c29bec96e195c6
Gerrit-Change-Number: 19571
Gerrit-PatchSet: 3
Gerrit-Owner: Wang Xixu <[email protected]>
Gerrit-Reviewer: Alexey Serbin <[email protected]>
Gerrit-Reviewer: KeDeng <[email protected]>
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Wang Xixu <[email protected]>
Gerrit-Reviewer: Yifan Zhang <[email protected]>
Gerrit-Reviewer: Yingchun Lai <[email protected]>
Gerrit-Reviewer: Yuqi Du <[email protected]>
Gerrit-Comment-Date: Mon, 20 Mar 2023 08:40:09 +0000
Gerrit-HasComments: Yes

Reply via email to