Partitions et distribution de données

*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.

Avec la sortie de la structure de données MemoryStoreHashMap, Roblox a supprimé toutes les limites existantes pour les structures de données individuelles et les a remplacées par une seule limite de restriction globale « par partition ».La limite exacte fluctue en fonction des valeurs internes et de la façon dont le processus de partitionnement automatique distribue vos données, mais permet généralement un usage beaucoup plus élevé avant la saturation, notamment pour les cartes de hachage.Cette nouvelle limite permet un usage flexible des magasins de mémoire à travers toutes les structures de données.

Paritions

L'API MemoryStores stocke des données sur partitions , qui sont simplement des sous-divisions du stockage.Chaque fois que vous écrivez un élément dans un boutiquede mémoire, cet élément est stocké sur exactement une partition.Les partitions sont entièrement gérées par l'API MemoryStores ; vous n'avez pas besoin de les gérer vous-même.

Attribution de partition

Le stockage de partition est différent selon la structure de données sur laquelle un élément est stocké.Pour les cartes et les files d'attente triées, une seule structure de données est attribuée à une seule partition.

Par exemple, envisagez un jeu de carnaval avec une carte triée appelée PlayerScores et une file d'attente appelée PlayerLine de joueurs qui attendent de jouer au jeu :

Contrairement aux cartes triées et aux files d'attente, les cartes hachées reçoivent plusieurs partitions et les données sont automatiquement distribuées sur ces partitions.Si vous deviez ajouter une carte de hachage appelée Prizes, les partitions pourraient ressembler à ceci :

Notez comment la carte de hachage existe sur toutes les partitions, et que chaque partition a un sous-ensemble d'objets.

Limites

Avoir une limite par partition permet d'augmenter le débit pour toutes les structures de données.Il favorise également les cartes de hachage, car elles sont distribuées sur toutes les partitions.

Par exemple, envisagez une limite par partition de 150 000 requêtes par minute (RPM) :

  • Dans le meilleur des cas, une carte triée et une file d'attente sont limitées à 150 000 RPM, car chacune réside sur une seule partition.
  • Les demandes d'hashage des cartes sont réparties sur les clés d'objets, qui sont elles-mêmes réparties sur les partitions, de sorte que les cartes d'hashage peuvent avoir une limite efficace beaucoup plus élevée avant la saturation, plusieurs fois celle des autres structures de données.

Pour cette raison, si vous n'avez pas besoin de tri ou de fonctionnalité « premier arrivé, premier servi », les cartes de hachage sont généralement le meilleur choix pour une structure de données de stockage de mémoire.Pour plus d'informations, voir les meilleures pratiques.