---
url: 'https://metadrop.net/es/articulos/lo-necesitas-saber-antes-activar-state-cache-drupal-103'
title: 'Lo que necesitas saber antes de activar el State Cache en Drupal 10.3'
author: 'Eduardo Morales'
date: '2024-10-11T07:23:20+00:00'
updated: '2024-11-11T12:04:11+00:00'
type: article
summary: 'State Cache, Drupal 10.3.0 introduce una nueva mejora en el manejo del State API, pero antes de activarla te decimos cuales son las claves para que el rendimiento del sitio esté optimizado y no haya problemas con esta nueva configuración.'
tags:
  - 'Drupal Planet'
image: 'https://metadrop.net/sites/default/files/styles/full/public/2024-10/drupal-cache-flag-not-set.png.webp?itok=hy6dbu9F'
published: true
og:
  determiner: Automatic
  site_name: Metadrop
  'image:url': 'https://metadrop.net/sites/default/files/styles/full/public/2024-10/drupal-cache-flag-not-set.png.webp?itok=hy6dbu9F'
  'image:type': image/png
  'image:width': '492'
  'image:height': '464'
  'image:alt': 'Lo que necesitas saber antes de activar el State Cache en Drupal 10.3'
  street_address: 'Calle Manuel Luna, 12, 3 Dcha'
  locality: Madrid
  region: Madrid
  postal_code: '28020'
  country_name: España
  email: hola@metadrop.net
  phone_number: '910053180'
schema:
  '@context': 'https://schema.org'
  '@graph':
    -
      '@type': Article
      '@id': 'https://metadrop.net/es/articulos/lo-necesitas-saber-antes-activar-state-cache-drupal-103#article'
      name: 'Lo que necesitas saber antes de activar el State Cache en Drupal 10.3'
      headline: 'Lo que necesitas saber antes de activar el State Cache en Drupal 10.3'
      description: 'State Cache, Drupal 10.3.0 introduce una nueva mejora en el manejo del State API, pero antes de activarla te decimos cuales son las claves para que el rendimiento del sitio esté optimizado y no haya problemas con esta nueva configuración.'
      image:
        '@type': ImageObject
        url: 'https://metadrop.net/sites/default/files/styles/full/public/2024-10/drupal-cache-flag-not-set.png.webp?itok=hy6dbu9F'
        width: '492'
        height: '464'
      datePublished: '2024-10-16T09:23:21+0200'
      dateModified: '2024-11-11T13:04:11+0100'
      author:
        '@type': Person
        name: 'Eduardo Morales'
      publisher:
        '@type': Organization
        '@id': 'https://metadrop.net/#organization'
      mainEntityOfPage: 'https://metadrop.net/es/articulos/lo-necesitas-saber-antes-activar-state-cache-drupal-103'
    -
      '@type': Organization
      '@id': 'https://metadrop.net/#organization'
      url: 'https://metadrop.net/'
      name: Metadrop
      sameAs:
        - 'https://www.drupal.org/metadrop'
        - 'https://twitter.com/metadrop'
        - 'https://asociaciondrupal.es/partner/metadrop'
        - 'https://www.linkedin.com/company/metadrop'
      logo:
        '@type': ImageObject
        url: 'https://metadrop.net/themes/custom/mdrop_radix/logo-metadrop-500-500.jpg'
        width: '500'
        height: '500'
    -
      '@type': ItemPage
      '@id': 'https://metadrop.net/es/articulos/lo-necesitas-saber-antes-activar-state-cache-drupal-103'
      breadcrumb:
        '@type': BreadcrumbList
        itemListElement:
          -
            '@type': ListItem
            position: 1
            name: Inicio
            item: 'https://metadrop.net/es'
          -
            '@type': ListItem
            position: 2
            name: 'Artículos expertos sobre Drupal y tecnología'
            item: 'https://metadrop.net/es/articulos'
      publisher:
        '@type': Organization
        '@id': 'https://metadrop.net/#organization'
---
 1. [Artículos](https://metadrop.net/es/articulos)
 
  

# Lo que necesitas saber antes de activar el State Cache en Drupal 10.3

Miércoles 16 de Octubre de 2024

 

 



State Cache, Drupal 10.3.0 introduce una nueva mejora en el manejo del State API, pero antes de activarla te decimos cuales son las claves para que el rendimiento del sitio esté optimizado y no haya problemas con esta nueva configuración.



   



Seguramente hayas actualizado Drupal a la versión 10.3.0 y hayas notado en los reportes un nuevo mensaje acerca del State Cache:

 

 

El mensaje dice lo siguiente:

> La flag de State Cache $settings\['state\_cache'\] no está activa. Se recomienda habilitarla en el settings.php a no ser de que se almacenen demasiadas claves. A partir de Drupal 11, State Cache estará habilitado por defecto.

## ¿Qué es el State API?

Comencemos entendiendo que es el State API. El State API en Drupal es un sistema que permite almacenar y recuperar pequeños fragmentos de datos que son necesarios para la operación del sitio, pero que no forman parte de la configuración general. A diferencia de la Config API, que se centra en datos que deben ser consistentes a través de diferentes entornos (como producción, desarrollo, etc.), la State API está destinada a datos específicos del entorno que pueden cambiar más dinámicamente y no necesitan sincronizarse entre diferentes entornos.

## ¿Por qué necesita ser cacheado?

Actualmente las entradas de **State API** se almacenan en la **tabla 'key\_value'**, si nunca has visto esta tabla, es un almacén genérico y flexible de tipo clave-valor que es ampliamente utilizado en Drupal para diversos propósitos de almacenamiento de datos, una gran caja de sastre. Esto significa que esta **la tabla no está optimizada para su acceso y lectur**a.

El cambio principal es que `\\Drupal\\Core\\State\\State` ahora se extiende a `\\Drupal\\Core\\Cache\\CacheCollector`. Esto significa que los elementos del State API que más se consultan pueden ser recuperados más eficientemente desde la caché en lugar de realizar consultas frecuentes a la base de datos. Esto es particularmente beneficioso para sitios con un volumen de tráfico alto donde la eficiencia es clave para mantener un rendimiento óptimo.

## ¿Y si movemos toda la tabla de key\_value a caché?

Dependiendo del sistema que usemos, el tamaño que se destina a la caché puede variar y es limitado, hacer un uso intensivo puede degradar el rendimiento del sitio, perjudicando la obtención de información que realmente es necesaria.

El State API de Drupal está diseñado para manejar pequeños fragmentos de datos que necesitan ser accedidos con frecuencia y que no cambian consistentemente a través de los entornos. Por ejemplo:

- Flag de **mantenimiento**: Habilitar el mantenimiento del sitio.
- Última ejecución de **cron**: Fecha y hora de la última ejecución de cron.
- Datos para optimizar consultas de **rutas**: Información utilizada para mejorar el enrutamiento.

No obstante, ciertos usos no son óptimos para la State API. Por ejemplo, una `flag` de desarrollo que solo se accede durante una reconstrucción de contenedores debería evitarse, por ejemplo la depuración de twig. En su lugar, se debe usar el servicio de `key\_value` para información de gran tamaño o que no requiere acceso frecuente con su debida colección.

## Entonces, ¿Habilito el State cache y ya está?

Drupal da la opción de configurar la caché del State API para evitar problemas en sitios existentes con muchas entradas o de gran tamaño, esta característica debe habilitarse explícitamente mediante la flag de configuración:

```php
$settings['state_cache'] = TRUE;
```

Esto garantiza que el sitio aproveche la nueva funcionalidad de caché. Si no se establece explícitamente, Drupal mostrará el mensaje de advertencia que hemos mencionado al principio. Es importante mencionar que [en Drupal 11+, la caché de estado está activada permanentemente](https://www.drupal.org/node/3443018), eliminando la opción de configurar esta flag.

## ¿Cómo sé si debería activarla?

Antes de activar esta opción tienes que verificar el uso actual del State API, se puede hacer usando la siguiente consulta en base de datos:

```sql
SELECT COUNT(*), SUM(LENGTH(value)) FROM key_value WHERE collection = 'state';
```

Si el entorno tiene más de 100 entradas o un tamaño total del valor superior a 100,000, considera revisar y optimizar las entradas específicas. Utiliza la siguiente consulta para obtener más detalles:

```sql
SELECT name, LENGTH(value) FROM key_value WHERE collection = 'state' 
ORDER BY LENGTH(value) DESC LIMIT 100;
```

## ¿Qué hago con las entradas demasiado grandes o que no encajan en el State API?

Cómo hemos comentado, las entradas de state API hasta ahora se almacenaban en la tabla 'key\_value', si se desean mantener se puede cambiar la colección a la que pertenecen reemplazando el servicio de State API por el de 'key\_value'.

## Conclusión

Este cambio mejora significativamente la eficiencia y el rendimiento de los sitios de Drupal al optimizar el manejo de los elementos de estado mediante la caché. Aunque la mayoría de los desarrolladores no necesitarán hacer cambios en su código, es crucial revisar la configuración del sitio para asegurarse de que se aprovecha adecuadamente de estas nuevas capacidades. La optimización de consultas y la estructura de caché puede aportar grandes beneficios en la experiencia de los usuarios finales y la gestión de recursos del servidor.

**Documentación:**

- [Change record - State service now uses a cache collector for performance](https://www.drupal.org/node/3177901).
- [Documentación State API](https://www.drupal.org/docs/develop/drupal-apis/state-api/state-api-overview)





- Eduardo Morales
    
    Senior Drupal developer
 
[Servicios de Auditoría Web](https://metadrop.net/es/servicios/auditoria-web " See Servicios de Auditoría Web")

Auditorías web independientes de accesibilidad, SEO, rendimiento, seguridad y experiencia de usuario — en Drupal o cualquier plataforma. Se obtiene un plan de corrección priorizado y accionable con esfuerzo estimado.

 

 Ver más