I just finished a pretty major overhaul of the code. You can see the commit at http://github.com/nuggetwheat/hypertable/commit/c725ccc123ea77c87935e724d78d60d169486181 The following two changes went in:
1. Compactions now happen by freezing the cell cache and installing a new empty one. When the compaction completes, the frozen cell cache gets thrown away. This change has had the effect of dramatically cleaning up the code, which should help with keeping the code base stable. 2. The timestamp has been split out into a timestamp and a revision number. The timestamp is the insertion time of the cell. It can be auto-assigned or user-supplied, just like the old timestamps. You can now insert cells out-of-order with respect to timestamps. The revision number is used internally to implement MVCC and provides for snapshot isolation. It is really intended to be internal use only and auto-assigned, except when we build a transaction monitor which will assign revision numbers directly. If the timestamp and the revision number are both left auto-assigned, then they reference the same bytes in the key, so that you only get hit with 8-bytes per cell overhead as opposed to 16 bytes. NOTE: The on-disk CellStore format has changed with this commit. In other words, the latest code will not work with old databases. You'll have to blow away the old ones and start fresh. Thanks goes to Josh Tayler for suggesting #1 and for pointing out the need to separate the timestamp concept from the revision number concept. Next I'm going to tackle the problem that Donald reported and I'll also verify that Josh's commit log cleanup problem has gone away. - Doug --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Hypertable Development" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/hypertable-dev?hl=en -~----------~----~----~----~------~----~------~--~---
