Hi,

We’ve run into a strange problem regarding NFS and File Channel performance 
while evaluating the new version of Flume.
We had no issues with the previous version (1.2.0).

Our configuration looks like this:

·         Node1:
(Avro RPC Clients ->) Avro Source and Custom Sources -> File Channel -> Avro 
Sink (-> Node 2)

·         Node2:
(Node1s ->) Avro Source -> File Channel -> Custom Sink

Both the checkpoint and the data directories of the File Channels are on NFS 
shares. We use the same share for checkpoint and data directories, but 
different shares for each Node. Unfortunately it is not an option for us to use 
local directories.
The events are about 1KB large, and the batch sizes are the following:

·         Avro RPC Clients: 1000

·         Custom Sources: 2000

·         Avro Sink: 5000

·         Custom Sink: 10000

We are experiencing very slow File Channel performance compared to the previous 
version, and high amount of timeouts (almost always) in the Avro RPC Clients 
and the Avro Sink.
Something like this:

·         2012-12-18 15:43:31,828 
[SinkRunner-PollingRunner-ExceptionCatchingSinkProcessor] WARN  
org.apache.flume.sink.AvroSink - Failed to send event batch
org.apache.flume.EventDeliveryException: NettyAvroRpcClient { host: ***, port: 
*** }: Failed to send batch
        at 
org.apache.flume.api.NettyAvroRpcClient.appendBatch(NettyAvroRpcClient.java:236)
 ~[flume-ng-sdk-1.3.0.jar:1.3.0]
        ***
        at org.apache.flume.SinkRunner$PollingRunner.run(SinkRunner.java:147) 
[flume-ng-core-1.3.0.jar:1.3.0]
        at java.lang.Thread.run(Thread.java:662) [na:1.6.0_31]
Caused by: org.apache.flume.EventDeliveryException: NettyAvroRpcClient { host: 
***, port: *** }: Handshake timed out after 20000ms
        at 
org.apache.flume.api.NettyAvroRpcClient.appendBatch(NettyAvroRpcClient.java:280)
 ~[flume-ng-sdk-1.3.0.jar:1.3.0]
        at 
org.apache.flume.api.NettyAvroRpcClient.appendBatch(NettyAvroRpcClient.java:224)
 ~[flume-ng-sdk-1.3.0.jar:1.3.0]
        ... 5 common frames omitted
Caused by: java.util.concurrent.TimeoutException: null
        at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:228) 
~[na:1.6.0_31]
        at java.util.concurrent.FutureTask.get(FutureTask.java:91) 
~[na:1.6.0_31]
        at 
org.apache.flume.api.NettyAvroRpcClient.appendBatch(NettyAvroRpcClient.java:278)
 ~[flume-ng-sdk-1.3.0.jar:1.3.0]
        ... 6 common frames omitted
(I had to remove some details, sorry for that.)

We managed to narrow down the root cause of the issue to the File Channel, 
because:

·         Everything works fine if we switch to the Memory Channel or to the 
Old File Channel (1.2.0).

·         Everything works fine if we use local directories.
We’ve tested this on multiple different PCs (both Windows and Linux).

I spent the day debugging and profiling, but I could not find anything worth 
mentioning (nothing with excessive CPU usage, no threads are waiting too much, 
etc…). The only problem is that File Channel takes and puts take way more time 
than with the previous version.


Could someone please try the File Channel on an NFS share?
Does anyone have similar issues?

Thank you for your help.

Regards,
Rudolf

Rudolf Rakos
Morgan Stanley | ISG Technology
Lechner Odon fasor 8 | Floor 06
Budapest, 1095
Phone: +36 1 881-4011
rudolf.ra...@morganstanley.com<mailto:rudolf.ra...@morganstanley.com>


Be carbon conscious. Please consider our environment before printing this email.



________________________________

NOTICE: Morgan Stanley is not acting as a municipal advisor and the opinions or 
views contained herein are not intended to be, and do not constitute, advice 
within the meaning of Section 975 of the Dodd-Frank Wall Street Reform and 
Consumer Protection Act. If you have received this communication in error, 
please destroy all electronic and paper copies and notify the sender 
immediately. Mistransmission is not intended to waive confidentiality or 
privilege. Morgan Stanley reserves the right, to the extent permitted under 
applicable law, to monitor electronic communications. This message is subject 
to terms available at the following link: 
http://www.morganstanley.com/disclaimers If you cannot access these links, 
please notify us by reply message and we will send the contents to you. By 
messaging with Morgan Stanley you consent to the foregoing.

Reply via email to