Particiones y distribución de datos

Este contenido se traduce usando la IA (Beta) y puede contener errores. Para ver esta página en inglés, haz clic en aquí.

Con el lanzamiento de la estructura de datos MemoryStoreHashMap, Roblox eliminó todos los límites existentes para estructuras de datos individuales y los reemplazó con un único límite de aceleración "por partición" global. El límite exacto fluctúa según los valores internos y cómo el proceso de particionamiento automático distribuye sus datos, pero generalmente permite un uso mucho más alto antes de reducir la velocidad, particularmente para los mapas de hash. Este nuevo límite permite un uso flexible de los almacenes de almacenamiento en todas las estructuras de datos.

Particiones

La API de MemoryStores almacena datos en particiones **, que son solo subdivisiones de almacenamiento. Cuando escribe un elemento en un almacén de tienda, ese elemento se almacena en exactamente una partición. Las particiones son completamente administradas por la API de MemoryStores; no es necesario administrarlas usted mismo.

Asignación de particiones

El almacenamiento de particiones es diferente según la estructura de datos en la que se almacena un elemento. Para mapas y colas ordenados, a cada estructura de datos se le asigna una única partición.

Por ejemplo, considera 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 ordenados, los mapas de hash se asignan a múltiples particiones, y los datos se distribuyen automáticamente a través de estas particiones. Si agregaras un mapa de hash llamado Prizes, las particiones podrían verse así:

Tenga en cuenta que el mapa de hash existe en todas las particiones, y cada partición tiene algún subconjunto de elementos.

Límites

Tener un límite por partición permite un mayor rendimiento a todas las estructuras de datos. También favorece los mapas hash, porque están distribuidos en todas las particiones.

Por ejemplo, considere un límite de 150,000 solicitudes por minuto (RPM) por partición:

  • En el mejor de los casos, un mapa ordenado y una cola están limitados a 150.000 RPM, porque cada uno reside en una sola partición.
  • Las solicitudes de mapas hash se distribuyen a través de las llaves de los elementos, que se distribuyen a través de las particiones, por lo que los mapas hash pueden tener un límite efectivo mucho más alto antes de reducir la velocidad, muchas veces el de las otras estructuras de datos.

Por esta razón, si no necesita clasificar o la funcionalidad "primero en, primero en," los mapas hash suelen ser la mejor opción para una estructura de datos de almacenamiento de memoria. Para obtener más información, consulte Mejores prácticas .