Mike, A couple of questions for you.
While documenting the page formats, I noticed that Derby does not persist the LogInstant (LSN) associated with a page. In a classic ARIES implementation, each page is supposed to be tagged with the LSN of the log record that last updated it, so that during recovery redo, the LSN can be used to determine if a particular log record has already been applied to the page. Derby appears to use PageVersion for this purpose, which is persisted and is also present in log records. Any reason why PageVersion is used and not LogInstant? Another thing that has puzzled me is the use of RecordIds. I would have assumed that the purpose of the slot table in a page is provide a stable TupleId (as described in the classic TPCT book by Jim Gray and Andreas Reuter), so that there is freedom to move records around in the page, and still have a stable TupleId that does not change over time. Also, the slot-no allows a particular record to be located efficiently. Given that a page in Derby has a slot table, why is the slot-no not used as part of the RecordId? Using a separate id is obviously inefficient, as it must be searched for. Thanks and Regards Dibyendu
