Fragmentación de base de datos 101

Este blog es parte de la serie donde discutimos 101 conceptos de Ground Zero para una audiencia que tiene un conocimiento inicial limitado. Este artículo pertenece a la serie de nivel intermedio, ya que implica comprender la fragmentación de la base de datos, que se utiliza principalmente para distribuir datos en un solo nodo a través de múltiples nodos particionados para mejorar la escalabilidad y el rendimiento de la aplicación empresarial.

Algunos de los blogs anteriores de la Serie 101 son los siguientes:

Estrategia de almacenamiento en caché 101
CORS 101 Disyuntor 101 Colas de prioridad 101 Comunicación asíncrona 101 Diseño de base de datos 101



¿Qué es fragmentación?

La fragmentación es un patrón de diseño en el que las bases de datos grandes se dividen en varios nodos, y cada nodo sirve datos para un subconjunto de clientes/entidades divididas lógicamente por una clave/id . Algunas de las razones para particionar las bases de datos son los límites de almacenamiento vertical en servidores individuales, el rendimiento lento debido a las necesidades de alta simultaneidad, tener nodos ubicados geográficamente para mejorar la latencia de extremo a extremo para atender a los clientes .

Mediante la distribución de datos en múltiples fragmentos, las aplicaciones distribuidas a gran escala pueden generar resiliencia a largo plazo frente a las crecientes necesidades de datos presentes y futuras que están limitadas por SKU premium de bases de datos alojadas en la nube.

Técnicas de fragmentación

Se utilizan diferentes técnicas lógicas para decidir encontrar el fragmento correcto para una solicitud de cliente de extremo a extremo. La clave que ayuda a tomar esta decisión se denomina clave Shard y debe ser un campo estático a lo largo del proceso de producción. Las claves fragmentadas pueden ser singulares o compuestas según las necesidades.

Se consideran numerosos factores, como la frecuencia de búsqueda en la base de datos, el costo de los fragmentos agregados en las últimas etapas , etc. antes de producir una estrategia adecuada para la estrategia general de fragmentación. Independientemente de las técnicas, se advierten dos principios clave: evitar la migración de datos entre fragmentos y distribuir los datos de un solo arrendatario en varios fragmentos. Algunas de las técnicas comunes son las siguientes

Estrategia de alcance

En la estrategia de rango, las entidades que pertenecen a un rango particular (1-N) son atendidas por un fragmento determinado. Se utiliza para agrupar entidades relacionadas. Las transacciones de exclientes basadas en el rango de fechas se atienden utilizando el mismo fragmento, por lo tanto, la obtención de informes agregados mensuales se simplifica consultando nodos individuales.

Alcance Estrategia sobre Cardinalidad de Clientes

Es más fácil de implementar y las consultas de rango son adecuadas para operaciones por lotes para casos de uso comercial. Sin embargo, esta estrategia no garantiza una distribución óptima del tráfico entre los fragmentos y algunos de los nodos pueden servir a grandes multiplicadores de tráfico de clientes.

Estrategia de búsqueda

El enfoque de búsqueda o también denominado basado en directorio utiliza una tabla de búsqueda para identificar el fragmento correcto para una entidad de base de datos determinada. Un buen caso de uso para esta estrategia sería tener bases de datos basadas en inquilinos atendidas por una plataforma común. La tabla de búsqueda se modifica a medida que se agregan/eliminan inquilinos de la plataforma.

Un enfoque fácil de implementar, sin embargo, este enfoque tiene una sobrecarga adicional del paso de búsqueda de fragmentos que puede afectar la latencia de extremo a extremo. En el caso de inquilinos compartidos en el mismo fragmento, se recomienda mantener un mapeo de fragmentos virtuales adicional para minimizar el impacto del reequilibrio de fragmentos .

Estrategia de hash

Esta estrategia utiliza una función basada en hash, que toma los atributos del cliente, como el nombre, la IP del cliente, la ubicación geográfica, etc. , para evaluar el fragmento óptimo para el mismo. Su objetivo principal es distribuir uniformemente el TPS general en los N fragmentos para lograr una utilización eficiente de los recursos.

Al igual que un enfoque de búsqueda, tiene limitaciones en la sobrecarga de red adicional para el cálculo de hash, así como también en el problema de reequilibrio de hash. Sin embargo, el uso de un esquema Hashing consistente puede ayudar a superar la última limitación.

Resumen

Sharding sirve un enfoque de diseño de base de datos del sistema de optimización para escalar patrones de diseño distribuidos más allá de los límites verticales de las ofertas de la nube. Combinado de manera efectiva con una distribución de fragmentos geográficos basada en la proximidad, minimiza el radio de explosión de la interrupción y mejora la latencia. La mayoría de las ofertas en la nube, como AWS, Azure, etc. , han utilizado la fragmentación como principio básico para crear sus soluciones de bases de datos nativas multirregionales, como AWS Aurora , Azure Cosmos , etc. , lo que resuelve la sobrecarga operativa de la administración de múltiples nodos por parte de los equipos de ingeniería.

Buscaremos cubrir una inmersión profunda de una de las arquitecturas de Cloud Native Database en un futuro blog avanzado de la serie.

Para recibir comentarios, envíe un mensaje a amit[dot]894[at]gmail[dot]com o comuníquese con cualquiera de los enlaces en https://about.me/amit_raj .

Suggested posts

Conversaciones peligrosas

Conversaciones peligrosas

Si queremos seguir prosperando en este planeta, vamos a tener que tener conversaciones peligrosas. Aquellas que desafían lo que hemos hecho, lo que estamos haciendo y lo que actualmente vamos a seguir haciendo (o planeamos hacer).

3 formas comprobadas de mejorar su habilidad de escritura

Los beneficios de escribir y estrategias para ayudarte a hacerlo

3 formas comprobadas de mejorar su habilidad de escritura

En 2022, con el lanzamiento de GPT-3, la habilidad de escritura parece perder importancia. Con IA, las personas con mala escritura también pueden generar personal de calidad.

Related posts

Recopilación de OSINT para la caza de amenazas

Recopilación de OSINT para la caza de amenazas

¡Hola, entusiastas cibernéticos! Bienvenido de nuevo a la serie OSINT para la caza de amenazas. En el primer artículo, le di una descripción general de OSINT y su importancia en la caza de amenazas.

"La fosa de las Marianas revelada: revelando las aterradoras verdades ocultas del abismo"

"La fosa de las Marianas revelada: revelando las aterradoras verdades ocultas del abismo"

Introducción: Bienvenidos, valientes lectores, a un viaje que nos llevará a las profundidades más oscuras de nuestro planeta. En este blog, profundizamos en el enigmático mundo de la Fosa de las Marianas, descubriendo sus secretos ocultos y descubriendo las verdades escalofriantes que se encuentran debajo de su superficie.

Búsqueda de información sobre nombres de dominio

Un extracto de Small, Sharp Software Tools de Brian P. Hogan

Búsqueda de información sobre nombres de dominio

Cuando realiza una solicitud a facebook.com, su computadora busca el nombre de dominio para traducir ese nombre de dominio en una dirección IP para que su computadora pueda hacer esa conexión.

Cómo salvar el planeta y ganar dinero

Cómo salvar el planeta y ganar dinero

¿Cuántas veces has tirado una botella de plástico, un tarro de cristal, una lata de aluminio o un paquete de energía verde sin pensarlo dos veces? ¿Cuántas veces has deseado poder obtener algo a cambio de reciclarlos? Si usted es como la mayoría de las personas, la respuesta probablemente sea muchas veces. El reciclaje a menudo se ve como una molestia, una tarea o un deber que no brinda ningún beneficio inmediato o tangible.