Panen, Hasil, dan Sistem Toleransi yang Skalabel: Ringkasan

Artikel ini menyajikan ringkasan makalah "Panen, Hasil, dan Sistem Toleransi yang Dapat Diskalakan" yang diterbitkan oleh Eric Brewer & Amando Fox pada tahun 1999. Semua kutipan tanpa atribut berasal dari makalah ini.

Makalah ini membahas trade-off antara konsistensi dan ketersediaan (CAP) untuk sistem besar. Sangat mudah untuk menunjuk ke CAP dan menegaskan bahwa tidak ada sistem yang dapat memiliki konsistensi dan ketersediaan.

Tapi, ada tangkapan. CAP telah disalahpahami dengan berbagai cara. Seperti yang dijelaskan Coda Hale dalam posting blognya yang luar biasa "You Can't Sacrifice Partition Tolerance":

Konsistensi, Ketersediaan, dan Toleransi Partisi dari teorema CAP, Toleransi Partisi adalah wajib dalam sistem terdistribusi. Anda tidak bisa tidak memilihnya. Alih-alih CAP, Anda harus memikirkan ketersediaan Anda dalam hal hasil (persen permintaan dijawab dengan sukses) dan panen (persen dari data yang diperlukan sebenarnya termasuk dalam tanggapan) dan yang mana dari dua sistem ini yang akan Anda korbankan saat kegagalan terjadi.

Makalah ini berfokus pada peningkatan ketersediaan sistem skala besar dengan toleransi kesalahan, penahanan dan isolasi:

Kami berasumsi bahwa klien membuat kueri ke server, dalam hal ini setidaknya ada dua metrik untuk perilaku yang benar: hasil, yang merupakan kemungkinan menyelesaikan permintaan, dan panen, yang mengukur bagian data yang tercermin dalam respons, yaitu kelengkapan jawaban atas pertanyaan tersebut.

Dua metrik, panen dan hasil dapat diringkas sebagai berikut:

  • Harvest : data dalam respon / total data

    Sebagai contoh: Jika salah satu node turun di cluster 100 node, panen adalah 99% selama kesalahan.

  • Hasil : permintaan diselesaikan dengan keberhasilan / jumlah total permintaan

    Catatan: Hasil berbeda dari waktu aktif. Yield berhubungan dengan jumlah permintaan, tidak hanya saat sistem tidak dapat merespon permintaan.

Makalah ini berpendapat bahwa ada sistem tertentu yang membutuhkan respons sempurna terhadap pertanyaan setiap saat. Selain itu, ada sistem yang sesekali dapat mentolerir jawaban yang tidak sempurna.

Untuk meningkatkan ketersediaan keseluruhan sistem kami, kami perlu memikirkan dengan cermat konsistensi yang diperlukan dan jaminan ketersediaan yang perlu disediakan.

Trading Panen untuk Hasil - Ketersediaan Probabilistik

Hampir semua sistem bersifat probabilistik disadari atau tidak. Secara khusus, sistem apa pun yang 100% tersedia di bawah kesalahan tunggal secara probabilistik tersedia secara keseluruhan (karena ada kemungkinan bukan nol dari beberapa kegagalan)

Makalah ini berbicara tentang memahami sifat probabilistik ketersediaan. Ini membantu dalam memahami dan membatasi dampak kesalahan dengan membuat keputusan tentang apa yang perlu tersedia dan jenis kesalahan apa yang dapat ditangani sistem.

Mereka menguraikan degradasi linier panen jika terjadi beberapa kesalahan simpul. Panen berbanding lurus dengan jumlah node yang berfungsi dengan benar. Oleh karena itu, itu menurun / meningkat secara linier.

Dua strategi disarankan untuk meningkatkan hasil:

  1. Distribusi acak data pada node

    Jika salah satu node turun, perilaku kesalahan kasus rata-rata dan kasus terburuk tidak berubah. Namun jika distribusinya tidak acak, maka tergantung pada jenis datanya, dampak dari suatu kesalahan dapat bervariasi.

    Misalnya, jika hanya satu dari node yang menyimpan informasi terkait saldo akun pengguna turun, seluruh sistem perbankan tidak akan dapat berfungsi.

  2. Mereplikasi data terpenting

    Ini mengurangi dampak jika salah satu node yang berisi subset data prioritas tinggi turun.

    Itu juga meningkatkan panen.

Pengamatan penting lainnya yang dibuat di koran adalah kemungkinan untuk mereplikasi semua data Anda. Itu tidak banyak membantu meningkatkan panen / hasil Anda, tetapi meningkatkan biaya operasi secara substansial. Ini karena internet bekerja berdasarkan protokol terbaik yang tidak pernah bisa menjamin 100% panen / hasil.

Dekomposisi Aplikasi dan Mekanisme Ortogonal

Strategi kedua berfokus pada manfaat desain sistem ortogonal.

Ini dimulai dengan menyatakan bahwa sistem besar terdiri dari subsistem yang tidak dapat mentolerir kegagalan. Tetapi mereka gagal dengan cara yang memungkinkan seluruh sistem untuk terus berfungsi dengan beberapa dampak pada utilitas.

Manfaat sebenarnya adalah kemampuan untuk menyediakan manajemen status setiap subsistem secara terpisah, memberikan konsistensi yang kuat atau status persisten hanya untuk subsistem yang membutuhkannya, bukan untuk seluruh aplikasi. Penghematan dapat menjadi signifikan jika hanya beberapa subsistem kecil yang memerlukan kerumitan ekstra.

Makalah tersebut menyatakan bahwa komponen ortogonal benar-benar independen satu sama lain. Mereka tidak memiliki antarmuka waktu proses ke komponen lain, kecuali jika ada antarmuka konfigurasi. Hal ini memungkinkan setiap komponen gagal secara independen dan meminimalkan dampaknya pada sistem secara keseluruhan.

Komposisi subsistem ortogonal menggeser beban pemeriksaan kemungkinan interaksi berbahaya dari waktu proses ke waktu kompilasi, dan penerapan mekanisme pelindung ortogonal meningkatkan ketahanan untuk interaksi waktu proses yang terjadi, dengan menyediakan penahanan kesalahan yang lebih baik.

Tujuan dari makalah ini adalah untuk memotivasi penelitian di bidang perancangan sistem berskala besar yang toleran terhadap kesalahan dan sangat tersedia.

Juga, untuk memikirkan dengan hati-hati tentang konsistensi dan ketersediaan jaminan yang perlu disediakan aplikasi. Serta pertukaran yang mampu dilakukan dalam hal panen terhadap hasil.

Jika Anda menyukai makalah ini, silakan tekan tombol tepuk agar lebih banyak orang yang melihatnya. Terima kasih.

NB - Jika Anda sudah sampai sejauh ini dan ingin menerima email setiap kali saya menerbitkan salah satu posting ini, daftar di sini.