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)

Reply via email to