[AgileWiki] Backup utilities, TKS properties
Status: Beta
Brought to you by:
blaforge
From: Bill La F. <Wil...@Su...> - 2006-06-14 11:06:31
|
In AgileWiki2 there were utilities for dumping and restoring, for the whole database or only a single Cabinet. There was also a snap utility which would dump only present state. This latter was used to help manage the size of the database, as well as being very helpful when we wanted to change the low-level datastructures. AgileWiki2 was built on BerklyDB, which handled the transaction processing, log files and recovery. In AgileWiki3 we are not using BerklyDB and all the files are at least an order of magnitude smaller. And between conversion to Java and writing our own database, we've seen a speed increase which sometimes reaches 3 orders of magnitude. But then, this is a custom database designed just for AgileWiki. However, both TKS (the AgileWiki3 database) and BerklyDB are btrees and support transactions. So we are creating our own log file in AgileWiki3. And the first utility will be to rebuild the database from scratch using only a set of log files. The log files consist of a series of transactions, but the content is comprehensive. In most cases, the entire request event (XML document) from the client is captured. As well, every database property change is recorded. However, updates to the inverted indexes are not captured separately. The trick here is that TKS properties with a name beginning with "_" are inverted properties. Hmm. Another thing to keep in mind is that only the doc property can contain line feeds. This property is then given special handling in the log file. Oh and then there are property tables. Properties with names ending with "-" have as their value a series of key/value pairs. And the order is significant (think list, not set). Of course, inverted table properties are supported as well, though in this case the values are not used in the inverted table. Bill |