Descripción general del almacenamiento web

Es importante elegir los mecanismos de almacenamiento adecuados, tanto para el almacenamiento local del dispositivo como para el almacenamiento del servidor basado en la nube. Un buen motor de almacenamiento garantiza que tu información se guarde de forma confiable, reduce el ancho de banda y mejora la capacidad de respuesta. La estrategia correcta de almacenamiento en caché es un componente fundamental para habilitar experiencias de Web móvil sin conexión.

En este artículo, se proporciona una base breve para evaluar las APIs y los servicios de almacenamiento. Luego, se incluye una tabla de comparación y algunas pautas generales. En el futuro cercano, planeamos agregar recursos para comprender los temas de almacenamiento seleccionados con mayor profundidad.

Taxonomía de almacenamiento

Comencemos por comprender algunas de las dimensiones con las que podemos analizar el almacenamiento de datos para las apps web. Más adelante, usaremos este marco de referencia para enumerar y evaluar las numerosas opciones de almacenamiento disponibles para los desarrolladores web.

Modelo de datos

El modelo para almacenar unidades de datos determina cómo se organizan los datos de forma interna, lo que afecta la facilidad de uso, el costo y el rendimiento de las solicitudes de almacenamiento y recuperación.

  • Estructurados: Los datos almacenados en tablas con campos predefinidos, como es típico de los sistemas de administración de bases de datos basados en SQL, se prestan bien para consultas flexibles y dinámicas, en las que es posible que no se conozca de antemano el rango completo de tipos de consultas. Un ejemplo destacado de un almacén de datos estructurado en el navegador es IndexedDB.

  • Clave-valor: Los almacenes de datos de clave-valor y las bases de datos NoSQL relacionadas ofrecen la capacidad de almacenar y recuperar datos no estructurados indexados por una clave única. Los almacenes de datos de clave-valor son como tablas hash, ya que permiten el acceso en tiempo constante a datos indexados y opacos. Algunos ejemplos destacados de almacenes de datos de clave-valor son la API de Cache en el navegador y Apache Cassandra en el servidor.

  • Flujos de bytes: Este modelo simple almacena datos como una cadena de bytes opaca de longitud variable, lo que deja cualquier forma de organización interna en la capa de aplicación. Este modelo es particularmente bueno para los sistemas de archivos y otros BLOB de datos organizados de forma jerárquica. Entre los ejemplos destacados de almacenes de datos de flujo de bytes, se incluyen los sistemas de archivos y los servicios de almacenamiento en la nube.

Persistencia

Los métodos de almacenamiento para las apps web se pueden analizar según el alcance en el que los datos se hacen persistentes.

  • Persistencia de la sesión: Los datos de esta categoría se conservan solo mientras permanezca activa una sola sesión web o pestaña del navegador. Un ejemplo de un mecanismo de almacenamiento con persistencia de sesión es la API de Session Storage.

  • Persistencia del dispositivo: Los datos de esta categoría se conservan en todas las sesiones y pestañas o ventanas del navegador, dentro de un dispositivo en particular. Un ejemplo de un mecanismo de almacenamiento con persistencia en el dispositivo es la API de Cache.

  • Persistencia global: Los datos de esta categoría se conservan en todas las sesiones y dispositivos. Por lo tanto, es la forma más sólida de persistencia de datos. Un ejemplo de un mecanismo de almacenamiento con persistencia global es Google Cloud Storage.

Navegadores compatibles

Los desarrolladores deben elegir la API que mejor se adapte a su dominio de problemas. Sin embargo, también deben tener en cuenta que las APIs estandarizadas y bien establecidas son preferibles a las interfaces personalizadas o de propiedad, ya que suelen tener una vida útil más larga y una mayor compatibilidad. También pueden disfrutar de una base de conocimiento más amplia y un ecosistema de desarrolladores más rico.

Transacciones

A menudo, es importante que una colección de operaciones de almacenamiento relacionadas tenga éxito o falle de forma atómica. Tradicionalmente, los sistemas de administración de bases de datos admiten esta función con el modelo de transacciones, en el que las actualizaciones relacionadas se pueden agrupar en unidades arbitrarias. Si bien no siempre es necesario, esta es una función conveniente y, a veces, esencial en algunos dominios de problemas.

Síncrono/asíncrono

Algunas API de Storage son síncronas en el sentido de que las solicitudes de almacenamiento o recuperación bloquean el subproceso activo hasta que se completa la solicitud. Esto es particularmente oneroso en los navegadores web, en los que la solicitud de almacenamiento comparte el subproceso principal con la IU. Por motivos de eficiencia y rendimiento, se prefieren las API de Storage asíncronas.

Depura el almacenamiento en las Herramientas para desarrolladores de Chrome

Consulta los siguientes documentos para obtener más información sobre el uso de las Herramientas para desarrolladores de Chrome para inspeccionar y depurar la API de almacenamiento web que elijas. Las APIs que no se mencionan aquí no son compatibles con las Herramientas para desarrolladores o no corresponden.

Si usas varias API de Storage, consulta la función Borrar almacenamiento de Herramientas para desarrolladores. Esta función te permite borrar varias tiendas con un solo clic. Consulta Borra service workers, almacenamiento, bases de datos y cachés para obtener más información.

Próximos pasos…

Ahora que revisamos algunas de las formas relevantes de pensar en los mecanismos de almacenamiento y comparamos las APIs y los servicios más populares disponibles en la actualidad, pronto agregaremos más contenido para profundizar en uno o más temas de interés: