Pavan Deolasee escribió:
> On 7/11/07, Heikki Linnakangas <heikki@enterprisedb.com> wrote:
> >
> >I was able
> >to reproduce the phenomenon with a simple C program that writes 8k
> >blocks in random order to a fixed size file. I've attached it along with
> >output of running it on my test server. The output shows how the writes
> >start to periodically block after a while. I was able to reproduce the
> >problem on my laptop as well. Can anyone explain what's going on?
> >
> I think you are assuming that the next write of the same block won't
> use another OS cache block. I doubt if thats the way writes are handled
> by the kernel. Each write would typically end up being queued up in the
> kernel
> where each write will have its own copy of the block to the written. Isn't
> it ?
I don't think so -- at least not on Linux. See
https://ols2006.108.redhat.com/2007/Reprints/zijlstra-Reprint.pdf
where he talks about a patch to the page cache. He describes the
current page cache there; each page is kept on a tree, so a second write
to the same page would "overwrite" the page of the original write.
--
Alvaro Herrera http://www.amazon.com/gp/registry/CTMLCN8V17R4
"Las mujeres son como hondas: mientras más resistencia tienen,más lejos puedes llegar con ellas" (Jonas Nightingale,
Leapof Faith)