Skip to content

Commit 9b7734e

Browse files
authored
Add state transition diagram of StripeSM (#12791)
1 parent f836853 commit 9b7734e

1 file changed

Lines changed: 50 additions & 0 deletions

File tree

src/iocore/cache/StripeSM.h

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,56 @@ struct StripeInitInfo;
6060
class CacheEvacuateDocVC;
6161
class RamCache;
6262

63+
/**
64+
@class StripeSM
65+
66+
@startuml
67+
hide empty description
68+
69+
[*] --> aggWrite : Constructor
70+
71+
note right of aggWrite
72+
Can be called:
73+
1. As handler (event system)
74+
2. Directly from CacheVC::handleWrite
75+
3. Directly from CacheSync::mainEvent
76+
4. Directly from aggWriteDone
77+
end note
78+
79+
aggWrite --> aggWriteDone
80+
81+
note bottom of aggWriteDone
82+
calls aggWrite() directly
83+
without changing state
84+
end note
85+
86+
aggWrite --> evacuateDocReadDone : evac_range()
87+
88+
note bottom of evacuateDocReadDone
89+
calls aggWrite() directly
90+
without changing state
91+
end note
92+
93+
aggWrite --> handle_header_read : init(false)
94+
aggWrite --> handle_dir_clear : init(true)
95+
96+
handle_header_read --> handle_dir_read
97+
handle_header_read --> handle_dir_clear : clear_dir_aio()
98+
99+
handle_dir_read --> handle_recover_from_data : recover_data()
100+
handle_dir_read --> handle_dir_clear : clear_dir_aio()
101+
102+
handle_recover_from_data --> handle_recover_write_dir
103+
handle_recover_from_data --> handle_dir_clear : clear_dir_aio()
104+
105+
handle_recover_write_dir --> dir_init_done
106+
107+
handle_dir_clear --> dir_init_done
108+
109+
dir_init_done--> aggWrite
110+
111+
@enduml
112+
*/
63113
class StripeSM : public Continuation, public Stripe
64114
{
65115
public:

0 commit comments

Comments
 (0)