[
https://issues.apache.org/jira/browse/HDDS-16214?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
ASF GitHub Bot updated HDDS-16214:
----------------------------------
Labels: pull-request-available (was: )
> Avoid the per-group list copy in KeyManagerImpl read paths
> ----------------------------------------------------------
>
> Key: HDDS-16214
> URL: https://issues.apache.org/jira/browse/HDDS-16214
> Project: Apache Ozone
> Issue Type: Sub-task
> Reporter: Huang Kuan Hao
> Assignee: dino2895
> Priority: Major
> Labels: pull-request-available
>
> Three KeyManagerImpl read-path methods flatten-copy each version group only
> to iterate/stream it once:
> // addBlockToken4Read
> for (OmKeyLocationInfoGroup key : value.getKeyLocationVersions()) {
> key.getLocationList().forEach(k -> {
> k.setToken(secretManager.generateToken(remoteUser, k.getBlockID(),
> EnumSet.of(READ), k.getLength()));
> });
> }
> // sortDatanodes
> for (OmKeyLocationInfo k : key.getLocationList()) {
> Pipeline pipeline = k.getPipeline();
> ...
> }
> // extractContainerIDs
> return keyInfo.getKeyLocationVersions().stream()
> .flatMap(v -> v.getLocationList().stream())
> .map(BlockLocationInfo::getContainerID);
> Fix: iterate getLocationLists() (nested loop / flatMap). setToken mutates the
> shared element references, so token assignment is unaffected. Behavior
> unchanged.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]