GobbyServerPersistentState
|
Size: 1712
Comment:
|
Size: 2523
Comment:
|
| Deletions are marked like this. | Additions are marked like this. |
| Line 1: | Line 1: |
| == FIXME == * Look at current source code, see how big a job implementing this would be. * Discuss the change with upstream. |
* '''Launchpad Entry''': UbuntuSpec:gobby-server-persistent-state * '''Created''': 2008-06-02 * '''Contributors''': LarsWirzenius * '''Packages affected''': sobby |
| Line 13: | Line 13: |
| The Gobby server now saves its documents in a persistent way and commits all changes to a version control system. |
The Gobby server now optionally commits automatically saved documents to a version control system. |
| Line 26: | Line 26: |
| Add configuration option to server to determine where it will save its state. |
The standalone Gobby server, in the sobby package, already has the automatic saving feature. |
| Line 29: | Line 29: |
| Make it create the directory and initialize it as a bzr branch, if the directory/branch does not exist already. |
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). |
| Line 32: | Line 34: |
| Every time a document changes, save it to a file in the directory, and run "bzr commit -m.". |
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. |
| Line 35: | Line 41: |
| When starting, the server should automatically load its documents from files in the directory, if any exist. |
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. |
| Line 40: | Line 48: |
| To be determined. | 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. |
| Line 60: | Line 71: |
| Client overwrite test: * Start Gobby server. * Make long document. Let server automatically save it. * Have client replace all contents of long document with a single character. * Recover long document via bzr. |
Launchpad Entry: gobby-server-persistent-state
Created: 2008-06-02
Contributors: LarsWirzenius
Packages affected: sobby
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:
- Do the following with and without the proposed changes.
- Start Gobby.
- Create document, with some content.
- Kill -9 the server.
- Restart Gobby.
- See if the document still exists, with the right content.
Stress test:
- Start Gobby server.
- Start N dummy clients that randomly create documents and add text to them at a speed resembling that of a fast typist (100 word/minute).
- See how big N can be without creating too much lag on the server.
Client overwrite test:
- Start Gobby server.
- Make long document. Let server automatically save it.
- Have client replace all contents of long document with a single character.
- Recover long document via bzr.
GobbyServerPersistentState (last edited 2008-08-06 16:16:48 by localhost)