You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by Apache Wiki <wi...@apache.org> on 2009/07/31 16:48:04 UTC
[Couchdb Wiki] Update of "History" by CurtArnold
Dear Wiki user,
You have subscribed to a wiki page or wiki category on "Couchdb Wiki" for change notification.
The following page has been changed by CurtArnold:
http://wiki.apache.org/couchdb/History
------------------------------------------------------------------------------
* The history database is an ordinary CouchDB database that can be manipulated as normal e.g. views can be added to organise the history docs as required.
* If people need to add meta-data to the history, e.g. "last changed by", "last changed date/time", then the recommended way would be to use a custom _update handler to add these fields to the doc being saved, and these would propagate to the history database.
- == Use Cases ==
-
* Make it easy to "roll back" all docs to a specific point in time. Viewing how a single doc looked at a certain point in time is easy, but to get all docs with doc.type == 'profile' at some point in time, for example, is a bit harder. Suggestions welcome!
+ == Potential Use Cases ==
+
+ * View a single doc at a specific point in time.
+ * Rollback a database to a specific point in time.
+ * Query a view within a specific point in time.
+ * Query a view across a range of time.
+ * Query using a current view on a history snapshot.
+ * Retrieve a log of all modifications to a document within a time range with option to get documents.
+ * Start recording history on an existing DB.
+ * Stop recording history on a DB.
+ * Detecting that there is a gap in history.
+ * Querying history while DB is active.
+
+ == Potential approaches ==
+
+ * Erlang native implementation
+ * Pluggable implementation (history_handler)
+ * Writing some existing repo format (for example Subversion's FSFS)
+ * Integrating with with existing repo library (libsvn?)
+ * Integrating with libsvn and exposing svn's http interface through mochiweb.
+