[
https://issues.apache.org/jira/browse/HBASE-19673?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16309320#comment-16309320
]
Niels Basjes commented on HBASE-19673:
--------------------------------------
I think I understand the problem.
I intended the code for the basic usecase to be compatible in both versions
like this:
{code}
Configuration conf = HBaseConfiguration.create();
BufferedMutatorParams bmp = new BufferedMutatorParams(TableName.valueOf("Foo"))
.setWriteBufferPeriodicFlushTimeoutMs(500)
.setWriteBufferPeriodicFlushTimerTickMs(100);
Connection conn = ConnectionFactory.createConnection(conf);
BufferedMutator mutator = conn.getBufferedMutator(bmp);
{code}
So setting the timeout during construction is the same.
Changing the timeout afterwards in the 2.x version is easier because you can
simply do
{code}mutator.setWriteBufferPeriodicFlush(100,100);{code}
Where the 1.x needs a cast to the implementation (or the interface)
{code}BufferedMutatorImpl mutatorImpl = (BufferedMutatorImpl)mutator;
mutatorImpl.setWriteBufferPeriodicFlush(100,100);{code}
Note that Application code written against
# 1.x does not need to change when switching to 2.x
# 2.x is simpler because it does not need the cast
Also note that this is a major version difference and therefor it is "ok" to
have API changes.
So I'll simply remove the {{BufferedMutatorPeriodicFlush}} interface to reduce
confusion.
> Backport " Periodically ensure records are not buffered too long by
> BufferedMutator" to branch-1
> ------------------------------------------------------------------------------------------------
>
> Key: HBASE-19673
> URL: https://issues.apache.org/jira/browse/HBASE-19673
> Project: HBase
> Issue Type: Improvement
> Components: Client
> Reporter: Niels Basjes
> Assignee: Niels Basjes
> Attachments: HBASE-19673.20171230-130631.branch-1.patch,
> HBASE-19673.20171230-131955.branch-1.patch,
> HBASE-19673.20171231-112539.branch-1.patch,
> HBASE-19673.20180102-082937.branch-1.patch,
> HBASE-19673.20180102-155006.branch-1.patch
>
>
> In HBASE-19486 the feature was built to periodically flush the
> BufferedMutator.
> Because backwards compatibility is important in the 1.x branch some
> refactoring is needed to make this work.
> As requested by [~chia7712] this separate issue was created
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)