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

stack commented on HBASE-880:
-----------------------------

More comments on  
https://issues.apache.org/jira/secure/attachment/12406720/HBASE-880_Design_Doc_v3.pdf

In Get, do we need addFamily and addColumn?  Should it be just add?

I did an exercise where the verb used submitting Get, Delete, etc., was same 
for all but I only ever got unsatisfactory results so lets use method names of 
get, put, delete, and scan.  They each return different things anyways.  Might 
have to have batchPut, batchGet, and batchDelete, too, because returns may vary 
if for example we are going to return timestamps of when the Put happened.

Should we even have a Get?  Just always Scan even if one row only?  Just a 
thought.

Should we have a TimeRange?  Its only used in Get.  Just have a setTimestamp 
and then optional range or depth to the Get? (setTimestampRange?)

Should deleteColumn in Delete be just delete?  Should we have a deleteFamily?  
That'd leave deleteColumns.  Do we need this?  Answer to below will help:

How do deletes work?  (I've seen the PDFs and its not plain to me).

If I do Delete.deleteColumn w/o a timestamp, whats this do?  Does it delete 
most recent cell on the column only?  Or everything behind it in time? (This 
would be like a deleteColumns).  If former, how does it work?   First it must 
find the most recent so it can find the timestamp?

If I pass a timestamp, what does it delete?  Only the cell at that timestamp if 
it exists?  What if nothing exists there?  Nothing happens?

(Above is an old discussion rehashed)

> 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.20.0
>
>         Attachments: 880.patch, 880proposal4plus-v2.patch, 
> 880proposal4plus.patch, 880proposal5-v2.patch, 880proposal5-v2.png, 
> 880proposal5.patch, 880proposal5.png, hbase-880-patch.jpg, 
> hbase-880-proposal4.patch, HBASE-880-proposal6-v2.txt, 
> HBASE-880-proposal6-v3.txt, HBASE-880-proposal6-v4.txt, hbase-880-v1.patch, 
> hbase-880-v2.patch, HBASE-880_Design_Doc.pdf, HBASE-880_Design_Doc_v2.pdf, 
> HBASE-880_Design_Doc_v3.pdf, hbase_client_classes.png, 
> NewCilentAPIProposoal4.gif, proposal2.jpg, proposed.jpg
>
>   Original Estimate: 240h
>  Remaining Estimate: 240h
>
> 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.

Reply via email to