What's wrong with using a ConcurrentHashMap?  If you're struggling to squeeze extra performance by avoiding the use of volatiles inside CHM you're still paying for it because of AtomicReference.