Summary

Make the gobby server save its state in files, and automatically commit those files to bzr.

Release Note

The Gobby server now optionally commits automatically saved documents to a version control system.

Rationale

Ubuntu uses Gobby, the collaborative editor, a lot at conferences. It is an invaluable tool, but not as reliable as it could be. The server sometimes crashes, taking all documents with it. Fix this by having the server save its document to persistent storage often, and to keep them in bzr, too.

Design

The standalone Gobby server, in the sobby package, already has the automatic saving feature.

The needed change is to add an option to additionally call an external script after the automatic save has been triggered. This script can then take care of committing the file(s) to some version control system (bzr at least).

The automatic saving feature is triggered by a timer, and the interval is user-settable. This means that if committing every second is too heavy, the time can be adjusted to committing every minute, or some other sufficiently long (for performance) and short (to limit data loss on crash) interval.

The acceptability of this change needs to be discussed with Canonical IS, who run gobby.ubuntu.com, but is not directly dependent on them, since it is useful to other people running their own servers.

Implementation

Add option to call script.

Write script to commit the automatically saved file to bzr, if the file is saved to a bzr working directory.

Test/Demo Plan

Simple:

Stress test:

Client overwrite test:


CategorySpec

GobbyServerPersistentState (last edited 2008-08-06 16:16:48 by localhost)