Steven Whitehouse e90c01e148 [GFS2] Reverse block order in build_height
The original code ordered the blocks allocated in the build_height
routine backwards causing excessive disk seeks during a read of the
metadata. This patch reverses the order to try and reduce disk seeks.

Example: A five level metadata tree, I = Inode, P = Pointers, D = Data

You need to read the blocks in the order:

I P5 P4 P3 P2 P1 D

in order to read a single data block. The new code now orders the blocks
in this way. The old code used to order them as:

I P1 P2 P3 P4 P5 D

requiring two extra seeks on average. Note that for files which are
grown by gradual extension rather than by truncate or by llseek/write
at a large offset, this doesn't apply. In the case of writing to a
file linearly, this routine will only be called upon to extend the
height of the tree by one block at a time, so the ordering is
determined by when its called rather than by the internals of the
routine itself. Optimising that part of the ordering is a much
harder problem.

Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
2006-05-12 12:09:15 -04:00
..
2006-02-27 17:23:27 -05:00
2006-02-27 17:23:27 -05:00
2006-05-05 16:59:11 -04:00
2006-04-24 13:13:56 -04:00
2006-05-05 16:59:11 -04:00
2006-04-28 11:48:45 -04:00
2006-02-27 17:23:27 -05:00
2006-05-05 16:59:11 -04:00
2006-05-05 16:59:11 -04:00
2006-04-24 14:14:42 -04:00
2006-05-05 16:59:11 -04:00
2006-04-28 11:48:45 -04:00
2006-03-02 16:33:41 -05:00
2006-04-24 14:14:42 -04:00
2006-02-27 12:00:42 -05:00
2006-02-27 17:23:27 -05:00
2006-04-28 11:48:45 -04:00
2006-05-05 16:59:11 -04:00
2006-05-05 16:29:50 -04:00
2006-03-02 16:33:41 -05:00
2006-04-18 10:09:15 -04:00
2006-05-05 16:59:11 -04:00
2006-05-05 16:59:11 -04:00
2006-02-27 17:23:27 -05:00
2006-05-05 16:59:11 -04:00
2006-05-05 16:59:11 -04:00
2006-04-20 17:03:48 -04:00
2006-05-05 16:59:11 -04:00
2006-02-27 17:23:27 -05:00
2006-04-26 14:58:26 -04:00
2006-03-29 14:36:49 -05:00
2006-05-05 16:59:11 -04:00