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 6. MICROBENCHMARKS – OTHER FUNDAMENTAL OPERATIONS 59<br />

avg # cycles per processor<br />

2e+07<br />

1.5e+7<br />

1e+07<br />

5e+06<br />

0e+00<br />

2 4 6 8 10 12<br />

# processors<br />

Stat + processing<br />

Stat + processing optimized<br />

Figure 6.15: Stat – +processing,<br />

optimized.<br />

avg # cycles per processor<br />

1e+06<br />

5e+05<br />

0e+00<br />

6.4.2 + Processing, Optimized<br />

2 4 6 8 10 12<br />

# processors<br />

Stat + processing optimized<br />

Figure 6.16: Stat – +processing,<br />

optimized, magnified.<br />

avg # cycles per processor<br />

4e+09<br />

3e+09<br />

2e+09<br />

1e+09<br />

0e+00<br />

2 4 6 8 10 12<br />

# processors<br />

Unoptimized<br />

Figure 6.17: Stat – +name<br />

lookup.<br />

This experiment examined <strong>the</strong> impact <strong>of</strong> implementing all optimizations. These optimizations included all<br />

<strong>the</strong> optimizations <strong>of</strong> <strong>the</strong> read experiments:<br />

1. Padded ORS hash list headers.<br />

2. Padded ORS <strong>and</strong> block cache entries.<br />

3. Padded all o<strong>the</strong>r critical data structures in <strong>the</strong> ORS <strong>and</strong> block cache systems, such as locks <strong>and</strong> waiting<br />

I/O data structures (shown in Figure 3.4 <strong>and</strong> Figure 3.5).<br />

4. Modified hash functions. (ORS <strong>and</strong> block cache)<br />

5. Increased size <strong>of</strong> hash tables. (ORS <strong>and</strong> block cache)<br />

6. Increased initial pool <strong>of</strong> block cache entries from 20 to 200.<br />

7. Elimination <strong>of</strong> <strong>the</strong> block cache free list.<br />

8. Use <strong>of</strong> fine grain locks in <strong>the</strong> block cache.<br />

For simplicity, <strong>the</strong> K42 padding facilities were used ra<strong>the</strong>r than manually padding <strong>and</strong> aligning <strong>the</strong> data<br />

structures. The results, shown in Figure 6.15 <strong>and</strong> Figure 6.16, indicate good scalability.<br />

6.4.3 Stat with Name Lookup<br />

The purpose <strong>of</strong> <strong>the</strong> next experiment was to more accurately emulate a st<strong>and</strong>ard Unix stat() file system call 4 .<br />

Each operation <strong>of</strong> <strong>the</strong> test begins with a name lookup to obtain <strong>the</strong> target file token <strong>and</strong> is followed by an<br />

operation to obtain <strong>the</strong> file status. This experiment is similar to <strong>the</strong> configuration in <strong>the</strong> file lookup test<br />

(Section 6.3.1) using unoptimized HFS. Each thread performed a file look up <strong>of</strong> DiskXXX:/directory1/<br />

directory2/directory3/directory4/lookatme.txt to obtain <strong>the</strong> file token, followed by a getAttribute()<br />

file system call <strong>and</strong> attribute processing, all repeated 1000 times, allowing for easy comparison with <strong>the</strong><br />

4 int stat(const char *file name, struct stat *buf)

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

Saved successfully!

Ooh no, something went wrong!