Anders Johansson wrote:
On Wednesday 14 November 2007 22:24:19 Aaron Kulkis wrote:
What makes disk filesystems slow is not the code run on
the CPU...it's the operating speed of the disk-head
actuator.

It's not the filesystem that's slow, it's the DISK DRIVES
that are slow.

So what is your theory on why file system benchmarks produce widely different results? If what you say is true, and the only bottleneck is the drive, then they should all perform the same, right?

Some file systems are faster than others, and the difference can be staggering.

Disk layouts, mostly.  How much disk head movement is need
to complete an I/O transaction to the point that write(2)
returns and the program resumes.

Journaling is one of the big breakthroughs here -- all of
the writes are put in a sequential strip of blocks on the
disk drive...both the file contents AND the metadata are
in contiguous blocks in the journal...even though in the
actual file being written to, the meta data is usually
in a block many many tracks away from where the contents
of the file is located.  The modification to the ACTUAL
filesystem structure is delayed.

Once all the write()s are completed, the filesystem driver
(JFS or XFS or what have you) then starts processing the
journal as the system permits... writing to the journal is
a higher priority operation than processing the journal
(unless the journal is full).

It's all about disk-head movement.

Disk DRIVES are slowwwwwwwwwww.

Do a performance test using solid state devices instead
of disk drives, and the differences between filesystems
are negligible...and the filesystems which are fastest
on hard disk drives (JFS, xfs, etc) due to the use of
journaling are the SLOWEST on solid-state storage.

Why?  Because the disk-head movement performance penalty
does not exist when there's no disk head.  And the
journaling trick to avoid it becomes a liability,
because the write-journal/read-journal/write-filesystem
methodology now just sucks up bandwidth, rather than
eliminating disk-head movement during high volume
file-writing activity.

This is all fairly obvious, and doesn't even take
inspection of the code to figure out.




Anders




--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to