persistence through mmap

Fare Rideau rideau@ens.fr
Mon, 5 May 1997 11:32:02 +0200 (MET DST)


> Perhaps the way to get the OOFS working fast is to use mmap'ed files
> under UNIX. That way people can start writing apps the Right Way(tm),
> very quickly.
>
Yup, I also recommend mmap.
BTW, there are already many freeware GCed persistent stores using mmap
(Paul Wilson's Texas, for one), we could use it, or steal code from it, etc.

> The danger is that the semantics of an mmapped file suck as a proper
> solution to the problem,
Why? BTW, mmap() is also what MMU hardware gives you,
so anything that can be done with the hardware could be done
(albeit much slowlier) with mmap. mmap() suck? so does the hardware.

> and the lispvm people might get lazy and not
> build in the proper vm and gc support for a real solution.
>
If they didn't, lispos wouldn't use their code, that's simple.

> The other thing is that you can't have object level locking with
> page-mapped files which is essential for a working multi-threaded
> solution.
>
Again mmap() + trapping SIGSEGV is roughly what the hardware gives you,
so if object level locking is possible at all, we can do it with it.
BTW, that's were performance patches to the kernel are likely to be useful.
   Of course, it may be that some OSes do not have as clear mmap() semantics
as we can get with Linux (I *guess* that BSD does it right, too). YMMV.
But after all, we're targetting Linux, BSD, and our own kernel,
so that's no problem...

#f