Escalando tu base de datos con ReadySet

Rate this content
Bookmark

La base de datos puede ser una de las partes más difíciles de escalar en una aplicación web. Muchos proyectos terminan utilizando sistemas de caché ad-hoc que son complejos, propensos a errores y costosos de construir. ¿Qué pasaría si pudieras implementar un sistema de caché listo para usar para mejorar el rendimiento y la optimización de consultas sin necesidad de realizar cambios en el código de tu aplicación?


Únete a los desarrolladores Aspen Smith y Nick Marino para ver cómo puedes cambiar una línea de configuración en tu aplicación y utilizar ReadySet para escalar el rendimiento de tus consultas en órdenes de magnitud hoy mismo.


FAQ

ReadySet es un sistema de almacenamiento en caché diseñado para bases de datos MySQL y PostgreSQL. Permite crear cachés para consultas SQL individuales de forma rápida y fácil, sin necesidad de realizar cambios significativos en la aplicación, más allá de algunos ajustes de configuración.

ReadySet mejora el rendimiento de las aplicaciones al permitir una carga extremadamente rápida de las consultas almacenadas en caché, con mejoras de velocidad reportadas de hasta 25,000 veces. Esto reduce significativamente la latencia, haciendo que la experiencia del usuario sea más rápida y eficiente.

ReadySet aborda los desafíos de escalabilidad asociados con el aumento del volumen de datos y tráfico, principalmente mejorando el rendimiento de lectura de bases de datos cuando se alcanzan los límites de un solo servidor. Ofrece una solución alternativa a la optimización de consultas, el uso de réplicas de lectura y la construcción de soluciones de almacenamiento en caché personalizadas.

ReadySet es muy flexible y se integra fácilmente con aplicaciones existentes, ya que utiliza el mismo protocolo que MySQL y PostgreSQL. No requiere cambios de código en las aplicaciones, solo ajustes menores en la configuración para redirigir las solicitudes a ReadySet en lugar de la base de datos original.

Las principales ventajas de ReadySet incluyen su capacidad de plug-and-play, la flexibilidad para activar o desactivar cachés para consultas específicas, y su alta escalabilidad sin imponer carga adicional en la base de datos principal. Además, ofrece baja latencia en las respuestas de caché y puede manejar actualizaciones en tiempo real sin reintroducir datos.

Configurar ReadySet para una aplicación existente generalmente implica ejecutar ReadySet apuntando a la base de datos deseada y luego cambiar la configuración de la aplicación para que apunte a ReadySet, ajustando el puerto y la URL si es necesario. Esto permite que la aplicación utilice ReadySet para el manejo de caché sin cambios significativos en el código.

Aspen Smith
Aspen Smith
Nick Marino
Nick Marino
33 min
12 Apr, 2023

Comments

Sign in or register to post your comment.

Video Summary and Transcription

ReadySet es una solución de caché lista para usar que mejora el rendimiento de la base de datos y la optimización de consultas. Admite la escalabilidad a múltiples nodos sin carga adicional en la base de datos y garantiza actualizaciones de caché en tiempo real. ReadySet acelera significativamente las consultas y reduce el tiempo de consulta, lo que lo convierte en un cambio de juego para las aplicaciones web. No está diseñado para aplicaciones con una gran carga de escritura, pero funciona mejor para cargas de lectura intensiva. Se fomenta la retroalimentación de la comunidad y hay disponible una versión en la nube de ReadySet para uso en producción.

1. Introducción a la escalabilidad con ReadySet

Short description:

Vamos a hablar sobre cómo escalar tu base de datos con ReadySet. Explicaremos el problema que resuelve y haremos una demostración de su uso. Luego abriremos la sesión para preguntas.

Hola a todos. Soy Nick Marino. Hola, soy Griffin Smith. Y vamos a hablar sobre cómo escalar tu base de datos con ReadySet. Para resumir, vamos a comenzar dando un poco de información de fondo, explicar cuál es el problema que ReadySet intenta resolver y cómo lo hace. Luego, Griffin hará una demostración que muestra cómo usar ReadySet con una aplicación del mundo real y te dará una idea de algunos de los beneficios de rendimiento y características que puedes esperar ver allí. Y finalmente, después de eso, abriremos la sesión para preguntas que puedan tener.

2. Introducción a ReadySet

Short description:

ReadySet es un sistema de almacenamiento en caché para MySQL y PostgreSQL que te permite crear cachés para consultas SQL individuales sobre la marcha, lo que resulta en mejoras significativas de velocidad. El problema que resuelve es la dificultad de escalar una base de datos cuando tu aplicación se vuelve popular. Comenzar con una base de datos relacional de un solo servidor es común, pero a medida que tu idea tiene éxito, la base de datos lucha por mantenerse al día. Usar MySQL o Postgres inicialmente es conveniente, pero cuando se alcanzan los límites de escalabilidad, se convierte en un problema desafiante de resolver. El punto crítico para la experiencia del usuario en una aplicación web es el rendimiento de lectura, con la carga de una página web que se siente instantánea en alrededor de 200 milisegundos. Para escalar las lecturas de la base de datos, puedes optimizar las consultas, usar réplicas de lectura o considerar otras opciones.

Muy bien. Primero, ¿qué es ReadySet? Si miras el sitio web de ReadySet, dice que es un sistema de almacenamiento en caché para MySQL y PostgreSQL, lo cual es cierto. Cuando vi el sitio web por primera vez, pensé que tal vez era solo una envoltura alrededor de Redis o Memcached o una copia de algún tipo de sistema de almacenamiento en caché popular existente. Entonces, es algo así como un producto genial y útil, pero tal vez no algo revolucionario. Resulta que en realidad es mucho más que eso. Te permite crear rápidamente y fácilmente cachés para consultas SQL individuales sobre la marcha sin necesidad de realizar cambios en tu aplicación, aparte de tal vez un cambio de configuración o dos. Y, ya sabes, no quiero revelar demasiado de la demostración más adelante, pero en una de las consultas que hemos evaluado, vemos una mejora de velocidad de alrededor de 25,000 veces. Así que eso es bastante emocionante, creo. Pero antes de entrar en todo eso, hablemos del problema. Creo que esta cita resume bastante bien el problema que estamos tratando de resolver, así que la leeré en voz alta. La capa de acceso a datos de una idea millonaria comienza como una base de datos relacional de un solo servidor. No te preocupas mucho por los problemas de escalabilidad, tienes una aplicación que escribir. Sin embargo, si tu idea millonaria termina valiendo incluso 100,000, es probable que encuentres que tu base de datos lucha por mantenerse al día con la escala. Y esta es ciertamente una historia con la que personalmente estoy familiarizado. Sé que muchas personas ahí fuera también lo están. Cuando estás comenzando una startup o un sitio web y estás en una etapa muy temprana, no tienes realmente el tiempo y los recursos para construir algo utilizando la última moda de no-SQL, escalable del día, y no hay nada de malo en usar MySQL o Postgres. Son gratuitos, son muy populares, son fáciles de usar. Y cuando solo estás tratando de obtener una versión inicial simple de algo, un producto mínimo viable un prototipo, como quieras llamarlo, no quieres pasar demasiado tiempo lidiando con sistemas de escalabilidad realmente complejos y sofisticados. Solo quieres obtener algo que funcione. Pero, por supuesto, si y cuando alcanzas los límites de escalabilidad en tu database, puede ser un problema bastante complicado de resolver. Y es un buen problema para tener, pero a menudo ocurre en un punto bastante crítico en la vida de un sitio web o una organización. Entonces, si estamos analizando el problema al que nos enfrentamos aquí, solo quiero enmarcarlo de manera muy breve. Cuando estás escalando una aplicación web en producción, creo que lo primero en lo que realmente te importa a medida que alcanzas los límites de escalabilidad de un solo servidor de database es el rendimiento de lectura. Creo que para la mayoría de las aplicaciones web, ese es el punto crítico para la experiencia del usuario, hay un número que se cita y hay algunas investigaciones bastante extensas que muestran que cargar una página web se siente instantáneo en alrededor de 200 milisegundos. Y esos 200 milisegundos, la mayor parte del tiempo lo pasas leyendo datos de tu database. Entonces, si necesitas escalar esas lecturas de la database, si necesitas que esas lecturas de la database sean más rápidas, hay tres opciones principales de alto nivel que vas a tomar. Podrías pasar mucho tiempo optimizando tus consultas. Eso puede ser tan simple como agregar índices o algo más complicado. Podrías usar una réplica de lectura para escalar la capacidad de consulta. Entonces, si estás recibiendo muchas consultas, podrías usar réplicas de lectura para aumentar el número de consultas que puedes manejar.

Watch more workshops on topic

Cómo Resolver Problemas del Mundo Real con Remix
Remix Conf Europe 2022Remix Conf Europe 2022
195 min
Cómo Resolver Problemas del Mundo Real con Remix
Featured Workshop
Michael Carter
Michael Carter
- ¿Errores? Cómo renderizar y registrar tus errores del servidor y del clientea - Cuándo devolver errores vs lanzar excepcionesb - Configurar servicios de registro como Sentry, LogRocket y Bugsnag- ¿Formularios? Cómo validar y manejar formularios de varias páginasa - Usar zod para validar los datos del formulario en tu acciónb - Pasar por formularios de varias páginas sin perder datos- ¿Atascado? Cómo solucionar errores o funciones faltantes en Remix para que puedas continuara - Usar patch-package para solucionar rápidamente tu instalación de Remixb - Mostrar herramienta para gestionar múltiples parches y seleccionar solicitudes de extracción abiertas- ¿Usuarios? Cómo manejar aplicaciones de varios inquilinos con Prismaa - Determinar el inquilino por el host o por el usuariob - Base de datos múltiples o base de datos única/múltiples esquemasc - Asegura que los datos del inquilino siempre estén separados de los demás
Modelado de Bases de Datos Relacionales para GraphQL
GraphQL Galaxy 2020GraphQL Galaxy 2020
106 min
Modelado de Bases de Datos Relacionales para GraphQL
Top Content
WorkshopFree
Adron Hall
Adron Hall
En esta masterclass profundizaremos en el modelado de datos. Comenzaremos con una discusión sobre varios tipos de bases de datos y cómo se mapean a GraphQL. Una vez que se haya establecido esa base, el enfoque se desplazará a tipos específicos de bases de datos y cómo construir modelos de datos que funcionen mejor para GraphQL en varios escenarios.
Índice de contenidosParte 1 - Hora 1      a. Modelado de Datos de Bases de Datos Relacionales      b. Comparando Bases de Datos Relacionales y NoSQL      c. GraphQL con la Base de Datos en menteParte 2 - Hora 2      a. Diseño de Modelos de Datos Relacionales      b. Relación, Construcción de Tablas Multijoin      c. Complejidades de Consulta de Modelado de Datos Relacionales y GraphQL
Prerrequisitos      a. Herramienta de modelado de datos. El formador utilizará dbdiagram      b. Postgres, aunque no es necesario instalar esto localmente, ya que estaré utilizando una imagen de Dicker de Postgres, de Docker Hub para todos los ejemplos      c. Hasura
Crear una aplicación React Native de pila completa con Oracle 23ai
React Summit 2024React Summit 2024
37 min
Crear una aplicación React Native de pila completa con Oracle 23ai
WorkshopFree
Doug Drechsel
Doug Drechsel
En este masterclass, configurarás un entorno de pila completa local y crearás una aplicación móvil React Native que se ejecuta en esa pila.
Agenda:- Instalar el contenedor Docker de Oracle 23ai- Construir y ejecutar Parse Server con el nuevo adaptador de almacenamiento de Oracle- Construir y ejecutar una aplicación móvil React Native de Walking History en la pila
Walking History es una aplicación React Native que te permite caminar por la ciudad de Nueva York (o simularlo en un emulador de dispositivos) y te muestra la atracción o punto de interés más cercano.
Construyendo una aplicación en tiempo real con Remix y Supabase
Remix Conf Europe 2022Remix Conf Europe 2022
156 min
Construyendo una aplicación en tiempo real con Remix y Supabase
Workshop
Jon Meyers
Jon Meyers
Supabase y Remix hacen que sea fácil construir aplicaciones fullstack. En este masterclass, vamos a aprender cómo usar Supabase para implementar autenticación y autorización en una aplicación en tiempo real con Remix. Únete a Jon Meyers mientras construye esta aplicación desde cero y demuestra cómo puedes aprovechar el poder de las bases de datos relacionales!
Construyendo un backend serverless nativo de GraphQL con Fauna
GraphQL Galaxy 2021GraphQL Galaxy 2021
143 min
Construyendo un backend serverless nativo de GraphQL con Fauna
WorkshopFree
Rob Sutter
Shadid Haque
2 authors
¡Bienvenido a Fauna! Este masterclass ayuda a los desarrolladores de GraphQL a construir aplicaciones de alto rendimiento con Fauna que se escalan a cualquier tamaño de base de usuarios. Comienzas con lo básico, utilizando solo el playground de GraphQL en el panel de Fauna, luego construyes una aplicación completa de pila completa con Next.js, agregando funcionalidad a medida que avanzas.

En la primera sección, Comenzando con Fauna, aprendes cómo Fauna crea automáticamente consultas, mutaciones y otros recursos basados en tu esquema de GraphQL. Aprendes cómo realizar tareas comunes con GraphQL, cómo usar el lenguaje de consulta de Fauna (FQL) para realizar tareas más avanzadas.

En la segunda sección, Construyendo con Fauna, aprendes cómo Fauna crea automáticamente consultas, mutaciones y otros recursos basados en tu esquema de GraphQL. Aprendes cómo realizar tareas comunes con GraphQL, cómo usar el lenguaje de consulta de Fauna (FQL) para realizar tareas más avanzadas.
Construyendo APIs GraphQL con la biblioteca Neo4j GraphQL
GraphQL Galaxy 2021GraphQL Galaxy 2021
175 min
Construyendo APIs GraphQL con la biblioteca Neo4j GraphQL
WorkshopFree
William Lyon
William Lyon
Este masterclass explorará cómo construir APIs GraphQL respaldadas por Neo4j, una base de datos de grafos nativa. La biblioteca Neo4j GraphQL permite a los desarrolladores diseñar e implementar rápidamente APIs GraphQL completamente funcionales sin escribir ningún resolvedor. Este masterclass mostrará cómo utilizar la biblioteca Neo4j GraphQL para construir una API GraphQL en Node.js, incluyendo la adición de lógica personalizada y reglas de autorización.

Tabla de contenidos:
- Visión general de GraphQL y construcción de APIs GraphQL
- Construcción de APIs GraphQL en Node.js respaldadas por una base de datos de grafos nativa utilizando la biblioteca Neo4j GraphQL
- Adición de lógica personalizada a nuestra API GraphQL utilizando la directiva de esquema @cypher y resolvedores personalizados
- Adición de reglas de autenticación y autorización a nuestra API GraphQL

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

TypeScript y la Base de Datos: ¿Quién Posee los Tipos?
TypeScript Congress 2022TypeScript Congress 2022
27 min
TypeScript y la Base de Datos: ¿Quién Posee los Tipos?
Top Content
Todos amamos escribir tipos en TypeScript, pero a menudo nos encontramos teniendo que escribir tipos en otro lenguaje también: SQL. Esta charla presentará la historia de elige-tu-propia-aventura que enfrentas al combinar TypeScript y SQL y te guiará a través de los compromisos entre las diversas opciones. Combinados de manera deficiente, TypeScript y SQL pueden ser duplicativos y una fuente de dolores de cabeza, pero si se hacen bien, pueden complementarse entre sí al abordar las debilidades de cada uno.
Nunca usaría un ORM
JSNation 2023JSNation 2023
29 min
Nunca usaría un ORM
Top Content
¿Qué es un ORM? Una herramienta de Mapeo Objeto-Relacional (ORM) es una biblioteca para mapear una tabla SQL a una Clase. En la mayoría de los casos, los ORM obligan a los usuarios a estructurar su código para tener objetos Modelo que incluyen tanto el acceso a los datos como la lógica de negocio.
Había una vez, hice varios proyectos usando ORM siguiendo la creencia común de que simplificarían el desarrollo y mantenimiento de los proyectos. Estaba equivocado. Los ORM a menudo son un obstáculo a superar para la parte más compleja de un proyecto.
Como la siguiente parada de mi viaje, recomendé a las personas que usaran los lenguajes nativos de sus bases de datos, por ejemplo, SQL. Esto funciona muy bien en su mayor parte, pero crea una lucha bastante grande: hay mucho código de plantilla que escribir que puede ser bastante tedioso. Estaba equivocado, de nuevo.
Hoy les presento Platformatic DB.
Acceso a la base de datos en el Edge con Cloudflare Workers y Prisma
Node Congress 2022Node Congress 2022
31 min
Acceso a la base de datos en el Edge con Cloudflare Workers y Prisma
Las funciones en el Edge están empujando los límites de la computación sin servidor, pero con nuevas herramientas surgen nuevos desafíos. Debido a sus limitaciones, las funciones en el Edge no permiten conectarse a bases de datos populares como PostgreSQL y MySQL. En esta charla, aprenderás cómo puedes conectar e interactuar con tu base de datos desde Cloudflare Workers utilizando el Proxy de Datos de Prisma.
Puedes consultar las diapositivas de la charla de Alex aquí.
Lleva la búsqueda basada en IA a tu aplicación web
JSNation 2023JSNation 2023
31 min
Lleva la búsqueda basada en IA a tu aplicación web
ChatGPT causó sensación en el mundo tecnológico. Todo el mundo habla de ello, desde tu CTO hasta tu peluquero (al menos el mío lo hace). Y hay muchas razones por las que todos deberíamos estar emocionados al respecto y muchas otras innovaciones de IA/ML.
Pero, ¿cómo las incorporas a tu pila tecnológica, a tu sitio web/backend, para trabajar con tus datos y proporcionar búsqueda impulsada por IA y aumento de datos?
Existe una nueva generación de bases de datos nativas de IA, que utilizan modelos de aprendizaje profundo para encontrar respuestas a consultas en lenguaje natural. Estamos hablando de la capacidad de buscar a través de texto, imágenes, videos, ADN o cualquier dato no estructurado, todo con una sola consulta.
La regla general es: si hay un modelo de ML, podemos buscar a través de él.
Únete a mí para aprender sobre los bloques fundamentales (LLMs y vector embeddings, Bases de datos vectoriales), cómo interactúan todos ellos y, lo más importante, cómo puedes construir algo tú mismo con tecnología de código abierto.
Y, por supuesto!!! Habrá una demostración de codificación en vivo, donde te guiaré a través de la experiencia de construir una búsqueda basada en IA, con Weaviate, una base de datos vectorial de código abierto, y agregarla a una aplicación. Ahora la pregunta... ¿deberíamos hacer esto en Angular, React, Vue o simplemente JS puro? ;)
#QueLosDiosesDeLaDemoEsténConNosotros
Persistencia de Remix con DynamoDB
Remix Conf Europe 2022Remix Conf Europe 2022
41 min
Persistencia de Remix con DynamoDB
Remix es el mejor marco de trabajo de React para trabajar con la segunda característica más importante de la web: los formularios. (Los anclajes son más importantes). Pero construir formularios es la parte divertida: la parte complicada es lo que sucede cuando un consumidor web envía un formulario. No la lógica de validación del lado del cliente, sino la lógica básica del backend para crear, leer, actualizar, destruir y listar registros en una base de datos duradera (CRUDL). Las bases de datos pueden ser intimidantes. ¿Cuál elegir? ¿Cuáles son los compromisos? ¿Cómo modelar los datos para consultas rápidas? En esta charla, aprenderemos sobre el increíblemente poderoso AWS DynamoDB. Dynamo promete una latencia de un solo dígito de milisegundos sin importar cuántos datos tenga almacenados, la escalabilidad es completamente transparente y viene con un generoso nivel gratuito. Dynamo es un nivel diferente de base de datos, pero no tiene por qué ser intimidante.
Software Local-Primero Con ElectricSQL
React Advanced Conference 2023React Advanced Conference 2023
29 min
Software Local-Primero Con ElectricSQL
Local-primero es un nuevo paradigma para desarrollar aplicaciones, donde tus componentes hablan con una base de datos local incorporada y obtienes reactividad instantánea, sincronización multiusuario y soporte sin conflictos para trabajar sin conexión. ElectricSQL es una nueva plataforma de código abierto para el desarrollo local-primero de los inventores de CRDTs. Esta charla introduce el desarrollo local-primero y muestra cómo puedes desarrollar aplicaciones locales-primero reales hoy con React + ElectricSQL.