Dit is serieus, ik denk dat ik met een geniaal plan op de proppen kom. Het zal me niet verbazen als zoiets al bestaat, maar ik draag mijn idee ter evaluatie aan.
De harddisk zelf houdt een tabel bij van haar sectoren. Daar bovenop komt het bestandssysteem met haar afwijkingen zoals gevoeligheid voor fijne fragmentatie.
Nu dacht ik aan het volgende. Wat als we een bestandssysteem maken dat werkt op cylinders van de harddisk in plaats van op sectoren. Het idee is dan de 3 eerste cylinders als index gebied (om de hele index te lezen hoeft de harddisk slechts 3 track2track seek/read acties doen wat op een moderne schijf 400ms (s4/r396ms) kost. Deze 24 MiB is te cachen zodat de accessing minder wordt (lazy writing).
Daarnaast zijn een bepaalde groep cylinders gebonden aan het journaled transactielogboek.
Alles ligt dus op een boundairy van 8 MiB. Je zou dus een enorme 'slack' kunnen verwachten als we cylinders grofweg als clusters behandelen. Echter denk ik aan een implementatie van sector based areas zodat je meerdere bestanden op sector boundairy kunt opslaan per cylinder terwijl Windows of een ander OS alleen hoeft te weten in wélke cylinder de gevraagde data staat. Hierop kun je goed defragmenteren (I-FAASTtm principe).
Het maakt dan helemaal niets uit als een groepje bestandjes in een cylinder ernstig gefragmenteerd raakt. Als de harddisk de hele cylinder inleest kan de computer de data on the fly defragmenteren en daar merk je absoluut niets van als het gaat om rauwe geheugensnelheden van 6,4 GiB/s (DC DDR400). Je hoeft dan alleen nog te defragmenteren/uitlijnen op cylinder basis en dat gaat dus met 100% efficientie van de hele harddisk. Zo zou je een groepje cylinders kunnen samenvoegen met bestanden die elke XP installatie altijd laadt met daaropvolgt de custom data. Zo krijg je ongelovelijk snelle datatoegang omdat er geen kwestie meer is van wachten op een bepaalde sector. Zodra de kop boven de goede cylinder komt kan hij direct de hele ronde lezen en kan hij starten bij de eerst volgende sector van die cylinder en dan de volgende 16383 sectoren lezen en weer verdergaan. Fragmentatie speeld hier op cylinderniveau geen rol. Moest je eens weten hoe ernstig je interne geheugen gefragmenteerd is altijd!
->De eerste cylinder bevat meerdere ingangen van het MBR zodat de disk niet meer afhankelijk is van één enkele sector. Daarnaast van het een FAT16 tabelletje kwijt voor de cylinders en de pointers naar cylindergebieden.
->De laatste cylinder bevat een back-up van de eerste cylinder zonder FAT ingangen
->De middelste cylinder bevat een back-up van de eerste cylinder zaols in de laatste cylinder
->De tweede cylinder is een mirror van de eerste cylinder en kan niet door derde API's bewerkt worden (virussen). ALs cylinder een faalt recovert hij vanaf de tweede cylinder. FAT corruptie is dan uitgesloten omdat het journaled is. De cylinder bestaat of niet en kan recoveren op sectorniveau.
->Je kunt zonder writecache dus hooguit een cylinder recoveren per transactieingang. NTFS kan hier de mist mee ingaan.
Wat jullie?
De harddisk zelf houdt een tabel bij van haar sectoren. Daar bovenop komt het bestandssysteem met haar afwijkingen zoals gevoeligheid voor fijne fragmentatie.
Nu dacht ik aan het volgende. Wat als we een bestandssysteem maken dat werkt op cylinders van de harddisk in plaats van op sectoren. Het idee is dan de 3 eerste cylinders als index gebied (om de hele index te lezen hoeft de harddisk slechts 3 track2track seek/read acties doen wat op een moderne schijf 400ms (s4/r396ms) kost. Deze 24 MiB is te cachen zodat de accessing minder wordt (lazy writing).
Daarnaast zijn een bepaalde groep cylinders gebonden aan het journaled transactielogboek.
Alles ligt dus op een boundairy van 8 MiB. Je zou dus een enorme 'slack' kunnen verwachten als we cylinders grofweg als clusters behandelen. Echter denk ik aan een implementatie van sector based areas zodat je meerdere bestanden op sector boundairy kunt opslaan per cylinder terwijl Windows of een ander OS alleen hoeft te weten in wélke cylinder de gevraagde data staat. Hierop kun je goed defragmenteren (I-FAASTtm principe).
Het maakt dan helemaal niets uit als een groepje bestandjes in een cylinder ernstig gefragmenteerd raakt. Als de harddisk de hele cylinder inleest kan de computer de data on the fly defragmenteren en daar merk je absoluut niets van als het gaat om rauwe geheugensnelheden van 6,4 GiB/s (DC DDR400). Je hoeft dan alleen nog te defragmenteren/uitlijnen op cylinder basis en dat gaat dus met 100% efficientie van de hele harddisk. Zo zou je een groepje cylinders kunnen samenvoegen met bestanden die elke XP installatie altijd laadt met daaropvolgt de custom data. Zo krijg je ongelovelijk snelle datatoegang omdat er geen kwestie meer is van wachten op een bepaalde sector. Zodra de kop boven de goede cylinder komt kan hij direct de hele ronde lezen en kan hij starten bij de eerst volgende sector van die cylinder en dan de volgende 16383 sectoren lezen en weer verdergaan. Fragmentatie speeld hier op cylinderniveau geen rol. Moest je eens weten hoe ernstig je interne geheugen gefragmenteerd is altijd!
->De eerste cylinder bevat meerdere ingangen van het MBR zodat de disk niet meer afhankelijk is van één enkele sector. Daarnaast van het een FAT16 tabelletje kwijt voor de cylinders en de pointers naar cylindergebieden.
->De laatste cylinder bevat een back-up van de eerste cylinder zonder FAT ingangen
->De middelste cylinder bevat een back-up van de eerste cylinder zaols in de laatste cylinder
->De tweede cylinder is een mirror van de eerste cylinder en kan niet door derde API's bewerkt worden (virussen). ALs cylinder een faalt recovert hij vanaf de tweede cylinder. FAT corruptie is dan uitgesloten omdat het journaled is. De cylinder bestaat of niet en kan recoveren op sectorniveau.
->Je kunt zonder writecache dus hooguit een cylinder recoveren per transactieingang. NTFS kan hier de mist mee ingaan.
Wat jullie?