Page MenuHomePhabricator

Efficiently poison cache keys when realization states change
Open, HighPublic

Description

Description

Cached cache keys (😬) can be invalidated when the resolution state of a child object changes. Potential key-poisoning operations should ensure that all cache keys which reference a potentially changed key are invalidated.

A cache key can go stale if an object or any of its members (direct or indirect) object is realized after the key is computed. Therefore, cache key poisoning would become an expensive, frequent O(log n) operation (where n is the number of elements in a given ZObject).

It will help to codify the different realization states, and a way to signal that a child object's cache key has been poisoned.

Desired behavior/Acceptance criteria (returned value, expected error, performance expectations, etc.)

  • cache keys can be poisoned via an efficient algorithm

Completion checklist