2 poin oleh GN⁺ 2024-10-21 | 1 komentar | Bagikan ke WhatsApp
  • Inti mempelajari sistem terdistribusi ada pada perubahan cara berpikir, bukan pada teknologi tertentu, dan daftar ini membantu menelusuri masalah yang dihadapi saat merancang sistem berskala internet berdasarkan topik
  • Materi dibagi menjadi filosofi desain, latensi, studi kasus sistem berskala besar Amazon dan Google, model konsistensi, teori, alat, infrastruktur, penyimpanan, algoritme konsensus, protokol gossip, dan P2P
  • CAP, menghindari 2PC, eventual consistency, dan replikasi optimistis menunjukkan trade-off operasional bahwa sulit untuk memaksimalkan konsistensi dan ketersediaan sekaligus
  • Kumpulan makalah Google menyediakan contoh implementasi sistem terdistribusi berskala besar seperti MapReduce, Chubby, GFS, BigTable, Dremel, Spanner, Photon, dan Mesa, sementara materi Amazon membahas transisi ke arsitektur berbasis layanan beserta budaya organisasi
  • Jika dibaca berurutan hingga Paxos, Raft, FLP, Lamport Clock, Byzantine Generals, Chord, Kademlia, dan Pastry, masalah konsensus, waktu, replikasi, dan routing dapat dirangkum dalam satu alur

Cara berpikir dan perspektif desain

Latensi dan layanan berskala internet

Makalah sistem Google dan model konsistensi

Teori, bahasa, infrastruktur, penyimpanan

Konsensus, gossip, P2P

1 komentar

 
GN⁺ 2024-10-21
Komentar Hacker News
  • Daftar ini tampaknya agak lama, dan saya merekomendasikan daftar bacaan konsensus terdistribusi dari Heidi Howard
    https://github.com/heidihoward/distributed-consensus-reading...

  • Rasanya agak aneh melihat MapReduce dari Google disebut sebagai “rocket science” di bidang ini
    Setelah dicek, daftar ini berasal dari 2014 [1], jadi perlu diingat bahwa situasinya sekarang sudah banyak berubah
    [1] https://news.ycombinator.com/from?site=dancres.github.io

    • Setelah tahu itu, konteksnya jadi jelas. Daftar ini sudah berumur 10 tahun, dan bahkan saat itu makalah MapReduce sendiri sudah berumur 10 tahun
  • Ada meta-daftar untuk daftar bacaan sistem terdistribusi yang saya buat sekitar 10 tahun lalu
    Daftar ini juga baru saya tambahkan sekitar 10 tahun terlambat, dan entah berapa banyak dari item yang saya kumpulkan itu masih hidup sampai sekarang
    https://gist.github.com/macintux/6227368

  • https://ferd.ca/a-distributed-systems-reading-list.html yang membahas daftar di artikel asli juga layak dibaca

    • Perlu diperjelas sebenarnya daftar seperti ini ditujukan untuk siapa. Menurut saya ini bukan daftar untuk orang yang sekadar “ingin belajar sistem terdistribusi
      Ini bisa membantu bagi orang yang ingin mendorong batas atau mencari pendekatan baru, tetapi bagi yang lain rasanya seperti bertanya cara menyelesaikan persamaan kuadrat lalu diberi 100 makalah teori kategori
      Daftar Fred Herbert lebih baru daripada artikel asli, tetapi menurut pengakuannya sendiri pun tidak lengkap. Ia menyebut “Designing Data-Intensive Applications” sebagai bacaan wajib, tetapi juga seolah mengatakan bahwa untuk benar-benar memahaminya, kita harus lebih dulu membaca banyak makalah
      Jika daftar seperti ini disajikan sebagai prasyarat untuk memahami, itu bisa terasa seperti menaikkan ambang masuk
      Berkat pekerjaan orang lain yang terakumulasi selama puluhan tahun, kita tidak perlu membaca 100 makalah nanokernel untuk menjadi pengguna Linux yang efektif. Membuat sistem operasi yang bagus dari nol memang tetap sulit, tetapi 99% orang tidak perlu melakukannya; cukup mahir memakai alat yang sudah ada
      Sistem terdistribusi juga sama: jika bukan sedang mendorong garis depan bidang ini, seharusnya tidak perlu sesulit itu
      Jika Anda seorang software engineer yang menginginkan pengalaman praktik daripada menggali riset secara mendalam, lebih baik coba membangun sesuatu dengan NATS [1] atau YugaByte [2], atau mengikuti tutorial praktik seperti [3]
      “Designing Data-Intensive Applications” juga layak dibaca. Ini salah satu buku yang makin bagus setiap kali dibaca ulang, jadi meskipun belum membaca 100 makalah, Anda tetap boleh langsung membacanya. Jika ada bagian yang tidak dipahami, tanyakan dan minta bantuan; tidak apa-apa melewati daftar bacaan raksasa itu
      1: https://nats.io/
      2: https://www.yugabyte.com/
      3: https://pragprog.com/titles/tjgo/distributed-services-with-g...
  • Tapi kok tidak ada penyebutan teknologi CRDT?

    • Karena itu materi dari 10 tahun lalu