For incrementing Hits/Misses? I dont think that will work .. the problem is the cache is a `Map<String, CacheEntry>` where `CacheEntry` is a heavy object, and it contains all the data around the CacheEntry (data, hits, miss, ttl).

Even if hit/miss/ttl were Atomic, you can still hit a race condition.. using hit as the example:

* Request A hits cache, gets cacheEntry obj (hits: 0)
* Request B hits cache, gets cacheEntry obj (hits: 0)
* Request A updates cacheEntry obj (~> hits: 1)
* Request B updates cacheEntry obj (~> hits: 1)
* Request A writes cacheEntry back into cache
* Request B writes cacheEntry back into cache

** Getting the # of hits for that cacheEntry ~> hits: 1 (which is wrong; should be 2) **

Synchronizing access was the only way I could think of to avoid this (though admittedly heavy handed). I worry significant refactoring would yield diminishing returns unless the LOE to remove synchronize is low. Even w sync, we get the ~90% perf boost. 

I'm definitely open to suggestions.