You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-issues@jackrabbit.apache.org by "Davide Giannella (JIRA)" <ji...@apache.org> on 2016/03/02 12:33:18 UTC

[jira] [Updated] (OAK-2723) FileStore does not scale because of precomputed graph on TarReader

     [ https://issues.apache.org/jira/browse/OAK-2723?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Davide Giannella updated OAK-2723:
----------------------------------
    Fix Version/s: 1.4

> FileStore does not scale because of precomputed graph on TarReader
> ------------------------------------------------------------------
>
>                 Key: OAK-2723
>                 URL: https://issues.apache.org/jira/browse/OAK-2723
>             Project: Jackrabbit Oak
>          Issue Type: Bug
>          Components: core
>    Affects Versions: 1.1.8
>            Reporter: Andrei Dulvac
>            Assignee: Michael Dürig
>            Priority: Critical
>             Fix For: 1.2.1, 1.3.0, 1.4
>
>         Attachments: 0001-TarReader-fix-for-precomputed-graph.patch
>
>
> The {{FileStore}} keeps a reference to all {{TarReader}} object, one per each file. In my test, for an ~350 Gb repository, that was ~1100 tar files, with a {{TarReader}} for each. 
> The problem is {{TarReader}} keeps a reference to a precomputed _graph_ {{ByteBuffer}}, which is not really used that much. That means that through the {{readers}} field, there's a reference to these _graphs_,  which means they can't be GC'ed.
> The construction of {{FileStore}} is from oak-run:
> bq. FileStore store = new FileStore(directory, 256, TAR_STORAGE_MEMORY_MAPPED);
> The effect is you need more that 6GB of Ram just to instantiate the {{FileStore}} object.
> The attached patch fixes this issue. 



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