Keith Turner created ACCUMULO-4641:
--------------------------------------
Summary: 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
Fix For: 2.0.0
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
(v6.3.15#6346)