MemoryStoreHashMapデータ構造のリリースに伴い、Robloxは個々のデータ構造に対する既存の制限をすべて削除し、単一のグローバルな「パーティションごとの」スロット制限に置き換えました。正確な制限は内部の値や自動パーティショニングプロセスがデータをどのように分配するかによって変動しますが、一般的にはスロットに達する前にずっと高い使用が可能です。特にハッシュマップに対してです。この新しい制限により、すべてのデータ構造にわたるメモリストアの柔軟な使用が可能になります。
パーティション
MemoryStores APIはデータを_パーティション_に保存します。これはストレージの単なる細分化に過ぎません。メモリストアにアイテムを書き込むと、そのアイテムは正確に1つのパーティションに保存されます。パーティションは完全にMemoryStores APIによって管理されており、ユーザーが自分で管理する必要はありません。
パーティションの割り当て
パーティションストレージは、アイテムが保存されるデータ構造によって異なります。ソートされたマップやキューの場合、各データ構造には単一のパーティションが割り当てられます。
例えば、PlayerScoresという名前のソートされたマップと、ゲームをプレイするために待っているプレイヤーのキューであるPlayerLineを持つカーニバルゲームを考えてみてください:

ソートされたマップやキューとは異なり、ハッシュマップには複数のパーティションが割り当てられ、データはこれらのパーティションに自動的に分配されます。もしPrizesというハッシュマップを追加すると、パーティションは次のようになります:

ハッシュマップがすべてのパーティションに存在し、各パーティションにアイテムのサブセットがあることに注意してください。
制限
パーティションごとの制限を持つことは、すべてのデータ構造に対してより高いスループットを可能にします。また、ハッシュマップに有利であり、これらはすべてのパーティションに分配されます。
例えば、パーティションごとの制限が50,000リクエスト/分(RPM)であるとする例を考えてみてください:
- 最も良いケースでは、ソートされたマップとキューはそれぞれ50,000 RPMに制限されます。なぜなら、それぞれが単一のパーティションに存在するからです。
- ハッシュマップへのリクエストはアイテムキー全体に広がっており、これらのキー自体もパーティションに分散されているため、ハッシュマップはスロットに達する前にずっと高い実際の制限を持つことが可能です。他のデータ構造の何倍もの制限です。ただし、リクエストが多くのアイテムキーに広がることを前提としています。
- ハッシュマップは、リクエストをパーティションに分散させることによって全体的に高いスループットを達成できますが、個々のアイテムキーはシステムの安定性を維持するために依然としてレート制限されています。もしほとんどのトラフィックが単一のアイテムキーを対象とする場合、そのキーはスロットされる可能性があります。
- 効果的にスケールし、これらのキーごとの制限を回避するためには、キーシャーディングを実装します。リーダーとライターを均等に複数のアイテムキーに分散させ、ボトルネックを減少させ、スムーズなパフォーマンスを維持します。

この理由から、ソートや「先入先出」機能が必要ない場合、ハッシュマップは通常、メモリストアデータ構造の最良の選択肢です。詳細については、ベストプラクティスを参照してください。