ooki is a Wiki

Currently, Wikis are the most popular collaborative editing systems. They allow people to easily create and modify content on the web. This ease of interaction and operation makes a wiki an effective tool for collaborative writing. Collaborative writing is becoming increasingly common; often compulsory in academic and corporate work. Writing scientific articles, technical manuals and planning presentations are a few examples of common collaborative writing activities.

A lot of critical data are now under the control of wiki systems. Wiki is now used within enterprises or organizations. For example, United States intelligence community use Intellipedia for managing national security informations. Wikis are now an important piece in the information system of many organizations and communities. This introduce the issue of data availability in case of failure, heavy load or off-line access.

ooki is decentralized on P2P network

Current Wiki systems are intrinsically centralized. Consequently, in case of failure or off-line work, data are unavailable. In case of heavy load, system scales poorly and the cost linked to underlying hardware cannot be shared. Our objective is to replace the centralized architecture of a wiki server by a P2P network of wiki servers. This make the whole wiki system fault tolerant, this allows to balance the load on the network and finally costs of the underlying hardware can be shared between different organization.

This approach suppose that Wiki data are replicated on P2P network of wiki sites. Consequently, the main problem is how to manage replicate consistency between wiki sites. Traditional pessimistic replication approaches ensure consistency but are not adapted to this context. They scale poorly and do not support off-line work.

ooki use optimistic replication

Optimistic replication approaches suppose to know how to safely merge concurrent updates. Some previous work tried to build a P2P wiki relying on distributed version control system (DVCS) approaches. The main problem with DVCS approach is correctness. An optimistic replicated system is considered as correct if it eventually converge i.e. when the system is idle all Wiki sites contain identical data. This is called eventual consistency. Version control system have never ensured this property. Consequently, building a P2P system with traditional DVCS will not ensure eventual consistency. Other approaches ensure convergence but are not compatible with P2P networks constraints. Finally some others approaches converge and are adequate with P2P constraints but does not support collaborative editing constraints.

OOT algorithm

We developed the WOOT algorithm to manage consistency of replicated linear structure in a P2P environment. This algorithm ensure convergence without managing versions. Wooki is a fully functional P2P wiki system based on this algorithm. We refined the original algorithm to achieve a better time complexity. We combined this new algorithm with an probabilistic dissemination algorithm for managing updates propagation on the overlay network and with an anti-entropy algorithm for managing failures and disconnected sites. Wooki is currently available under GPL license.

ooki approach

A Wooki network is dynamic p2p network where any site can join or leave at any time. Each site has a unique identifier named siteid. Site identifiers are totally ordered. Each site replicates wiki pages of other sites. Each site only requires a partial knowledge of the whole network.

A Wooki site generates a sequence of operations when a Wooki user saves its page. These operations are integrated locally on the Wooki site page by executing the WOOT algorithm, and broadcasted for integration on all other sites.

ooki preview without install