note memory cache iteration is thread-safe