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 5<br />

Microbenchmarks – Read Operation<br />

5.1 Purpose<br />

One <strong>of</strong> <strong>the</strong> basic tasks <strong>of</strong> a file system is to act as a translation layer between <strong>the</strong> operating system <strong>and</strong> <strong>the</strong><br />

disk device driver. The file system receives a logical file block number from <strong>the</strong> operating system, translates<br />

it into a physical disk block number, <strong>and</strong> asks <strong>the</strong> disk device driver to operate on <strong>the</strong> physical disk block.<br />

The first microbenchmark measures <strong>the</strong> scalability <strong>of</strong> this fundamental operation.<br />

5.2 Experimental Setup<br />

The first benchmark attempts to determine <strong>the</strong> maximum concurrency <strong>and</strong> throughput <strong>of</strong> <strong>the</strong> file system<br />

under <strong>the</strong> following configuration. In this experiment, a worker thread is allocated to each processor. In<br />

parallel, each thread sequentially reads a separate 12,845,056 byte extent-based file located on separate disks<br />

that it accesses exclusively. Figure 3.2 on page 17 shows an example <strong>of</strong> <strong>the</strong> block index <strong>of</strong> an extent-<br />

based file. The particular file size was chosen so that <strong>the</strong> block index occupied exactly 1 meta-data cache<br />

entry. A 12,845,056 byte file contains 3136 blocks. Each thread performs <strong>the</strong> following general operations<br />

3136 times. (1) Obtain <strong>the</strong> file status on <strong>the</strong> target file. (2) Perform a block read operation on <strong>the</strong> target<br />

block. (3) Update <strong>the</strong> file status information. Steps 1 <strong>and</strong> 3 are required to reflect <strong>the</strong> time-stamping activity<br />

<strong>of</strong> <strong>the</strong> file system during a read operation.<br />

An ideal file system would scale perfectly under this workload since each thread is operating on its own<br />

processor <strong>and</strong> disk. A conceptual view <strong>of</strong> <strong>the</strong> experimental setup is shown in Figure 5.1. 128 MB <strong>of</strong> RAM<br />

was provided. <strong>Optimization</strong>s <strong>and</strong> variations are explored in Section 5.4 <strong>and</strong> Section 5.5.<br />

34

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

Saved successfully!

Ooh no, something went wrong!