memmgr-mapped-init.txt 2.6 KB

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