Mit der Freigabe der MemoryStoreHashMap Datenstruktur hat Roblox alle bestehenden Einschränkungen für einzelne Datenstrukturen entfernt und sie durch eine einzige, globale "per-Partition"-Drosselungslimite ersetzt. Die genaue Limitation basiert auf internen Werten und wie der automatische Teilitionsprozess Ihre Daten verteilt, aber ermöglicht in der Regel eine viel höhere Nutzung vor der D
Partitionen
Die API MemoryStores speichert Daten auf Partitionen, die sind nur Unterteilungen des Speichers. Wenn Sie ein Item in einen MemoryStores-Speicher schreiben, wird dieses Item auf genau einer Partition gespeichert. Partitionen werden vollständig von der MemoryStores-API verwaltet; Sie müssen sie nicht selbst verwalten.
Partitionszuweisung
Die Partitionierung des Speichers ist je nach Datenstruktur, auf die ein Item gespeichert ist, unterschiedlich. Für sortierte Karten und Warteschlange wird jede Datenstruktur zugewiesen.
Zum Beispiel, berücksichtigen Sie ein Karnevalsspiel mit einer sortierten Karte namens PlayerScores und einer Warteschlange namens PlayerLine von Spielern, die warten, um das Spiel zu spielen:
Anders als sortierte Karten und Warteschlange werden Hashed-Karten mehrere Partitionen zugewiesen, und die Daten werden automatisch über diese Partitionen verteilt. Wenn Sie eine Hashed-Karte namens Prizes hinzufügen, können die Partitionen wie folgt aussehen:
Beachten Sie, wie die Hashes-Karte auf allen Partitionen vorhanden ist, und jede Partition hat einige Untereinheiten von Elementen.
Beschränkungen
Eine Partitionsbegrenzung ermöglicht eine höhere Durchsatzrate für alle Datenstrukturen. Sie unterstützt auch Hashenumgebungen, da sie auf allen Partitionen verteilt sind.
Zum Beispiel betrachten Sie ein pro Partition Limit von 150.000 Anfragen pro Minute (RPM):
- Im besten Fall sind eine sortierte Karte und eine Warteschlange auf 150.000 RPM begrenzt, da jede auf einer einzigenPartition beheimatet ist.
- Anfragen zum Hashen von Karten werden auf die Item-Schlüssel verteilt, die wiederum auf die Partitionen verteilt sind, sodass Hashen von Karten ein viel höheres effektives Limit vor dem Ausrotten haben können, das viel oft das der anderen Datenstrukturen entspricht.
Aus diesem Grund sind Map-Hashes in der Regel die beste Wahl für eine Speicherdatenstruktur, wenn Sie keine Sortierungs- oder "First In, First Out"-Funktionalität benötigen. Weitere Informationen finden Sie unter Best Practices.