Sharding
Sharding es la práctica de optimizar los sistemas de administración de bases de datos separando las filas o columnas de una tabla de base de datos más grande en varias tablas más pequeñas. Las tablas nuevas se llaman » fragmentos «(o particiones), y cada tabla nueva tiene el mismo esquema pero filas únicas (como es el caso de» fragmentación horizontal») o tiene un esquema que es un subconjunto apropiado del esquema de la tabla original (como es el caso de»fragmentación vertical»).
¿Por Qué Se Utiliza el Fragmentación?
El sharding es un concepto común en arquitecturas de bases de datos escalables. Al fragmentar una tabla más grande, puede almacenar los nuevos fragmentos de datos, llamados fragmentos lógicos, en varios nodos para lograr una escalabilidad horizontal y un rendimiento mejorado. Una vez que el fragmento lógico se almacena en otro nodo, se denomina fragmento físico.
Al ejecutar una base de datos en una sola máquina, eventualmente alcanzará el límite de la cantidad de recursos informáticos que puede aplicar a cualquier consulta, y obviamente alcanzará una cantidad máxima de datos con los que puede trabajar de manera eficiente. Al escalar horizontalmente, puede habilitar un diseño de base de datos flexible que aumente el rendimiento de dos maneras clave:
- Con el procesamiento en paralelo masivo, puede aprovechar todos los recursos informáticos de su clúster para cada consulta.
- Dado que los fragmentos individuales son más pequeños que la tabla lógica en su conjunto, cada máquina tiene que escanear menos filas al responder a una consulta.
La fragmentación horizontal es efectiva cuando las consultas tienden a devolver un subconjunto de filas que a menudo se agrupan. Por ejemplo, las consultas que filtran datos en función de intervalos de fechas cortos son ideales para el fragmentación horizontal, ya que el intervalo de fechas limitará necesariamente las consultas solo a un subconjunto de los servidores.
El sharding vertical es efectivo cuando las consultas tienden a devolver solo un subconjunto de columnas de los datos. Por ejemplo, si algunas consultas solicitan solo nombres y otras solo direcciones, los nombres y las direcciones se pueden compartir en servidores separados.
Además, las bases de datos fragmentadas pueden ofrecer mayores niveles de disponibilidad. En el caso de una interrupción en una base de datos sin mostrar, toda la aplicación no se puede usar. Con una base de datos fragmentada, solo las partes de la aplicación que dependían de los fragmentos de datos faltantes son inutilizables. En la práctica, las bases de datos fragmentadas a menudo mitigan aún más el impacto de tales interrupciones al replicar fragmentos de copia de seguridad en nodos adicionales.
¿Cuál es la Diferencia entre Fragmentación y Partición?
El sharding y el particionado tratan de dividir un conjunto de datos grande en subconjuntos más pequeños. La diferencia es que el fragmentación implica que los datos se distribuyen en varios equipos, mientras que el particionamiento no lo hace. El particionamiento consiste en agrupar subconjuntos de datos dentro de una sola instancia de base de datos. En muchos casos, los términos fragmentación y partición se usan incluso como sinónimos, especialmente cuando están precedidos por los términos «horizontal» y «vertical».»Por lo tanto,» fragmentación horizontal «y» partición horizontal » pueden significar lo mismo.
Temas relacionados
Computación en Memoria
Edge Computing
Grid Computing
Lectura adicional
Hazelcast IMDG 3.12 Presenta el Subsistema CP