Com o lançamento da estrutura de dados MemoryStoreHashMap, Roblox removeu todos os limites existentes para estruturas de dados individuais e os substituiu por um único limite global de "tompimento por partição". O limite exato oscila com base em valores internos e em como o processo automático de partição distribui seus dados, mas geralmente permite um uso muito maior antes do estrangulamento, especialmente para mapas de hash. Este novo limite permite um uso flexível de storages de memória em todas as estruturas de dados.
Partições
A API MemoryStores armazena dados em partições, que são apenas sub-divisões de armazenamento. Sempre que você escreve um item em um armazenamento de memória, esse item é armazenado em exatamente uma partição. As partições são totalmente gerenciadas pela API MemoryStores; você não precisa gerenciá-las sozinho.
Atribuição de partição
O armazenamento de partição é diferente de acordo com a estrutura de dados em que um item está sendo armazenado. Para mapas ordenados e filas, cada estrutura de dados é atribuída a uma única partição.
Por exemplo, considere um jogo de carnaval com um mapa ordenado chamado PlayerScores e uma fila chamada PlayerLine de jogadores esperando para jogar:

Ao contrário de mapas ordenados e filas, mapas de hash têm várias partições, e os dados são distribuídos automaticamente entre essas partições. Se você adicionar um mapa de hash chamado Prizes, as partições podem parecer assim:

Note como o mapa de hash existe em todas as partições, e cada partição tem um subconjunto de itens.
Limites
Ter um limite por partição permite maior através em todas as estruturas de dados. Isso também favorece os mapas de hash, porque eles estão distribuídos entre todas as partições.
Por exemplo, considere um limite de exemplo por partição de 50.000 solicitações por minuto (RPM):
- No melhor dos casos, um mapa ordenado e uma fila estão limitados a 50.000 RPM, porque cada um reside em uma única partição.
- Solicitações a mapas de hash são espalhadas entre as chaves dos itens, que estão distribuídas entre as partições, de modo que os mapas de hash podem ter um limite efetivo muito maior antes do estrangulamento, muitas vezes superior ao das outras estruturas de dados, assumindo que as solicitações estão espalhadas por muitas chaves de itens.
- Embora os mapas de hash possam alcançar uma maior taxa geral de transferência ao espalhar solicitações por partições, chaves individuais de itens ainda estão limitadas para manter a estabilidade do sistema. Se a maior parte do seu tráfego direciona-se a uma única chave de item, essa chave ainda pode ser estrangulada.
- Para escalar efetivamente e evitar esses limites por chave, implemente o sharding de chaves. Espalhe leituras e gravações de maneira uniforme entre várias chaves de itens para reduzir gargalos e manter um desempenho suave.

Por essa razão, se você não precisa de funcionalidade de ordenação ou "primeiro a entrar, primeiro a sair", os mapas de hash geralmente são a melhor escolha para uma estrutura de dados de armazenamento de memória. Para mais informações, consulte as melhores práticas.