Un file system distribuito replicato minimizza la necessità di durabilità?

0

Ho indagato su vari file system distribuiti, come Gluster, Ceph, Moose e Lizard.

Ho anche familiarità con vari sistemi di tipi di chiavi / valori, alcuni dei quali non eseguono chiamate di sistema legate alla durata (come la funzione fsync() ) perché la replica riduce la probabilità di perdita di dati. Ad esempio, se si replica un record chiave / valore su 3 server e un server non funziona, i dati non vanno persi.

La mia domanda è: i file system distribuiti replicati che forniscono un certo livello di ridondanza (ad esempio con un fattore di replica 4x) minimizzano la necessità di richiedere la durata dal sistema operativo e, in caso affermativo, di quanto? (Ad esempio, c'è un ritardo nella replica dei file, in modo che, ad esempio, ci sia solo una finestra di 0,2 secondi per la perdita di tempo in assenza di partizioni di rete?)

Si noti che la mia applicazione utilizza la chiamata di sistema fsync() , che riduce le scritture a 30 record al secondo, mentre senza questa chiamata le scritture sono circa 200.000 al secondo (che suppongo sia dovuto all'utilizzo intensivo del cache del sistema operativo). Mi piacerebbe mantenere lo stesso livello di affidabilità migliorando al contempo le prestazioni tramite replica / ridondanza. (Vale a dire, 30 record al secondo significa - presupponendo che l'hardware e il file system si comportino correttamente - una finestra di ~ 0,03 secondi in cui può verificarsi un errore, e voglio confrontarlo con l'approccio alternativo più performante usando la ridondanza.)

    
posta magnus 10.10.2018 - 05:02
fonte

1 risposta

1

Sì e No. Sì, ovviamente se hai due o più nodi la tua app è più duratura, ma No, normalmente ti aspetteresti lo stesso livello di durata dal sistema operativo. Ti stai proteggendo da guasti hardware e crash dell'applicazione piuttosto che da errori del sistema operativo.

Dato questo, mi aspetto che i sistemi di chiavi / valori a cui si fa riferimento fanno si sincronizzino su disco, lo fanno semplicemente in modo più efficiente della propria applicazione. Come si nota, la scrittura su disco è lenta, quindi si desidera essere intelligenti su come e quando farlo per assicurarsi che sia ottimizzato.

    
risposta data 10.10.2018 - 13:17
fonte

Leggi altre domande sui tag