I'm wondering if this needs to be a concrete implementation at all. I mean, can't this function on any AsyncCache? The only difference between this and any other AsyncCache is the fact that there is a background process shooting off compactions. I guess the question is whether or not it'd be too confusing to compose them in that way.