Better File systems? Was Re: XFS - here's the solution

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> 
> 
> John,
> 
> The suggestion that knowing what files are open was only intended as a
> suggestion to completely eliminate any fsck - it wasn't my primary
> assertion. My primary assertion is: changes to the _structure_ on the disk
> must be reflected on the disk ASAP. This can be done by many different
> means, such as journaling - I have some concerns about that, primarily
> because I don't know enough about particular implementations, but also
> because I don't particularly like the concept of rebuilding on reboot.
> Also, it's not necessary to journal: Files-11 is an example of an on-disk
> file system which was exceptionally robust in terms of speed and
> data-integrety following a system halt/power outage.
> 
> Please note that update of file access times is not at all important to me


How many of these fields are absolutely critical?

struct stat {
        unsigned short st_dev;
        unsigned short __pad1;
        unsigned long st_ino;
        unsigned short st_mode;
        unsigned short st_nlink;
        unsigned short st_uid;
        unsigned short st_gid;
        unsigned short st_rdev;
        unsigned short __pad2;
        unsigned long  st_size;
        unsigned long  st_blksize;
        unsigned long  st_blocks;
        unsigned long  st_atime;
        unsigned long  __unused1;
        unsigned long  st_mtime;
        unsigned long  __unused2;
        unsigned long  st_ctime;
        unsigned long  __unused3;
        unsigned long  __unused4;
        unsigned long  __unused5;
};

I contend none of the time fields is. Not the permissions bits. A 
non-written nlinks change is no worse than a failed file copy - you 
don't lose data. Size? Must be consistent with the data written, but I 
don't see it as more important than that.


Many times a half-written file is no use at all; the loss of all 
filesystem data about  half a wordprocessor document is no loss at all.

> or much anyone else, and I wasn't referring to that. The method by which
> Files-11, as an example, kept track of open files was to periodically
> write out a bitmap reflecting the headers (i-nodes) that were open for
> write access. After the wide-spread addoption of logical block disk access
> around 1982, it became possible to hand tasks to the disk controller and
> let it write less important data when convenient and other data instantly.
> ... I have no idea what modern IDE and SCSI drives do in this regard, but
> I'd be VERY surprised if they don't present a logical-block view of the
> world to their users while they do bad-block re-vectoring and so forth.

I used to program for the OS family. There was no concept of a 
filesystem there - one used access methods, and those access methods 
provided buffering or not: VSAM, QSAM & QISAM buffer, BDAM, BSAN, EXCP 
& BISAM don't.

Those that buffer don't give the application much control over it, 
those that don't buffer always do non-blocking I/O.

This design originated in the 60s (VSAM in the 70s). It wasn't until 
the mid 80s that disk controllers had caching, and then there was lots 
of hoo-haa about terms such as write-back, write through and what could 
be cached and not, what should be cached and not and why THEIR claims 
about OUR caching algorithms were wrong.





-- 
Cheers
John Summerfield

Microsoft's most solid OS: http://www.geocities.com/rcwoolley/

Note: mail delivered to me is deemed to be intended for me, for my disposition.

==============================
If you don't like being told you're wrong,
	be right!







[Index of Archives]     [Kernel Newbies]     [Red Hat General]     [Fedora]     [Red Hat Install]     [Linux Kernel Development]     [Yosemite News]

  Powered by Linux