[prev in list] [next in list] [prev in thread] [next in thread] 

List:       evms-devel
Subject:    Re: [Evms-devel] Kernel memory questions
From:       Andrew Clausen <clausen () gnu ! org>
Date:       2001-10-03 15:22:05
[Download RAW message or body]

On Wed, Oct 03, 2001 at 01:33:11PM -0500, Kevin Corry wrote:
> > I posted in my other email a possible solution for this (I don't know if it
> > will be good or bad in the end).  Since a large majority of LVs are on disk
> > contiguously, you can use a runlist to store them.  The worst case scenario
> > would be to have the LEs allocated on disk in reverse PE order, but this
> > is highly unlikely.  Conversely, the common case (contiguous LV or only a
> > few "runs") will be much more efficient to store and will improve locality
> > of memory reference a great deal (i.e. use cache better).  It is always
> > good to optimize for the common case.
> 
> I agree that the run-list method would probably improve data locality, but at 
> the expense of increased translation time.

"Locality of reference" means fewer L1 cache misses.  In the LVM2 driver,
the size of a node in the btree is the size of an L1 cache line, so the
maximum number of cache lines used will be O(log N), where N is the
number of runs.

If you need to map many blocks that are near each other at the same time,
then the path down the b-tree will be largely the same, so you would
expect many hits.

So, I wouldn't expect run-lists with a btree implementation to have a worse
translation time.  I'm just ranting, I haven't benchmarked it ;)

Andrew

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic