[
https://issues.apache.org/jira/browse/HBASE-880?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12629866#action_12629866
]
Jim Kellerman commented on HBASE-880:
-------------------------------------
I'm not sure I follow. Won't RowOperation still require all the overloads?
And isn't RowOperation more like BatchOperation than BatchUpdate?
If you have multiple gets, do you return a RowResult?
I would propose something like deprecating BatchOperation and add BatchPut,
BatchDelete, BatchGet and BatchGetRow. Deprecate BatchUpdate and add
RowOperation.
We'd need a new method to send the RowOperation to the server. Commit doesn't
make sense, especially if you do:
{code}
RowLock lock = lockRow(row)
RowOperation op = new RowOperation(..., lock);
op.add(new BatchPut(...)
op.add(new BatchGet(...)
...
RowResult result = send(op)
op = new RowOperation(..., lock)
op.add(...)
...
result = send(op)
unlockRow(lock)
{code}
> Improve the current client API by creating new container classes
> ----------------------------------------------------------------
>
> Key: HBASE-880
> URL: https://issues.apache.org/jira/browse/HBASE-880
> Project: Hadoop HBase
> Issue Type: Improvement
> Components: client
> Reporter: Jean-Daniel Cryans
> Fix For: 0.19.0
>
>
> The current API does not scale very well. For each new feature, we have to
> add many methods to take care of all the overloads. Also, the need to batch
> row operations (gets, inserts, deletes) implies that we have to manage some
> "entities" like we are able to do with BatchUpdate but not with the other
> operations. The RowLock should be an attribute of such an entity.
> The scope of this jira is only to replace current API with another
> feature-compatible one, other methods will be added in other issues.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.