You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@accumulo.apache.org by "Keith Turner (JIRA)" <ji...@apache.org> on 2017/05/19 17:04:04 UTC
[jira] [Created] (ACCUMULO-4641) Modify BlockCache interface to
avoid race conditions
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)