2

Amazon DynamoDB を使用すると、読み取りと書き込みのスループットを個別にプロビジョニングできます。DynamoDB に先行するシステムに関するAmazon Dynamo の論文を読み、Cassandra と Riak がこれらのアイデアをどのように実装したかについて読みました。

クラスタにノードを追加してテーブルのハッシュ キースペースをより多くのノードに分割することで、これらのシステムのスループットを向上させる方法を理解しています。これにより、アクセスがハッシュ キー間で比較的ランダムである限り、スループットが向上します。しかし、Cassandra や Riak のようなシステムでは、これにより読み取りと書き込みの両方のスループットが同時に向上します。

DynamoDB はどのように設計されており、読み取りと書き込みを個別にスケーリングできますか? それとも、2 つのうち大きい方をカバーするのに十分なノードを本質的に割り当てる必要があるにもかかわらず、Amazon は独自に課金しているだけなのでしょうか?

4

1 に答える 1

0

クラスターにノードを追加すると利用可能なスループットの量が増加するはずですが、それはテーブル単位ではなくクラスター単位になります。DynamoDB クラスターは、多くのアカウントの多くのテーブルにわたる共有リソースです。EC2 ノードのようなものです。仮想マシンの料金を支払っていますが、その仮想マシンは、複数の EC2 仮想マシン間で共有される実マシンでホストされており、インスタンス タイプに応じて、一定量のメモリ、CPU、ネットワーク IO を取得します。など

スループットを支払うときに支払うのは IO であり、それらは個別に調整できます。より多くのスループットを支払っても、Amazon がより多くのノードでテーブルを分割することはありません。テーブルがさらにパーティション化される唯一の原因は、テーブルのデータを格納するためにさらに多くのパーティションが必要になるまでテーブルのサイズが大きくなった場合です。パーティションの最大サイズは、DynamoDB エンジニアと話をして収集したものから、クラスター内のノードの SSD のサイズに基づいています。

プロビジョニングされたスループットの秘訣は、それがパーティション間で分割されることです。そのため、ホット パーティションがある場合、リクエストの合計が読み取りまたは書き込みスループットの合計を超えていなくても、スロットリングと ProvisionedThroughputExceededExceptions が発生する可能性があります。これはあなたの質問に反しています。テーブルがより多くのパーティション/ノードに分割されている場合、より多くのスループットが得られると予想されますが、実際には、テーブルのサイズでスループットをスケーリングしない限り、逆になります。

于 2014-08-06T15:54:59.230 に答える