NTFS ma tę funkcję zwaną główną tabelą plików . Brzmi naprawdę fajnie, kiedy o tym czytasz.
Widać, że ext3 działa dobrze do około 95% użycia dysku, podczas gdy istnienie MFT oznacza, że NTFS tak naprawdę nie chce, abyś używał więcej niż 90% twojego dysku. Ale założę, że to nie jest twój problem i że twój problem dotyczy wielu operacji na wielu małych plikach.
Jedną z różnic tutaj jest to, co dzieje się podczas tworzenia małego pliku. Jeśli plik jest mniejszy niż rozmiar bloku, nie jest zapisywany w swoim własnym bloku, ale jest przechowywany w MFT. Jest to przydatne, jeśli plik pozostaje dokładnie taki, jak był podczas tworzenia. W praktyce oznacza to jednak, że gdy svn dotyka pliku, aby go utworzyć, a następnie dodaje do tego pliku, usuwa z niego lub po prostu modyfikuje go za mało, aby przenieść go do własnego bloku, operacja jest dość powolna. Również samo czytanie wielu małych plików kładzie nacisk na MFT tam, gdzie wszystkie się znajdują, z wielokrotnością na blok. Dlaczego miałby to zrobić? Zapobiega to unikaniu fragmentacji i bardziej efektywnemu wykorzystaniu większej liczby bloków, co ogólnie jest dobrą rzeczą.
Natomiast w ext2 i 3 bloki plików dla każdego pliku są przechowywane obok miejsca, w którym znajdują się metadane katalogu dla katalogu, w którym się znajdują (jeśli to możliwe, jeśli dysk jest niefragmentowany i masz około 20% wolnego miejsca). Oznacza to, że gdy svn otwiera katalogi, pewna liczba bloków jest buforowana w zasadzie za darmo w tej pamięci podręcznej 16 MB na dysku, a następnie ponownie w pamięci podręcznej jądra. Pliki te mogą zawierać plik .svn i pliki wersji ostatniej aktualizacji. Jest to przydatne, ponieważ są to prawdopodobnie niektóre pliki, które SVN przegląda w następnej kolejności. NTFS tego nie robi, chociaż duże części MFT powinny być buforowane w systemie, mogą nie być to części, które będziesz chciał później.