Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> comp.databases.theory -> Re: how to build a database from scratch

Re: how to build a database from scratch

From: DBMS_Plumber <paul_geoffrey_brown_at_yahoo.com>
Date: 5 Dec 2006 13:43:02 -0800
Message-ID: <1165354982.284477.206280@l12g2000cwl.googlegroups.com>

Volker Hetzer wrote:
> That may be, but when starting from scratch, one has to start somewhere.
> And while ACID is important, before you can guarantee data integrity
> you have to store the data first, in memory or wherever. So, IMHO
> the data access comes first, then joins, then (with going multiuser)
> locking, then everything else.

  The fact that you believe it is possible to retro-fit recovery and support for concurrent operations to a simple B-Tree implementation reveals how little you know about how complex recovery and concurrency are to implement.

  Locking is the very tiniest of your challenges.

  Consider how your B-tree implementation copes with:

  1. The computer crashing in the middle of a page split.
  2. The computer crashing in the middle of a page I/O.
  3. How to reverse an update operation (how to reverse an update that caused a split).
  4. How to manage two writers who's insertions split the same internal page.
  5. What does a reader see when they access a page a writer is modifying?

   Never mind interactions with the log, the back-up and recovery system, the non-index data storage, buffers, and what not. Some of these problems have simple solutions. Most don't. Solving properly means modifying the basic B-Tree algorithms in profound ways. Received on Tue Dec 05 2006 - 15:43:02 CST

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US