Hello Adar Dembo,
I'd like you to do a code review. Please visit
http://gerrit.cloudera.org:8080/8280
to review the following change.
Change subject: mini-cluster: support parallel multi-master clusters
......................................................................
mini-cluster: support parallel multi-master clusters
The external mini cluster previously required hard-coded ports for
multi-master clusters, which in practice meant that tests which require
multi-master clusters must be run serially.
This commit changes the external mini cluster to assign ports so that
many multi-master clusters can coexist in a single port-space at once.
To do this, the mini-cluster coordinator binds to N sockets with the
SO_REUSEPORT socket options, which effectively reserves the ports. Next,
it uses these reserved ports to start the masters. This method is also
advantageous in that in keeps the ports reserved while the masters may
be temporarily shutdown and restarted during the life of the
mini-cluster.
WIP: This commit removes the ability to set the desired master ports.
master_migration-itest relies on this functionality, so it's currently
broken. I'm not sure whether it would be better to restore this
functionality, or rewrite the test so that it doesn't need it.
Change-Id: I0b0ff7bfc179d8fdb1ed306d1bbd12acddeb060c
---
M src/kudu/integration-tests/CMakeLists.txt
M src/kudu/integration-tests/catalog_manager_tsk-itest.cc
M src/kudu/integration-tests/client-negotiation-failover-itest.cc
M src/kudu/integration-tests/client-stress-test.cc
M src/kudu/integration-tests/master-stress-test.cc
M src/kudu/integration-tests/master_cert_authority-itest.cc
M src/kudu/integration-tests/master_failover-itest.cc
M src/kudu/integration-tests/master_migration-itest.cc
M src/kudu/integration-tests/master_replication-itest.cc
M src/kudu/integration-tests/security-faults-itest.cc
M src/kudu/integration-tests/token_signer-itest.cc
M src/kudu/integration-tests/webserver-stress-itest.cc
M src/kudu/master/mini_master.cc
M src/kudu/mini-cluster/CMakeLists.txt
M src/kudu/mini-cluster/external_mini_cluster-test.cc
M src/kudu/mini-cluster/external_mini_cluster.cc
M src/kudu/mini-cluster/external_mini_cluster.h
M src/kudu/mini-cluster/internal_mini_cluster.cc
M src/kudu/mini-cluster/internal_mini_cluster.h
M src/kudu/mini-cluster/mini_cluster.h
M src/kudu/tools/CMakeLists.txt
M src/kudu/tools/ksck_remote-test.cc
M src/kudu/tools/tool_action_test.cc
23 files changed, 125 insertions(+), 204 deletions(-)
git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/80/8280/1
--
To view, visit http://gerrit.cloudera.org:8080/8280
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: I0b0ff7bfc179d8fdb1ed306d1bbd12acddeb060c
Gerrit-Change-Number: 8280
Gerrit-PatchSet: 1
Gerrit-Owner: Dan Burkert <[email protected]>
Gerrit-Reviewer: Adar Dembo <[email protected]>