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