June 18, 2008

Overview of MindTouch Deki Editing Conflict Engine

Working in support I have the benefit of talking with customers and users and finding out what parts of MindTouch Deki cause confusion or need clarification. A recent recurring question is how does MindTouch Deki handle concurrent edits. Specifically if there is a conflict with edits overlapping.
First let me stress that all of the functionality in this post assumes that you are running on 8.05 or higher.

MindTouch Deki has a sophisticated merging engine that will recognize separate changes down to the word and accurately merge the revisions together. This helps with collaboration as there are less chances that if more than one user is editing a page there will be conflicts.

First let’s examine at a high level how MindTouch Deki handles a merge.

Say you have the following set of sentences:

The dog ran along the fence while the boy biked away.
The boy was heading off to college to pursue his lifelong dream of being a developer.  

Bob edits the first sentence to read this: The black dog ran along the white fence while the boy biked away.

And Tim edits the second sentence to read: The boy was heading off to college to pursue his lifelong dream of being a baker.

These edits occur at the same time but are saved at different times. Regardless of who started the edit first and who saved first, MindTouch Deki will merge the sentences together to form a comprehensive set of sentences as it is intended:

The black dog ran along the white fence while the boy biked away.
The boy was heading off to college to pursue his lifelong dream of being a baker.

This is also true on a Section and Page level.

Now if Bob and Tim’s edits were to overlap then both edits will still be saved, but the last person to save will have the opportunity to review and compare the edits and confirm that nothing has been lost that should be kept.

Example:

Using the same sentences from above. Bob edits the first sentence to read:

The black duck waddled next to the white fence while the boy biked away.

While Tim edits the first sentence to read:

The black cat walked on top of the white fence while the boy biked away.

Bob saves his changes first which is accepted by the system. Tim saves his changes which is also accepted by the system. The system notices that there is some overlap and notifies Tim that there is a difference between his edit and what Bob had changed along with prompting him to compare versions to see the difference. This allows Tim to review Bob’s changes at a glance. If Bob’s changes need to be reincorporated, Tim can do so by re-edting the page. Otherwise Tim can also chose to leave the page as is.

We have put a lot of work into our conflict merging to ensure that you don’t lose content and to maintain the integrity of edits so that they can be integrated manually by the user as opposed to removing the edit because of a conflict.

As always, if further clarification is needed please feel free to post a comment or contact us.

3 Comments »

  1. Outstanding write-up and explanation. This is a question that is always asked by clients about the integrity of their data changes and potential conflicts. This was obviously a very well thought out process.

    Would it be possible to include the above blog in the documentation?

    Comment by Aurora — June 19, 2008 @ 7:29 am

  2. Aurora,

    Thank you. I’ll make sure it is included in our User Manual which will be updated in the next week at mindtouch.com

    Comment by coreyg — June 19, 2008 @ 3:42 pm

  3. Hey there,

    Thanks for the great description and this does seem to work well for normal pages.

    I just tested this in a table. Edited one line in a table and then got the conflict resolution screen. In my opinion this is still too complicated for your normal user and has made it so we do not use deki wiki for tables that get edited alot. We now still use excel spreadsheets on a file share since excel will lock out another user if two users try to edit a document simultaneously.

    Petrus4

    Comment by Petrus4 — June 21, 2008 @ 7:11 am

RSS feed for comments on this post. TrackBack URL

Leave a comment