designing buffer cache