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

Data Fetching

As the name suggests, the granularity of data fetching is the smallest unit of storage that is loaded from the persistent store into virtual memory. As with the two granularities presented above, we use a virtual memory page for this purpose in the current implementation of Texas. The primary motivation for making this choice was simplicity and ease of implementation, and the fact that this correlated well with the default granularity choices for other design issues in our implementation.

It is possible to change the granularity of fetching without affecting any other granularity choices. In essence, we can implement our own prefetching to preload data from the persistent store. This may actually be desirable for some applications when using raw unbuffered I/O instead of normal file I/O [8]. Depending on the access characteristics of the application and the dataset size, the overall I/O costs can be reduced by prefetching several (consecutive) pages instead of a single faulted-on page. In general, the granularity of data fetching is intimately tied to the I/O strategy that is selected in the implementation.


next up previous
Next: Data Caching Up: Granularity Choices for Persistence Previous: Address Mapping

Sheetal V. Kakkad