+
1
|
list
|
skin
|
login
|
editor
α-wwwiki
::
concurrent
user:none
(3199 bytes)
_h1 concurrent access _p Concurrent access is not handled in alphawiki and this is a big problem ! _h3 example _p Suppose a page "test" exists in the wiki and we are on May the 17th of 2013 : _ul The user A opens the page "test" at 14h00 and works on it until 14h10, _ul The user B opens the page "test" at 14h01 ; two cases : _ul30 1) B works on the page and saves/publishes it at 14h09 ; the page will be visible on the web until A saves his work at 14h10 : then B's work is lost and replaced by A's work. _ul30 2) B works on the page and saves/publishes it at 14h11 ; A's work will have been visible on the web from 14h10 till 14h11, then it will be lost and replaced by B's work. _p It must be known that everytime a page is saved in the folder "pages", a copy is saved in the folder "history" with a name in this format : name_yyyymmdd_hhmmss. In the case of users A and B we have successively : _ul in the first case : _ul30 B saves test_20130517_140900 _ul30 A saves test_20130517_141000 _ul in the second case : _ul30 A saves test_20130517_141000 _ul30 B saves test_20130517_141100 _p The last to save wins, but no work is lost ! _h3 how to fix it ? _p The looser can recover his work from the history and publish his work. The concurrent can do the same ... ad nauseam. It's also possible to work on the page's state before the A and B accesses, extract the parts of A and B and build a final coherent state of the page. It's quite a lot of work ! _p In the meantime, this is how I work. Between the search field of the menu and the link "list" is displayed the number of visitors. If it is "1" then there is no problem with concurrent access, else someone may be editing a page of the wiki, maybe the page on which I want to work, and there will probably be a concurrent conflict. In this case, I edit the page as long time as I need, then, instead of saving the page, {u I copy my work}, I close the editor without saving, and I look at the page and at the number of visitors : _ul if nothing has changed in the page and the number is "1", I open the editor, paste my work and save the page, _ul if the page has changed and the number is "1", I do the same, _ul if the number is more then "1", refreshing the page from time to time, I wait until it comes down to "1", then I open the editor, paste my work and save the page. Ouf !! _h3 conclusion _p YES, it is a lot of work to do, it is not "professional", but in principle, grace to the history functionality, {b it is always possible to recover a coherent state of a page}. I have been working in computer classrooms of about 25/30 students on such a wikis and it worked fine ; more can be seen : [[here|http://ensam.wiki.free.fr/S4_2012/S4G1/]]. _p And YES, a mechanism must be provided to avoid concurrent access. I need help ! _h3 links _ul [[how-does-a-wiki-handle-multiple-simultaneous-edits|http://stackoverflow.com/questions/3411888/how-does-a-wiki-handle-multiple-simultaneous-edits]] _ul [[mediawiki|http://www.gossamer-threads.com/lists/wiki/wikitech/155024]] _ul [[sharejs.org/|http://sharejs.org/]] _ul [[article pdf|http://hal.inria.fr/docs/00/16/94/18/PDF/RR-6278.pdf]]