[ 
https://issues.apache.org/jira/browse/YARN-9080?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16808714#comment-16808714
 ] 

Szilard Nemeth commented on YARN-9080:
--------------------------------------

Hi [~Prabhu Joseph]!

Here are my comments: 
1. The depth of the nested while / if statements makes to code very hard to 
read and increase cyclomatic complexity 
(https://en.wikipedia.org/wiki/Cyclomatic_complexity)
First of all, I would extract the logic into some private methods.

Essentially, the pseudo-code of the algorithm is this: 
1. Loop over list of files under dirPath
2. if file is a directory, we should do something with the dir, let's call this 
"dir1"
3. We loop over files under "dir1" (bucket1Iter)
4. If file is a directory and it matches bucket1Regex, we iterate over files 
under the file (bucket2Iter)
5. If the file matches bucket2Regex then we have a valid dir
6. If we have files under this dir, we loop over those
7. If we find a directory and it's a valid applicationId, we invoke delete.

Please try to come up with something more readable, more easy to understand. 
I would try to extract methods first along with the while-loops then go until 
you have reasonable chunks of code.


2. I was wondering what is the meaning of "clusterts" and only realized from 
the tests that is clusterTimeStamp. You should either use this latter name or 
use clusterTs, but I prefer clusterTimeStamp.

3. Please extract the condition of the if-statement into a method from here: 
{code:java}
if ((fs.listStatus(bucket2Path).length != 0) || (now
                    - bucket2Stat.getModificationTime() <= retainMillis)) {
{code}

Please let me know if you are ready and I will check again, thanks!




> Bucket Directories as part of ATS done accumulates
> --------------------------------------------------
>
>                 Key: YARN-9080
>                 URL: https://issues.apache.org/jira/browse/YARN-9080
>             Project: Hadoop YARN
>          Issue Type: Bug
>            Reporter: Prabhu Joseph
>            Assignee: Prabhu Joseph
>            Priority: Major
>         Attachments: 0001-YARN-9080.patch, 0002-YARN-9080.patch, 
> 0003-YARN-9080.patch, YARN-9080-004.patch, YARN-9080-005.patch, 
> YARN-9080-006.patch
>
>
> Have observed older bucket directories cluster_timestamp, bucket1 and bucket2 
> as part of ATS done accumulates. The cleanLogs part of EntityLogCleaner 
> removes only the app directories and not the bucket directories.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

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

Reply via email to