分区和数据分配

*此内容使用人工智能(Beta)翻译,可能包含错误。若要查看英文页面,请点按 此处

随着 MemoryStoreHashMap 数据结构的发布,Roblox 移除了所有现有数据结构的所有限制,并将它们替换为一个单一的“per- partition”限制。 准确限制基于内部值和自动分配数据过程的内部值,但通常允许在限制之前进行更高使用,例如对于 hash 地图。 此新限制允许灵活使用存储存储空间

分区

MemoryStores API 在 partitions 上存储数据,这是存储的子分。每当您向存商店存储空间写入数据时,该存储空间就会保存在一个特定的 partition 上。部分是由 MemoryStores API 完全管理的;您无需自己管理它们。

分区分配

分区存储根据项目存储在哪个数据结构上不同。 对于排序的地图和队列,每个数据结构都会分配一个单一的分区。

例如,考虑一个带有排序地图 PlayerScores 和排队列 PlayerLine 的玩家等待游戏:

与排序地图和队列不同,哈希地图是由多个部分组成,数据在这些部分之间自动分配。如果您添加了一个名为 Prizes 的哈希地图,部分可能会看起来像这样:

注意如何在所有分区上存在哈希地图,每个分区有一些子集项目。

限制

拥有 per-Partition 限制可以允许更高的通put对所有数据结构。它还会提供更多哈希地图,因为它们在所有分区上分布。

例如,考虑每分钟 150,000 请求的平均分数 (RPM):

  • 在最佳情况下,排序的地图和队列的长度都受到 150,000 RPM 的限制,因为它们都位于一个单一的 partition 上。
  • 要求加密地图的请求会在物品键上传播,这些钥匙在部分上传播,因此加密地图在限制之前可以有更高的有效限制,多次其他数据结构的数据结构。

为此,如果您不需要排序或“第一个出,第一个进”功能,则通常选择哈希地图是最佳选择。有关更多信息,请参阅最佳实践