[Sugar-devel] [ANNOUNCE] Groupthink 0.1 pre-alpha

Benjamin M. Schwartz bmschwar at fas.harvard.edu
Wed Jan 14 23:25:46 EST 2009


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Martin Edmund Sevior wrote:
>          How do you solve "internet lag".
>
> User A puts a character "A" in position 10, then before user B see sees
this (because of the finite propagation time), he puts character "B" in
position 10?
>
> Who wins? You just have to make sure the the document remains the same
for both users.

This is, indeed, the central problem.  For the moment, the answer is:
Groupthink does not support full documents, only short snippets of text.
I have prototyped a data structure that I believe can coherently resolve
these sorts of edit conflicts in long documents without any negotiation,
but it remains to be seen if the design will work.

In general, Groupthink's approach (described at length in docstrings in
the code) is to write each data structure in such a way that any two users
who have observed the same set of messages will arrive at the same state,
regardless of the order in which those messages are received.  The hard
part is figuring out how to do this for each kind of data structure.
However, once it is working, the code can be reused for many purposes
without needing to understand how it works.

- --Ben
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.9 (GNU/Linux)

iEYEARECAAYFAkluuskACgkQUJT6e6HFtqQb2QCfXnSJHwZpn6Q/OsDSs8nJEb3x
vWIAoIJYuSuEp8EFOeKynHDLctW2S5iq
=Po5R
-----END PGP SIGNATURE-----


More information about the Sugar-devel mailing list