Add retry logic to ColumnFamilyRecordReader
-------------------------------------------

                 Key: CASSANDRA-2905
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-2905
             Project: Cassandra
          Issue Type: Improvement
            Reporter: Jeremy Hanna
            Assignee: Jeremy Hanna


One thing that would improve the built-in ColumnFamilyRecordReader is some 
retry logic if it times out on hasNext.  It could help in addition to setting 
the rpc_timeout_in_ms, so that timeouts happen less frequently so there are 
fewer blacklisted task trackers (which are the result of an error, including 
the timeout).

{code}
java.lang.RuntimeException: TimedOutException() at 
org.apache.cassandra.hadoop.ColumnFamilyRecordReader$RowIterator.maybeInit(ColumnFamilyRecordReader.java:264)
 at 
org.apache.cassandra.hadoop.ColumnFamilyRecordReader$RowIterator.computeNext(ColumnFamilyRecordReader.java:279)
 at 
org.apache.cassandra.hadoop.ColumnFamilyRecordReader$RowIterator.computeNext(ColumnFamilyRecordReader.java:176)
 at 
com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:136)
 at 
com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:131) 
at 
org.apache.cassandra.hadoop.ColumnFamilyRecordReader.nextKeyValue(ColumnFamilyRecordReader.java:135)
 at org.apache.cassandra.hadoop.pig.CassandraStorage.getNext(Unknown Source) at 
org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigRecordReader.nextKeyValue(PigRecordReader.java:187)
 at 
org.apache.hadoop.mapred.MapTask$NewTrackingRecordReader.nextKeyValue(MapTask.java:455)
 at org.apache.hadoop.mapreduce.MapContext.nextKeyValue(MapContext.java:67) at 
org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:143) at 
org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:646) at 
org.apache.hadoop.mapred.MapTask.run(MapTask.java:322) at 
org.apache.hadoop.mapred.Child$4.run(Child.java:268) at 
java.security.AccessController.doPrivileged(Native Method) at 
javax.security.auth.Subject.doAs(Subject.java:396) at 
org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1115)
 at org.apache.hadoop.mapred.Child.main(Child.java:262) Caused by: 
TimedOutException() at 
org.apache.cassandra.thrift.Cassandra$get_range_slices_result.read(Cassandra.java:12104)
 at 
org.apache.cassandra.thrift.Cassandra$Client.recv_get_range_slices(Cassandra.java:732)
 at 
org.apache.cassandra.thrift.Cassandra$Client.get_range_slices(Cassandra.java:704)
 at 
org.apache.cassandra.hadoop.ColumnFamilyRecordReader$RowIterator.maybeInit(ColumnFamilyRecordReader.java:242)
 ... 17 more
{code}

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira


Reply via email to