Mejores prácticas para almacenes 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í.

Utiliza estas prácticas para organizar y gestionar datos confiables, escalables y observables a lo largo de su ciclo de vida.

Organiza tus datos

Crea menos almacenes de datos

Los almacenes de datos se comportan de manera similar a las tablas en bases de datos. Utiliza un conjunto pequeño y fijo de almacenes de datos y organiza los registros dentro de ellos por clave. Por ejemplo, almacena el perfil de cada jugador en un solo almacén de datos PlayerData en lugar de crear un almacén de datos para cada jugador.

Usa una o pocas claves por jugador

Almacena los datos persistentes de cada jugador bajo una clave siempre que los datos se ajusten al límite de tamaño de objeto de 4 MB. Por ejemplo, utiliza una clave como User_123456 en el almacén de datos PlayerData. Este patrón reduce las solicitudes, te permite actualizar valores relacionados de manera atómica y facilita la comprensión de las reversas.

Si diferentes partes de los datos de un jugador tienen diferentes patrones de acceso o se acercan a los límites de tamaño o rendimiento por clave, divide el registro en un pequeño número de claves determinísticas. Mantén los datos que deben cambiar de manera atómica en la misma clave.

Usa patrones y prefijos de clave estáticos

Construye nombres de clave a partir de identificadores estables y patrones estáticos, como User_{UserId}. No utilices nombres de visualización u otros valores que puedan cambiar. Los patrones estáticos hacen que las claves sean predecibles en todos los servidores y herramientas. Para los almacenes de datos, también permiten que el procesamiento automatizado del derecho a ser olvidado identifique los datos de los jugadores.

Utiliza prefijos para agrupar claves relacionadas. Por ejemplo, una experiencia que admite múltiples perfiles de personajes podría usar User_123456/Profile/Warrior y User_123456/Profile/Mage. Luego puedes pasar User_123456/Profile a ListKeysAsync() para listar los perfiles de ese jugador.

Los ámbitos son otra forma de subdividir un almacén de datos. Un ámbito antepone una cadena a cada clave en esa instancia de almacén de datos, y el valor predeterminado es global.

Evalúa los módulos de almacén de datos

Los módulos de almacén de datos de terceros son siempre una opción, y en muchos casos pueden ser preferibles a construir sistemas desde cero. Antes de adoptar uno, revisa su propiedad, estado de mantenimiento y conjuntos de características. Entiende cómo acceder y migrar tus datos sin el módulo.

Reduce y distribuye solicitudes

Almacena datos de jugadores en memoria

Carga los datos de un jugador al inicio de una sesión y mantén una copia local en el servidor para el juego. Actualiza la copia local en lugar de enviar una solicitud al almacén de datos por cada cambio. Guárdalo periódicamente, cuando el jugador se desconecte, cuando el servidor se apague y en puntos críticos como el procesamiento de compras. Elige un intervalo de guardado periódico que se mantenga dentro de tus límites de solicitud y sea más corto que cualquier expiración de bloqueo de sesión; la muestra de datos de jugador y compras utiliza 180 segundos.

Escalonar solicitudes recurrentes

No inicies solicitudes recurrentes desde cada servidor en el mismo horario. Antes de comenzar un bucle de frecuencia fija, asigna a cada servidor o jugador un desplazamiento inicial aleatorio. Para bucles de sondeo o coordinación que no requieren una cadencia exacta, añade un jitter aleatorio acotado a cada intervalo. Estos patrones distribuyen las solicitudes a lo largo del tiempo y reducen los picos de tráfico sincronizados.

Reintentar fallos transitorios

Envuelve las solicitudes en pcall() y reintenta los fallos transitorios con retroceso exponencial. Añade jitter aleatorio a cada retraso para que los servidores no reintenten simultáneamente. Limita el retraso y el número de intentos, y no reintentes errores causados por solicitudes inválidas o operaciones que ya no pueden proporcionar resultados útiles.

Procesa las reintentos del almacén de datos en orden para cada clave. Una solicitud más antigua que reintenta después de que una solicitud más nueva tenga éxito puede sobrescribir datos más nuevos. También ten en cuenta las escrituras con resultados desconocidos: una llamada fallida significa que el servidor no recibió una respuesta exitosa, pero el backend podría haber completado la escritura. Para más información, consulta Códigos de error y límites del almacén de datos y Reintentos.

Prefiere UpdateAsync sobre SetAsync

Prefiere UpdateAsync() cuando una escritura dependa del valor actual o cuando múltiples servidores puedan escribir la misma clave. UpdateAsync() lee el último valor en tu callback antes de escribir, lo que reduce las actualizaciones perdidas. SetAsync() sobrescribe la clave sin leer primero y puede causar inconsistencias si dos servidores escriben al mismo tiempo.

Utiliza SetAsync() cuando crees una nueva clave o reemplaces un valor que no dependa del valor anterior. Para una comparación de los dos métodos, consulta Set vs update.

Fragmentar claves calientes

Cada clave tiene límites de rendimiento de lectura y escritura. Si un registro lógico alcanza consistentemente estos límites después de que reduces solicitudes innecesarias, fragmentalo en claves determinísticas. Elige un fragmento estable de un identificador, como User_{UserId}_Inventory_{ShardId}, para que cada servidor dirija los mismos datos al mismo fragmento.

La fragmentación hace que mantener la consistencia y realizar migraciones futuras sea más complejo. No fragmentes datos que se ajusten dentro de una clave y permanezcan por debajo de sus límites de rendimiento.

Construye un flujo de trabajo de operaciones

Utiliza las herramientas disponibles juntas:

  1. Observa. Utiliza el Tablero de Observabilidad de Almacenes de Datos para rastrear solicitudes, estado de respuesta, rendimiento y almacenamiento. Configura alertas personalizadas para métricas importantes del almacén de datos para que tu equipo pueda responder a fallos sostenidos o crecimiento inesperado. Las notificaciones del Creator Hub también te informan cuando el almacenamiento se acerca o excede los límites e incluyen orientación y enlaces a tableros.
  2. Inspecciona. Utiliza Administrador de Almacenes de Datos para examinar almacenes de datos, claves, uso de almacenamiento y costos estimados. Si la experiencia tiene más de 100 almacenes de datos, la lista de Almacenes de Datos no muestra el tamaño y el conteo de claves. Utiliza Open Cloud o el Procesador por Lotes de Almacenes de Datos para esas métricas.
  3. Remedia. Utiliza el Administrador de Almacenes de Datos para registros individuales. Utiliza las APIs de almacén de datos de Open Cloud o el Procesador por Lotes de Almacenes de Datos para flujos de trabajo repetibles o a gran escala.
  4. Escala intencionadamente. Primero reduce el almacenamiento y las solicitudes innecesarias. Si el uso legítimo excede las cuotas predeterminadas, evalúa Servicios Extendidos.

Open Cloud y los servidores de juegos comparten el presupuesto de solicitudes a nivel de experiencia. Limita la tasa de scripts operativos de Open Cloud para que no interfieran con el tráfico en vivo.

Gestiona el ciclo de vida de los datos

Utiliza versiones de almacén de datos en lugar de crear una nueva clave para cada revisión. Solo la última versión de una clave cuenta para el uso de almacenamiento, y las versiones te permiten inspeccionar o restaurar valores anteriores.

Utiliza almacenes en memoria para datos temporales y que cambian rápidamente. Los datos del almacén en memoria expiran automáticamente y no se suman al almacenamiento del almacén de datos persistente.

Elimina datos de prueba cuando finalicen las pruebas y elimina datos de eventos expirados o características retiradas. Después de marcar un almacén de datos para eliminación, hay un período de 30 días durante el cual puedes restaurarlo. Después de esos 30 días, Roblox elimina permanentemente el almacén de datos. Para más información, consulta Administrador de Almacenes de Datos.

Configura el procesamiento del derecho a ser olvidado

Configura el procesamiento automatizado del derecho a ser olvidado (RTBF) para los datos de los jugadores que siguen patrones de almacén de datos y claves estáticas. El RTBF automatizado es el flujo de trabajo preferido porque Roblox aplica tus plantillas de eliminación cuando procesa una solicitud elegible.

Si el RTBF automatizado no admite tu esquema de datos, utiliza el webhook de derecho a la eliminación para ejecutar un flujo de trabajo de eliminación personalizado. Verifica que cualquiera de los flujos de trabajo elimine todos los datos de jugadores coincidentes.

©2026 Roblox Corporation. Roblox, el logotipo de Roblox y "Powering Imagination" son algunas de nuestras marcas registradas y no registradas en los Estados Unidos y otros países.