• Julien Muchembled's avatar
    connection: reimplement timeout logic and redefine pings as a keep-alive feature · 737e227a
    Julien Muchembled authored
    - Previous implementation was not able to import transactions with many small
      objects, the client for faster to send a store request than to process its
      answer. If X is the difference of time for these 2 operations, the maximum
      number of objects a transaction could contain was CRITICAL_TIMEOUT / X.
      And HasLock feature can't act as a workaround because it is not working yet.
    - Change API of 'on_timeout', which currently only used by HasLock.
    - Stop pinging when we wait for an answer. This wastes resources and would
      never recover any bad state.
    - Make client connections send pings when they are idle instead.
      This implements keep-alive feature for high availability.
      Start with an non-configurable period of 60 seconds.
    - Move processing of ping/pong to handlers.
    
    git-svn-id: https://svn.erp5.org/repos/neo/trunk@2762 71dcc9de-d417-0410-9af5-da40c76e7ee4
    737e227a
testConnection.py 39.3 KB