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 7. MACROBENCHMARK 72<br />

Logical Organization <strong>of</strong> Hash Table for ORS<br />

0<br />

0 1 63<br />

1 11<br />

0 1 63 0 1 63<br />

Physical Implentation <strong>of</strong> Hash Table for ORS<br />

0 1 file # 63 0 1 file # 63<br />

0 1 file # 63<br />

0 1<br />

63<br />

disk #<br />

file# modulo 64<br />

64n+0 64n+1<br />

disk #0 disk #n disk #11<br />

Constructing Hash Index Value for ORS<br />

global hash index value =<br />

7<br />

6<br />

5<br />

4<br />

3<br />

disk #<br />

2<br />

1<br />

0<br />

64n+63<br />

9<br />

17<br />

start here<br />

8<br />

7<br />

6<br />

5<br />

4<br />

3<br />

global index<br />

2<br />

6<br />

file# (embedded in file token)<br />

Figure 7.2: Modified ORS hash function.<br />

1<br />

5<br />

0<br />

4<br />

3<br />

2<br />

1<br />

0<br />

703 704 767<br />

In <strong>the</strong> microbenchmarks, <strong>the</strong> modified hash function in <strong>the</strong> block cache system simply assigned one hash<br />

list to each disk. However, on <strong>the</strong> Web server workload, this hash function had a detrimental effect on<br />

performance because <strong>the</strong> number <strong>of</strong> entries in each hash list was fairly large since many files were accessed.<br />

For each request, after hashing to a particular hash list, a linear search through an extremely long hash list<br />

was necessary, leading to poor absolute performance. To solve this problem, hash function modifications <strong>and</strong><br />

a larger hash table were applied to <strong>the</strong> block cache system as well. For <strong>the</strong> block cache system, <strong>the</strong> new hash<br />

function assigns an exclusive group <strong>of</strong> hash lists to each disk <strong>and</strong> an <strong>of</strong>fset within <strong>the</strong> group depending on <strong>the</strong><br />

physical file number <strong>and</strong> logical file block number, as with <strong>the</strong> ORS cache hash table. The number <strong>of</strong> hash<br />

lists per group was set to 256. Within each group <strong>of</strong> hash lists, 16 subgroups were designated for physical<br />

file number indexing. Finally, each subgroup contained 16 hash lists that were indexed by file block number.<br />

The logical organization <strong>and</strong> physical implementation <strong>of</strong> <strong>the</strong> new hashing scheme is shown in Figure 7.3.<br />

Once again for simplicity, we statically sized <strong>the</strong> block cache hash table to <strong>the</strong> maximum configuration <strong>of</strong>

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

Saved successfully!

Ooh no, something went wrong!