Thread (2 messages) read the whole thread 2 messages, 2 authors, 2003-02-28

Re: raid1 bitmap code [Was: Re: Questions answered by Neil Brown]

From: Peter T. Breuer <hidden>
Date: 2003-02-28 15:25:37

"Paul Clements wrote:"
That's OK, we don't need to know. We really just want to know if there
are any outstanding writes for that chunk. We increment the chunk
counter for every write and decrement it when the write finishes. Now,
I agree. I modified the bitmap so that when a page can't be got to make
a mark on, then we count pending "writes" by summing one to a count
for every attempted write to the zone covered by the missing page
and subtracting one for every attempted clear.

The bitmap reports "dirty" if the count is positive and the page for
that zone is absent.  I put the present code up at

  ftp://oboe.it.uc3m.es/pub/Programs/fr1-2.6.tgz


I spent much of the morning checking that mark and clear attempts
are balanced unless the write does not succeed. They are. This means
that under memory pressure the bitmap not only fails only by losing
precision (it did before), but now it can lose less precision, dropping
to 256K instead of 4M precision,  although I haven't implemented the
final change to up the precision just yet. I made all the preparatory
moves.   Since it's friday I'll publish what I have.

Under normal circumstances the count for each zone of the bitmap
records the number of dirty bits. It's used to help free the bitmap 
pages at the right time, to stop pages accumulating to the max.
Shucks ..  I have to put them on a free list. I'll do that later too.

Peter
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help