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

Michi Mutsuzaki commented on ZOOKEEPER-1473:
--------------------------------------------

+1 I'll update the patch to address Raul's comments and check this in.

> Committed proposal log retains triple the memory it needs to
> ------------------------------------------------------------
>
>                 Key: ZOOKEEPER-1473
>                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1473
>             Project: ZooKeeper
>          Issue Type: Bug
>          Components: server
>            Reporter: Henry Robinson
>            Assignee: Thawan Kooburat
>             Fix For: 3.5.0
>
>         Attachments: ZOOKEEPER-1473.patch, ZOOKEEPER-1473.patch
>
>
> ZKDatabase.committedLog retains the past 500 transactions to enable fast 
> catch-up. This works great, but it's using triple the memory it needs to by 
> retaining three copies of the data part of any transaction.
> * The first is in committedLog[i].request.request.hb - a heap-allocated 
> {{ByteBuffer}}.
> * The second is in committedLog[i].request.txn.data - a jute-serialised 
> record of the transaction
> * The third is in committedLog[i].packet.data - also jute-serialised, 
> seemingly uninitialised data.
> This means that a ZK-server could be using 1G of memory more than it should 
> be in the worst case. We should use just one copy of the data, even if we 
> really have to refer to it 3 times. 



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to