[
https://issues.apache.org/jira/browse/HBASE-13271?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16141214#comment-16141214
]
Chia-Ping Tsai commented on HBASE-13271:
----------------------------------------
bq. I believe this is already done for put() . I forgot which jira. That was
while removing the BM usage from Table put path.
HBASE-18500 remove the BM from HTable. It seems to me the put() operation is
determinate after HBASE-18500. The checked exception is remote error, and the
unchecked exception is local error.
bq. Given we want to preserve API, means deprecation in favor of new API. TODO.
Which solution is better?
# modify the input list to signal which put was good/bad. This will break the
behavior compatibility but it make consistency between delete(list) and
put(list). (We have discussed this in HBASE-18500)
# return something to figure out the status. That is what we do in async client.
> 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
> Priority: Critical
> Fix For: 2.0.0-alpha-3
>
>
> 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)