memmgr-mapped-reload.txt 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. @startuml
  2. participant memmgr as ":b10-memmgr"
  3. [-> memmgr: reload\n(zonename)
  4. activate memmgr
  5. participant list as ":Configurable\nClientList"
  6. memmgr -> list: getCachedZoneWriter\n(zone_name)
  7. activate list
  8. participant CacheConfig as ":CacheConfig"
  9. participant zt_segment as ":ZoneTable\nSegment\n(Mapped)"
  10. participant segment as "existing:Memory\nSegment\n(Mapped)"
  11. participant segment2 as "new:Memory\nSegment\n(Mapped)"
  12. list -> zt_segment: isWritable()
  13. activate zt_segment
  14. zt_segment --> list: true
  15. deactivate zt_segment
  16. list -> CacheConfig: getLoadAction()
  17. activate CacheConfig
  18. participant ZoneTable as ":ZoneTable"
  19. participant ZoneWriter as "zw:ZoneWriter"
  20. participant LoadAction as "la:LoadAction"
  21. create LoadAction
  22. CacheConfig -> LoadAction: <<construct>>
  23. CacheConfig --> list: la
  24. deactivate CacheConfig
  25. create ZoneWriter
  26. list -> ZoneWriter: <<construct>> (la)
  27. list --> memmgr: zw
  28. deactivate list
  29. memmgr -> ZoneWriter: load()
  30. activate ZoneWriter
  31. ZoneWriter -> LoadAction: (funcall)
  32. activate LoadAction
  33. participant ZoneData as "zd_existing\n:ZoneData"
  34. participant ZoneData2 as "zd_new\n:ZoneData"
  35. create ZoneData2
  36. LoadAction -> ZoneData2: <<construct>> via helpers
  37. LoadAction --> ZoneWriter: zd_new
  38. deactivate LoadAction
  39. deactivate ZoneWriter
  40. memmgr -> ZoneWriter: install()
  41. activate ZoneWriter
  42. ZoneWriter -> ZoneTable: addZone(zd_new)
  43. activate ZoneTable
  44. ZoneTable --> ZoneWriter: zd_existing (old data)
  45. deactivate ZoneTable
  46. deactivate ZoneWriter
  47. memmgr -> ZoneWriter: cleanup()
  48. activate ZoneWriter
  49. ZoneWriter -> ZoneData: <<destroy>>
  50. destroy ZoneData
  51. deactivate ZoneWriter
  52. [<- memmgr: command to\nmodules\n(datasrc_name,\nsegmentparam)
  53. [--> memmgr: ack from all\nmodules
  54. memmgr -> list: resetMemorySegment\n(datasrc_name,\nREAD_WRITE,\nsegmentparam)
  55. activate list
  56. list -> zt_segment: reset\n(READ_WRITE,\nsegmentparam)
  57. activate zt_segment
  58. zt_segment -> segment: <<destroy>>
  59. destroy segment
  60. create segment2
  61. zt_segment -> segment2: <<construct>>
  62. deactivate zt_segment
  63. deactivate list
  64. note left of memmgr: (repeat the\nsame sequence\nfor loading to the\nother segment)
  65. memmgr -> list: getCachedZoneWriter\n(zone_name)
  66. ...
  67. @enduml