[ 
https://issues.apache.org/jira/browse/ACCUMULO-706?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13453620#comment-13453620
 ] 

Keith Turner commented on ACCUMULO-706:
---------------------------------------

I implemented the timeout code in the batch writer implementation.  Now I am at 
the point where I need to let the user configure the timeout.   I am thinking 
of adding the following to the API.

{code:java}

public class BatchWriterConfig {
  private long maxMemory = 10000000;
  private long maxLatency = 120000;
  private long timeout = Long.MAX_VALUE;
  private int maxWriteThreads = 3;

  public BatchWriterConfig setMaxMemory(long maxMemory) {
    this.maxMemory = maxMemory;
    return this;
  }

  public BatchWriterConfig setMaxLatency(long maxLatency) {
    this.maxLatency = maxLatency;
    return this;
  }

  public BatchWriterConfig setTimeout(long timeout) {
    this.timeout = timeout;
    return this;
  }


  public BatchWriterConfig setMaxWriteThreads(int maxWriteThreads) {
    this.maxWriteThreads = maxWriteThreads;
    return this;
  }
}

{code}

and the following methods to Connector

{code:java}
class Connector {
    .
    .
    .
  public BatchDeleter createBatchDeleter(String tableName, Authorizations 
authorizations, BatchWriterConfig config);
  public BatchWriter createBatchWriter(String tableName, BatchWriterConfig 
config){}
  public MultiTableBatchWriter createMultiTableBatchWriter(BatchWriterConfig 
config){}

    .
    .
    .
}
{code}


This would allow the user to set the timeout and hopefully future batch writer 
configuration changes would not require a change to connector.   The current 
methods for creating batch writers could be deprecated.

I thought about adding a setTimeout() method to the BatchWriter interface 
instead of changing Connector.  I did not like this because setTimeout() would 
have to be called before any mutations were added to the batch writer.

                
> Batch Writer needs timeout
> --------------------------
>
>                 Key: ACCUMULO-706
>                 URL: https://issues.apache.org/jira/browse/ACCUMULO-706
>             Project: Accumulo
>          Issue Type: New Feature
>          Components: client
>            Reporter: Keith Turner
>            Assignee: Keith Turner
>             Fix For: 1.5.0
>
>
> The BatchWriter needs a user configurable timeout.  The current behavior when 
> a tablet or tablet server can not be successfully written to is that it will 
> hang indefinitely retrying.  The timeout could default to max long to 
> preserve current behavior.  

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to