hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sean Busbey (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-15089) Compatibility issue on flushCommits and put methods in HTable
Date Tue, 12 Jan 2016 18:30:40 GMT

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

Sean Busbey commented on HBASE-15089:
-------------------------------------

Generally, our promises are for wire and source compatibility (so that those who need binary
can just keep the same bits). I believe you're correct in this case though. 0.98 -> 1.0
was a major version increment and HTable went from IA.Public to IA.Private; that was the break
for downstream folks. It's worth noting that even after this patch, the replacement class
Table still throws IOException generally.

I presume the point of that was to give us more breathing room on what *could* be thrown without
breaking the behavior for folks client side farther down the line. As is, clients could keep
the 0.98 client code to have the same behavior while talking to a 1.y server (though I'm not
sure what our plans are for 0.98 -> 2.0.) Having them continue to rely on HTable directly
is dangerous, as there's no promise it won't change in breaking ways even in patch releases
post-1.0.0.

> Compatibility issue on flushCommits and put methods in HTable
> -------------------------------------------------------------
>
>                 Key: HBASE-15089
>                 URL: https://issues.apache.org/jira/browse/HBASE-15089
>             Project: HBase
>          Issue Type: Bug
>    Affects Versions: 1.1.2
>            Reporter: Yu Li
>            Assignee: Yu Li
>            Priority: Minor
>         Attachments: HBASE-15089.patch, HBASE-15089.v2.patch
>
>
> Previously in 0.98 HTable#flushCommits throws InterruptedIOException and RetriesExhaustedWithDetailsException,
but now in 1.1.2 this method signature has been changed to throw IOException, which will force
application code changes for exception handling (previous catch on InterruptedIOException
and RetriesExhaustedWithDetailsException become invalid). HTable#put has the same problem.
> After a check, the compatibility issue was introduced by HBASE-12728. Will recover the
compatibility In this JIRA.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message