Created
April 9, 2021 00:21
-
-
Save Alexander-N/36d3ae3aff564cf71b409a2b29966ba9 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| .* Event = "(?<event>.*)"(.|\n)*?Host = (?<host>.*)(.|\n)*?VectorClock = "(?<clock>.*)"(.|\n)*?value = \((?<values>.*)\) | |
| @!@!@ENDMSG 2264 @!@!@ | |
| @!@!@STARTMSG 2217:4 @!@!@ | |
| 1: <Initial predicate> | |
| /\ localVectorClock = ( Database :> (ClientA :> 0 @@ ClientB :> 0 @@ Database :> 0 @@ Cache :> 0) @@ | |
| Cache :> (ClientA :> 0 @@ ClientB :> 0 @@ Database :> 0 @@ Cache :> 0) ) | |
| /\ receivedMessage_ = (ClientA :> Null @@ ClientB :> Null) | |
| /\ pc = ( ClientA :> "SendDatabase" @@ | |
| ClientB :> "SendDatabase" @@ | |
| Database :> "Receive" @@ | |
| Cache :> "Receive" ) | |
| /\ receivedMessage = (Database :> Null @@ Cache :> Null) | |
| /\ localVectorClock_ = ( ClientA :> (ClientA :> 0 @@ ClientB :> 0 @@ Database :> 0 @@ Cache :> 0) @@ | |
| ClientB :> (ClientA :> 0 @@ ClientB :> 0 @@ Database :> 0 @@ Cache :> 0) ) | |
| /\ Event = Null | |
| /\ Host = Null | |
| /\ VectorClock = (ClientA :> 0 @@ ClientB :> 0 @@ Database :> 0 @@ Cache :> 0) | |
| /\ received = (Database :> 0 @@ Cache :> 0) | |
| /\ Messages = (ClientA :> <<>> @@ ClientB :> <<>> @@ Database :> <<>> @@ Cache :> <<>>) | |
| /\ value = (Database :> Null @@ Cache :> Null) | |
| @!@!@ENDMSG 2217 @!@!@ | |
| @!@!@STARTMSG 2217:4 @!@!@ | |
| 2: <SendDatabase line 140, col 23 to line 155, col 74 of module dual_writes_vector_clock> | |
| /\ localVectorClock = ( Database :> (ClientA :> 0 @@ ClientB :> 0 @@ Database :> 0 @@ Cache :> 0) @@ | |
| Cache :> (ClientA :> 0 @@ ClientB :> 0 @@ Database :> 0 @@ Cache :> 0) ) | |
| /\ receivedMessage_ = (ClientA :> Null @@ ClientB :> Null) | |
| /\ pc = ( ClientA :> "SendDatabase" @@ | |
| ClientB :> "GetAckDatabase" @@ | |
| Database :> "Receive" @@ | |
| Cache :> "Receive" ) | |
| /\ receivedMessage = (Database :> Null @@ Cache :> Null) | |
| /\ localVectorClock_ = ( ClientA :> (ClientA :> 0 @@ ClientB :> 0 @@ Database :> 0 @@ Cache :> 0) @@ | |
| ClientB :> (ClientA :> 0 @@ ClientB :> 1 @@ Database :> 0 @@ Cache :> 0) ) | |
| /\ Event = "SendDatabase" | |
| /\ Host = ClientB | |
| /\ VectorClock = "{\"ClientA\":0,\"ClientB\":1,\"Database\":0,\"Cache\":0}" | |
| /\ received = (Database :> 0 @@ Cache :> 0) | |
| /\ Messages = ( ClientA :> <<>> @@ | |
| ClientB :> <<>> @@ | |
| Database :> | |
| << [ clock |-> | |
| (ClientA :> 0 @@ ClientB :> 1 @@ Database :> 0 @@ Cache :> 0), | |
| value |-> ClientB, | |
| destination |-> Database, | |
| source |-> ClientB ] >> @@ | |
| Cache :> <<>> ) | |
| /\ value = (Database :> Null @@ Cache :> Null) | |
| @!@!@ENDMSG 2217 @!@!@ | |
| @!@!@STARTMSG 2217:4 @!@!@ | |
| 3: <SendDatabase line 140, col 23 to line 155, col 74 of module dual_writes_vector_clock> | |
| /\ localVectorClock = ( Database :> (ClientA :> 0 @@ ClientB :> 0 @@ Database :> 0 @@ Cache :> 0) @@ | |
| Cache :> (ClientA :> 0 @@ ClientB :> 0 @@ Database :> 0 @@ Cache :> 0) ) | |
| /\ receivedMessage_ = (ClientA :> Null @@ ClientB :> Null) | |
| /\ pc = ( ClientA :> "GetAckDatabase" @@ | |
| ClientB :> "GetAckDatabase" @@ | |
| Database :> "Receive" @@ | |
| Cache :> "Receive" ) | |
| /\ receivedMessage = (Database :> Null @@ Cache :> Null) | |
| /\ localVectorClock_ = ( ClientA :> (ClientA :> 1 @@ ClientB :> 0 @@ Database :> 0 @@ Cache :> 0) @@ | |
| ClientB :> (ClientA :> 0 @@ ClientB :> 1 @@ Database :> 0 @@ Cache :> 0) ) | |
| /\ Event = "SendDatabase" | |
| /\ Host = ClientA | |
| /\ VectorClock = "{\"ClientA\":1,\"ClientB\":0,\"Database\":0,\"Cache\":0}" | |
| /\ received = (Database :> 0 @@ Cache :> 0) | |
| /\ Messages = ( ClientA :> <<>> @@ | |
| ClientB :> <<>> @@ | |
| Database :> | |
| << [ clock |-> | |
| (ClientA :> 0 @@ ClientB :> 1 @@ Database :> 0 @@ Cache :> 0), | |
| value |-> ClientB, | |
| destination |-> Database, | |
| source |-> ClientB ], | |
| [ clock |-> | |
| (ClientA :> 1 @@ ClientB :> 0 @@ Database :> 0 @@ Cache :> 0), | |
| value |-> ClientA, | |
| destination |-> Database, | |
| source |-> ClientA ] >> @@ | |
| Cache :> <<>> ) | |
| /\ value = (Database :> Null @@ Cache :> Null) | |
| @!@!@ENDMSG 2217 @!@!@ | |
| @!@!@STARTMSG 2217:4 @!@!@ | |
| 4: <Receive line 205, col 18 to line 216, col 71 of module dual_writes_vector_clock> | |
| /\ localVectorClock = ( Database :> (ClientA :> 0 @@ ClientB :> 1 @@ Database :> 1 @@ Cache :> 0) @@ | |
| Cache :> (ClientA :> 0 @@ ClientB :> 0 @@ Database :> 0 @@ Cache :> 0) ) | |
| /\ receivedMessage_ = (ClientA :> Null @@ ClientB :> Null) | |
| /\ pc = ( ClientA :> "GetAckDatabase" @@ | |
| ClientB :> "GetAckDatabase" @@ | |
| Database :> "SendAck" @@ | |
| Cache :> "Receive" ) | |
| /\ receivedMessage = ( Database :> | |
| [ clock |-> (ClientA :> 0 @@ ClientB :> 1 @@ Database :> 0 @@ Cache :> 0), | |
| value |-> ClientB, | |
| destination |-> Database, | |
| source |-> ClientB ] @@ | |
| Cache :> Null ) | |
| /\ localVectorClock_ = ( ClientA :> (ClientA :> 1 @@ ClientB :> 0 @@ Database :> 0 @@ Cache :> 0) @@ | |
| ClientB :> (ClientA :> 0 @@ ClientB :> 1 @@ Database :> 0 @@ Cache :> 0) ) | |
| /\ Event = "Receive" | |
| /\ Host = Database | |
| /\ VectorClock = "{\"ClientA\":0,\"ClientB\":1,\"Database\":1,\"Cache\":0}" | |
| /\ received = (Database :> 1 @@ Cache :> 0) | |
| /\ Messages = ( ClientA :> <<>> @@ | |
| ClientB :> <<>> @@ | |
| Database :> | |
| << [ clock |-> | |
| (ClientA :> 1 @@ ClientB :> 0 @@ Database :> 0 @@ Cache :> 0), | |
| value |-> ClientA, | |
| destination |-> Database, | |
| source |-> ClientA ] >> @@ | |
| Cache :> <<>> ) | |
| /\ value = (Database :> ClientB @@ Cache :> Null) | |
| @!@!@ENDMSG 2217 @!@!@ | |
| @!@!@STARTMSG 2217:4 @!@!@ | |
| 5: <SendAck line 218, col 18 to line 235, col 61 of module dual_writes_vector_clock> | |
| /\ localVectorClock = ( Database :> (ClientA :> 0 @@ ClientB :> 1 @@ Database :> 2 @@ Cache :> 0) @@ | |
| Cache :> (ClientA :> 0 @@ ClientB :> 0 @@ Database :> 0 @@ Cache :> 0) ) | |
| /\ receivedMessage_ = (ClientA :> Null @@ ClientB :> Null) | |
| /\ pc = ( ClientA :> "GetAckDatabase" @@ | |
| ClientB :> "GetAckDatabase" @@ | |
| Database :> "Receive" @@ | |
| Cache :> "Receive" ) | |
| /\ receivedMessage = ( Database :> | |
| [ clock |-> (ClientA :> 0 @@ ClientB :> 1 @@ Database :> 0 @@ Cache :> 0), | |
| value |-> ClientB, | |
| destination |-> Database, | |
| source |-> ClientB ] @@ | |
| Cache :> Null ) | |
| /\ localVectorClock_ = ( ClientA :> (ClientA :> 1 @@ ClientB :> 0 @@ Database :> 0 @@ Cache :> 0) @@ | |
| ClientB :> (ClientA :> 0 @@ ClientB :> 1 @@ Database :> 0 @@ Cache :> 0) ) | |
| /\ Event = "SendAck" | |
| /\ Host = Database | |
| /\ VectorClock = "{\"ClientA\":0,\"ClientB\":1,\"Database\":2,\"Cache\":0}" | |
| /\ received = (Database :> 1 @@ Cache :> 0) | |
| /\ Messages = ( ClientA :> <<>> @@ | |
| ClientB :> | |
| << [ clock |-> | |
| (ClientA :> 0 @@ ClientB :> 1 @@ Database :> 2 @@ Cache :> 0), | |
| value |-> Ack, | |
| destination |-> ClientB, | |
| source |-> Database ] >> @@ | |
| Database :> | |
| << [ clock |-> | |
| (ClientA :> 1 @@ ClientB :> 0 @@ Database :> 0 @@ Cache :> 0), | |
| value |-> ClientA, | |
| destination |-> Database, | |
| source |-> ClientA ] >> @@ | |
| Cache :> <<>> ) | |
| /\ value = (Database :> ClientB @@ Cache :> Null) | |
| @!@!@ENDMSG 2217 @!@!@ | |
| @!@!@STARTMSG 2217:4 @!@!@ | |
| 6: <Receive line 205, col 18 to line 216, col 71 of module dual_writes_vector_clock> | |
| /\ localVectorClock = ( Database :> (ClientA :> 1 @@ ClientB :> 1 @@ Database :> 3 @@ Cache :> 0) @@ | |
| Cache :> (ClientA :> 0 @@ ClientB :> 0 @@ Database :> 0 @@ Cache :> 0) ) | |
| /\ receivedMessage_ = (ClientA :> Null @@ ClientB :> Null) | |
| /\ pc = ( ClientA :> "GetAckDatabase" @@ | |
| ClientB :> "GetAckDatabase" @@ | |
| Database :> "SendAck" @@ | |
| Cache :> "Receive" ) | |
| /\ receivedMessage = ( Database :> | |
| [ clock |-> (ClientA :> 1 @@ ClientB :> 0 @@ Database :> 0 @@ Cache :> 0), | |
| value |-> ClientA, | |
| destination |-> Database, | |
| source |-> ClientA ] @@ | |
| Cache :> Null ) | |
| /\ localVectorClock_ = ( ClientA :> (ClientA :> 1 @@ ClientB :> 0 @@ Database :> 0 @@ Cache :> 0) @@ | |
| ClientB :> (ClientA :> 0 @@ ClientB :> 1 @@ Database :> 0 @@ Cache :> 0) ) | |
| /\ Event = "Receive" | |
| /\ Host = Database | |
| /\ VectorClock = "{\"ClientA\":1,\"ClientB\":1,\"Database\":3,\"Cache\":0}" | |
| /\ received = (Database :> 2 @@ Cache :> 0) | |
| /\ Messages = ( ClientA :> <<>> @@ | |
| ClientB :> | |
| << [ clock |-> | |
| (ClientA :> 0 @@ ClientB :> 1 @@ Database :> 2 @@ Cache :> 0), | |
| value |-> Ack, | |
| destination |-> ClientB, | |
| source |-> Database ] >> @@ | |
| Database :> <<>> @@ | |
| Cache :> <<>> ) | |
| /\ value = (Database :> ClientA @@ Cache :> Null) | |
| @!@!@ENDMSG 2217 @!@!@ | |
| @!@!@STARTMSG 2217:4 @!@!@ | |
| 7: <SendAck line 218, col 18 to line 235, col 61 of module dual_writes_vector_clock> | |
| /\ localVectorClock = ( Database :> (ClientA :> 1 @@ ClientB :> 1 @@ Database :> 4 @@ Cache :> 0) @@ | |
| Cache :> (ClientA :> 0 @@ ClientB :> 0 @@ Database :> 0 @@ Cache :> 0) ) | |
| /\ receivedMessage_ = (ClientA :> Null @@ ClientB :> Null) | |
| /\ pc = ( ClientA :> "GetAckDatabase" @@ | |
| ClientB :> "GetAckDatabase" @@ | |
| Database :> "Done" @@ | |
| Cache :> "Receive" ) | |
| /\ receivedMessage = ( Database :> | |
| [ clock |-> (ClientA :> 1 @@ ClientB :> 0 @@ Database :> 0 @@ Cache :> 0), | |
| value |-> ClientA, | |
| destination |-> Database, | |
| source |-> ClientA ] @@ | |
| Cache :> Null ) | |
| /\ localVectorClock_ = ( ClientA :> (ClientA :> 1 @@ ClientB :> 0 @@ Database :> 0 @@ Cache :> 0) @@ | |
| ClientB :> (ClientA :> 0 @@ ClientB :> 1 @@ Database :> 0 @@ Cache :> 0) ) | |
| /\ Event = "SendAck" | |
| /\ Host = Database | |
| /\ VectorClock = "{\"ClientA\":1,\"ClientB\":1,\"Database\":4,\"Cache\":0}" | |
| /\ received = (Database :> 2 @@ Cache :> 0) | |
| /\ Messages = ( ClientA :> | |
| << [ clock |-> | |
| (ClientA :> 1 @@ ClientB :> 1 @@ Database :> 4 @@ Cache :> 0), | |
| value |-> Ack, | |
| destination |-> ClientA, | |
| source |-> Database ] >> @@ | |
| ClientB :> | |
| << [ clock |-> | |
| (ClientA :> 0 @@ ClientB :> 1 @@ Database :> 2 @@ Cache :> 0), | |
| value |-> Ack, | |
| destination |-> ClientB, | |
| source |-> Database ] >> @@ | |
| Database :> <<>> @@ | |
| Cache :> <<>> ) | |
| /\ value = (Database :> ClientA @@ Cache :> Null) | |
| @!@!@ENDMSG 2217 @!@!@ | |
| @!@!@STARTMSG 2217:4 @!@!@ | |
| 8: <GetAckDatabase line 157, col 25 to line 169, col 59 of module dual_writes_vector_clock> | |
| /\ localVectorClock = ( Database :> (ClientA :> 1 @@ ClientB :> 1 @@ Database :> 4 @@ Cache :> 0) @@ | |
| Cache :> (ClientA :> 0 @@ ClientB :> 0 @@ Database :> 0 @@ Cache :> 0) ) | |
| /\ receivedMessage_ = ( ClientA :> | |
| [ clock |-> (ClientA :> 1 @@ ClientB :> 1 @@ Database :> 4 @@ Cache :> 0), | |
| value |-> Ack, | |
| destination |-> ClientA, | |
| source |-> Database ] @@ | |
| ClientB :> Null ) | |
| /\ pc = ( ClientA :> "SendCache" @@ | |
| ClientB :> "GetAckDatabase" @@ | |
| Database :> "Done" @@ | |
| Cache :> "Receive" ) | |
| /\ receivedMessage = ( Database :> | |
| [ clock |-> (ClientA :> 1 @@ ClientB :> 0 @@ Database :> 0 @@ Cache :> 0), | |
| value |-> ClientA, | |
| destination |-> Database, | |
| source |-> ClientA ] @@ | |
| Cache :> Null ) | |
| /\ localVectorClock_ = ( ClientA :> (ClientA :> 2 @@ ClientB :> 1 @@ Database :> 4 @@ Cache :> 0) @@ | |
| ClientB :> (ClientA :> 0 @@ ClientB :> 1 @@ Database :> 0 @@ Cache :> 0) ) | |
| /\ Event = "GetAckDatabase" | |
| /\ Host = ClientA | |
| /\ VectorClock = "{\"ClientA\":2,\"ClientB\":1,\"Database\":4,\"Cache\":0}" | |
| /\ received = (Database :> 2 @@ Cache :> 0) | |
| /\ Messages = ( ClientA :> <<>> @@ | |
| ClientB :> | |
| << [ clock |-> | |
| (ClientA :> 0 @@ ClientB :> 1 @@ Database :> 2 @@ Cache :> 0), | |
| value |-> Ack, | |
| destination |-> ClientB, | |
| source |-> Database ] >> @@ | |
| Database :> <<>> @@ | |
| Cache :> <<>> ) | |
| /\ value = (Database :> ClientA @@ Cache :> Null) | |
| @!@!@ENDMSG 2217 @!@!@ | |
| @!@!@STARTMSG 2217:4 @!@!@ | |
| 9: <GetAckDatabase line 157, col 25 to line 169, col 59 of module dual_writes_vector_clock> | |
| /\ localVectorClock = ( Database :> (ClientA :> 1 @@ ClientB :> 1 @@ Database :> 4 @@ Cache :> 0) @@ | |
| Cache :> (ClientA :> 0 @@ ClientB :> 0 @@ Database :> 0 @@ Cache :> 0) ) | |
| /\ receivedMessage_ = ( ClientA :> | |
| [ clock |-> (ClientA :> 1 @@ ClientB :> 1 @@ Database :> 4 @@ Cache :> 0), | |
| value |-> Ack, | |
| destination |-> ClientA, | |
| source |-> Database ] @@ | |
| ClientB :> | |
| [ clock |-> (ClientA :> 0 @@ ClientB :> 1 @@ Database :> 2 @@ Cache :> 0), | |
| value |-> Ack, | |
| destination |-> ClientB, | |
| source |-> Database ] ) | |
| /\ pc = ( ClientA :> "SendCache" @@ | |
| ClientB :> "SendCache" @@ | |
| Database :> "Done" @@ | |
| Cache :> "Receive" ) | |
| /\ receivedMessage = ( Database :> | |
| [ clock |-> (ClientA :> 1 @@ ClientB :> 0 @@ Database :> 0 @@ Cache :> 0), | |
| value |-> ClientA, | |
| destination |-> Database, | |
| source |-> ClientA ] @@ | |
| Cache :> Null ) | |
| /\ localVectorClock_ = ( ClientA :> (ClientA :> 2 @@ ClientB :> 1 @@ Database :> 4 @@ Cache :> 0) @@ | |
| ClientB :> (ClientA :> 0 @@ ClientB :> 2 @@ Database :> 2 @@ Cache :> 0) ) | |
| /\ Event = "GetAckDatabase" | |
| /\ Host = ClientB | |
| /\ VectorClock = "{\"ClientA\":0,\"ClientB\":2,\"Database\":2,\"Cache\":0}" | |
| /\ received = (Database :> 2 @@ Cache :> 0) | |
| /\ Messages = (ClientA :> <<>> @@ ClientB :> <<>> @@ Database :> <<>> @@ Cache :> <<>>) | |
| /\ value = (Database :> ClientA @@ Cache :> Null) | |
| @!@!@ENDMSG 2217 @!@!@ | |
| @!@!@STARTMSG 2217:4 @!@!@ | |
| 10: <SendCache line 171, col 20 to line 186, col 71 of module dual_writes_vector_clock> | |
| /\ localVectorClock = ( Database :> (ClientA :> 1 @@ ClientB :> 1 @@ Database :> 4 @@ Cache :> 0) @@ | |
| Cache :> (ClientA :> 0 @@ ClientB :> 0 @@ Database :> 0 @@ Cache :> 0) ) | |
| /\ receivedMessage_ = ( ClientA :> | |
| [ clock |-> (ClientA :> 1 @@ ClientB :> 1 @@ Database :> 4 @@ Cache :> 0), | |
| value |-> Ack, | |
| destination |-> ClientA, | |
| source |-> Database ] @@ | |
| ClientB :> | |
| [ clock |-> (ClientA :> 0 @@ ClientB :> 1 @@ Database :> 2 @@ Cache :> 0), | |
| value |-> Ack, | |
| destination |-> ClientB, | |
| source |-> Database ] ) | |
| /\ pc = ( ClientA :> "GetAckCache" @@ | |
| ClientB :> "SendCache" @@ | |
| Database :> "Done" @@ | |
| Cache :> "Receive" ) | |
| /\ receivedMessage = ( Database :> | |
| [ clock |-> (ClientA :> 1 @@ ClientB :> 0 @@ Database :> 0 @@ Cache :> 0), | |
| value |-> ClientA, | |
| destination |-> Database, | |
| source |-> ClientA ] @@ | |
| Cache :> Null ) | |
| /\ localVectorClock_ = ( ClientA :> (ClientA :> 3 @@ ClientB :> 1 @@ Database :> 4 @@ Cache :> 0) @@ | |
| ClientB :> (ClientA :> 0 @@ ClientB :> 2 @@ Database :> 2 @@ Cache :> 0) ) | |
| /\ Event = "SendCache" | |
| /\ Host = ClientA | |
| /\ VectorClock = "{\"ClientA\":3,\"ClientB\":1,\"Database\":4,\"Cache\":0}" | |
| /\ received = (Database :> 2 @@ Cache :> 0) | |
| /\ Messages = ( ClientA :> <<>> @@ | |
| ClientB :> <<>> @@ | |
| Database :> <<>> @@ | |
| Cache :> | |
| << [ clock |-> | |
| (ClientA :> 3 @@ ClientB :> 1 @@ Database :> 4 @@ Cache :> 0), | |
| value |-> ClientA, | |
| destination |-> Cache, | |
| source |-> ClientA ] >> ) | |
| /\ value = (Database :> ClientA @@ Cache :> Null) | |
| @!@!@ENDMSG 2217 @!@!@ | |
| @!@!@STARTMSG 2217:4 @!@!@ | |
| 11: <Receive line 205, col 18 to line 216, col 71 of module dual_writes_vector_clock> | |
| /\ localVectorClock = ( Database :> (ClientA :> 1 @@ ClientB :> 1 @@ Database :> 4 @@ Cache :> 0) @@ | |
| Cache :> (ClientA :> 3 @@ ClientB :> 1 @@ Database :> 4 @@ Cache :> 1) ) | |
| /\ receivedMessage_ = ( ClientA :> | |
| [ clock |-> (ClientA :> 1 @@ ClientB :> 1 @@ Database :> 4 @@ Cache :> 0), | |
| value |-> Ack, | |
| destination |-> ClientA, | |
| source |-> Database ] @@ | |
| ClientB :> | |
| [ clock |-> (ClientA :> 0 @@ ClientB :> 1 @@ Database :> 2 @@ Cache :> 0), | |
| value |-> Ack, | |
| destination |-> ClientB, | |
| source |-> Database ] ) | |
| /\ pc = ( ClientA :> "GetAckCache" @@ | |
| ClientB :> "SendCache" @@ | |
| Database :> "Done" @@ | |
| Cache :> "SendAck" ) | |
| /\ receivedMessage = ( Database :> | |
| [ clock |-> (ClientA :> 1 @@ ClientB :> 0 @@ Database :> 0 @@ Cache :> 0), | |
| value |-> ClientA, | |
| destination |-> Database, | |
| source |-> ClientA ] @@ | |
| Cache :> | |
| [ clock |-> (ClientA :> 3 @@ ClientB :> 1 @@ Database :> 4 @@ Cache :> 0), | |
| value |-> ClientA, | |
| destination |-> Cache, | |
| source |-> ClientA ] ) | |
| /\ localVectorClock_ = ( ClientA :> (ClientA :> 3 @@ ClientB :> 1 @@ Database :> 4 @@ Cache :> 0) @@ | |
| ClientB :> (ClientA :> 0 @@ ClientB :> 2 @@ Database :> 2 @@ Cache :> 0) ) | |
| /\ Event = "Receive" | |
| /\ Host = Cache | |
| /\ VectorClock = "{\"ClientA\":3,\"ClientB\":1,\"Database\":4,\"Cache\":1}" | |
| /\ received = (Database :> 2 @@ Cache :> 1) | |
| /\ Messages = (ClientA :> <<>> @@ ClientB :> <<>> @@ Database :> <<>> @@ Cache :> <<>>) | |
| /\ value = (Database :> ClientA @@ Cache :> ClientA) | |
| @!@!@ENDMSG 2217 @!@!@ | |
| @!@!@STARTMSG 2217:4 @!@!@ | |
| 12: <SendAck line 218, col 18 to line 235, col 61 of module dual_writes_vector_clock> | |
| /\ localVectorClock = ( Database :> (ClientA :> 1 @@ ClientB :> 1 @@ Database :> 4 @@ Cache :> 0) @@ | |
| Cache :> (ClientA :> 3 @@ ClientB :> 1 @@ Database :> 4 @@ Cache :> 2) ) | |
| /\ receivedMessage_ = ( ClientA :> | |
| [ clock |-> (ClientA :> 1 @@ ClientB :> 1 @@ Database :> 4 @@ Cache :> 0), | |
| value |-> Ack, | |
| destination |-> ClientA, | |
| source |-> Database ] @@ | |
| ClientB :> | |
| [ clock |-> (ClientA :> 0 @@ ClientB :> 1 @@ Database :> 2 @@ Cache :> 0), | |
| value |-> Ack, | |
| destination |-> ClientB, | |
| source |-> Database ] ) | |
| /\ pc = ( ClientA :> "GetAckCache" @@ | |
| ClientB :> "SendCache" @@ | |
| Database :> "Done" @@ | |
| Cache :> "Receive" ) | |
| /\ receivedMessage = ( Database :> | |
| [ clock |-> (ClientA :> 1 @@ ClientB :> 0 @@ Database :> 0 @@ Cache :> 0), | |
| value |-> ClientA, | |
| destination |-> Database, | |
| source |-> ClientA ] @@ | |
| Cache :> | |
| [ clock |-> (ClientA :> 3 @@ ClientB :> 1 @@ Database :> 4 @@ Cache :> 0), | |
| value |-> ClientA, | |
| destination |-> Cache, | |
| source |-> ClientA ] ) | |
| /\ localVectorClock_ = ( ClientA :> (ClientA :> 3 @@ ClientB :> 1 @@ Database :> 4 @@ Cache :> 0) @@ | |
| ClientB :> (ClientA :> 0 @@ ClientB :> 2 @@ Database :> 2 @@ Cache :> 0) ) | |
| /\ Event = "SendAck" | |
| /\ Host = Cache | |
| /\ VectorClock = "{\"ClientA\":3,\"ClientB\":1,\"Database\":4,\"Cache\":2}" | |
| /\ received = (Database :> 2 @@ Cache :> 1) | |
| /\ Messages = ( ClientA :> | |
| << [ clock |-> | |
| (ClientA :> 3 @@ ClientB :> 1 @@ Database :> 4 @@ Cache :> 2), | |
| value |-> Ack, | |
| destination |-> ClientA, | |
| source |-> Cache ] >> @@ | |
| ClientB :> <<>> @@ | |
| Database :> <<>> @@ | |
| Cache :> <<>> ) | |
| /\ value = (Database :> ClientA @@ Cache :> ClientA) | |
| @!@!@ENDMSG 2217 @!@!@ | |
| @!@!@STARTMSG 2217:4 @!@!@ | |
| 13: <GetAckCache line 188, col 22 to line 200, col 56 of module dual_writes_vector_clock> | |
| /\ localVectorClock = ( Database :> (ClientA :> 1 @@ ClientB :> 1 @@ Database :> 4 @@ Cache :> 0) @@ | |
| Cache :> (ClientA :> 3 @@ ClientB :> 1 @@ Database :> 4 @@ Cache :> 2) ) | |
| /\ receivedMessage_ = ( ClientA :> | |
| [ clock |-> (ClientA :> 3 @@ ClientB :> 1 @@ Database :> 4 @@ Cache :> 2), | |
| value |-> Ack, | |
| destination |-> ClientA, | |
| source |-> Cache ] @@ | |
| ClientB :> | |
| [ clock |-> (ClientA :> 0 @@ ClientB :> 1 @@ Database :> 2 @@ Cache :> 0), | |
| value |-> Ack, | |
| destination |-> ClientB, | |
| source |-> Database ] ) | |
| /\ pc = ( ClientA :> "Done" @@ | |
| ClientB :> "SendCache" @@ | |
| Database :> "Done" @@ | |
| Cache :> "Receive" ) | |
| /\ receivedMessage = ( Database :> | |
| [ clock |-> (ClientA :> 1 @@ ClientB :> 0 @@ Database :> 0 @@ Cache :> 0), | |
| value |-> ClientA, | |
| destination |-> Database, | |
| source |-> ClientA ] @@ | |
| Cache :> | |
| [ clock |-> (ClientA :> 3 @@ ClientB :> 1 @@ Database :> 4 @@ Cache :> 0), | |
| value |-> ClientA, | |
| destination |-> Cache, | |
| source |-> ClientA ] ) | |
| /\ localVectorClock_ = ( ClientA :> (ClientA :> 4 @@ ClientB :> 1 @@ Database :> 4 @@ Cache :> 2) @@ | |
| ClientB :> (ClientA :> 0 @@ ClientB :> 2 @@ Database :> 2 @@ Cache :> 0) ) | |
| /\ Event = "GetAckCache" | |
| /\ Host = ClientA | |
| /\ VectorClock = "{\"ClientA\":4,\"ClientB\":1,\"Database\":4,\"Cache\":2}" | |
| /\ received = (Database :> 2 @@ Cache :> 1) | |
| /\ Messages = (ClientA :> <<>> @@ ClientB :> <<>> @@ Database :> <<>> @@ Cache :> <<>>) | |
| /\ value = (Database :> ClientA @@ Cache :> ClientA) | |
| @!@!@ENDMSG 2217 @!@!@ | |
| @!@!@STARTMSG 2217:4 @!@!@ | |
| 14: <SendCache line 171, col 20 to line 186, col 71 of module dual_writes_vector_clock> | |
| /\ localVectorClock = ( Database :> (ClientA :> 1 @@ ClientB :> 1 @@ Database :> 4 @@ Cache :> 0) @@ | |
| Cache :> (ClientA :> 3 @@ ClientB :> 1 @@ Database :> 4 @@ Cache :> 2) ) | |
| /\ receivedMessage_ = ( ClientA :> | |
| [ clock |-> (ClientA :> 3 @@ ClientB :> 1 @@ Database :> 4 @@ Cache :> 2), | |
| value |-> Ack, | |
| destination |-> ClientA, | |
| source |-> Cache ] @@ | |
| ClientB :> | |
| [ clock |-> (ClientA :> 0 @@ ClientB :> 1 @@ Database :> 2 @@ Cache :> 0), | |
| value |-> Ack, | |
| destination |-> ClientB, | |
| source |-> Database ] ) | |
| /\ pc = ( ClientA :> "Done" @@ | |
| ClientB :> "GetAckCache" @@ | |
| Database :> "Done" @@ | |
| Cache :> "Receive" ) | |
| /\ receivedMessage = ( Database :> | |
| [ clock |-> (ClientA :> 1 @@ ClientB :> 0 @@ Database :> 0 @@ Cache :> 0), | |
| value |-> ClientA, | |
| destination |-> Database, | |
| source |-> ClientA ] @@ | |
| Cache :> | |
| [ clock |-> (ClientA :> 3 @@ ClientB :> 1 @@ Database :> 4 @@ Cache :> 0), | |
| value |-> ClientA, | |
| destination |-> Cache, | |
| source |-> ClientA ] ) | |
| /\ localVectorClock_ = ( ClientA :> (ClientA :> 4 @@ ClientB :> 1 @@ Database :> 4 @@ Cache :> 2) @@ | |
| ClientB :> (ClientA :> 0 @@ ClientB :> 3 @@ Database :> 2 @@ Cache :> 0) ) | |
| /\ Event = "SendCache" | |
| /\ Host = ClientB | |
| /\ VectorClock = "{\"ClientA\":0,\"ClientB\":3,\"Database\":2,\"Cache\":0}" | |
| /\ received = (Database :> 2 @@ Cache :> 1) | |
| /\ Messages = ( ClientA :> <<>> @@ | |
| ClientB :> <<>> @@ | |
| Database :> <<>> @@ | |
| Cache :> | |
| << [ clock |-> | |
| (ClientA :> 0 @@ ClientB :> 3 @@ Database :> 2 @@ Cache :> 0), | |
| value |-> ClientB, | |
| destination |-> Cache, | |
| source |-> ClientB ] >> ) | |
| /\ value = (Database :> ClientA @@ Cache :> ClientA) | |
| @!@!@ENDMSG 2217 @!@!@ | |
| @!@!@STARTMSG 2217:4 @!@!@ | |
| 15: <Receive line 205, col 18 to line 216, col 71 of module dual_writes_vector_clock> | |
| /\ localVectorClock = ( Database :> (ClientA :> 1 @@ ClientB :> 1 @@ Database :> 4 @@ Cache :> 0) @@ | |
| Cache :> (ClientA :> 3 @@ ClientB :> 3 @@ Database :> 4 @@ Cache :> 3) ) | |
| /\ receivedMessage_ = ( ClientA :> | |
| [ clock |-> (ClientA :> 3 @@ ClientB :> 1 @@ Database :> 4 @@ Cache :> 2), | |
| value |-> Ack, | |
| destination |-> ClientA, | |
| source |-> Cache ] @@ | |
| ClientB :> | |
| [ clock |-> (ClientA :> 0 @@ ClientB :> 1 @@ Database :> 2 @@ Cache :> 0), | |
| value |-> Ack, | |
| destination |-> ClientB, | |
| source |-> Database ] ) | |
| /\ pc = ( ClientA :> "Done" @@ | |
| ClientB :> "GetAckCache" @@ | |
| Database :> "Done" @@ | |
| Cache :> "SendAck" ) | |
| /\ receivedMessage = ( Database :> | |
| [ clock |-> (ClientA :> 1 @@ ClientB :> 0 @@ Database :> 0 @@ Cache :> 0), | |
| value |-> ClientA, | |
| destination |-> Database, | |
| source |-> ClientA ] @@ | |
| Cache :> | |
| [ clock |-> (ClientA :> 0 @@ ClientB :> 3 @@ Database :> 2 @@ Cache :> 0), | |
| value |-> ClientB, | |
| destination |-> Cache, | |
| source |-> ClientB ] ) | |
| /\ localVectorClock_ = ( ClientA :> (ClientA :> 4 @@ ClientB :> 1 @@ Database :> 4 @@ Cache :> 2) @@ | |
| ClientB :> (ClientA :> 0 @@ ClientB :> 3 @@ Database :> 2 @@ Cache :> 0) ) | |
| /\ Event = "Receive" | |
| /\ Host = Cache | |
| /\ VectorClock = "{\"ClientA\":3,\"ClientB\":3,\"Database\":4,\"Cache\":3}" | |
| /\ received = (Database :> 2 @@ Cache :> 2) | |
| /\ Messages = (ClientA :> <<>> @@ ClientB :> <<>> @@ Database :> <<>> @@ Cache :> <<>>) | |
| /\ value = (Database :> ClientA @@ Cache :> ClientB) | |
| @!@!@ENDMSG 2217 @!@!@ | |
| @!@!@STARTMSG 2217:4 @!@!@ | |
| 16: <SendAck line 218, col 18 to line 235, col 61 of module dual_writes_vector_clock> | |
| /\ localVectorClock = ( Database :> (ClientA :> 1 @@ ClientB :> 1 @@ Database :> 4 @@ Cache :> 0) @@ | |
| Cache :> (ClientA :> 3 @@ ClientB :> 3 @@ Database :> 4 @@ Cache :> 4) ) | |
| /\ receivedMessage_ = ( ClientA :> | |
| [ clock |-> (ClientA :> 3 @@ ClientB :> 1 @@ Database :> 4 @@ Cache :> 2), | |
| value |-> Ack, | |
| destination |-> ClientA, | |
| source |-> Cache ] @@ | |
| ClientB :> | |
| [ clock |-> (ClientA :> 0 @@ ClientB :> 1 @@ Database :> 2 @@ Cache :> 0), | |
| value |-> Ack, | |
| destination |-> ClientB, | |
| source |-> Database ] ) | |
| /\ pc = ( ClientA :> "Done" @@ | |
| ClientB :> "GetAckCache" @@ | |
| Database :> "Done" @@ | |
| Cache :> "Done" ) | |
| /\ receivedMessage = ( Database :> | |
| [ clock |-> (ClientA :> 1 @@ ClientB :> 0 @@ Database :> 0 @@ Cache :> 0), | |
| value |-> ClientA, | |
| destination |-> Database, | |
| source |-> ClientA ] @@ | |
| Cache :> | |
| [ clock |-> (ClientA :> 0 @@ ClientB :> 3 @@ Database :> 2 @@ Cache :> 0), | |
| value |-> ClientB, | |
| destination |-> Cache, | |
| source |-> ClientB ] ) | |
| /\ localVectorClock_ = ( ClientA :> (ClientA :> 4 @@ ClientB :> 1 @@ Database :> 4 @@ Cache :> 2) @@ | |
| ClientB :> (ClientA :> 0 @@ ClientB :> 3 @@ Database :> 2 @@ Cache :> 0) ) | |
| /\ Event = "SendAck" | |
| /\ Host = Cache | |
| /\ VectorClock = "{\"ClientA\":3,\"ClientB\":3,\"Database\":4,\"Cache\":4}" | |
| /\ received = (Database :> 2 @@ Cache :> 2) | |
| /\ Messages = ( ClientA :> <<>> @@ | |
| ClientB :> | |
| << [ clock |-> | |
| (ClientA :> 3 @@ ClientB :> 3 @@ Database :> 4 @@ Cache :> 4), | |
| value |-> Ack, | |
| destination |-> ClientB, | |
| source |-> Cache ] >> @@ | |
| Database :> <<>> @@ | |
| Cache :> <<>> ) | |
| /\ value = (Database :> ClientA @@ Cache :> ClientB) | |
| @!@!@ENDMSG 2217 @!@!@ | |
| @!@!@STARTMSG 2217:4 @!@!@ | |
| 17: <GetAckCache line 188, col 22 to line 200, col 56 of module dual_writes_vector_clock> | |
| /\ localVectorClock = ( Database :> (ClientA :> 1 @@ ClientB :> 1 @@ Database :> 4 @@ Cache :> 0) @@ | |
| Cache :> (ClientA :> 3 @@ ClientB :> 3 @@ Database :> 4 @@ Cache :> 4) ) | |
| /\ receivedMessage_ = ( ClientA :> | |
| [ clock |-> (ClientA :> 3 @@ ClientB :> 1 @@ Database :> 4 @@ Cache :> 2), | |
| value |-> Ack, | |
| destination |-> ClientA, | |
| source |-> Cache ] @@ | |
| ClientB :> | |
| [ clock |-> (ClientA :> 3 @@ ClientB :> 3 @@ Database :> 4 @@ Cache :> 4), | |
| value |-> Ack, | |
| destination |-> ClientB, | |
| source |-> Cache ] ) | |
| /\ pc = ( ClientA :> "Done" @@ | |
| ClientB :> "Done" @@ | |
| Database :> "Done" @@ | |
| Cache :> "Done" ) | |
| /\ receivedMessage = ( Database :> | |
| [ clock |-> (ClientA :> 1 @@ ClientB :> 0 @@ Database :> 0 @@ Cache :> 0), | |
| value |-> ClientA, | |
| destination |-> Database, | |
| source |-> ClientA ] @@ | |
| Cache :> | |
| [ clock |-> (ClientA :> 0 @@ ClientB :> 3 @@ Database :> 2 @@ Cache :> 0), | |
| value |-> ClientB, | |
| destination |-> Cache, | |
| source |-> ClientB ] ) | |
| /\ localVectorClock_ = ( ClientA :> (ClientA :> 4 @@ ClientB :> 1 @@ Database :> 4 @@ Cache :> 2) @@ | |
| ClientB :> (ClientA :> 3 @@ ClientB :> 4 @@ Database :> 4 @@ Cache :> 4) ) | |
| /\ Event = "GetAckCache" | |
| /\ Host = ClientB | |
| /\ VectorClock = "{\"ClientA\":3,\"ClientB\":4,\"Database\":4,\"Cache\":4}" | |
| /\ received = (Database :> 2 @@ Cache :> 2) | |
| /\ Messages = (ClientA :> <<>> @@ ClientB :> <<>> @@ Database :> <<>> @@ Cache :> <<>>) | |
| /\ value = (Database :> ClientA @@ Cache :> ClientB) | |
| @!@!@ENDMSG 2217 @!@!@ | |
| @!@!@STARTMSG 2218:4 @!@!@ | |
| 18: Stuttering |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment