[ 
https://issues.apache.org/jira/browse/HBASE-3162?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12925712#action_12925712
 ] 

Todd Lipcon commented on HBASE-3162:
------------------------------------

In terms of API design, I dont have any great ideas, but I think a general 
pattern that we might be able to use across HBase is to use "builder-style" 
mutations rather than just overloading "increment()" with a bunch of different 
parameter choices.

For example, a potential API might look like:

{code}
Increment i = new Increment("rowkey")
  .incrementColumn("foo", 1)
  .incrementColumn("bar", 2) // for multi-column increment
  .withPredicate(
    new TimeRangeFilter(startTimestamp, stopTimestamp));
htable.doMutation(i);
{code}

This style of API might be able to collapse some of the code between Get, Put, 
Delete, checkAndPut, Filters, etc.

> Add TimeRange support into Increment to optimize for counters that are 
> partitioned on time
> ------------------------------------------------------------------------------------------
>
>                 Key: HBASE-3162
>                 URL: https://issues.apache.org/jira/browse/HBASE-3162
>             Project: HBase
>          Issue Type: Improvement
>          Components: client, regionserver
>    Affects Versions: 0.90.0
>            Reporter: Jonathan Gray
>            Priority: Minor
>
> In many use cases of increments, a given counter is only incremented during a 
> specific window of time (ie. the counters are partitioned/sharded by time).
> With this kind of schema, you are constantly creating new counters.  When a 
> new counter is "created" (incremented the first time) you will always end up 
> looking at a block from every file in the region because no previous value 
> will exist.  However, with the new TimeRange optimizations that skip files if 
> they don't contain values of the TimeRange you're interested in, we could 
> utilize that information to optimize the Get within the increment.
> This would be optional and an addition to the Increment class.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to