hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Lars George (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-13271) Table#puts(List<Put>) operation is indeterminate; remove!
Date Thu, 19 Mar 2015 14:15:38 GMT

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

Lars George commented on HBASE-13271:
-------------------------------------

Looking at delete(List<Delete>) now, that does it proper. It is because Delete's are
immediate, same as Get's. The issue arises due to the client side write buffer with put(List<Put>).
I propose for just that function we do exactly what delete(List) does, as put(List) also is
flushing the buffer at the end of the list as it is implemented now (API in 1.0.0). That keep
both the same, *and* keeps put(List) away from flushing the local write buffer. 

In fact, it needs to be checked, maybe the entire local write buffer can be removed as you
either get an explicit one (BufferedMutator) or expect Table to flush immediately anyways.
Are we keeping this just for HTable users? It is deprecated, so when we drop it, we could
then at least remove the entire crud?

> Table#puts(List<Put>) operation is indeterminate; remove!
> ---------------------------------------------------------
>
>                 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
>
> 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.3.4#6332)

Mime
View raw message