私は多くのキーと値のペアを書いているアプリケーションに取り組んでいます。本番環境では、データベースのサイズは数百テラバイト、場合によっては数ペタバイトにもなります。キーは 20 バイトで、値は最大 128 KB で、4 KB より小さいことはほとんどありません。現在、MongoDB を使用しています。明らかに多くのオーバーヘッドが発生しているため、パフォーマンスはあまり良くありません。MongoDB はファイル システムに書き込み、LVM はさらに RAID 6 アレイに書き込みます。
私たちの要件は非常に基本的なものなので、汎用データベース システムを使用するとパフォーマンスが低下すると思います。ドキュメント (または「値」) を生のドライブ (実際には RAID アレイ) に直接配置し、キー (および値が生のドライブに存在する場所へのポインター) を格納できる単純なデータベース システムを実装することを考えていました。ドライブ) を、SSD に支えられた高速なインメモリ データベースに格納します。これにより、(ファイルシステムを使用するのとは対照的に)断片化がまったくないため、読み取りも高速化されます。
ドキュメントが削除されることはめったにありませんが、デバイスで使用可能な空き容量のプールを維持する必要があります (ファイルシステムが提供するもの)。
私の質問は、これは本当に重要な改善をもたらすのでしょうか? また、このようなことを行う文書保管システムはありますか? または、開始点として使用できる同様のものはありますか?