2 Punkte von GN⁺ 2024-10-21 | Noch keine Kommentare. | Auf WhatsApp teilen

Leseliste zu verteilten Systemen

Einführung

  • Das Schwierigste an verteilten Systemen ist, die eigene Denkweise zu ändern.
  • Diese Liste sammelt Materialien, die genau diesen Wandel fördern.

Materialien, die zum Nachdenken anregen

  • Eine Sammlung von Texten, die neue Perspektiven auf das Design großer Systeme eröffnen.
  • Harvest, Yield and Scalable Tolerant Systems: Praktische Anwendung der CAP-Theorie.
  • On Designing and Deploying Internet Scale Services: Entwurf und Bereitstellung von Services im Internet-Maßstab.
  • The Perils of Good Abstractions: Die Schwierigkeiten beim Aufbau perfekter APIs/Schnittstellen.
  • Chaotic Perspectives: Unvorhersehbarkeit und Parallelität in großen Systemen.
  • Data on the Outside versus Data on the Inside: Zwei Ansätze für Datenmanagement.
  • Memories, Guesses and Apologies: Unsicherheit in der Datenverarbeitung.
  • SOA and Newton's Universe: Ein philosophischer Zugang zu serviceorientierter Architektur.
  • Building on Quicksand: Systeme auf instabilen Grundlagen aufbauen.
  • Why Distributed Computing?: Warum verteiltes Computing nötig ist.
  • A Note on Distributed Computing: Grundkonzepte des verteilten Computing.
  • Stevey's Google Platforms Rant: Googles Erfahrungen mit SOA-Plattformen.

Latenz

  • Die Existenz von Latenz und wie man mit ihr umgeht.
  • Latency Exists, Cope!: Die architektonischen Auswirkungen von Latenz.
  • Latency - the new web performance bottleneck: Der neue Flaschenhals der Web-Performance.
  • The Tail At Scale: Latenzprobleme in groß angelegten Systemen.

Amazon

  • Interessante Inhalte zu Amazons Kultur und Organisation eher als zur Technik selbst.
  • A Conversation with Werner Vogels: Der Übergang zu servicebasierter Architektur.
  • Discipline and Focus: Weitere Inhalte zu Amazons Architekturwandel.
  • Vogels on Scalability: Vogels' Sicht auf Skalierbarkeit.

Google

  • Modernste Technologien für verteilte Systeme.
  • MapReduce: Ein Modell für Datenverarbeitung im großen Maßstab.
  • Chubby Lock Manager: Verteiltes Lock-Management.
  • Google File System: Ein Dateisystem im großen Maßstab.
  • BigTable: Ein verteiltes Storage-System.
  • Data Management for Internet-Scale Single-Sign-On: Datenmanagement für Single Sign-On im Internet-Maßstab.
  • Dremel: Interaktive Analyse von Datensätzen im Web-Maßstab.
  • Large-scale Incremental Processing Using Distributed Transactions and Notifications: Groß angelegte inkrementelle Verarbeitung mit verteilten Transaktionen.
  • Megastore: Skalierbares, hochverfügbares Storage für interaktive Services.
  • Spanner: Eine global verteilte Datenbank.
  • Photon: Verknüpfung kontinuierlicher Datenströme.
  • Mesa: Ein Data-Warehousing-System in Echtzeit.

Konsistenzmodelle

  • Das Gleichgewicht zwischen Konsistenz und Verfügbarkeit im Systemdesign finden.
  • CAP Conjecture: Zielkonflikte zwischen Konsistenz, Verfügbarkeit und Partitionstoleranz.
  • Consistency, Availability, and Convergence: Die Obergrenzen der Konsistenz.
  • CAP Twelve Years Later: Veränderungen in der CAP-Theorie.
  • Consistency and Availability: Die Beziehung zwischen Konsistenz und Verfügbarkeit.
  • Eventual Consistency: Eventual Consistency.
  • Avoiding Two-Phase Commit: Wie man Two-Phase Commit vermeidet.
  • 2PC or not 2PC, Wherefore Art Thou XA?: Die Grenzen von Two-Phase Commit.
  • Life Beyond Distributed Transactions: Datenmanagement jenseits verteilter Transaktionen.
  • If you have too much data, then 'good enough' is good enough: NoSQL und die Zukunft der Datentheorie.
  • Starbucks doesn't do two phase commit: Asynchrone Mechanismen.
  • You Can't Sacrifice Partition Tolerance: Die Bedeutung von Partitionstoleranz.
  • Optimistic Replication: Ein Ansatz mit lockerer Konsistenz.

Theorie

  • Arbeiten, die wichtige Elemente des Designs verteilter Systeme erklären.
  • Distributed Computing Economics: Die Wirtschaftlichkeit des verteilten Computing.
  • Rules of Thumb in Data Engineering: Faustregeln im Data Engineering.
  • Fallacies of Distributed Computing: Trugschlüsse des verteilten Computing.
  • Impossibility of distributed consensus with one faulty process: FLP-Theorie.
  • Unreliable Failure Detectors for Reliable Distributed Systems: Failure Detectors für zuverlässige verteilte Systeme.
  • Lamport Clocks: Zeitsynchronisierung in verteilten Systemen.
  • The Byzantine Generals Problem: Das byzantinische Problem.
  • Lazy Replication: Nutzung der Semantik verteilter Services.
  • Scalable Agreement: Ordnung als Service.
  • Scalable Eventually Consistent Counters over Unreliable Networks: Skalierbare Counter mit eventual consistency über unzuverlässige Netzwerke.

Sprachen und Tools

  • Probleme beim Aufbau verteilter Systeme mit bestimmten Technologien.
  • Programming Distributed Erlang Applications: Aufbau verteilter Anwendungen mit Erlang und OTP.

Infrastruktur

  • Robuste Prinzipien für das Timing-Management im Internet.

Storage

  • Consistent Hashing and Random Trees: Konsistentes Hashing und Random Trees.
  • Amazon's Dynamo Storage Service: Amazons Storage-Service.
  • Paxos Consensus: Paxos verstehen.
  • The Part-Time Parliament: Die Grundlagen von Paxos.
  • Paxos Made Simple: Eine einfache Erklärung von Paxos.
  • Paxos Made Live: Paxos aus Engineering-Perspektive.
  • Revisiting the Paxos Algorithm: Eine Neubetrachtung des Paxos-Algorithmus.
  • How to build a highly available system with consensus: Aufbau eines hochverfügbaren Systems mit Konsens.
  • Reconfiguring a State Machine: Neukonfiguration einer State Machine.
  • Implementing Fault-Tolerant Services Using the State Machine Approach: Umsetzung fehlertoleranter Services mit dem State-Machine-Ansatz.

Weitere Arbeiten zu Konsens

  • Mencius: Aufbau effizient replizierter State Machines für WANs.
  • In Search of an Understandable Consensus Algorithm: Eine erweiterte Version des RAFT-Algorithmus.

Gossip-Protokolle (Epidemic Behaviours)

  • Die Stärke gossip-basierter Kommunikationsprotokolle.
  • Astrolabe: Techniken für Monitoring und Data Mining in verteilten Systemen.
  • Epidemic Computing at Cornell: Epidemic Computing an der Cornell University.
  • Fighting Fire With Fire: Skalierungsgrenzen mit zufälligem Gossip überwinden.
  • Bi-Modal Multicast: Bi-modaler Multicast.
  • ACM SIGOPS Operating Systems Review: Gossip-basiertes Networking.
  • SWIM: Ein skalierbares, schwach konsistentes Membership-Protokoll im Infektionsstil für Prozessgruppen.

P2P

  • Chord: Ein skalierbares Peer-to-Peer-Lookup-Protokoll für Internet-Anwendungen.
  • Kademlia: Ein Peer-to-Peer-Informationssystem auf Basis der XOR-Metrik.
  • Pastry: Verteilte Objektlokalisierung und Routing für groß angelegte Peer-to-Peer-Systeme.
  • PAST: Ein groß angelegtes, persistentes Peer-to-Peer-Storage-Utility auf Basis von Pastry.
  • SCRIBE: Eine groß angelegte verteilte Multicast-Infrastruktur auf Anwendungsebene auf Basis von Pastry.

Zusammenfassung von GN⁺

  • Verteilte Systeme sind ein Bereich, in dem man seine Denkweise ändern muss, um komplexe Probleme zu lösen.
  • Die verschiedenen Materialien und Arbeiten vermitteln ein tiefes Verständnis für Design und Implementierung verteilter Systeme.
  • Diese Liste behandelt viele Aspekte verteilter Systeme und bietet besonders Einblicke in Konsistenzmodelle und Latenzprobleme.
  • Für Entwickler oder Forschende mit Interesse an verteilten Systemen kann sie eine nützliche Ressource sein.
  • Als Projekte mit ähnlichen Funktionen werden unter anderem Apache Kafka und Apache Cassandra empfohlen.

Noch keine Kommentare.

Noch keine Kommentare.