Rendimiento máximo de IndexedDB con buckets de almacenamiento

El equipo de Chrome realizó varias mejoras relacionadas con el rendimiento en la implementación de IndexedDB (IDB). Una de estas mejoras fue trasladar el almacén de respaldo de cada instancia a una secuencia separada (puedes pensar en esto, aproximadamente, como un subproceso separado). Esto significa que el uso simultáneo de IDB ahora es más rápido, ya sea desde el mismo sitio o desde sitios cruzados. En esta publicación, se brindan todos los detalles y se explica qué debes hacer para aprovechar este cambio, que está disponible a partir de Chrome 126.

Entre sitios

Si tu uso de IDB es en varios sitios, no necesitas hacer nada. Una vez que se haya realizado este movimiento a nivel del navegador y el almacén de respaldo de cada instancia de IDB se haya movido a una secuencia separada, la mejora del rendimiento se producirá sin que tengas que hacer nada.

Same-site

Para obtener esta mejora del rendimiento para el uso en el mismo sitio, debes separar el uso de tu IDB en diferentes instancias, es decir, depósitos de almacenamiento. En el siguiente ejemplo de código, se muestra cómo puede funcionar:

const request = indexedDB.open('main', 1);
request.onsuccess = (event) => {
  /* Do stuff with the main instance. */
};

// By default, just use the regular IDB instance.
let idb = indexedDB;
// Open a separate storage bucket if the API is supported.
if ('storageBuckets' in navigator) {
  const bucket = await navigator.storageBuckets.open('logs-bucket');
  // Get access to the storage bucket's IDB instance.
  idb = bucket.indexedDB;
}
const bucketRequest = idb.open('logs', 1);
bucketRequest.onsuccess = (event) => {
  /* Do stuff with the separate instance. */
};

Navegadores compatibles

La mejora del rendimiento que se menciona en esta entrada del blog es una mejora progresiva que puedes aprovechar cuando la API de Storage Buckets sea compatible con tu navegador (a partir de Chrome 122) y cuando las instancias de IDB se fragmenten, a partir de Chrome 126.

Herramientas para desarrolladores

Si inspeccionas las instancias de IDB con las Herramientas para desarrolladores de Chrome, puedes ver el bucket de almacenamiento utilizado en la sección Nombre del bucket, que se destaca con un cuadro rojo en la siguiente captura de pantalla.

Las Herramientas para desarrolladores de Chrome inspeccionan la sección IndexedDB. Hay dos bases de datos de registros, el nombre del bucket de almacenamiento

Agradecimientos

Evan Stade y Rachel Andrew revisaron esta publicación.