[ https://issues.apache.org/jira/browse/HDFS-12278?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16120702#comment-16120702 ]
Rushabh S Shah edited comment on HDFS-12278 at 8/9/17 9:46 PM: --------------------------------------------------------------- bq. but how did you benchmark TreeSet and PriorityQueue [~daryn] benchmarked. He just created lease-like objects and tested renew like methods. Basically an object with string, int member variable and a comparator. He created 100,000 such objects and called renew on them and measured via {{monotonicTime}}. Daryn: please correct me if I am wrong. bq. Are you aware of JMH? I wasn't aware until I read the comment and did web search. Thanks! But it is very simple to understand that priority queue is not a good data structure if you want to remove any object other than the top one. was (Author: shahrs87): bq. but how did you benchmark TreeSet and PriorityQueue [~daryn] benchmarked. He just created lease-like objects and tested renew like methods. Basically an object with string, int member variable and a comparator. He created 100,000 such objects and called renew on them and measured via {{monotonicTime}}. Daryn: please correct me if I am wrong. bq. Are you aware of JMH? I wasn't aware until I read the comment as did web search. But it is very simple to understand that priority queue is not a good data structure if you want to remove any object other than the top one. > LeaseManager operations are inefficient in 2.8. > ----------------------------------------------- > > Key: HDFS-12278 > URL: https://issues.apache.org/jira/browse/HDFS-12278 > Project: Hadoop HDFS > Issue Type: Bug > Components: namenode > Affects Versions: 2.8.0 > Reporter: Rushabh S Shah > Assignee: Rushabh S Shah > Priority: Blocker > Attachments: HDFS-12278-branch-2.8.001.patch, HDFS-12278.patch > > > After HDFS-6757, LeaseManager #removeLease became expensive. > HDFS-6757 changed the {{sortedLeases}} object from TreeSet to PriorityQueue. > Previously the {{remove(Object)}} operation from {{sortedLeases}} was {{O(log > n)}} but after the change it became {{O( n)}} since it has to find the object > first. > Recently we had an incident in one of our production cluster just hours after > we upgraded from 2.7 to 2.8 > The {{sortledLeases}} object had approximately 100,000 items within it. > While removing the lease, it will acquire the LeaseManager lock and that will > slow down the lookup of lease also. > HDFS-6757 is a good improvement which replaced the path by inode id. -- This message was sent by Atlassian JIRA (v6.4.14#64029) --------------------------------------------------------------------- To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org