An efficient implementation of an lru cache