• 
      

    GenerationSynchronizer now stores cached state for up to 1 year.

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

    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.

    Summary ID
    GenerationSynchronizer now stores cached state for up to 1 year.
    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.
    3b3567cd8453984283991bf1c0771a570a9c39ee
    Description From Last Updated

    This blank line can go away.

    daviddavid
    david
    1. 
        
    2. djblets/cache/synchronizer.py (Diff revision 1)
       
       
      Show all issues

      This blank line can go away.

    3. 
        
    maubin
    1. Ship It!
    2. 
        
    chipx86
    Review request changed
    Status:
    Completed
    Change Summary:
    Pushed to release-5.x (c05da90)