最速のリアルタイム レプリケーションを備えたインメモリ データベース ソリューション [終了]
-
22-09-2019 - |
質問
10,000 行のテーブルがあり、主キーと状態を保持する 2 番目の列の 2 つの列だけがあります。問題は、この状態を米国内の 3 つの物理的な場所 (約 2000 マイル離れた) にまたがって、ほぼリアルタイムで、またはネットワーク上で可能な限り高速に複製する必要があることです。3 つの場所のいずれでも、このテーブル内の特定の行の状態を更新できます。これは、ほぼリアルタイムで他の 2 つの場所に複製される必要があります。
私たちがやろうとしていることを達成するのに役立つオープンソースまたは商用の軽量インメモリデータベースはありますか。ここではディスクの永続性はそれほど重要ではありません。
解決
チェックアウト レディス. 。こちらが レプリケーションのハウツー.
また、DB が必ずしもメモリ内にある必要はなく、高速である必要があるだけであると判断した場合は、次のことを検討するとよいでしょう。 カウチDB. 。継続的なレプリケーションを実行できます。これは本質的に瞬時であり、すべてのノードがマスターになります。これには、よく考えられた競合検出および解決メカニズムが備わっています。 このブログ投稿 は、最新かつ最高の CouchDB レプリケーション機能を紹介する優れた入門書です。
他のヒント
あなたは Altibase にチェックアウトする場合があります。彼らは世界最速のインメモリデータベースを持っていると述べました。彼らは5〜10倍速く、ほとんどのインメモリDBMSよりも、彼らはまた、サイト上の無料トライアルを持っていると言う。
Websphere Server で 6000 行を超える複雑な SQL を 10000 回実行します。合計の正味実行時間は次のようになります。
Derby (In Memory) Oracle(standard DB) SQLite (In Memory) HSQLDb (In Memory) nano sec. second nano sec. second nano sec. second nano sec. second 1. try 58000000 0,058 6149976000 6,1 1141988000 1,14 999403000 1,00 2. try 78560000 0,078 5268477000 5,2 1182621000 1,18 1338705000 1,34 3. try 58849000 0,058 5200898000 5,2 1133003000 1,13 2239527000 2,24 4. try 60901000 0,06 5435216000 5,4 1205442000 1,21 1370711000 1,37 5. try 58798000 0,058 6501929000 6,5 1186734000 1,19 1001800000 1,00 6. try 62928000 0,062 5913053000 5,9 1224470000 1,22 1066736000 1,07 7. try 71171000 0,071 5111207000 5,1 1200769000 1,20 1304524000 1,30 8. try 66913000 0,066 5517989000 5,5 1173495000 1,17 1299230000 1,30 9. try 58777000 0,058 7209555000 7,2 1179013000 1,18 1031795000 1,03 10. try 75299000 0,075 5356514000 5,3 1182715000 1,18 1368461000 1,37 average 65019600 0,064 5766481400 5,7 1181025000 1,18 1302089200 1,30
私は明らかに Derby、SQLite、HSQLDB を比較します。Oracle はインメモリ データベースではありません。ただし、メモリ内のデータベースと通常のデータベースの速度の違いを示すために、結果を表にまとめました。
追伸:SQLite と HSQLDB では結果が安定しません。したがって、100 回の試行で安定した結果を 10 個選択します。HSQLDB は SQLite よりも高速な場合があります。彼らのパフォーマンスは同じだと思います。