I'm keeping to get errors in the index recovery (lost parent page of an
index page typically, not on disk and I cannot find any info about this page
in the whole log).
I have an idea on how to log splits to make recovery work better. Please
give me your feedback.
The basic idea is that we do not do log single pages anymore but bunch of
pages (every page that was changed during the split). And we do it
atomically, in a single serial log record. And we do not release them until
they are logged.
Our index page got some links to other pages (next on the same level, prior
on the same level and parent) and when splitting some or all of them are
modified. Also, a new page is always created (and I believe even 2
That means, new record type that includes several pages would somewhat more
heavy than individual pages we used to log . On the other hand, split should
be considered a relatively rare operation, most page updates do not
But benefits are obvious (for me at least):
next/prior chain is consistent, parent does not lose the child, child does
not lose the parent and we do not need to think about the order when
logging. We log an atomic operation (split) and there is no way that
recovery get an inconsistent index because server stopped while doing a
split and while
Please share your thoughts.
> -----Original Message-----
> From: Ann.Harrison@stripped [mailto:Ann.Harrison@stripped] On Behalf Of
> Ann W. Harrison
> Sent: Thursday, February 19, 2009 4:36 PM
> To: Kevin Lewis
> Cc: Lars-Erik Bjørk; Falcon
> Subject: Re: [Fwd: Index Discussion]
> > The argument for doing it now is that we are pre-beta and now is the
> > time to change the index structure.
> > Any comments? Now or later?
> Now, for all the reasons Jim cited, and to minimize the number of
> existing databases with the old-style keys.
> Falcon Storage Engine Mailing List
> For list archives: http://lists.mysql.com/falcon
> To unsubscribe: http://lists.mysql.com/falcon?unsub=1