implementing a database log



Hi,

i'm the author of a simple open-source database engine. i'm currently
adding recovery/logging, and i have some practical questions about the
implementation.

I have 3 options.

1. a physical log based on modified pages - whenever a page is
modified, a before/after image is stored in the log.
pro: easy to implement and to test
con: logfile will become huge!

2. a physical log based on modified bytes - whenever a database key or
record is modified, only the modified bytes in the file are logged.
pro: logfile is slim, very fine-grained control
con: tedious to implement, error prone, difficult to test

3. a logical logging - information about the high-level operation is
stored in the logfile. honestly, i don't know how i could implement
this, since one high-level operation is often splitted into several
physical operations, and if one of them fails i am not sure about the
consequences...

currently, i'm going with 2), but as i wrote above, it's hard to
implement and i'm not happy with the way i'm going.

what would you recommend?

thanks for your opinions,
chris
.



Relevant Pages

  • Re: implementing a database log
    ... i'm the author of a simple open-source database engine. ... a physical log based on modified pages - whenever a page is ... logfile is slim, very fine-grained control ... a logical logging - information about the high-level operation is ...
    (comp.databases.theory)
  • Re: implementing a database log
    ... i'm the author of a simple open-source database engine. ... a physical log based on modified pages - whenever a page is ... logfile is slim, very fine-grained control ... a logical logging - information about the high-level operation is ...
    (comp.databases.theory)