Subject: Re: DEV_B_SIZE
To: None <jkirby@storagecraft.com>
From: Steve Byan <stephen_byan@maxtor.com>
List: tech-kern
Date: 01/31/2003 14:21:49
On Friday, January 31, 2003, at 01:55 PM, Jamey Kirby wrote:
> I have been a lurker for years and want to chime in.
Hi Jamey, recognize your name from the NTFS list.
> Under Windows NT (all flavors), using a 4K sector size works fine. The
> OS abstraction layers are very good and handling the alignment.
Yes, I've seen the code in the DDK and in the filesystem developers
kit. NT's SCSI driver is already properly parameterized to use the
block size returned by the device, as long as it is a power of 2 and
greater than 512 byte.
However, I wonder about the failure semantics assumed by NTFS's log -
does it rely on the beginning and the ending of each log record being
in different physical sectors? Does it rely on no more than one sector
being lost at the end of the log (i.e. could wiping out 4K at the tail
of the log wipe out enough state such that the recovery code couldn't
roll-back/roll-forward to a consistent filesystem state)?
How about the ExchangeServer? Does it's transaction mechanism depend on
a specific block size?
How about SQLServer?
My concern is that a backwards-compatibility mechanism is being
proposed that makes a device (even a SCSI device) with 4K physical
blocks look like a 512-byte block device. I fear that since the failure
semantics are subtly different, the careful-write and persistent
logging strategies in current code will break, and no one will know
until they experience the corner condition that results in their
{filesystem | database | email server | transaction processing monitor}
losing their data.
Regards,
-Steve
--------
Steve Byan <stephen_byan@maxtor.com>
Design Engineer
Maxtor Corp.
MS 1-3/E23
333 South Street
Shrewsbury, MA 01545
(508) 770-3414