[
https://issues.apache.org/jira/browse/HDFS-14756?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Chen Zhang updated HDFS-14756:
------------------------------
Attachment: HDFS-14756.001.patch
> RBF: getQuotaUsage may ignore some folders
> ------------------------------------------
>
> Key: HDFS-14756
> URL: https://issues.apache.org/jira/browse/HDFS-14756
> Project: Hadoop HDFS
> Issue Type: Sub-task
> Reporter: Chen Zhang
> Assignee: Chen Zhang
> Priority: Major
> Attachments: HDFS-14756.001.patch
>
>
> {{getValidQuotaLocations}} want to filter duplicate subfolders, but it used
> wrong method to determine the parent folder. In this logic, if we have 2
> mountpoint like /miui and /miuiads, then /miuiads will be ignored.
> {code:java}
> private List<RemoteLocation> getValidQuotaLocations(String path)
> throws IOException {
> final List<RemoteLocation> locations = getQuotaRemoteLocations(path);
> // NameService -> Locations
> ListMultimap<String, RemoteLocation> validLocations =
> ArrayListMultimap.create();
> for (RemoteLocation loc : locations) {
> final String nsId = loc.getNameserviceId();
> final Collection<RemoteLocation> dests = validLocations.get(nsId);
> // Ensure the paths in the same nameservice is different.
> // Do not include parent-child paths.
> boolean isChildPath = false;
> for (RemoteLocation d : dests) {
> if (StringUtils.startsWith(loc.getDest(), d.getDest())) {
> isChildPath = true;
> break;
> }
> }
> if (!isChildPath) {
> validLocations.put(nsId, loc);
> }
> }
> return Collections
> .unmodifiableList(new ArrayList<>(validLocations.values()));
> }
> {code}
--
This message was sent by Atlassian Jira
(v8.3.2#803003)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]