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

stack commented on HBASE-13271:
-------------------------------

We need at least javadoc. Could just copy paste the above.

Change Delete so it doesn't modify the input args so it same as others? We'd 
add a warning in 2.0.0 that in 3.0.0 we'd no longer remove items from the 
passed-in list (bad form modifying passed in args .. especially if Get and Put 
do not).

Do we need client-side validation for Get and Delete? What would we validate on 
client-side? We should at least allow that we could add validation at a later 
date? Add a note in 2.0.0 to javadoc.

We should add an exception for NoSuchRow? We could add that in w/o 'breaking' 
backward compatibility? It'd show up in the 
RetriesExhaustedWithDetailsException list. We'd just be tightening up giving 
back more info....rather than silently doing nothing?

Good on you [~uagashe]




> Table#puts(List<Put>) operation is indeterminate; needs fixing
> --------------------------------------------------------------
>
>                 Key: HBASE-13271
>                 URL: https://issues.apache.org/jira/browse/HBASE-13271
>             Project: HBase
>          Issue Type: Improvement
>          Components: API
>    Affects Versions: 1.0.0
>            Reporter: stack
>            Assignee: Umesh Agashe
>            Priority: Critical
>             Fix For: 2.0.0-alpha-3
>
>         Attachments: hbase-13271.master.001.patch
>
>
> Another API issue found by [~larsgeorge]:
> "Table.put(List<Put) is questionable after the API change."
> {code}
> [Mar-17 9:21 AM] Lars George: Table.put(List<Put>) is weird since you cannot 
> flush partial lists
> [Mar-17 9:21 AM] Lars George: Say out of 5 the third is broken, then the 
> put() call returns with a local exception (say empty Put) and then you have 2 
> that are in the buffer
> [Mar-17 9:21 AM] Lars George: but how to you force commit them?
> [Mar-17 9:22 AM] Lars George: In the past you would call flushCache(), but 
> that is "gone" now
> [Mar-17 9:22 AM] Lars George: and flush() is not available on a Table
> [Mar-17 9:22 AM] Lars George: And you cannot access the underlying 
> BufferedMutation neither
> [Mar-17 9:23 AM] Lars George: You can *only* add more Puts if you can, or 
> call close()
> [Mar-17 9:23 AM] Lars George: that is just weird to explain
> {code}
> So, Table needs to get flush back or we deprecate this method or it flushes 
> immediately and does not return until complete in the implementation.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to