Hello Kudu Jenkins,

I'd like you to reexamine a change. Please visit

    http://gerrit.cloudera.org:8080/16974

to look at the new patch set (#3).

Change subject: KUDU-2612: add a TxnSystemClient to the tservers
......................................................................

KUDU-2612: add a TxnSystemClient to the tservers

This patch adds a TxnSystemClient that gets initialized asynchronously,
attempting to connect to the masters in the background in a similar
fashion to the Heartbeater threads.

There is some intricacy in the initialization of the client to note.
Namely, if trying to connect to a set of masters while none of the
masters can be reached, the KuduClientBuilder will attempt to retry
connecting to each master repeatedly. This is problematic, as several
tserver tests do not spin up masters. So, taking a page out of the
Heartbeater book, the initialization will first ping each master. As
long as at least one of them can connect, the TxnSystemClient will then
proceed to attempt to connect to the cluster.

This patch focuses only on adding the client initialization logic to the
tservers, ensuring that even without connecting to, tservers can
successfully bootstrap. This client will be used in later patches to
communicate between the TxnStatusManager and transaction participants.

Also note the similarities between TxnManager initialization, which
happens on masters in a single-threaded threadpool. I considered reusing
the implementation for tservers, but opted not to given the TxnManager
initialization fairly well embedded in master code and has some
initialization pieces not needed by TxnStatusManagers and participants
(e.g. tservers aren't in charge of creating the transaction status
table). I left a TODO to refactor for code reuse.

Change-Id: I33b5a2bb5c56ae4bb4b42069af5813e2780fc4bc
---
M src/kudu/client/client-test.cc
M src/kudu/integration-tests/location_assignment-itest.cc
M src/kudu/integration-tests/txn_status_table-itest.cc
M src/kudu/rpc/sasl_common.cc
M src/kudu/transactions/txn_system_client.cc
M src/kudu/transactions/txn_system_client.h
M src/kudu/tserver/tablet_server.cc
M src/kudu/tserver/tablet_server.h
8 files changed, 205 insertions(+), 2 deletions(-)


  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/74/16974/3
--
To view, visit http://gerrit.cloudera.org:8080/16974
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I33b5a2bb5c56ae4bb4b42069af5813e2780fc4bc
Gerrit-Change-Number: 16974
Gerrit-PatchSet: 3
Gerrit-Owner: Andrew Wong <[email protected]>
Gerrit-Reviewer: Kudu Jenkins (120)

Reply via email to