• 
      

    GenerationSynchronizer now stores cached state for up to 1 year.

    Review Request #14797 — Created Feb. 3, 2026 and submitted — Latest diff uploaded

    Information

    Djblets
    release-5.x

    Reviewers

    When GenerationSynchronizer put new state in cache, it used the
    default expiration time for the cache backend. This is only 5 minutes by
    default, unless customized in the cache settings, and then it may be up
    to the actual cache server.

    For a common setup, this means that the synchronizer may be invalidated
    and generation bumped as often as every 5 minutes, leading to spurious
    state reloads. Not always a true problem, but it can increase the
    likelihood or frequency of side effects of some operations (such as
    during extension reloading) when under heavy traffic.

    We now set an explicit expiration time of 1 year. This can be controlled
    when constructing the synchronizer, though it's unlikely the default
    would need to be changed outside of load testing.

    Unit tests pass.

    Verified that the synchronizer was no longer expiring after 5 minutes in
    local memory tests.

    Also tested manually with shorter intervals and monitored events.

    Commits

    Files