[
https://issues.apache.org/jira/browse/HBASE-2359?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12848554#action_12848554
]
Kannan Muthukkaruppan commented on HBASE-2359:
----------------------------------------------
The only place heapSize gets used for WALEdit is here in HLog.java:doWrite():
{code}
this.editsSize.addAndGet(logKey.heapSize() + logEdit.heapSize());
{code}
where <i>editSize</i> is the size of current log, and is used in figuring when
to rotate logs.
{code}
if (this.editsSize.get() > this.logrollsize) {
requestLogRoll();
}
{code}
Strictly speaking for HLogKey & WALEdit we are interested in the serialized
size rather than the heap size.
Jonathan suggested perhaps adding an interface called WriteableSize, and
changing HLogKey & WALEdit to implement that interface instead of HeapSize.
Another possibility--- SequenceFile.Writer has a "getLength" method which
looks like what we want. We could just use that instead of maintaining
"editsSize" in HLog, i.e. replace the above logic with something like:
{code}
if (this.writer.getLength() > this.logrollsize) {
requestLogRoll();
}
{code}
We can then do away with implementing any size method for HLogKey & WALEdit.
I'll give it a try... but let me know if you have suggestions/feedback.
> WALEdit doesn't implement HeapSize
> ----------------------------------
>
> Key: HBASE-2359
> URL: https://issues.apache.org/jira/browse/HBASE-2359
> Project: Hadoop HBase
> Issue Type: Bug
> Affects Versions: 0.20.3
> Reporter: Jean-Daniel Cryans
> Assignee: Kannan Muthukkaruppan
> Fix For: 0.20.4, 0.21.0
>
>
> WALEdit from HBASE-2283 defines a method heapSize() but doesn't implement
> HeapSize.
> - Make it implement the interface.
> - Add a test to TestHeapSize.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.