最速のリアルタイム レプリケーションを備えたインメモリ データベース ソリューション [終了]

StackOverflow https://stackoverflow.com/questions/2511864

質問

10,000 行のテーブルがあり、主キーと状態を保持する 2 番目の列の 2 つの列だけがあります。問題は、この状態を米国内の 3 つの物理的な場所 (約 2000 マイル離れた) にまたがって、ほぼリアルタイムで、またはネットワーク上で可能な限り高速に複製する必要があることです。3 つの場所のいずれでも、このテーブル内の特定の行の状態を更新できます。これは、ほぼリアルタイムで他の 2 つの場所に複製される必要があります。

私たちがやろうとしていることを達成するのに役立つオープンソースまたは商用の軽量インメモリデータベースはありますか。ここではディスクの永続性はそれほど重要ではありません。

役に立ちましたか?

解決

チェックアウト レディス. 。こちらが レプリケーションのハウツー.

また、DB が必ずしもメモリ内にある必要はなく、高速である必要があるだけであると判断した場合は、次のことを検討するとよいでしょう。 カウチDB. 。継続的なレプリケーションを実行できます。これは本質的に瞬時であり、すべてのノードがマスターになります。これには、よく考えられた競合検出および解決メカニズムが備わっています。 このブログ投稿 は、最新かつ最高の CouchDB レプリケーション機能を紹介する優れた入門書です。

他のヒント

内蔵の無レプリケーション・サポートがありませんが、

、あなたは内でトリガに使用することができます-memory SQLiteののデータベース。トリガー内では、他のサイトに変更を伝えるためにカスタム関数を使用します。

あなたは 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 よりも高速な場合があります。彼らのパフォーマンスは同じだと思います。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top