pbxt-discuss team mailing list archive
-
pbxt-discuss team
-
Mailing list archive
-
Message #00001
memory mapping or not?
Hi All,
My tests show that memory mapping has one major advantage over normal
file I/O:
During a fsync(fh), pread(fh) and write(fh) can hang (actually
sometimes pread() hangs for no reason?!)
With memory mapped files, a copy from or to the memory map never
hangs, even when an msync() is being done.
The problem is during checkpoint. Here, a hanging read can bring all
activity to a halt for a couple of seconds. This happens due to a
cache miss.
The major disadvantage of memory mapped files at the moment is the
"remap" function. This is when the size of the file is expanded, and
we upmap and remap the file. This could be fixed by mapping an
additional block of memory (but then we need to keep a list of the
memory maps in RAM for each file).
I have only tested mac so far, but i believe this is the case with
most file systems (using XFS with direct I/O is the only exception I
have heard of).
Any ideas welcome...
--
Paul McCullagh
PrimeBase Technologies
www.primebase.org
www.blobstreaming.org
pbxt.blogspot.com
Follow ups