Article View: comp.sys.amiga.tech
Article #10613Re: Faster File Systems
From: Colin Plumb
Date: Fri, 16 Dec 1988 02:21
Date: Fri, 16 Dec 1988 02:21
56 lines
3753 bytes
3753 bytes
< P.S. I've received a few replies, but so far it seems as if I'm the best FS
< designer in this newsgroup. Isn't anyone going to prove I'm not? :-)
< Really, there must be *something* wrong, or the Amiga wouldn't have been
< designed with sectors in the first place.
In article <23498@sgi.SGI.COM> scotth@harlie.SGI.COM (Scott Henry) writes:
>The biggest problem that I see with your scheme is that it will only work
>with floppy disks (hard disks need not apply). The hard disks that I am aware
>of know about sectors (frequently, in the case of SCSI, in the drive itself).
>OFS works fine on HD's, but your scheme would need a separate file system
>for HD's. I know of (at least) one extent-based HD file system (Silicon
>Graphics uses one), but it uses sectors as the level of granularity (this
>is all I know about it!, except that it is very fast).
True, I was being pretty silly; the rest of the world uses sectors, so
dropping them can cause problems. Still, it's an idea to play with. As
far as my filesystem design is concerned, I explicitly said it's only for
floppies.
I have been involved in writing an extent-based file system (yes, we
(old we, not Microsoft) also use sector granularity), and it does go
plenty fast. I was planning on reimplementing it for the Amiga, but
as long as I only have floppy drives to play with, I decided to optimise
the hell out of that particular piece of hardware.
Now, come on, people... I'm not entirely ignorant, but my Amiga-specific
abilities are pretty low. Aren't there any horrible, insuperable problems
with taking the drive away from DOS, or automatically recognising the
format of floppies inserted, or handling disk changes, or making WB
recognise the disk, or something? And I said nothing about directory
structure... my current idea is simply to let the directory inode contain a
variable-sized (up to 1 track) array of struct {short inode; short hashval}
putting a limit of about 2500 files in a directory. The longer hash value
should essentially eliminate collisions, and the fact that all inodes are
known should speed up directory searching. Is this fair, or should I do
something else? If I allow inodes to migrate across tracks, what does
this mean for ExNext() if I want it to proceed in track order?
Also, should it be case-sensitive or not? (I'll at least throw in a
compile-time switch.) Should I take the filename out of the inode and
allow hard links? Should it have Unix-like open-file-deletion semantics?
Should I add something (another datestamp?) to inodes? Should it allow
sparse files? Will FCFS access be good enough, or should I try and
optimise accesses in the queue? Any special packets I should implement?
Isn't *anyone* going to flame me for not building in some super-nifty
virus-checking algorithm or something? :-) :-) :-) :-)
Finally, question for C-A: will WB 1.4 support variable-sized lock structs?
If so, I might find it easier to use them now, not work with this WB, and
just wait for 1.4. It's unlikely to get out of the CLI-bigot community
before then, anyway.
BYW, thanks for the RDF: device; it's a pointer in the right direction.
--
-Colin (uunet!microsof!w-colinp)
Technical Details
Message-ID:
<85@microsoft.UUCP>Path:
arc1-ca.pugleaf.net!utzoo!attcan!uunet!lll-winken!lll-lcc!ames!mailrus!cornell!uw-beaver!microsoft!w-colinpReferences:
<65@microsoft.UUCP> <23498@sgi.SGI.COM>Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!attcan!uunet!lll-winken!lll-lcc!ames!mailrus!cornell!uw-beaver!microsoft!w-colinp From: w-colinp@microsoft.UUCP (Colin Plumb) Newsgroups: comp.sys.amiga.tech Subject: Re: Faster File Systems Summary: Comments! Keywords: BOOH Message-ID: <85@microsoft.UUCP> Date: 16 Dec 88 02:21:12 GMT References: <65@microsoft.UUCP> <23498@sgi.SGI.COM> Reply-To: w-colinp@microsoft.UUCP (Colin Plumb) Organization: Microsoft Corp., Redmond WA Lines: 55 Confusion: Microsoft Corp., Redmond WA