Używam MongoDB od jakiegoś czasu i zobaczyłem, że fsync
czeka na wypróżnienie danych na dysk. Ok, więc pomyślałem, że to jest rozwiązanie dla bezpieczeństwa danych.Do czego służy fsync MongoDB?
To działało dobrze, trwa długo, dłużej niż w przypadku SQL. Wtedy zobaczyłem, że mogę umieścić syncdelay
do 0
, a następnie prędkość powróciła, ale pomyślałem, jak będzie w przyszłości z wieloma wieloma jednoczesnymi żądaniami. Usunąłem więc opcję fsync
z aktualizacji oraz wstawiłem i usunięto opcję konfiguracji syncdelay
.
Aby sprawdzić, czy dane zostały napisane szybko sprawdziłem Rockmongo po tym, jak zrobiłem aktualizację, a dane rzeczywiście tam były, super szybko!
Tak naprawdę, co to jest fsync
, jeśli powoduje, że zapisy są powolne, a bez tego zapisy się zdarzają, a mimo to szybko?
Moim największym problemem było to, że Mongo przechowywane dane na temat pamięci na dysku, a następnie po syncdelay, a jeśli użytkownik otrzymuje wiad sucess ale sprzęt nie powiodło się przed tym synchronizacji, w zasadzie, wielkim niepowodzeniem. Mam rację? czy jest na to rozwiązanie? – Hadrian
Ponownie, replikacja.MongoDB to rozproszony magazyn danych, a nie RDBMS. Pojedyncza instancja MongoDB jest w zasadzie bezużyteczna, ponieważ nie można polegać na tym, że jest trwała sama. Kiedy masz dwa wystąpienia, nie musisz się martwić o awarię sprzętu. – kprobst
Pojedyncze wystąpienie z kronikowaniem jest w porządku pod względem trwałości, zwłaszcza w przypadku problemów związanych z pisaniem dziennika. – MrKurt