Con el lanzamiento de la estructura de datos MemoryStoreHashMap, Roblox eliminó todos los límites existentes para las estructuras de datos individuales y los reemplazó con un límite de sincronización global "per- partition" único. El límite exacto flota según los valores internos y cómo el proceso de sincronización automática distribuye sus datos, pero generalmente permite un uso más alto antes de sincronizar, especialmente para los mapas
Particiones
La API de almacenamiento de memoria almacena los datos en particiones , que son solo subdivisiones del almacenamiento. Cuando escribes un artículo en un tiendade memoria, ese artículo se almacena en exactamente una partición. Las particiones están completamente gestionadas por la API de almacenamiento de memoria; no necesitas administrarlas tú mismo.
Asignación de Partición
El almacenamiento de partición es diferente según la estructura de datos en la que se almacena un artículo. Para los mapas y colas ordenados, cada estructura de datos se asigna una partición única.
Por ejemplo, considere un juego de carnaval con un mapa ordenado llamado PlayerScores y una cola llamada PlayerLine de jugadores esperando para jugar el juego:
A diferencia de los mapas y colas clasificados, los mapas de hash se asignan a múltiples particiones, y los datos se distribuyen automáticamente entre estas particiones. Si agrega un mapa de hash llamado Prizes , las particiones pueden parecer como esto:
Nota cómo el mapa de hashes existe en todas las particiones, y cada partición tiene algunos subconjuntos de artículos.
Límites
Tener un límite de per-partición permite una mayor capacidad de procesamiento para todas las estructuras de datos. También favorece a los mapas de hashes, porque se distribuyen en todas las particiones.
Por ejemplo, considere un límite de 150,000 solicitudes por minuto (RPM):
- En el mejor de los casos, un mapa ordenado y una cola tienen un límite de 150,000 RPM, porque cada uno de ellos reside en una sola partición.
- Las solicitudes para cifrar mapas se extienden a través de las llaves de los elementos, que a su vez se extienden a través de las particiones, para que los mapas de cifrar tengan un límite efectivo mucho mayor antes de acelerar, muchas veces que el de las otras estructuras de datos.
Por esta razón, si no necesitas la funcionalidad de clasificación o "primeros en, últimos fuera" de los mapas, los hashes de mapas generalmente son la mejor elección para una estructura de datos de memoria. Para obtener más información, see Mejores Prácticas .