Check out the new USENIX Web site. next up previous
Next: Checkpointing Up: Granularity Choices for Persistence Previous: Data Fetching

Data Caching

The granularity of data caching is defined as the smallest unit of storage that is cached in virtual memory. For Texas, the granularity of caching is a single virtual memory page, because Texas relies exclusively on the virtual memory system for caching persistent data.

A persistent page is usually cached in a virtual memory page as far as Texas is concerned. The virtual memory system determines whether the page actually resides in RAM (i.e., physical memory) or on disk (i.e., swap space) without any intervention from Texas. This is quite different from some other persistent storage systems which directly manage physical memory and control the mapping of persistent data into main memory. In general, Texas moves data between a persistent store and the virtual memory without regard to the distinction between virtual pages in RAM and on disk; that is, virtual memory caching is left up to the underlying virtual memory system, which does its job in the normal way.

It is, of course, possible to change this behavior such that Texas directly manages physical memory. However, we believe that this is unnecessary, and may even be undesirable, for most applications. The fact that Texas behaves like any normal application with respect to virtual memory replacement may be advantageous for most purposes because it prevents any particular application from monopolizing system resources (RAM in this case). As such, applications using Texas are just normal programs, requiring no special privileges or resources; they ``play well with others'' rather than locking up large amounts of RAM as many database and persistent systems do.


next up previous
Next: Checkpointing Up: Granularity Choices for Persistence Previous: Data Fetching

Sheetal V. Kakkad