รายการอ่านด้านระบบกระจาย

บทนำ

  • สิ่งที่ยากที่สุดในระบบกระจายคือการเปลี่ยนวิธีคิด
  • รายการนี้รวบรวมแหล่งข้อมูลที่มีประโยชน์ในการผลักดันการเปลี่ยนแปลงดังกล่าว

แหล่งข้อมูลชวนขบคิด

  • รวมบทความที่มอบมุมมองใหม่เกี่ยวกับการออกแบบระบบขนาดใหญ่
  • Harvest, Yield and Scalable Tolerant Systems: การประยุกต์ใช้ทฤษฎี CAP ในทางปฏิบัติ
  • On Designing and Deploying Internet Scale Services: การออกแบบและปรับใช้งานบริการในระดับอินเทอร์เน็ต
  • The Perils of Good Abstractions: ความยากของการสร้าง API/อินเทอร์เฟซที่สมบูรณ์แบบ
  • Chaotic Perspectives: ความคาดเดาไม่ได้และภาวะขนานในระบบขนาดใหญ่
  • Data on the Outside versus Data on the Inside: สองแนวทางในการจัดการข้อมูล
  • Memories, Guesses and Apologies: ความไม่แน่นอนของการประมวลผลข้อมูล
  • SOA and Newton's Universe: มุมมองเชิงปรัชญาต่อสถาปัตยกรรมแบบบริการ
  • Building on Quicksand: การสร้างระบบบนฐานรากที่ไม่มั่นคง
  • Why Distributed Computing?: เหตุผลที่ต้องใช้การประมวลผลแบบกระจาย
  • A Note on Distributed Computing: แนวคิดพื้นฐานของการประมวลผลแบบกระจาย
  • Stevey's Google Platforms Rant: ประสบการณ์เกี่ยวกับแพลตฟอร์ม SOA ของ Google

เวลาแฝง

  • การมีอยู่ของเวลาแฝงและวิธีรับมือกับมัน
  • Latency Exists, Cope!: ผลกระทบของเวลาแฝงต่อสถาปัตยกรรม
  • Latency - the new web performance bottleneck: คอขวดใหม่ของประสิทธิภาพเว็บ
  • The Tail At Scale: ปัญหาเวลาแฝงในระบบขนาดใหญ่

Amazon

  • เนื้อหาที่น่าสนใจเกี่ยวกับวัฒนธรรมและการจัดองค์กรของ Amazon มากกว่าตัวเทคโนโลยี
  • A Conversation with Werner Vogels: การเปลี่ยนผ่านไปสู่สถาปัตยกรรมแบบบริการ
  • Discipline and Focus: เนื้อหาเพิ่มเติมเกี่ยวกับการเปลี่ยนสถาปัตยกรรมของ Amazon
  • Vogels on Scalability: มุมมองของ Vogels ต่อความสามารถในการขยายระบบ

Google

  • เทคโนโลยีล้ำสมัยของระบบกระจาย
  • MapReduce: โมเดลการประมวลผลข้อมูลขนาดใหญ่
  • Chubby Lock Manager: การจัดการล็อกแบบกระจาย
  • Google File System: ระบบไฟล์ขนาดใหญ่
  • BigTable: ระบบจัดเก็บข้อมูลแบบกระจาย
  • Data Management for Internet-Scale Single-Sign-On: การจัดการข้อมูลสำหรับระบบ single sign-on ระดับอินเทอร์เน็ต
  • Dremel: การวิเคราะห์เชิงโต้ตอบสำหรับชุดข้อมูลระดับเว็บสเกล
  • Large-scale Incremental Processing Using Distributed Transactions and Notifications: การประมวลผลแบบเพิ่มพูนขนาดใหญ่ด้วยทรานแซกชันแบบกระจาย
  • Megastore: ที่เก็บข้อมูลที่ขยายได้และมีความพร้อมใช้งานสูงสำหรับบริการเชิงโต้ตอบ
  • Spanner: ฐานข้อมูลแบบกระจายทั่วโลก
  • Photon: การเชื่อมข้อมูลสตรีมต่อเนื่องเข้าด้วยกัน
  • Mesa: ระบบคลังข้อมูลแบบเรียลไทม์

โมเดลความสอดคล้อง

  • การหาสมดุลระหว่างความสอดคล้องและความพร้อมใช้งานในการออกแบบระบบ
  • CAP Conjecture: ความขัดแย้งระหว่างความสอดคล้อง ความพร้อมใช้งาน และการทนต่อการแบ่งพาร์ทิชัน
  • Consistency, Availability, and Convergence: ขีดจำกัดบนของความสอดคล้อง
  • CAP Twelve Years Later: การเปลี่ยนแปลงของทฤษฎี CAP
  • Consistency and Availability: ความสัมพันธ์ระหว่างความสอดคล้องกับความพร้อมใช้งาน
  • Eventual Consistency: ความสอดคล้องในท้ายที่สุด
  • Avoiding Two-Phase Commit: วิธีหลีกเลี่ยง 2-phase commit
  • 2PC or not 2PC, Wherefore Art Thou XA?: ข้อจำกัดของ 2-phase commit
  • Life Beyond Distributed Transactions: การจัดการข้อมูลที่ก้าวข้ามทรานแซกชันแบบกระจาย
  • If you have too much data, then 'good enough' is good enough: อนาคตของ NoSQL และทฤษฎีข้อมูล
  • Starbucks doesn't do two phase commit: กลไกแบบอะซิงโครนัส
  • You Can't Sacrifice Partition Tolerance: ความสำคัญของการทนต่อการแบ่งพาร์ทิชัน
  • Optimistic Replication: แนวทางความสอดคล้องแบบหลวม

ทฤษฎี

  • งานวิจัยที่อธิบายองค์ประกอบสำคัญของการออกแบบระบบกระจาย
  • Distributed Computing Economics: เศรษฐศาสตร์ของการประมวลผลแบบกระจาย
  • Rules of Thumb in Data Engineering: หลักปฏิบัติคร่าว ๆ ในวิศวกรรมข้อมูล
  • Fallacies of Distributed Computing: ความเข้าใจผิดของการประมวลผลแบบกระจาย
  • Impossibility of distributed consensus with one faulty process: ทฤษฎี FLP
  • Unreliable Failure Detectors for Reliable Distributed Systems: ตัวตรวจจับความล้มเหลวสำหรับระบบกระจายที่เชื่อถือได้
  • Lamport Clocks: การซิงก์เวลาในระบบกระจาย
  • The Byzantine Generals Problem: ปัญหาไบแซนไทน์
  • Lazy Replication: การใช้ประโยชน์จากความหมายเชิงเซแมนติกของบริการแบบกระจาย
  • Scalable Agreement: การจัดลำดับในฐานะบริการ
  • Scalable Eventually Consistent Counters over Unreliable Networks: ตัวนับที่ขยายได้และคงความสอดคล้องในท้ายที่สุดบนเครือข่ายที่ไม่น่าเชื่อถือ

ภาษาและเครื่องมือ

  • ปัญหาในการสร้างระบบกระจายด้วยเทคโนโลยีเฉพาะทาง
  • Programming Distributed Erlang Applications: การสร้างแอปพลิเคชันแบบกระจายด้วย Erlang และ OTP

โครงสร้างพื้นฐาน

  • หลักการจัดการเวลาอย่างเข้มแข็งบนอินเทอร์เน็ต

สตอเรจ

  • Consistent Hashing and Random Trees: การแฮชแบบสอดคล้องและต้นไม้แบบสุ่ม
  • Amazon's Dynamo Storage Service: บริการจัดเก็บข้อมูลของ Amazon
  • Paxos Consensus: ทำความเข้าใจอัลกอริทึม Paxos
  • The Part-Time Parliament: พื้นฐานของ Paxos
  • Paxos Made Simple: คำอธิบาย Paxos แบบเข้าใจง่าย
  • Paxos Made Live: มุมมองเชิงวิศวกรรมของ Paxos
  • Revisiting the Paxos Algorithm: ทบทวนอัลกอริทึม Paxos อีกครั้ง
  • How to build a highly available system with consensus: การสร้างระบบที่มีความพร้อมใช้งานสูงด้วยฉันทามติ
  • Reconfiguring a State Machine: การปรับโครงสร้าง state machine
  • Implementing Fault-Tolerant Services Using the State Machine Approach: การสร้างบริการที่ทนต่อความผิดพลาดด้วยแนวทาง state machine

งานวิจัยฉันทามติอื่น ๆ

  • Mencius: การสร้าง replicated state machine ที่มีประสิทธิภาพสำหรับ WAN
  • In Search of an Understandable Consensus Algorithm: เวอร์ชันขยายของอัลกอริทึม RAFT

โปรโตคอลแบบแพร่ระบาด (Epidemic Behaviours)

  • พลังของโปรโตคอลสื่อสารที่อิงการแพร่ข่าวลือ
  • Astrolabe: เทคโนโลยีสำหรับมอนิเตอร์ระบบกระจายและทำ data mining
  • Epidemic Computing at Cornell: งานด้าน epidemic computing ของมหาวิทยาลัยคอร์เนลล์
  • Fighting Fire With Fire: การก้าวข้ามขีดจำกัดด้านการขยายระบบด้วยข่าวลือแบบสุ่ม
  • Bi-Modal Multicast: มัลติคาสต์แบบสองโหมด
  • ACM SIGOPS Operating Systems Review: เครือข่ายแบบอิงข่าวลือ
  • SWIM: โปรโตคอลสมาชิกกลุ่มโปรเซสแบบสไตล์การแพร่เชื้อที่มีความสอดคล้องแบบอ่อนและขยายได้

P2P

  • Chord: โปรโตคอลค้นหาแบบ peer-to-peer ที่ขยายได้สำหรับแอปพลิเคชันอินเทอร์เน็ต
  • Kademlia: ระบบข้อมูลแบบ peer-to-peer ที่อิงเมตริก XOR
  • Pastry: การระบุตำแหน่งวัตถุแบบกระจายและการกำหนดเส้นทางสำหรับระบบ peer-to-peer ขนาดใหญ่
  • PAST: ยูทิลิตีสตอเรจแบบ peer-to-peer ถาวรขนาดใหญ่ที่สร้างบน Pastry
  • SCRIBE: โครงสร้างพื้นฐานมัลติคาสต์ระดับแอปพลิเคชันแบบกระจายขนาดใหญ่ที่สร้างบน Pastry

สรุปโดย GN⁺

  • ระบบกระจายเป็นสาขาที่ต้องเปลี่ยนวิธีคิดเพื่อแก้ปัญหาที่ซับซ้อน
  • แหล่งข้อมูลและงานวิจัยที่หลากหลายช่วยให้เข้าใจการออกแบบและการพัฒนาระบบกระจายได้ลึกซึ้งยิ่งขึ้น
  • รายการนี้ครอบคลุมหลายแง่มุมของระบบกระจาย โดยเฉพาะโมเดลความสอดคล้องและปัญหาเวลาแฝง
  • เป็นแหล่งข้อมูลที่มีประโยชน์สำหรับนักพัฒนาหรือนักวิจัยที่สนใจระบบกระจาย
  • โครงการที่มีความสามารถคล้ายกันซึ่งแนะนำได้แก่ Apache Kafka และ Apache Cassandra

ยังไม่มีความคิดเห็น

ยังไม่มีความคิดเห็น