caozhiqiang created RANGER-3386:
-----------------------------------

             Summary: apache CollectionUtils package reduce ranger agent 
performance and should be replaced
                 Key: RANGER-3386
                 URL: https://issues.apache.org/jira/browse/RANGER-3386
             Project: Ranger
          Issue Type: Improvement
          Components: plugins
    Affects Versions: 2.0.1
            Reporter: caozhiqiang
            Assignee: caozhiqiang


org.apache.commons.collections.CollectionUtils' performance is too poor and 
reduce the performance of ranger plugins, particularly with hdfs. There are too 
much places used CollectionUtils.isNotEmpty and CollectionUtils.isEmpty, and we 
should replace them.

We can see much CollectionUtils call in namenode benchmark's result.

By the way, I write a simple test code below. collection.isEmpty is almost take 
0 milliseconds, but CollectionUtils.isNotEmpty take 5 milliseconds.

 
{code:java}
List<Integer> list = new ArrayList<Integer>();
for(int i = 0; i<1000; i++)
    list.add(i);

long startTime = System.currentTimeMillis();
if(list != null && !list.isEmpty()){

}
long endTime   = System.currentTimeMillis();
long totalTime = endTime - startTime;
System.out.println(totalTime);


long startTime2 = System.currentTimeMillis();
CollectionUtils.isNotEmpty(list);
long endTime2   = System.currentTimeMillis();
long totalTime2 = endTime2 - startTime2;
System.out.println(totalTime2);
{code}
In this patch, I replace almost CollectionUtils functions in agents-common.

 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to