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

Arpit Agarwal updated HDDS-2466:
--------------------------------
    Target Version/s: 0.7.0

> Split OM Key into a Prefix Part and a Name Part
> -----------------------------------------------
>
>                 Key: HDDS-2466
>                 URL: https://issues.apache.org/jira/browse/HDDS-2466
>             Project: Hadoop Distributed Data Store
>          Issue Type: Improvement
>          Components: Ozone Manager
>            Reporter: Supratim Deka
>            Assignee: Supratim Deka
>            Priority: Major
>
> This jira will track all changes required for introducing a separate prefix 
> for keys in the OM.
> In the current implementation, OM stores every key in a Key table, which maps 
> the full key to a KeyInfo.
> FS semantics require unique names. Specifically - inside any given directory 
> (the prefix of any OM object key), each object must have a unique name. This 
> means that a sub-directory and a file which share the same prefix, cannot 
> have the same name.
> if there exists an object(file) "/a/b/c/d/e/file" in OM, we cannot allow a 
> new object(file/dir) "/a/b/c" to be created. it is implicit as per FS 
> semantics that /a/b/c is the name of an existing directory.
> The problem is, OM stores full keys in the key table. So the file create 
> handler must iterate through the entire key table to determine uniqueness of 
> the name. This makes create operations very resource intensive.
> To improve this behaviour, we propose to store every valid prefix in a 
> separate table in the OM, alongside the Key Table. The File create request 
> handler can iterate this KeyPrefix table to check if the name already exists. 
> Specific optimisations will be covered as separate jira items.
>  
> The following 2 sets of tasks are required to complete the key prefix 
> infrastructure - base infra followed by extension to achieve prefix 
> compression(in-memory + on-disk) for the OM Key table.
> Base Infra:
> 1. Create prefix entry in KeyPrefix OM Table for every new key inserted in 
> the OM Key Table - include file create, directory create and rename. Change 
> File create request handler to check the KeyPrefix table, instead of 
> iterating the entire Key Table.
> 2. Handle stale prefix entries in the KeyPrefix table - handle the situation 
> where the last object associated with a prefix gets deleted. This task 
> involves defining the semantics in this situation and subsequently the design 
> for detecting stale entries. 
>  Extension to support prefix compression in Key Table:
> 3. Assign unique ID to each prefix in the KeyPrefix table - include 
> synchronisation.
> 4. Node restart - ensure the unique ID generation scheme handles restart.
> 5. Change the key in OM Key Table to <Prefix ID>/<name> instead of the full 
> name. 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: ozone-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: ozone-issues-h...@hadoop.apache.org

Reply via email to