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

Vladimir Ozerov reassigned IGNITE-2810:
---------------------------------------

    Assignee: Vladimir Ozerov

> 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
(v6.3.4#6332)

Reply via email to