[
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)