-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/4380/
-----------------------------------------------------------
(Updated 2012-03-21 01:37:21.662817)
Review request for Flume.
Changes
-------
Javadocs update
Summary
-------
Submitting an initial cut of FailoverRpcClient that uses the NettyRpcClient
under the hood. In this version, host selection is not exactly the best, please
make suggestions on how to improve it. As of now, the first version will not
have a backoff mechanism to not retry a host for a fixed time etc(as discussed
in the jira). I will add unit tests soon.
Note that the actual "connect" call to a host is hidden from the FailoverClient
(by the Netty client or any other implementation, which we may choose to use
later). Since this connect call is hidden, failure to create a client(the build
function throwing an exception) is not being considered a failure. Only a
failure to append is considered a failure, and counted towards the maximum
number of tries. In other words, as far as the FailoverClient(for that matter,
any implementation of RpcClient interface) would consider an append failure as
failure, not a failure to a build() call - if we want to make sure that a
connect failure also is counted, we should move the connect call to the append
function and keep track of the connection state internally, and not expect any
code depending on an implementation of RpcClient(including other clients which
depend on pre-existing clients) to know that a build call also creates a
connection - this is exactly like a socket implementation, creating a new
socket does not initialize a connection, it is done explicitly.
This addresses bug FLUME-962.
https://issues.apache.org/jira/browse/FLUME-962
Diffs (updated)
-----
flume-ng-sdk/src/test/java/org/apache/flume/api/TestRpcClientFactory.java
0c94231
flume-ng-sdk/src/test/java/org/apache/flume/api/TestNettyAvroRpcClient.java
8c40aa4
flume-ng-sdk/src/test/java/org/apache/flume/api/RpcTestUtils.java 9497a3d
flume-ng-sdk/src/test/java/org/apache/flume/api/TestFailoverRpcClient.java
PRE-CREATION
flume-ng-sdk/src/main/java/org/apache/flume/api/RpcClientFactory.java 351b5b1
flume-ng-sdk/src/main/java/org/apache/flume/api/NettyAvroRpcClient.java
965b2ff
flume-ng-sdk/src/main/java/org/apache/flume/api/ClientType.java PRE-CREATION
flume-ng-sdk/src/main/java/org/apache/flume/api/FailoverRpcClient.java
PRE-CREATION
Diff: https://reviews.apache.org/r/4380/diff
Testing
-------
Unit tests added for the new functionality
Thanks,
Hari