The feel of a LispM/List of running machines

Kelly Murray kem@Franz.COM
Sun, 04 May 1997 21:58:16 -0700

> > My idea is only database "files" exists, e.g.  boot.db, silk.db, etc.
> > Each database file can be as big or small as it needs to.
> > We use the UNIX file system for those DB files.

> Perhaps the way to get the OOFS working fast is to use mmap'ed files.

This is how I'm implementing my persistent object system,
using mmap and friends.

> The danger is that the semantics of an mmapped file suck as a proper
> solution to the problem, and the lispvm people might get lazy and not..
> 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.

My thoughts and investigations lead me to believe
object-level locking is too fine-grained, for both the system to
implement and/or the programmer to specify.
Page-level locking is very fast and efficient which makes it the best choice.
It may produce less concurrency, but that isn't a high price to pay
for the huge increase in single-threaded and read-only performance
and the simplicity of the implementation.
Given the entire SilkOS system uses persistent object system
for almost everything, it must be fast and efficient.
This isn't a UNIX thing, this is a hardware thing!