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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

CHAPTER 3. HFS ARCHITECTURE 20<br />

dirty list<br />

ORS<br />

cache<br />

entry<br />

¥¦¥¦¥ §¦§¦§<br />

§¦§¦§ ¥¦¥¦¥<br />

§¦§¦§ ¥¦¥¦¥<br />

3.3.2 Meta-Data Caches<br />

waiting list<br />

free list<br />

¨¦¨¦¨ ©¦©¦©<br />

©¦©¦© ¨¦¨¦¨<br />

©¦©¦© ¨¦¨¦¨<br />

hash list<br />

0 1 2<br />

63<br />

Waiting I/O<br />

Figure 3.4: ORS cache.<br />

There are two meta-data caches in HFS: (1) <strong>the</strong> object-related state (ORS) cache, <strong>and</strong> (2) <strong>the</strong> block cache.<br />

The management <strong>of</strong> <strong>the</strong>se two caches is <strong>the</strong> core functionality <strong>of</strong> <strong>the</strong> file system. The cache entries <strong>and</strong> <strong>the</strong><br />

cache management code are <strong>the</strong> most used sections <strong>of</strong> <strong>the</strong> file system since every file system operation requires<br />

a meta-data cache look up. The speed <strong>and</strong> scalability <strong>of</strong> <strong>the</strong>se two cache systems essentially determines <strong>the</strong><br />

speed <strong>and</strong> scalability <strong>of</strong> <strong>the</strong> file system. In this <strong>the</strong>sis, we primarily focus upon <strong>the</strong>se two components <strong>of</strong><br />

HFS.<br />

The two caches are located in <strong>the</strong> physical layer <strong>of</strong> HFS <strong>and</strong> are globally accessible to <strong>the</strong> file system.<br />

They contain a number <strong>of</strong> common lists.<br />

1. hash list : Contains meta-data cache entries.<br />

2. free list : Contains meta-data cache entries available for reuse.<br />

3. dirty list : Contains modified meta-data cache entries.<br />

4. waiting I/O list : Used to queue requests waiting on cache entries that are currently performing disk<br />

I/O. Waiting for disk I/O is typically a long process so this list is used to queue <strong>and</strong> block requests.<br />

5. waiting I/O free list : Contains waiting I/O list entries available for reuse.<br />

The hash list headers (also known as hash table entries) <strong>and</strong> dirty list headers reside contiguously in<br />

free list

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

Saved successfully!

Ooh no, something went wrong!