ignite-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Vladimir Ozerov (JIRA)" <j...@apache.org>
Subject [jira] [Resolved] (IGNITE-2810) IGFS: Stripe TRASH directory.
Date Mon, 14 Mar 2016 08:49:33 GMT

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

Vladimir Ozerov resolved IGNITE-2810.
    Resolution: Fixed

> IGFS: Stripe TRASH directory.
> -----------------------------
>                 Key: IGNITE-2810
>                 URL: https://issues.apache.org/jira/browse/IGNITE-2810
>             Project: Ignite
>          Issue Type: Task
>          Components: IGFS
>    Affects Versions: 1.5.0.final
>            Reporter: Vladimir Ozerov
>            Assignee: Vladimir Ozerov
>            Priority: Critical
>             Fix For: 1.7
> *Problem*
> Currently remove operation on IGFS performs soft-delete which essentially moves a file/dir
to a special hidden "TRASH" directory. Later on, special worker inspects this directory and
finally removes actual meta and data entities.
> As *move* operation requires lock on parent directory, massive removes will lead to high
contention on TRASH key, yielding poor performance due to no parallelization.
> *Solution*
> Let's stripe trash directory. That is, we will create several (e.g. 16) trash directories.
When entity is to be removed, we will pick random trash and move entitty there.
> Delete worker will have to inspect all these directories.
> Note that each node will have to know maximum numbers of trash directories, so it knows
how to list it with little or no coordination with other nodes. To achieve this we can expose
"trashCount" property to {{FileSystemConfiguration}}. Normally user will not change it. Each
node will set up a discovery listener which will track new nodes and will know maximum amount
of trashes.

This message was sent by Atlassian JIRA

View raw message