Re: Architecture of Backing Store Descriptors Jonathan Shapiro (shap@cobra.cis.upenn.edu)
Tue, 22 Nov 94 12:25:40 -0500

Jon:

How about the scheme used for the UNIX file system's inodes? It deals with exceptional cases (large files) with indirection to elements of the backing store, which are brought into memory as needed. This relieves the memory pressure while ensuring performance in the common case. In your context, there might be a descriptor which refers to block numbers on the backing store. The file system's buffer cache has some nice ideas, some of which might be absorbed.

-Jonathan

My impression is that this depends on keeping the file system logic in the kernel. Without doing so, the kernel has no way to interpret the indirection pages. A complicating issue is that disk-based allocation units (sectors) are not the same size as memory-based allocation units
(pages), and there is no guarantee that a page of data in a file is
stored contiguously on the disk. I have an idea about this that I will mail out shortly.

In spite of this, I think what you suggest is basically a good aproach, and I'm trying to come up with a mechanism that places an FS-independent protocol around it. I'm willing (nay! eager) to have the kernel directly initiate loads of local pages from the disk when the pages are contiguously allocated.

How this should be handled for remote access is more convoluted. The solution that solves the noncontiguous allocation problem should work for this too.

Jonathan