Folks, I noticed strange behavior when read-through done from several concurrent threads. Basically, if miss happened in two thread, they can both load the value from store. We have CacheStoreBalancingWrapper which I believe is supposed to solve this, but there is still a race, because the loading can start after the future in the wrapper is already completed and removed. I think it can potentially be a performance issue in case the loading process takes significant amount of time.
Is this by design and is there any way to make it more reliable? Why don't we load within the entry sync block, like we do with updates? -Val