KlarnaやWhatsappのような2つの大企業が、メモリデータベースとしてMnesiaを使用していることがわかります(2GBの制限でMnesiaを使用してデータを保持する方法がわかりません)。私の質問は、なぜこれらのような企業が、RiakやcouchDBの代わりにMnesiaを使用するのかということです。どちらもErlangであり、どちらのデータベースもメモリデータベースでより高速にサポートされ、痛みのない永続性が向上し、さらに多くの機能がサポートされます。ここで何かが恋しいですか?
あなたはいくつかの重要な点を見逃しています:
まず第一に、mnesiaには2ギガバイトの制限はありません。 32ビットアーキテクチャに制限されていますが、実際の作業にはほとんど存在しません。また、64ビットでは、2ギガバイトに制限されません。私は数百ギガバイトのオーダーのデータベースを見てきました。唯一の問題は、それらの初期起動時間です。
Mnesiaは以下を処理するように構築されています。
データはすでにErlangシステムにあるため、別のプロセスを回避するように設計されています。データログのようなクエリ用のQLCがあります。また、Erlangの用語を保存することもできます。
上記が必要な場合、Mnesiaはうまくいきます。その制限は次のとおりです。
私の通常のコツは、ErlangシステムのMnesiaから始めて、データサイズが大きくなるにつれて別のシステムに切り替えることです。データサイズの増加が遅い場合は、Mnesiaのすべてをメモリに保持し、非常に迅速に起動して実行できます。
非常に注意深く。 mnesiaディスクテーブルのサイズに実際の制限はありません。
私の知る限り、 riakも (コメントのBitCaskに関する注記を参照してください)CouchDBはインメモリデータベースをサポートします。 Riakで間違っている可能性がありますが、CouchDBで作業しているので、非常に確信しています。
エンジニアは、別の問題を解決するため、RiakやCouchDBではなく記憶喪失を選択しています。
彼らが大企業であるかどうかは、これの要因ではありません。