[
https://issues.apache.org/jira/browse/ACCUMULO-4641?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Keith Turner resolved ACCUMULO-4641.
------------------------------------
Resolution: Fixed
> Modify BlockCache interface to avoid race conditions
> ----------------------------------------------------
>
> Key: ACCUMULO-4641
> URL: https://issues.apache.org/jira/browse/ACCUMULO-4641
> Project: Accumulo
> Issue Type: Sub-task
> Reporter: Keith Turner
> Assignee: Keith Turner
> Priority: Major
> Labels: pull-request-available
> Fix For: 2.0.0
>
> Time Spent: 2h 20m
> Remaining Estimate: 0h
>
> Currently the BlockCache interface has functions to get and put. Accumulo
> will try to get a block, if it does not exist load it, and then put it in the
> cache. This can lead to race conditions where multiple threads unnecessarily
> load the same block.
> I think it would be better to modify the block cache interface to only have a
> function like the following.
> {code:java}
> CacheEntry get(String blockName, BlockLoader loader)
> {code}
> BlockLoader represents a function that the cache can call if a block is not
> present. The cache implementation can attempt to handle load race conditions
> however it likes..
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)