54

Aerospike が彼らが主張するほど優れているかどうか、誰が言えるでしょうか? 営利企業なのでちょっと不安です。私の知る限り、彼らはオープンソース版をリリースしたばかりですが、彼らのウェブサイトの主張はまだ誇張されている可能性があります.

Aerospike が MongoDB とどのように比較されるかに特に興味があります。

4

4 に答える 4

101

Aerospike、MongoDB、Redis を使用し、他の多くの NoSQL データベースをテストしました。Aerospike の機能は非常に優れていると言えますが、MongoDB とは異なります。すべては、データベースの使用を計画している目的によって異なります。私がさまざまなデータベースを使用しているものの例を挙げることができます。また、それらの違いについて説明し、Aerospike の利点について説明することもできます。

モンゴDB

SQL の代替手段として MongoDB を使用しています。私の MongoDB データベースには、さまざまなフィールドがあります。多くの場合、フィールドは変更されており、さまざまなフィールドに対してランダムにクエリを実行する必要があります。これは非常に構造化されていないデータベースであり、MongoDB はその点で驚くべきものです。また、MongoDB を標準のキー値ストアとして使用しました。パフォーマンスは良好ですが、MongoDB のパフォーマンスはトランザクション スケールとデータベース サイズ スケールの両方で最適ではありませんでした。確かに、データベースはもう少し最適化されている可能性がありますが、さまざまな状況で MongoDB を正しく構成するためのドキュメントを見つけるのは非常に難しいと思います。

レディス

Redis は純粋なキー値ストアです。Redis の最大の問題は、完全にインメモリであることです (バックアップとしてディスクを使用しますが、利用可能なメモリよりも多くの情報を保存することはできません)。使用目的に対して非常に高速です。私は個人的に小さなトランザクション データベースに使用しています。特定のユーザーに対してイベントが発生した回数をカウントするなど、キーに対して非常に単純な機能を実行します。また、さまざまな値にマップする必要があるメモリ内のルックアップもすばやく行います。Redis は小さなデータセットに最適なツールであり、非常に高速です。構成も非常に簡単です。

エアロスパイク

私は個人的に、スケーリングするときに Redis を置き換えるために Aerospike を使用しています。私の理解では、それはより多くの用途に使用できます。Redis と同様に、Aerospike はキーと値のストアです。オープン ソース エディションは、Redis がサポートしていないセカンダリ インデックスもサポートしていると思います (本番環境でセカンダリ インデックスを使用したことはありませんが、テストはほとんど行っていません)。

Aerospike の最大の特徴は、そのスケーリング機能です。Aerospike を検討する際に解決しなければならなかった最大の問題は、非常に高速なままで大規模なデータ セットを処理できるようにシステムをスケーリングすることでした。私が Aerospike を使用するプロジェクトには、速度に関する非常に厳しい要件があります。私は通常、3 ~ 4 回のデータベース ルックアップとその他の処理を行い、50 ミリ秒未満のトランザクション時間を必要とします。いくつかのルックアップは、300 GB 以上のデータ セットにあります。このデータを保持し、妥当な時間内にアクセスできるようにするソリューションを見つけることができませんでした。300GB 以上の RAM を搭載したマシンを使用しない限り、Redis は明らかに機能しません。MongoDB は、300GB をはるかに下回るサイズで非常にパフォーマンスが低下し始めました。そこで、Aerospike を試してみたところ、すべてをうまく処理することができました。Aerospike の最も優れた点: データ セットが大きくなったので、必要に応じて新しいボックスを立ち上げる以外に多くのことをする必要はありませんでした。速度は一定に保たれています。

また、Aerospikes のドキュメントも非常に優れています。構成はそれほど難しくなく、発生した問題に対する答えを見つけるのは非常に簡単です。

結論

では、Aerospike は彼らが主張するほど優れているのでしょうか? 個人的には、私は主張されているものよりも何も見たことがありません. 100 万 TPS まで拡張する必要はありませんでしたが、十分なハードウェアがあればそれが可能であると確信しています。また、Aerospike と MongoDB の速度の違いを示す数字も信じています。Aerospike は、MongoDB よりもはるかに "構成された" および "計画された" データベースです。このため、Aerospike は MongoDB よりもはるかに高速です。動的に変更できる MongoDB とは異なり、1 つの (またはセカンダリ インデックスの場合は数百の) インデックスを気にするだけで済みます。本当に尋ねなければならない質問は、データベースで何を達成しようとしているのかということです。次に、どのデータベースがニーズに最も適しているかを調べます。スケーラブルで高速な

具体的な質問がある場合、または明確にする必要がある場合はお知らせください。私はおそらくあなたを助けることができるでしょう.

于 2014-08-08T20:29:11.233 に答える
56

スピード

エアロスパイクの方が速いです。ほとんどすべてのシステムは、低負荷または単純なデータ アクセスで高速になりますが、Aerospike は、インメモリおよび SSD ベースのストレージ オプションを最適化することで、一貫して高速を維持しています。Mongo は、キャッシュ用に大量の RAM を使用すると高速ですが、それ以外の場合は遅く、書き込みパフォーマンスが低くなります。

信頼性

Aerospike は非常に安定していますが、データ アクセスはより簡単です。MongoDB は歴史的にデータの永続化とフェイルオーバーに問題がありましたが、現在ははるかに改善されています。Aerospike はパフォーマンスが向上し、管理が容易になるため、スケーリング時の潜在的な問題が少なくなります。

セットアップ/構成

Aerospike を使用したクラスタリングは、すべてのノードが同じであり、クライアント ドライバーが接続とフェイルオーバーを自動的に処理するため、セットアップがはるかに簡単です。単一のサーバーをセットアップする場合、MongoDB はより多くのプラットフォームでネイティブに実行され、構成なしで起動できるため、より簡単になります。

MongoDB には、レプリカ セット (可用性のため) とシャーディング (スケーラビリティのため) という 2 つの主要なクラスタリング方法があります。5 つのシャードがあり、各シャードには 3 つのサーバーのレプリカ セットがありました。データを保持するサーバーは 15 台です。次に、クラスター構成を維持する 3 つの構成サーバーがあり、最初の大規模な停止の後、スレーブをマスターに適切にエスカレートするために 2 つのアービター プロセスを追加する必要がありました。これは多くの可動部分であり、将来的にレイアウトを変更することも非常に困難になります.

対照的に、Aerospike は労力がはるかに少なくて済みますが、より多くの構成が必要です。そのほとんどはクラスターが開始されると変更できませんが、MongoDB ではいつでもデータベースを作成および変更できます。

Aerospike には、複数のクラスターを同期する機能 (セットアップが複雑です) があるため、MongoDB が実際にはまったくサポートしていない、データを複製して書き込みを受け入れるさまざまなアクティブなデータセンターを持つことができます。

データアクセス

MongoDB にはデータベース/コレクション/ドキュメントがあり、各ドキュメントは単なる json です。Aerospike には名前空間/セット/レコードがあり、各レコードはキーと値の「ビン」のコレクションであり、ネストされたキーと値の構造を持つことができます。名前空間は事前に構成されており、動的ではありません。また、プロパティの名前は 14 文字に制限されているため、操作が面倒です。

どちらにもセカンダリ インデックスがありますが、MongoDB では何でもすぐにクエリを実行できますが、Aerospike ではインデックスのセットアップまたはカスタム スクリプトが必要です。どちらにも組み込みの集約フレームワークがあります。Aerospike クライアントは LUA スクリプトをサポートしていますが、MongoDB は map-reduce およびカスタム JavaScript 関数をサポートしています。

アプリケーションのニーズによって異なりますが、MongoDB は柔軟性、クエリの容易さ、制限の少なさで勝っています。

料金

現在、どちらもオープンソースで無料です。どちらにも追加機能を備えたエンタープライズ バージョンがありますが、大量のデータがある場合、ライセンスは高価です。Aerospike は、同じパフォーマンスを得るために必要なマシンが少ないため、安価になる可能性があります。

全体

ほとんどのシナリオでは、Aerospike をお勧めします。MongoDB のドキュメント ストアのセマンティクスと柔軟性は優れていますが、分散データベースとしてのスケーリングと維持は困難です。Aerospike は高速で信頼性が高く、スケーリングが容易な少数のノードで実行できます。


2016 年 1 月: MongoDB は、クラスターのプロビジョニングと管理が可能な有料の SaaS サービスであるMongoDB Cloud Managerをリリースしました。これにより、Mongo の構成に関する多くの問題が解決されます。

2017 年 3 月:両方のデータベースが長い道のりを歩んできました。Aerospike では、クラスター全体を再起動することなく、より高速なレプリケーションとより柔軟な構成設定が可能になりました。MongoDB には、新しいスキーマの適用、パフォーマンスの向上があり、 MongoDB Atlasマネージド サービスと一緒に結合をサポートして、すべてのスケーリングの問題を取り除きます。


Cassandra 互換のオープンソース データベースであるScyllaDBを強くお勧めします。ScyllaDBは、信じられないほどのパフォーマンス、マルチデータセンター レプリケーション、および使用制限のないものです。

于 2014-09-08T02:04:27.103 に答える
21

私は実稼働システムで MongoDB(2.4) と Aerospike 3 を使用しました。これらは私たちのチームによって発見されたいくつかの観察です:-

1) Aerospike による読み取り/書き込みスループットは無敵です。通常、読み取りリクエストが高い側にある場合、Mongo db は特定の規模まで動作します。95/5 パーセントの比率で同時読み取り/書き込みが必要な場合、Mongo は何でも同じように劣化します。Aerospike では、この比率が 90/10 であっても、影響はほとんどありません。AWS では、Aerospike を使用して 20 万 TPS を達成しました。

2) Aerospike のレイテンシは非常に低いです。サーバー側での読み取りレイテンシは、99 パーセンタイルでミリ秒未満でした。書き込みレイテンシは、80 パーセンタイルではサブミリ秒、100 パーセンタイルでは 8 ミリ秒以内でした。最も良かったのは、さまざまな POC でほぼ同様の数値が得られたため、一貫したパフォーマンスが得られたことです。

3) 他のソリューションと比較して、Aerospike クラスターでは非常に少数のノードで十分です。また、SSD ベースのデータ ストアは非常に印象的な数値を提供するため、非常に費用対効果が高く、メンテナンス オーバーヘッドもほとんどありません。

4) Aerospike はオープン ソースになったので、より広いコミュニティ サポートを期待しています :-)

そのため、すべての新しいシステムに Aerospike を使用し、MongoDB からの移行を試みています。

于 2014-08-10T12:54:49.200 に答える
0

SQLも死んでいないので、MongoDBとAerospikeは同じデータ管理のために行われていません.

TokuMX バージョン (Mongodb 2.4.10 に基づく 2.0.0) を使用して、Mongodb でシャード クラスターを使用してキャッシュ システムを実行しました。 1 日あたり 1000 万回の更新。私たちは今、素晴らしいと思われる Aerospike を試しており、現在はオープンソースになっています。このオープンソース バージョンの問題点は 1 つだけです。

本番サーバーでは使用しないでください。

セキュリティ管理は、エンタープライズ ディストリビューションでのみ利用できます。だということだ

パスワードとユーザーで何も保護することはできません!

さて、気にしなければ本番環境で使用できますが、クライアントがセキュリティ監査を要求する可能性があることを覚えていないでください。

于 2014-12-21T07:50:45.153 に答える