[ 
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.

Reply via email to