[ https://issues.apache.org/jira/browse/HBASE-4430?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13131162#comment-13131162 ]
Li Pi commented on HBASE-4430: ------------------------------ This new patch synchronizes things a bit at the SingleSizeCache level. I do leave the copy to Slab, along with reads, unsynchronized, so it should give a performance advantage over Todd's super simplified patch. If anyone was wondering, the race that occurred with the last patch worked like this. Steady State: Item A is cached. Thread B: Starts to cache something, starts eviction of Item A, evictionlistener is called, but has not been completed it. Thread A: begins to recache item A, notices an entry for A already. Thread B: gets around to evicting the entry for A, as it finishes eviction, wakes all the sleeping threads up so they have a chance to recache. Thread A: continues onwards, sleeps the thread, and waits for something to wake it up. But B has already finished, and called notifier.notifyAll(); End result: A ends up sleeping indefinitely. Nothing notifies it. I got rid of the jumble in the end. This should make maintenance much easier. > Disable TestSlabCache and TestSingleSizedCache temporarily to see if these > are cause of build box failure though all tests pass > ------------------------------------------------------------------------------------------------------------------------------- > > Key: HBASE-4430 > URL: https://issues.apache.org/jira/browse/HBASE-4430 > Project: HBase > Issue Type: Task > Components: test > Reporter: stack > Assignee: Li Pi > Fix For: 0.92.0 > > Attachments: HBase-4430.txt, TestSlabCache.trace > > -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira