รายการอ่านด้านระบบกระจาย
บทนำ
- สิ่งที่ยากที่สุดในระบบกระจายคือการเปลี่ยนวิธีคิด
- รายการนี้รวบรวมแหล่งข้อมูลที่มีประโยชน์ในการผลักดันการเปลี่ยนแปลงดังกล่าว
แหล่งข้อมูลชวนขบคิด
- รวมบทความที่มอบมุมมองใหม่เกี่ยวกับการออกแบบระบบขนาดใหญ่
- 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
ยังไม่มีความคิดเห็น