[
https://issues.apache.org/jira/browse/HDDS-2466?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Chung En Lee updated HDDS-2466:
-------------------------------
Target Version/s: 2.2.0 (was: 1.2.0)
2.2.0 (was: 2.1.0)
<<Bulk update>>
Apache Ozone 2.1.0 release is in progress. I'm updating all unresolved jiras
targeting 2.1.0 to retarget 2.2.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: Apache Ozone
> 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.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]