28.07.2013 Views

Performance Analysis and Optimization of the Hurricane File System ...

Performance Analysis and Optimization of the Hurricane File System ...

Performance Analysis and Optimization of the Hurricane File System ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Chapter 3<br />

HFS Architecture<br />

This chapter describes <strong>the</strong> various components <strong>of</strong> HFS <strong>and</strong> <strong>the</strong>ir interactions with <strong>the</strong> operating system <strong>and</strong><br />

user-level applications. The organization <strong>and</strong> operation <strong>of</strong> <strong>the</strong> cache systems within HFS are described in<br />

detail because <strong>the</strong>y play a crucial role in file system performance scalability, since <strong>the</strong>y are globally accessible<br />

to all processors <strong>and</strong> are <strong>the</strong> most used components <strong>of</strong> <strong>the</strong> file system. Traces <strong>of</strong> a few fundamental file system<br />

operations are described to demonstrate <strong>the</strong> interaction between <strong>the</strong> cache system <strong>and</strong> <strong>the</strong> on-disk layout<br />

<strong>of</strong> data <strong>and</strong> meta-data. This chapter will give <strong>the</strong> reader an underst<strong>and</strong>ing <strong>of</strong> <strong>the</strong> operation <strong>of</strong> HFS, <strong>the</strong><br />

interaction <strong>of</strong> various components, <strong>and</strong> <strong>the</strong> potential scalability bottlenecks.<br />

3.1 HFS Layers<br />

The components <strong>of</strong> HFS are shown in Figure 3.1. Communication between domains (i.e. address spaces<br />

such as application, HFS, <strong>and</strong> kernel) is accomplished using <strong>the</strong> K42 IPC facility. HFS can be accessed<br />

directly using <strong>the</strong> HFS user-level library, or indirectly through <strong>the</strong> virtual file system <strong>of</strong> <strong>the</strong> operating system<br />

kernel using st<strong>and</strong>ard I/O system calls. Currently, only <strong>the</strong> indirect access method has been implemented.<br />

Additional details <strong>of</strong> <strong>the</strong> HFS architecture can be found in [34].<br />

3.1.1 HFS User-Level Library<br />

The HFS user-level library, also known as <strong>the</strong> Alloc Stream Facility (ASF) [36], is an application level<br />

interface to general I/O, which includes HFS, NFS, <strong>and</strong> o<strong>the</strong>r file systems. It is in <strong>the</strong> form <strong>of</strong> a user-level<br />

library, much like stdio.h in <strong>the</strong> st<strong>and</strong>ard C library. The HFS library has not been ported to K42, but its<br />

functionality has been partially fulfilled by <strong>the</strong> st<strong>and</strong>ard Unix/Linux/GNU C library <strong>and</strong> <strong>the</strong> K42 user-level<br />

library.<br />

14

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!