2 puntos por GN⁺ 2024-10-21 | Aún no hay comentarios. | Compartir por WhatsApp

Lista de lectura sobre sistemas distribuidos

Introducción

  • Lo más difícil de los sistemas distribuidos es cambiar la forma de pensar.
  • Esta lista reúne materiales útiles para impulsar ese cambio.

Materiales que invitan a reflexionar

  • Una colección de textos que ofrece nuevas perspectivas sobre el diseño de sistemas a gran escala.
  • Harvest, Yield and Scalable Tolerant Systems: aplicación práctica de la teoría CAP.
  • On Designing and Deploying Internet Scale Services: diseño y despliegue de servicios a escala de Internet.
  • The Perils of Good Abstractions: la dificultad de construir APIs/interfaces perfectas.
  • Chaotic Perspectives: la imprevisibilidad y el paralelismo en sistemas a gran escala.
  • Data on the Outside versus Data on the Inside: dos enfoques para la gestión de datos.
  • Memories, Guesses and Apologies: la incertidumbre en el procesamiento de datos.
  • SOA and Newton's Universe: un enfoque filosófico de la arquitectura orientada a servicios.
  • Building on Quicksand: construir sistemas sobre bases inestables.
  • Why Distributed Computing?: por qué es necesaria la computación distribuida.
  • A Note on Distributed Computing: conceptos básicos de la computación distribuida.
  • Stevey's Google Platforms Rant: la experiencia de Google con plataformas SOA.

Latencia

  • La existencia de la latencia y cómo lidiar con ella.
  • Latency Exists, Cope!: el impacto arquitectónico de la latencia.
  • Latency - the new web performance bottleneck: el nuevo cuello de botella del rendimiento web.
  • The Tail At Scale: problemas de latencia en sistemas a gran escala.

Amazon

  • Contenido interesante sobre la cultura y la organización de Amazon más que sobre la tecnología.
  • A Conversation with Werner Vogels: la transición hacia una arquitectura basada en servicios.
  • Discipline and Focus: más sobre la transición arquitectónica de Amazon.
  • Vogels on Scalability: la visión de Vogels sobre la escalabilidad.

Google

  • Tecnologías de vanguardia en sistemas distribuidos.
  • MapReduce: modelo para el procesamiento de datos a gran escala.
  • Chubby Lock Manager: gestión distribuida de locks.
  • Google File System: sistema de archivos a gran escala.
  • BigTable: sistema de almacenamiento distribuido.
  • Data Management for Internet-Scale Single-Sign-On: gestión de datos para inicio de sesión único a escala de Internet.
  • Dremel: análisis interactivo de datasets a escala web.
  • Large-scale Incremental Processing Using Distributed Transactions and Notifications: procesamiento incremental a gran escala mediante transacciones distribuidas.
  • Megastore: almacenamiento escalable y de alta disponibilidad para servicios interactivos.
  • Spanner: base de datos distribuida global.
  • Photon: unión de flujos de datos continuos.
  • Mesa: sistema de data warehousing en tiempo real.

Modelos de consistencia

  • Encontrar el equilibrio entre consistencia y disponibilidad en el diseño de sistemas.
  • CAP Conjecture: compensaciones entre consistencia, disponibilidad y tolerancia a particiones.
  • Consistency, Availability, and Convergence: el límite superior de la consistencia.
  • CAP Twelve Years Later: la evolución de la teoría CAP.
  • Consistency and Availability: la relación entre consistencia y disponibilidad.
  • Eventual Consistency: consistencia eventual.
  • Avoiding Two-Phase Commit: cómo evitar el commit en dos fases.
  • 2PC or not 2PC, Wherefore Art Thou XA?: las limitaciones del commit en dos fases.
  • Life Beyond Distributed Transactions: gestión de datos más allá de las transacciones distribuidas.
  • If you have too much data, then 'good enough' is good enough: NoSQL y el futuro de la teoría de datos.
  • Starbucks doesn't do two phase commit: mecanismos asíncronos.
  • You Can't Sacrifice Partition Tolerance: la importancia de la tolerancia a particiones.
  • Optimistic Replication: enfoque de consistencia débil.

Teoría

  • Artículos que explican elementos importantes del diseño de sistemas distribuidos.
  • Distributed Computing Economics: la economía de la computación distribuida.
  • Rules of Thumb in Data Engineering: reglas prácticas en ingeniería de datos.
  • Fallacies of Distributed Computing: falacias de la computación distribuida.
  • Impossibility of distributed consensus with one faulty process: teoría FLP.
  • Unreliable Failure Detectors for Reliable Distributed Systems: detectores de fallos para sistemas distribuidos confiables.
  • Lamport Clocks: sincronización del tiempo en sistemas distribuidos.
  • The Byzantine Generals Problem: el problema de los generales bizantinos.
  • Lazy Replication: uso de semántica en servicios distribuidos.
  • Scalable Agreement: ordenamiento como servicio.
  • Scalable Eventually Consistent Counters over Unreliable Networks: contadores escalables con consistencia eventual sobre redes no confiables.

Lenguajes y herramientas

  • Problemas de construir sistemas distribuidos con tecnologías específicas.
  • Programming Distributed Erlang Applications: construcción de aplicaciones distribuidas con Erlang y OTP.

Infraestructura

  • Principios sólidos para la gestión del tiempo en Internet.

Almacenamiento

  • Consistent Hashing and Random Trees: hashing consistente y árboles aleatorios.
  • Amazon's Dynamo Storage Service: el servicio de almacenamiento Dynamo de Amazon.
  • Paxos Consensus: entender el algoritmo Paxos.
  • The Part-Time Parliament: fundamentos de Paxos.
  • Paxos Made Simple: explicación sencilla de Paxos.
  • Paxos Made Live: perspectiva de ingeniería sobre Paxos.
  • Revisiting the Paxos Algorithm: revisión del algoritmo Paxos.
  • How to build a highly available system with consensus: cómo construir un sistema de alta disponibilidad con consenso.
  • Reconfiguring a State Machine: reconfiguración de una máquina de estados.
  • Implementing Fault-Tolerant Services Using the State Machine Approach: implementación de servicios tolerantes a fallos mediante el enfoque de máquina de estados.

Otros artículos sobre consenso

  • Mencius: construcción de máquinas de estados replicadas eficientes para WAN.
  • In Search of an Understandable Consensus Algorithm: versión ampliada del algoritmo RAFT.

Protocolos de rumor (Epidemic Behaviours)

  • La potencia de los protocolos de comunicación basados en rumores.
  • Astrolabe: tecnología para monitoreo de sistemas distribuidos y minería de datos.
  • Epidemic Computing at Cornell: computación epidémica en Cornell.
  • Fighting Fire With Fire: superar límites de escalabilidad usando rumores aleatorios.
  • Bi-Modal Multicast: multicast bimodal.
  • ACM SIGOPS Operating Systems Review: redes basadas en rumores.
  • SWIM: protocolo de membresía de grupos de procesos de estilo epidémico, débilmente consistente y escalable.

P2P

  • Chord: protocolo escalable de búsqueda peer-to-peer para aplicaciones de Internet.
  • Kademlia: sistema de información peer-to-peer basado en la métrica XOR.
  • Pastry: ubicación y enrutamiento de objetos distribuidos para sistemas peer-to-peer a gran escala.
  • PAST: utilidad de almacenamiento peer-to-peer persistente a gran escala construida sobre Pastry.
  • SCRIBE: infraestructura multicast distribuida a nivel de aplicación y a gran escala construida sobre Pastry.

Resumen de GN⁺

  • Los sistemas distribuidos son un campo que exige cambiar la forma de pensar para resolver problemas complejos.
  • A través de diversos materiales y artículos, ofrece una comprensión profunda del diseño y la implementación de sistemas distribuidos.
  • Esta lista cubre diversos aspectos de los sistemas distribuidos, en especial aporta ideas sobre los modelos de consistencia y los problemas de latencia.
  • Puede ser un recurso útil para desarrolladores o investigadores interesados en sistemas distribuidos.
  • Como proyectos con funciones similares, se recomiendan Apache Kafka y Apache Cassandra.

Aún no hay comentarios.

Aún no hay comentarios.