2011-01-12 5 views
2

mmap()で実装されているデータを永続的かつ高速にリロードするシステムを設計する必要があります。しかし、永続性のためにmmap()を使用しているシステムでは、単一ノードのMongoDBのように、システムクラッシュ時にデータの整合性が失われることがありました。Linux PAGE_SIZEまたはディスクブロックサイズの1/nにデータチャンクを格納すると、mmap()がクラッシュ時のデータ保全性を保証できますか?

私が持っているものは、非常にフラットなデータ構造です。データは1024サイズのブロックにチャンクされ、ブロック間の依存性はありません。ブロックは無作為にアクセスされ、サーバーの稼働中に更新されます。

答えて

2

msyncを使用すると、mmapされたデータをディスクにフラッシュすることができます。

http://linux.die.net/man/2/msyncを参照してください。

+0

何度も 'mmap'を使用しましたが、永続性の懸念があった場所は決してありませんでしたので、' msync'を手伝っていませんでした。学習が発生しました。ありがとう。 –

関連する問題