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.
+