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. HFS ARCHITECTURE 23<br />

3.3.3 Name Tree Cache<br />

user−level application user−level application user−level application<br />

V F S<br />

HFS NFS EXT2 XFS<br />

Figure 3.6: VFS.<br />

The HFS name tree cache 4 , which is located in <strong>the</strong> logical layer, was not ported since a separate, file system<br />

independent, global name tree cache was implemented in <strong>the</strong> VFS component <strong>of</strong> K42.<br />

3.4 VFS – Virtual <strong>File</strong> <strong>System</strong><br />

The virtual file system is a layer <strong>of</strong> indirection to <strong>the</strong> underlying physical file system <strong>and</strong> enables multiple<br />

file systems to be easily used by <strong>the</strong> operating system. See Figure 3.6. All file systems on K42 must adhere<br />

to a single simple interface, described in Section 3.1.4. The VFS provides directory name lookup caching<br />

<strong>and</strong> co-ordination <strong>of</strong> concurrent conflicting accesses to files or directories.<br />

The VFS should have adequate flexibility to enable simple uniprocessor, single-threaded file systems to<br />

operate under a multiprocessor, multi-threaded environment. Since data structures designed for uniproces-<br />

sors may require protection against concurrent access <strong>and</strong> modification (which can lead to corrupt data), <strong>the</strong><br />

VFS should h<strong>and</strong>le all necessary locking <strong>and</strong> synchronization issues outside <strong>the</strong> uniprocessor file systems,<br />

thus hiding <strong>the</strong> concurrency. However, for sophisticated, multiprocessor, multi-threaded file systems, <strong>the</strong><br />

VFS should do very little <strong>and</strong>, in fact, expose <strong>the</strong> concurrency <strong>of</strong> <strong>the</strong> underlying file system. The VFS layer<br />

should have adequate flexibility to h<strong>and</strong>le all scenarios, allowing various file systems to be easily ported<br />

to K42 without significant modifications. These issues are beyond <strong>the</strong> scope <strong>of</strong> <strong>the</strong> <strong>the</strong>sis <strong>and</strong> were not<br />

investigated.<br />

3.5 K42 Interprocess Communication<br />

With K42 running on a multiprocessor system, HFS code can be executed on any processor. Due to <strong>the</strong><br />

characteristics <strong>of</strong> <strong>the</strong> K42 interprocess communication (IPC) 5 facility, all code executed on behalf <strong>of</strong> an IPC<br />

4 Known more commonly as <strong>the</strong> directory name lookup cache.<br />

5 The terms interprocess communication (IPC) <strong>and</strong> remote procedure call (RPC) are equivalent under <strong>the</strong> context <strong>of</strong> K42<br />

<strong>and</strong> may be used interchangeably.

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

Saved successfully!

Ooh no, something went wrong!