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

------------------------------------------------------------------------------
  
  {{{{
    _id: <uuid>,
+   % Think you'd want the previous rev ID
+   previous: <previous revision id>
    doc: {
      <original document>
    }
@@ -18, +20 @@

   * 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.
  
   * 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!
+ 
+ 
+ I think the write to the history db would need to occur before the write to 
the main db is completed and a failure would need to about finalizing the write 
to the main db.  That much would give you a CVS-like history of each item in 
the main DB with a slight change of branching off a single revision when there 
was failure between a history write and main db write.
+ 
+ To get a horizontal view of the main db at an instance, the record of the 
current revs for all documents would need to be written to the history db 
occasionally (upper limit would be at the completion of every main db write).  
After the initial write of that record, deltas could be used until it seems 
wise to rewrite the full index.  It would not be necessary to block the main db 
write until that is complete.
+ 
+ Background tasks could go around delta-ing older documents.  That would 
require some support in the main db for a document to be represented as a delta 
to another document.
  
  == Potential Use Cases ==
  

Reply via email to