Definición detallada de GFS & Chubby & BigTable & relación mutua


¡Dingdu! Aquí está la recopilación de los materiales del curso de estudio de Xiao Ah Woo. No es tan buena una buena memoria como una mala pluma, hoy también es un día para avanzar. ¡Avancemos juntos!
Inserte la descripción de la imagen aquí

1. Definición de GFS & Chubby & BigTable

1. Acerca de GFS

GFS (Google 文件系统)
GFS 也就是 google File System,Google公司为了存储海量搜索数据而设计的专用文件系统。


GFS是一个可扩展的分布式文件系统,用于大型的、分布式的、对大量数据进行访问的应用。
它运行于廉价的普通硬件上,并提供容错功能。
它可以给大量的用户提供总体性能较高的服务。

GFS divide los nodos del sistema en tres tipos de funciones:

Inserte la descripción de la imagen aquí

La novedad de GFS no es la sorprendente nueva tecnología que utiliza, sino que utiliza clústeres de ordenadores comerciales baratos para construir un sistema de archivos distribuido, que ha resistido la prueba de aplicaciones prácticas al tiempo que reduce costes.

一个GFS包括一个主服务器(master)和多个块服务器(chunk server),这样一个GFS能够同时为多个客户端应用程序(Application)提供文件服务。

Inserte la descripción de la imagen aquí

El archivo se divide en bloques fijos, que el servidor principal organiza para ser almacenados en el disco duro local del servidor de bloques. El servidor principal registra la ubicación de almacenamiento y otros datos, y es responsable de mantener y administrar el sistema de archivos, incluido el arrendamiento de bloques, el reciclaje de bloques de basura y la migración de bloques entre diferentes servidores de bloques. Además, el servidor principal también interactúa periódicamente con cada servidor de bloques a través de mensajes para monitorear el estado de ejecución o emitir comandos. El programa de aplicación lee y escribe datos de la aplicación al interactuar con el servidor principal y el servidor de bloques. La interacción entre la aplicación y el servidor principal se limita a los metadatos, que son algunos datos de control, y otras operaciones de datos interactúan directamente con el servidor de bloques. de. Esta arquitectura que separa el control del negocio es más extensa y exitosa en soluciones de productos de Internet.

2. Acerca de Chubby

Google Chubby是一个分布式锁服务,Chubby底层一致性实现就是以Paxos为基础的。

Chubby是一个面向松耦合分布式系统的锁服务,通常用于为一个由大量小型计算机构成的松耦合分布式系统提供高可用的锁服务。
一个分布式锁服务的目的是允许他的客户端进程同步彼此的操作,并对当前所处环境的基本状态信息达成一致。

El escenario más típico es 进行服务器的Master选举. GFS utiliza Chubby para implementar la elección del servidor maestro de GFS.

Estructura del sistema:
Inserte la descripción de la imagen aquí
un clúster Chubby típico, o celda Chubby, generalmente consta de 5 servidores. Estos servidores réplica adoptan el protocolo Paxos, y un servidor se determina como el Maestro mediante votación. Una vez que un servidor se convierte en el Maestro, Chubby garantizará que otros servidores no se convertirán en el Maestro por un período de tiempo, y este período de tiempo se denomina arrendamiento. Durante el proceso de ejecución, el servidor maestro continuará renovando la concesión. Si el servidor maestro falla, los servidores restantes elegirán un nuevo maestro para generar un nuevo servidor maestro.

在实际运行中,只有Master服务器才能对数据进行写操作,
其他服务器使用Paxos协议从Master服务器上同步数据库数据的更新。

El cliente Chubby sondeará todos los servidores si el servidor es el servidor Master. Durante el proceso de consulta, los servidores que no son Master enviarán la identificación del servidor Master al cliente (almacenar datos pequeños), que puede localizar el Master muy rápidamente.

Una vez que el cliente localiza el maestro, todas las solicitudes se enviarán al maestro. Para la solicitud de escritura, Chubby Master la transmitirá a todos los servidores de réplica utilizando un protocolo de consenso y responderá al cliente después de que más de la mitad de las máquinas acepten la solicitud. Para las solicitudes de lectura, el servidor maestro puede manejarlas por separado.

Durante el funcionamiento de Chubby, el servidor maestro sondeará periódicamente la lista de DNS y percibirá rápidamente el cambio de dirección del servidor. Otros servidores de réplica del clúster obtienen la lista de direcciones de servidor más reciente mediante la réplica.

关于Chubby详细参见博文:
https://www.jianshu.com/p/3ce17952e4f3

3. Acerca de BigTable

Bigtable 是 Goole 开发的基于 GFS 和 Chubby 的分布式存储系统。

Bigtable分布式数据存储系统Fue desarrollado por Google para sus datos estructurados internos masivos. 云存储技术Es la tercera tecnología clave de computación en la nube de Google. Es el modelo para el desarrollo de sistemas de almacenamiento distribuido en la era de la nube. Se ha aplicado en más de 60 productos y proyectos de Google. .

Bigtable está diseñado para poder 可靠地处理PB级的海量数据hacerlo posible 部署在千台机器上. Bigtable tiene las características de alta confiabilidad, alto rendimiento, escalabilidad, etc. Se basa en algunas de las características de las bases de datos paralelas y las bases de datos de memoria, pero Bigtable proporciona una interfaz completamente diferente. Bigtable no admite un modelo de datos relacional completo, pero proporciona a los usuarios un modelo de datos simple para que los clientes puedan controlar dinámicamente la distribución y el formato de los datos .

Bigtable是一个稀疏、分布式、持久化存储的多维有序映射表,
表的索引是行关键字、列关键字和时间戳 。

Todos los elementos almacenados en Bigtable son matrices de bytes sin analizar, y el modelo de datos es el siguiente:

 (row:string,column:string, time:int64)→string

Inserte la descripción de la imagen aquí

El modelo de datos se seleccionó después de un análisis cuidadoso de los diversos usos del sistema Bigtable [1]. Por ejemplo, una tabla Webtable que almacena una gran cantidad de páginas web e información relacionada. Webtable usa URL como palabras clave de fila, usa algunos atributos de la página web como nombres de columna, almacena el contenido de la página web en la columna de contenido y usa la marca de tiempo para identificar la página web. Diferentes versiones de la misma página. En Bigtable, el ejemplo de almacenamiento de Webtable se muestra en la siguiente figura.

Inserte la descripción de la imagen aquí
Comparación de BigTable y bases de datos relacionales paralelas:

Inserte la descripción de la imagen aquí

2. Acerca de la relación entre GFS, Chubby y BigTable

Bigtable系统实现了数据的分布式管理和结构的组织 。
Bigtable包含了3个主要的组件:
链接到每个客户的库,一个Master服务器和多个Tablet服务器。

根据负载情况的变化,Bigtable可以动态的向集群中添加或者删除Tablet服务器 。

Inserte la descripción de la imagen aquí
Bigtable依赖一个高可用和持续分布式锁服务器Chubby进行管理. Chubby proporciona un espacio de nombres que contiene directorios y archivos pequeños. Cada directorio o archivo puede considerarse como un candado, y las operaciones de lectura y escritura de archivos son todas atómicas. Cada programa cliente de Chubby mantiene una sesión con el servicio Chubby.

Bigtable使用Google的分布式文件系统(GFS)存储日志文件和数据文件. Los clústeres de Bigtable generalmente se ejecutan en un grupo de máquinas compartidas. Bigtable se basa en el sistema de administración de clústeres para programar tareas, administrar recursos en máquinas compartidas, manejar fallas de máquinas y monitorear el estado de las máquinas.

¡Finalizando!
¡Más registros de aprendizaje del conocimiento del curso llegarán más tarde!

就酱,嘎啦!

Inserte la descripción de la imagen aquí

Nota:

1. La vida es diligente, no se gana nada.

2. Para obtener detalles sobre BigTable, consulte:

https://baike.baidu.com/item/BigTable/3707131?fr=aladdin

3. Consulte la publicación del blog para obtener detalles sobre Chubby:

https://www.jianshu.com/p/3ce17952e4f3

4. Para obtener detalles sobre GFS, consulte:

https://baike.baidu.com/item/GFS/1813072?fr=aladdin

Supongo que te gusta

Origin blog.csdn.net/qq_43543789/article/details/108662777
Recomendado
Clasificación