An error occurred fetching the project authors.
  1. 24 Apr, 2017 1 commit
    • Julien Muchembled's avatar
      Reimplement election (of the primary master) · 23b6a66a
      Julien Muchembled authored
      The election is not a separate process anymore.
      It happens during the RECOVERING phase, and there's no use of timeouts anymore.
      
      Each master node keeps a timestamp of when it started to play the primary role,
      and the node with the smallest timestamp is elected. The election stops when
      the cluster is started: as long as it is operational, the primary master can't
      be deposed.
      
      An election must happen whenever the cluster is not operational anymore, to
      handle the case of a network cut between a primary master and all other nodes:
      then another master node (secondary) takes over and when the initial primary
      master is back, it loses against the new primary master if the cluster is
      already started.
      23b6a66a
  2. 18 Jan, 2017 1 commit
  3. 25 Jan, 2016 1 commit
  4. 01 Dec, 2015 1 commit
    • Julien Muchembled's avatar
      Safer DB truncation, new 'truncate' ctl command · d3c8b76d
      Julien Muchembled authored
      With the previous commit, the request to truncate the DB was not stored
      persistently, which means that this operation was still vulnerable to the case
      where the master is restarted after some nodes, but not all, have already
      truncated. The master didn't have the information to fix this and the result
      was a DB partially truncated.
      
      -> On a Truncate packet, a storage node only stores the tid somewhere, to send
         it back to the master, which stays in RECOVERING state as long as any node
         has a different value than that of the node with the latest partition table.
      
      We also want to make sure that there is no unfinished data, because a user may
      truncate at a tid higher than a locked one.
      
      -> Truncation is now effective at the end on the VERIFYING phase, just before
         returning the last ids to the master.
      
      At last all nodes should be truncated, to avoid that an offline node comes back
      with a different history. Currently, this would not be an issue since
      replication is always restart from the beginning, but later we'd like they
      remember where they stopped to replicate.
      
      -> If a truncation is requested, the master waits for all nodes to be pending,
         even if it was previously started (the user can still force the cluster to
         start with neoctl). And any lost node during verification also causes the
         master to go back to recovery.
      
      Obviously, the protocol has been changed to split the LastIDs packet and
      introduce a new Recovery, since it does not make sense anymore to ask last ids
      during recovery.
      d3c8b76d
  5. 21 May, 2015 1 commit
  6. 07 Jan, 2014 1 commit
  7. 13 Mar, 2012 1 commit
  8. 24 Jan, 2011 1 commit
  9. 17 Jan, 2011 1 commit
  10. 02 Feb, 2010 1 commit
    • Grégory Wisniewski's avatar
      Add 'VerificationManager' for master's application. · a7630a68
      Grégory Wisniewski authored
      - Replace verification handler (statefull handler)
      - Include 'verifyData', 'verifyTransation' and verification related attributes.
      - Define 'runManager()' method for future purpose (with other managers).
      - Include all 'VerificationFailure' exception related handling.
      - Remove support of 'VERIFYING' cluster in 'changeClusterState' as the manager takes precedence.
      - Move VerificationException in verification module.
      
      git-svn-id: https://svn.erp5.org/repos/neo/trunk@1590 71dcc9de-d417-0410-9af5-da40c76e7ee4
      a7630a68
  11. 01 Feb, 2010 1 commit
  12. 13 Jan, 2010 1 commit
  13. 07 Oct, 2009 1 commit
  14. 23 Jul, 2009 1 commit
  15. 12 Jan, 2009 1 commit
  16. 18 Jan, 2007 1 commit
  17. 22 Dec, 2006 1 commit
  18. 06 Dec, 2006 1 commit
  19. 29 Nov, 2006 1 commit