windows - Påvirker længden af ​​et filnavn store NTFS-mappeindeks?

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg har NTFS-mapper, der kan vokse til at holde 100.000 til 1.000.000 filer, den øvre grænse diskuteret i dette svar på NTFS-ydeevne.


Mine filer har følgende egenskaber:


1) De har lange filnavne (typisk 64 til 100 tegn).


2) For mange af filerne kan hoveddelen af ​​filnavnet være identiske for de første 20 til 40 tegn.


Gør lange filnavne indflydelse på NTFS-mappeindeks ydeevne ved enten at kigge på en fils rekord fra dets navn, fragmentering af indekset eller vækst af indekset?


NTFS mappe indekser er (angiveligt) B-træer. Jeg har testet min software til 50.000 filer, men jeg kører en 'glad sti' -test med lidt filsystem churn. Testning til 1.000.000 vil tage uger at køre min software non-stop.


Jeg har overvejet at skrive en simulator, men før jeg gør det, har nogen virkelig erfaring i verden med dette?

Bedste reference


NTFS-mapper er BTrees med data i både interiør- og bladknudepunkter. Da der ikke findes 'nøglepræfikomprimering', gemmes også den fulde tekst af filnavnet i noderne.


Søgning på dette med testfilnavne, der har mange identiske præfiks, simpelthen spilder tid siden kigger gennem hver 'side' i mappen gør en flok identiske sammenligninger, inden de oplever de karakteristiske tegn. Hvis du kan gøre den øverste karakter i navnet den mest variable, så er det en stor hjælp.


Men i sidste ende er ingen filsystem en god database, og ingen database er et godt filsystem. Du skal overveje størrelsen på dine filer og forventede brugskarakteristika.

Andre referencer 1


NTFS opdaterer typisk en fils attribut på disken, hvis den aktuelle Last Access Time i hukommelsen adskiller sig med mere end en time fra Last Access Time, der er gemt på disken, eller når alt i hukommelsen refererer til det filen er væk, hvad der er nyere. Så deaktivering af Last Access Time forbedrer hastigheden af ​​mappen og filadgangen.


Når du gemmer en fil med et langt filnavn til et NTFS -drev, opretter NTFS som standard en anden filmappeindtastning med et kort filnavn i overensstemmelse med 8.3-konventionen.
Når NTFS opregner filer i en mappe, skal den kigge op på de 8.3 navne, der er knyttet til de lange filnavne. Da en NTFS -mappe opretholdes i en sorteret tilstand, er tilsvarende lange filnavne og 8,3 navne generelt ikke ved siden af ​​hinanden i mappelisten. Så, NTFS bruger en lineær søgning i mappen for hver fil, der er til stede. Som følge heraf øges mængden af ​​tid, der kræves for at udføre en katalogfortegnelse, med firkantet af antallet af filer i mappen. Deaktivering af 8.3-fil oprettelsen vil også forbedre ydeevnen.


To registreringsnøgler skal ændres: NtfsDisable8dot3NameCreation og NtfsDisableLastAccessUpdate, angiv deres værdier til 1.


Og hvis du har råd til det, skal du bruge Solid State Drive (SSD) i stedet for den traditionelle harddisk, fordi ydeevnen er i størrelsesorden bedre, se her http://en.wikipedia.org/wiki/Solid-state\_drive#Comparison\_of\_SSD\_with\_hard\_disk\_drives. [[[13]