From d56244549a1f68e2263a6126e267612493b6f499 Mon Sep 17 00:00:00 2001 From: Kegan Dougal Date: Tue, 18 Apr 2017 17:54:35 +0100 Subject: [PATCH] More comments --- .../matrix-org/dendrite/syncserver/sync/requestpool.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/github.com/matrix-org/dendrite/syncserver/sync/requestpool.go b/src/github.com/matrix-org/dendrite/syncserver/sync/requestpool.go index bf2dc0212..c90bfb2d4 100644 --- a/src/github.com/matrix-org/dendrite/syncserver/sync/requestpool.go +++ b/src/github.com/matrix-org/dendrite/syncserver/sync/requestpool.go @@ -174,6 +174,10 @@ func (rp *RequestPool) currentSyncForUser(req syncRequest) (*types.Response, err // Servers advance state events (e.g from D' to D'') based on the state conflict resolution algorithm. // You might think that you could advance the current state by just updating the entry for the (event type, state_key) tuple // for each state event, but this state can diverge from the state calculated using the state conflict resolution algorithm. + // For example, if there are two "simultaneous" updates to the same state key, that is two updates at the same depth in the + // event graph, then the final result of the state conflict resolution algorithm might not match the order the events appear + // in the timeline. + // // The correct advancement for state events is represented by the add_state_ids and remove_state_ids that // are in OutputRoomEvents from the room server.