Roll pointer

こういうときに限って脱線したくなるのが人情.

2002年7月の O'Reilly Open Source Convention でMySQL ABの人がプレゼンしたときのpptファイルを何故か手元に持っているわけなのだけど,それによるとInnoDBの行はこんな構造をしている.

Record header (6 B, ptr to next record, no of fields)
Transaction ID (6 B, timestamp)
Roll pointer (7 B, points to previous version of record)
Field pointers (1-2 B / field)
Start position of field within record
2 bytes if more than 255 fields
Out-of-page pointers if record size > page size/2 (8 kB)

この Roll pointer ってのが Rollback Segument あるいは History list にある更新前データへの参照だね.