[
https://issues.apache.org/jira/browse/HDDS-10066?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Ivan Andika updated HDDS-10066:
-------------------------------
Description:
While working on Prefix ACL, it's found that there are very little tests on
Prefix ACL OM HA request and response flow. We need to add more tests for
prefix ACL.
There are also identified possible bugs that might have be a problem in the
future. They are:
* UpdateID stored in the OmPrefixInfo on the in-memory prefix tree are not
updated
** In OMPrefixAclRequest, the setUpdateId is called after the we apply the ACL
operation to the prefix tree (through PrefixManager), this causes OmPrefixInfo
update ID to be different than the one in the OM DB
** We need set the update ID to OmPrefixInfo before we apply the ACL operation
to the prefix tree, so that it will be reflected as well.
* PrefixManager only updates the OmPrefixInfo in the prefix tree for ACL
operations that changes underlying ACLs
** If there is no changes in the underlying ACL (e.g. adding existing ACL),
the prefix tree will not be updated
** However, under the OM HA write flow, every request will update the updateID
** Therefore, we need to update the prefix tree regardless whether the ACL
operation results in ACL change
was:
While working on Prefix ACL, it's found that there are very little tests on
Prefix ACL OM HA request and response flow. We need to add more tests for
prefix ACL.
There are also identified possible bugs that might have be a problem in the
future. They are:
* PrefixManagerImpl should not update the Prefix table entry directly. This is
because all write needs to go through OM Table Cache.
** The update to prefix table on PrefixManager is valid if ratis is not
enabled.
** [-SPDI-110974-|https://jira.shopee.io/browse/SPDI-110974] wrongly updated
the prefix table even if ratis is enabled.
** We have to revert this change.
* UpdateID stored in the OmPrefixInfo on the in-memory prefix tree are not
updated
** In OMPrefixAclRequest, the setUpdateId is called after the we apply the ACL
operation to the prefix tree (through PrefixManager), this causes OmPrefixInfo
update ID to be different than the one in the OM DB
** We need set the update ID to OmPrefixInfo before we apply the ACL operation
to the prefix tree, so that it will be reflected as well.
* PrefixManager only updates the OmPrefixInfo in the prefix tree for ACL
operations that changes underlying ACLs
** If there is no changes in the underlying ACL (e.g. adding existing ACL),
the prefix tree will not be updated
** However, under the OM HA write flow, every request will update the updateID
** Therefore, we need to update the prefix tree regardless whether the ACL
operation results in ACL change
> Consolidate and tests the Ratis write path for prefix ACL
> ---------------------------------------------------------
>
> Key: HDDS-10066
> URL: https://issues.apache.org/jira/browse/HDDS-10066
> Project: Apache Ozone
> Issue Type: Improvement
> Components: OM
> Reporter: Ivan Andika
> Assignee: Ivan Andika
> Priority: Major
>
> While working on Prefix ACL, it's found that there are very little tests on
> Prefix ACL OM HA request and response flow. We need to add more tests for
> prefix ACL.
> There are also identified possible bugs that might have be a problem in the
> future. They are:
> * UpdateID stored in the OmPrefixInfo on the in-memory prefix tree are not
> updated
> ** In OMPrefixAclRequest, the setUpdateId is called after the we apply the
> ACL operation to the prefix tree (through PrefixManager), this causes
> OmPrefixInfo update ID to be different than the one in the OM DB
> ** We need set the update ID to OmPrefixInfo before we apply the ACL
> operation to the prefix tree, so that it will be reflected as well.
> * PrefixManager only updates the OmPrefixInfo in the prefix tree for ACL
> operations that changes underlying ACLs
> ** If there is no changes in the underlying ACL (e.g. adding existing ACL),
> the prefix tree will not be updated
> ** However, under the OM HA write flow, every request will update the
> updateID
> ** Therefore, we need to update the prefix tree regardless whether the ACL
> operation results in ACL change
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]