memmgr-mapped-init.txt 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. @startuml
  2. participant memmgr as ":b10-memmgr"
  3. [-> memmgr: new/initial config\n(datasrc cfg)
  4. activate memmgr
  5. participant list as ":Configurable\nClientList"
  6. create list
  7. memmgr -> list: <<construct>>
  8. memmgr -> list: configure(cfg)
  9. activate list
  10. participant CacheConfig as ":CacheConfig"
  11. create CacheConfig
  12. list -> CacheConfig: <<construct>> (cfg)
  13. participant zt_segment as ":ZoneTable\nSegment\n(Mapped)"
  14. create zt_segment
  15. list -> zt_segment: <<construct>>
  16. list -> zt_segment: isWritable()
  17. activate zt_segment
  18. note over zt_segment: Segment not writable\nwhen not reset
  19. zt_segment --> list: false
  20. deactivate zt_segment
  21. deactivate list
  22. memmgr -> list: getStatus()
  23. activate list
  24. list --> memmgr: DataSourceStatus[]
  25. deactivate list
  26. loop for each datasrc with mapped segment
  27. memmgr -> list: resetMemorySegment\n(datasrc_name,\nREAD_WRITE,\nsegmentparam)
  28. activate list
  29. list -> zt_segment: reset\n(READ_WRITE,\nsegmentparam)
  30. activate zt_segment
  31. participant segment as "seg1:Memory\nSegment\n(Mapped)"
  32. create segment
  33. zt_segment -> segment: <<construct>>
  34. participant segment.2 as "seg2:Memory\nSegment\n(Mapped)"
  35. participant ZoneTable as ":ZoneTable"
  36. create ZoneTable
  37. zt_segment -> ZoneTable: <<construct>>
  38. deactivate zt_segment
  39. deactivate list
  40. memmgr -> list: getZoneTableAccessor\n(datasrc_name,\ncache=true)
  41. activate list
  42. list -> memmgr: ZoneTableAccessor
  43. deactivate list
  44. loop for each zone given by ZoneTableIterator
  45. memmgr -> list: getCachedZoneWriter\n(zone_name)
  46. activate list
  47. list -> CacheConfig: getLoadAction()
  48. activate CacheConfig
  49. participant LoadAction as "la:LoadAction"
  50. create LoadAction
  51. CacheConfig -> LoadAction: <<construct>>
  52. CacheConfig --> list : la
  53. deactivate CacheConfig
  54. participant ZoneWriter as "zw:ZoneWriter"
  55. create ZoneWriter
  56. list -> ZoneWriter: <<construct>> (la)
  57. list --> memmgr: zw
  58. deactivate list
  59. memmgr -> ZoneWriter: load()
  60. activate ZoneWriter
  61. ZoneWriter -> LoadAction: (funcall)
  62. activate LoadAction
  63. participant ZoneData as "zd:ZoneData"
  64. create ZoneData
  65. LoadAction -> ZoneData: <<construct>> via helpers
  66. LoadAction --> ZoneWriter: zd
  67. deactivate LoadAction
  68. deactivate ZoneWriter
  69. memmgr -> ZoneWriter: install()
  70. activate ZoneWriter
  71. ZoneWriter -> ZoneTable: addZone(zd)
  72. activate ZoneTable
  73. ZoneTable --> ZoneWriter: NULL (no old data)
  74. deactivate ZoneTable
  75. deactivate ZoneWriter
  76. end
  77. [<- memmgr: command to\nmodules\n(datasrc_name,\nsegmentparam)
  78. [--> memmgr: ack from all\nmodules
  79. memmgr -> list: resetMemorySegment\n(datasrc_name,\nREAD_WRITE,\nsegmentparam)
  80. activate list
  81. list -> zt_segment: reset\n(READ_WRITE,\nsegmentparam)
  82. activate zt_segment
  83. zt_segment -> segment: <<destroy>>
  84. destroy segment
  85. create segment.2
  86. zt_segment -> segment.2: <<construct>>
  87. deactivate zt_segment
  88. deactivate list
  89. note left of memmgr: load zone\nfor each zone\ngiven by\nZoneTableIterator
  90. end
  91. [<-- memmgr
  92. deactivate memmgr
  93. @enduml