github.com/swiftstack/ProxyFS@v0.0.0-20210203235616-4017c267d62f/pfsagentd/LeaseRequestServer.uml (about)

     1  @startuml
     2  
     3  scale 800 width
     4  
     5  state None : No lease held
     6  state SharedLeaseRequested : Blocked awaiting ExclusiveLease\ndemotion or release
     7  state SharedLeaseGranted
     8  state SharedLeaseReleasing : PFSAgent has been asked to release
     9  state SharedLeasePromoting : SharedLease held while\nawaiting others to release
    10  state ExclusiveLeaseRequested : Blocked awaiting all locks release
    11  state ExclusiveLeaseGranted
    12  state ExclusiveLeaseDemoting : PFSAgent has been asked to demote
    13  state ExclusiveLeaseReleasing : PFSAgent has been asked to release
    14  
    15  [*] --> None
    16  
    17  None --> SharedLeaseGranted
    18  None --> SharedLeaseRequested
    19  None --> ExclusiveLeaseGranted
    20  None --> ExclusiveLeaseRequested
    21  
    22  SharedLeaseGranted --> None
    23  SharedLeaseGranted --> SharedLeaseReleasing
    24  SharedLeaseGranted --> SharedLeasePromoting
    25  SharedLeaseGranted --> ExclusiveLeaseGranted
    26  
    27  SharedLeaseReleasing --> None
    28  
    29  SharedLeaseRequested --> SharedLeaseGranted
    30  SharedLeaseRequested --> ExclusiveLeaseGranted
    31  
    32  SharedLeasePromoting --> ExclusiveLeaseGranted
    33  SharedLeasePromoting --> SharedLeaseReleasing
    34  
    35  ExclusiveLeaseGranted --> None
    36  ExclusiveLeaseGranted --> SharedLeaseGranted
    37  ExclusiveLeaseGranted --> ExclusiveLeaseDemoting
    38  ExclusiveLeaseGranted --> ExclusiveLeaseReleasing
    39  
    40  ExclusiveLeaseRequested --> ExclusiveLeaseGranted
    41  
    42  ExclusiveLeaseDemoting --> None
    43  ExclusiveLeaseDemoting --> SharedLeaseGranted
    44  
    45  ExclusiveLeaseReleasing --> None
    46  
    47  @enduml