Red de conocimientos turísticos - Información de alquiler - ¿Cuáles son los artículos clásicos en el campo de los sistemas distribuidos?

¿Cuáles son los artículos clásicos en el campo de los sistemas distribuidos?

Los sistemas distribuidos se han convertido en una de las habilidades esenciales para todo programador en la era de Internet, especialmente después de la llegada de la era del big data. Ha habido muchos estudios y artículos excelentes sobre sistemas distribuidos desde la década de 1980. Solo enumeraré 15 artículos (15 artículos dentro de 15) que creo que son de gran importancia en los últimos 15 años.

1. Sistema de archivos de Google: este es un documento que hace época en el campo de los sistemas de archivos distribuidos. Conceptos como el mecanismo de copia múltiple, el flujo de control y el aislamiento del flujo de datos, y métodos de escritura adicionales en este artículo casi se han convertido en estándares en el campo de los sistemas de archivos distribuidos, y su influencia de gran alcance se puede ver a través de sus más de 5000 citas. El famoso HDFS de Apache Hadoop es una imitación de GFS;

2.MapReduce: procesamiento de datos simplificado en grandes clústeres: este artículo también es una obra maestra de Google. A través de las dos operaciones de Mapear y Reducir, la complejidad de la computación distribuida se simplifica enormemente, lo que permite a cualquier programador que lo necesite escribir programas de computación distribuida. Vale la pena aprender las técnicas utilizadas en él: ¡simples pero no simples! Hadoop también ha creado MapReduce de código abierto basándose en este artículo;

3. Bigtable: sistema de almacenamiento distribuido para datos estructurados: el sistema de tablas distribuidas de Google en el campo NoSQL, el mejor ejemplo de uso del árbol LSM, es ampliamente utilizado. utilizado en el almacenamiento de índices web, gestión de datos de YouTube y otros servicios. El sistema de código abierto correspondiente a Hadoop se llama HBase (también desarrollé un sistema correspondiente llamado BladeCube en mi empresa anterior, y su rendimiento es varias veces mayor que el de HBase);

4. Sistemas distribuidos: el servicio de bloqueo distribuido de Google se basa en el protocolo Paxos. En comparación con los primeros tres artículos, es posible que menos personas conozcan este artículo, pero casi todos los estudiantes de back-end tocan su correspondiente sistema de código abierto zookeeper, y su influencia en realidad no es menor que la de los primeros tres artículos;

5. Aguja en el pajar: el almacenamiento de fotografías de Facebook: El sistema de almacenamiento de fotografías online de Facebook es actualmente una de las mejores soluciones para el almacenamiento de archivos pequeños. Actualmente, Facebook almacena más de 300 PB de datos a través de este sistema y uno de sus hermanos trabaja en este equipo. He escuchado muchas cosas interesantes (desarrollé un sistema pallas similar en mi empresa anterior, que no solo admite réplicas, sino que también admite Reed Solomon-LRC, y el rendimiento se ha optimizado);

6 Almacenamiento de Windows Azure: Servicio de almacenamiento en la nube altamente disponible y consistente: el artículo de introducción general de Windows Azure es un buen artículo que describe la arquitectura de almacenamiento en la nube. La idea de garantizar la disponibilidad y la coherencia a través de capas también me ha brindado mucha información práctica. experiencia.

7. Graph Lab: un nuevo marco para el aprendizaje automático paralelo: marco de aprendizaje automático distribuido CMU basado en computación gráfica. Se han establecido empresas comerciales especializadas y el aprendizaje automático distribuido tiene dos pinceles. Su versión independiente de GraphChi solo tarda de 2 a 3 minutos en descomponer una matriz de un millón de dimensiones;

8. Conjunto de datos distribuidos elásticos: una abstracción tolerante a fallas

Computación de clústeres de memoria. : en realidad chispa. El modelo informático de memoria más popular en los últimos dos años ha simplificado enormemente el marco informático distribuido a través de RDD y linaje. Por lo general, unas pocas líneas de código Scala pueden resolver problemas que miles de líneas de código MapReduce pueden resolver, y existe una tendencia a reemplazar MapReduce;

9. Escalar el aprendizaje automático distribuido con servidores de parámetros: la obra maestra de Baidu. Mariscal Li Mu. En la actualidad, las grandes empresas de aprendizaje distribuido utilizan principalmente ps, que tiene una buena escalabilidad, lo que hace posible el aprendizaje distribuido a gran escala en la era del big data, incluido el modelo de aprendizaje profundo de Google, que también es el marco de aprendizaje distribuido más popular en la actualidad, y el modelo abierto de Douban. El sistema fuente Paracell también es una implementación de ps;

10.dremel: Análisis interactivo de conjuntos de datos a nivel web: el sistema de análisis de datos a gran escala (casi) en tiempo real de Google afirma poder responder a Las solicitudes de análisis para datos de 1 PB en 3 segundos se utilizan internamente para optimizar la velocidad del análisis. Su implementación de código abierto es Drill, que también es muy influyente en el análisis de datos en tiempo real en la industria.

11.pregel: sistema de procesamiento de gráficos a gran escala: el sistema de computación de gráficos a gran escala de Google ha sido el principal sistema informático de Google PageRank durante mucho tiempo y también tiene un gran impacto en el código abierto. (incluidos GraphLab y GraphChi). Gran impacto;

12. Spanner: base de datos distribuida globalmente de Google: esta es la primera base de datos distribuida globalmente, producida por Google. Se introducen muchas consideraciones de diseño de coherencia. En aras de la simplicidad, se utilizan GPS y relojes atómicos para garantizar que el error de tiempo máximo esté dentro de los 20 ns, lo que garantiza la sincronización de las transacciones y tiene una gran importancia de referencia en los sistemas distribuidos.

13.Dynamo: almacenamiento de valores clave de alta disponibilidad de Amazon: la base de datos NoSQL distribuida de Amazon, equivalente a BigTable de Google. A diferencia de BigTable, Dynamo garantiza que AP y C en CAP están débilmente garantizados por el reloj vectorial, y el sistema de código abierto correspondiente es Cassandra;

14.S4: Plataforma de Computación de Flujo Distribuido (Plataforma de Computación de Flujo Distribuido) : Producido por Yahoo El sistema informático de transmisión es uno de los dos sistemas informáticos de transmisión más populares actualmente (el otro es Storm), y también es la principal plataforma informática publicitaria de Yahoo;

15.Storm @Twitter : No hay mucho que decir sobre este sistema, abre una nueva era de la informática en streaming. Es la primera opción para la computación en streaming para casi todas las empresas y definitivamente vale la pena prestarle atención;