Re: how to build a database from scratch

From: paul c <toledobythesea_at_oohay.ac>
Date: Thu, 07 Dec 2006 02:13:32 GMT
Message-ID: <gNKdh.436466$5R2.408980_at_pd7urf3no>


Sampo Syreeni wrote:
> On 2006-12-06, paul c wrote:
>

>> [...] rather he will choose to add a storage/lock et cetera component 
>> and force the btree code to operate under that component's 
>> constraints, eg., not allow it to be aware of disks, et cetera. the 
>> problems you mention go away [...]

>
>
> I don't think this is the case. Things like parallelism and recovery are
> orthogonal in the conceptual sense, but from the point of view of
> algorithms, data structures and system architecture they are heavily
> cross-cutting and interact with each other. Naïve B-trees plus
> indirection is just one example of a strategy that hasn't worked out in
> practice. Here the reason is mostly the need for fine grained write
> parallelism in OLTP environments. The tree will easily become a
> bottleneck because the interdependencies and interactions caused by page
> splits force you to lock too aggressively. When you hit that wall, you
> cannot circumvent it by adding levels of indirection because the problem
> is in the tree maintenance code, and layering will not remove that from
> the code paths that are being blocked.
> ...

Nonsense. A strict internal separation, eg., protocol will allow multiple NAIVE btree tasks to co-exist. All the rest is depends on the speed of hardware.

p Received on Thu Dec 07 2006 - 03:13:32 CET

Original text of this message