In pratica hai due "direzioni" in cui puoi scalare la memoria del file system: verticalmente e orizzontalmente.
Il ridimensionamento verticale è fondamentalmente solo facendo un disco più veloce. La mossa ovvia qui è da singolo disco rotante a SSD, possibilmente in un RAID. Ciò consente di creare un file system con larghezza di banda e throughput maggiori. Prima che gli SSD fossero comuni, potreste aver preso in considerazione l'utilizzo di un numero di dischi rigidi effettivi, ma in un RAID per ottenere una maggiore larghezza di banda da ciò che si presenta all'utente come una singola unità logica. Questo can vale la pena di essere preso in considerazione se hai bisogno di più spazio di archiviazione di quello che sei disposto a comprare SSD per.
Il ridimensionamento orizzontale in questo caso è una questione di avere un certo numero di "file system" separati che assomigliano a un singolo file system. Fortunatamente hai a che fare con file che sono abbastanza piccoli per pianificare solo la memorizzazione di ciascuno su un singolo file system (diversamente da un database che potrebbe richiedere un singolo file di un centinaio di terabyte o più). Ciò significa che puoi scalare in modo abbastanza semplice orizzontalmente (ad esempio) con un numero di server che ogni archivio contiene un sottoinsieme specifico dei file che ti interessa, e usa (per esempio) un hash del nome del file per determinare quale server memorizzerà ogni file.
Quindi, per utilizzarlo avresti fondamentalmente un numero di file server e un elenco di file da elaborare. Se hai intenzione di avere più client che elaborano i file, dividi l'elenco tra loro. Ogni client passa attraverso i nomi nella sua parte dell'elenco, esegue il hash del nome per trovare il server per quel file e recupera / elabora il file.
A seconda della rete e di quello che stai facendo con il risultato dell'elaborazione, c'è un'altra possibilità da considerare: iniziare con lo stesso set di server e la stessa lista di input. Inserisci i nomi e invia ciascun nome direttamente al server in cui è archiviato quel file. Invece di recuperare il file e inviarlo tramite la rete, il server recupera ed elabora il file stesso.
Quest'ultimo può avere un vantaggio significativo se il risultato dell'elaborazione deve essere memorizzato insieme al file originale e / o si può avere a che fare con una rete relativamente lenta (poiché richiede solo la trasmissione dei nomi di file sulla rete, che normalmente ci aspettiamo di essere un lotto più piccolo del contenuto del file).