And yes this choice is pushed to the Cache implementor code, as only they know if the underlying storage for two caches is separated or not. This is actually the very point for which the KeyFactory implementation is left to the implementor.