얼마 전 MongoDB를 사용 해본 결과 fsync
은 데이터가 디스크로 플러시 될 때까지 기다리는 것을 보았습니다. 좋아, 그래서 나는 그것이 데이터의 안전을위한 해결책이라고 생각했다.MongoDB의 fsync는 무엇입니까?
SQL 대안보다 오랜 시간이 걸리는 것이 효과적입니다. 그런 다음 syncdelay
을 0
에 넣을 수 있다는 것을 알았지 만 속도는 다시 돌아 왔지만 많은 동시 요청이있을 때 앞으로 어떻게 될지 생각했습니다. 따라서 fsync
옵션을 업데이트에서 제거하고 syncdelay
구성 옵션을 제거했습니다.
데이터를 쓰고 있는지 테스트하려면 업데이트를 한 후 Rockmongo를 빠르게 확인했는데 데이터가 실제로 거기에있었습니다.
실제로 쓰기가 느리고 쓰기가 없으면 어쨌든 fsync
은 무엇입니까?
가장 큰 걱정은 Mongo가 syncdelay 후에 메모리에 데이터를 저장 한 다음 사용자가 성공적으로 msg를 수신했지만 하드웨어가 동기화되기 전에 실패하면 기본적으로 큰 실패입니다. 맞습니까? 아니면 이것에 대한 해결책이 있습니까? – Hadrian
다시 복제하십시오.MongoDB는 RDBMS가 아닌 분산 데이터 저장소입니다. MongoDB의 단일 인스턴스는 본질적으로 _useless_입니다. 왜냐하면 당신은 그 자체로 내구성을 의지 할 수 없기 때문입니다. 일단 두 개의 인스턴스가 있으면 하드웨어에 대해 걱정할 필요가 없습니다. – kprobst
저널링을 사용하는 단일 인스턴스는 특히 저널링 쓰기 문제로 내구성을 유지하는 데 적합합니다. – MrKurt