Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

79 lines
2.2 KiB

  1. The FM cannot init groups/resources until the API is online.
  2. The DM expects FM Phase1 init to create the quorum resource.
  3. What happens if remote node goes down at various points along this path?
  4. Order of events is...
  5. Phase 1:
  6. Petition Other Node to Join
  7. NmJoin happens
  8. DmJoin happens
  9. - Registers with the gum and syncs database
  10. ApiInitPhase 1
  11. - Read-only access allowed to DM after this point
  12. FmInitPhase1
  13. - Performs synchronized join with GUM layer
  14. - Must build the quorum resource for DM layer below
  15. - Builds skeletal groups/resources (especially quorum resource)
  16. - Gets current state (owner and state) about all groups/resources
  17. DmUpdateJoin
  18. - hooks in callbacks for quorum notification and node events.
  19. NmJoinComplete
  20. - The node is now fully online
  21. Phase 2:
  22. ApiInitPhase2
  23. - API is now fully online
  24. FmInitPhase2
  25. - Complete building all Groups/Resources
  26. - Setup all state info retrieved from FmInitPhase1
  27. - FM is now officially online
  28. - Pull all groups that should be run on the local node
  29. - Signal events for all groups/resources
  30. FORM
  31. Phase 1
  32. DmForm -
  33. - Registers with gum.
  34. FmGetQuorumResource
  35. - gets the quorum resource and arbitrates for it.
  36. DmUpdateFormNewCluter-
  37. hooks in callbacks for quorum notifications,node events. This must
  38. be done before FmInitPhase1.
  39. FmInitPhase1
  40. - Performs synchronized join with GUM layer
  41. - Must build the quorum resource for DM layer below
  42. - Builds skeletal groups/resources (especially quorum resource)
  43. - Gets current state (owner and state) about all groups/resources
  44. DmRollChanges
  45. - quorum resource is brought online
  46. - dm layer waits on notification, and when online,
  47. changes in the quorum logs are applied.. for logging purposes.
  48. - Must be done after FmInitPhase1.
  49. Problem:
  50. - if a node crashes after FmInitPhase1 but before FmInitPhase2 then the
  51. state info retrieved in Phase1 is stale
  52. - Resources must be cleaned appropriately no matter where the failure occurs.
  53. - A join must convert to form appropriately.