Может ли mmap () гарантировать целостность данных при сбое, если я храню фрагменты данных в 1 / n Linux PAGE_SIZE? Или размер блока диска? - PullRequest
3 голосов
/ 12 января 2011

Мне нужно спроектировать систему с постоянной и быстрой перезагрузкой данных, которая реализована с помощью mmap(). Но системы, использующие mmap() для постоянства, часто теряли целостность данных при сбое системы, как одноузловый MongoDB.

То, что у меня есть, - это очень плоская структура данных для хранения: данные разбиты на блоки размером 1024, нет зависимости между блоками. Доступ к блокам произвольно и интенсивно осуществляется и обновляется во время работы сервера.

1 Ответ

2 голосов
/ 12 января 2011

Вы можете использовать msync для сброса отображенных данных на диск.

См. http://linux.die.net/man/2/msync.

...