1. 03 Jan, 2012 1 commit
  2. 20 Dec, 2011 1 commit
    • Vincent Pelletier's avatar
      Create masters as we are notified of their existence. · 59e7aafb
      Vincent Pelletier authored
      This increases cluster on-line flexibility, allowing new masters to be
      added without needing a restart of all masters.
      Downside is that more responsibility is pushed to cluster admins: they must
      update node configurations so they contain enough master nodes to allow
      them to join cluster after a restart.
      59e7aafb
  3. 26 Oct, 2011 1 commit
  4. 02 May, 2011 1 commit
  5. 27 Apr, 2011 1 commit
    • Julien Muchembled's avatar
      connection: make close always call handler (connectionClosed or connectionFailed) · 4b6c1387
      Julien Muchembled authored
      Main reason is that it's difficult to know in advance which side really closes
      the connection. Network events can be chaotic and this could lead to many race
      conditions.
      Thus, handler can be used to update any database that is somewhat redundant
      to the connection status, i.e. node status usually. Safely and less duplicated
      code.
      
      This change is motivated by recurrent random failures during election.
      An example of race condition was that 2 fully connected master could close the
      extra connection (the primary -> secondary one) at the same time.
      
      In order to stabilize lower-level code and start with reliable election process,
      code has also been simplified to not care about node states. All connections
      without exception are closed at the end of the election and states are then
      updated 1 by 1 by identification handler.
      Note that during election, there may be 2 connection per node, which makes
      difficult to update node states by connectionFailed/connectionClosed events.
      
      timeoutExpired & peerBroken are dropped as they are unused for the moment.
      A new API should be designed so that connectionClosed know the reason of the
      close.
      BROKEN state becomes unused.
      
      git-svn-id: https://svn.erp5.org/repos/neo/trunk@2732 71dcc9de-d417-0410-9af5-da40c76e7ee4
      4b6c1387
  6. 25 Feb, 2011 1 commit
    • Olivier Cros's avatar
      Implementing ipv6 on neo · 0cdbf0ea
      Olivier Cros authored
      In order to synchronise neo with slapos, it has to work perfectly with ipv4
      and ipv6. This allows to integrate neo in erp5 and to prepare different buildout
      installations of neo.
      The protocol and connectors are no more generic but can now support IPv4 and
      IPv6 connections. We adopted a specific way of development which allow to
      easily add new protocols in the future.
      
      git-svn-id: https://svn.erp5.org/repos/neo/trunk@2654 71dcc9de-d417-0410-9af5-da40c76e7ee4
      0cdbf0ea
  7. 17 Jan, 2011 1 commit
  8. 02 Nov, 2010 1 commit
  9. 01 Nov, 2010 1 commit
  10. 05 May, 2010 1 commit
  11. 30 Apr, 2010 1 commit
  12. 05 Mar, 2010 1 commit
    • Grégory Wisniewski's avatar
      Per-connection timeout support (instead of per-packet). · 61dbc7b6
      Grégory Wisniewski authored
      - Rename IdleEvent to IdleTimeout from event.py to connection.py
      - Move connection-related logic in Connection itself and keep only
      time-related logic in IdleTimeout
      - Clarify differences between hard and soft timeouts.
      - Remove (unused) 'additional_timeout' from ask()
      - Remove (now useless) event_dict attribute from Connection.
      - Remove external ping support, as the answer can not be handled at
      application level.
      - Expectation after a new incoming connection moved from Handler to
      Connection.
      - Fix (and clean) related tests.
      
      git-svn-id: https://svn.erp5.org/repos/neo/trunk@1895 71dcc9de-d417-0410-9af5-da40c76e7ee4
      61dbc7b6
  13. 01 Mar, 2010 1 commit
  14. 23 Feb, 2010 3 commits
  15. 22 Feb, 2010 1 commit
  16. 12 Feb, 2010 2 commits
  17. 01 Feb, 2010 3 commits
    • Vincent Pelletier's avatar
      Exit election as soon as primary master is known. · 81ee387a
      Vincent Pelletier authored
      It has no meaning to stay in election state when the primary master is
      known. Also, it causes problems as the elected primary master will soon
      start sending packets we don't expect while election is running.
      
      handler/election.py:
      - Receiving announcePrimary is enough to exit election immediately, so
        reach election end condition (both sets must be empty)
      - Receiving answerPrimary with a known primary is enough to exit election
        immediately (don't attempt to connect to to primary master).
      app.py:
      - Apply PrimaryHandler while iterating over connections when the primary
        master connection is found, rather than once all other connections are
        closed.
      - If no primary master connection was found, start establishing one.
      handlers/secondary.py:
      - Handle connectionCompleted event as we might only reach primary master
        once with this handler if connection was not established during election.
      - Likewise, handle connectionFailed event, and treat it as a primary
        failure.
      - Stop ignoring answerPrimary packets, instead check that advertised
        primary master is the expected one and request node identification.
      
      git-svn-id: https://svn.erp5.org/repos/neo/trunk@1583 71dcc9de-d417-0410-9af5-da40c76e7ee4
      81ee387a
    • Grégory Wisniewski's avatar
      Update copyright. · a88d3eb2
      Grégory Wisniewski authored
      git-svn-id: https://svn.erp5.org/repos/neo/trunk@1576 71dcc9de-d417-0410-9af5-da40c76e7ee4
      a88d3eb2
    • Grégory Wisniewski's avatar
      64213d90
  18. 29 Jan, 2010 1 commit
  19. 28 Jan, 2010 1 commit
  20. 26 Jan, 2010 1 commit
  21. 22 Jan, 2010 2 commits
  22. 13 Jan, 2010 5 commits
  23. 19 Oct, 2009 1 commit
  24. 07 Oct, 2009 1 commit
  25. 05 Oct, 2009 1 commit
  26. 01 Oct, 2009 5 commits