1 poin oleh GN⁺ 2023-10-01 | 1 komentar | Bagikan ke WhatsApp
  • Artikel ini membahas konsep Two-Phase Locking (2PL), sebuah mekanisme kontrol konkurensi umum yang ditemukan sekitar 50 tahun lalu.
  • 2PL menyediakan tingkat isolasi yang lebih kuat, yaitu Serializability dan Opacity, dan digunakan untuk transaksi pada beberapa item data.
  • Penulis menekankan bahwa kesederhanaan 2PL dan tingkat isolasinya yang kuat adalah keunggulan utamanya.
  • Namun, 2PL memiliki kelemahan berupa skalabilitas pembacaan yang buruk dan progres live-lock.
  • Penulis memperkenalkan kontrol konkurensi baru bernama Two-Phase Locking Starvation-Free (2PLSF) untuk mengatasi masalah 2PL.
  • 2PLSF menggunakan reader-writer lock yang lebih baik dan menyediakan transaksi bebas kelaparan, bentuk progres blocking tertinggi.
  • 2PLSF efektif dalam menyelesaikan jenis konflik tertentu sehingga tetap dapat diskalakan meskipun beberapa konflik terjadi.
  • Penulis menyimpulkan bahwa 2PLSF merupakan peningkatan besar dibandingkan 2PL, dan mengibaratkannya seperti perbedaan antara jackhammer dan beliung.
  • Artikel ini menyertakan tautan ke makalah dan kode sumber algoritme 2PLSF untuk referensi pembelajaran lebih lanjut.

1 komentar

 
GN⁺ 2023-10-01
Komentar Hacker News
  • Artikel tentang two-phase locking (2PL) dan relevansinya 50 tahun setelah pertama kali dikembangkan.
  • Seorang penulis komentar mengatakan bahwa dirinya masih pemula dalam topik ini dan sedang mencari solusi konsistensi yang mudah diterapkan untuk arsitektur microservices terdistribusi.
  • Penulis komentar yang sama membagikan kode Python untuk menguji nondeterminisme dalam lingkungan multiprocessing multi-thread.
  • Penulis komentar lain menyarankan untuk terlebih dahulu mempertimbangkan apakah algoritme penguncian memang diperlukan, serta mengusulkan pemrosesan permintaan secara batch untuk mengurangi konkurensi dan penguncian.
  • Muncul pertanyaan tentang bagaimana pendekatan baru ini dibandingkan dengan Serializable Snapshot Isolation (SSI), yang dipromosikan sebagai versi 2PL yang ditingkatkan.
  • Seorang penulis komentar mengusulkan perlunya kebijakan baru Hacker News bahwa semua tautan yang dipublikasikan harus menggunakan HTTPS.
  • Dibagikan tautan ke makalah penulis tentang 2PLSF, yang diklaim sebagai bentuk 2PL yang seharusnya sejak awal.
  • Penambahan antrean acak diusulkan untuk meningkatkan skalabilitas operasi atomik.
  • Muncul pertanyaan apakah dalam pendekatan Wait-Or-Die perlu mengambil dan menambahkan ID transaksi, dengan usulan untuk menggunakan ID thread atau angka acak sebagai gantinya.
  • Seorang penulis komentar mengatakan tidak memahami ilustrasi terakhir tentang pohon AVL yang dilonggarkan dalam konteks transaksi hanya-baca.
  • Muncul pertanyaan tentang penerapan 2PL dalam konteks pemanggilan API yang terhubung secara longgar.
  • Seseorang menyoroti bahwa sebagian besar transaksi tulis memerlukan pembacaan konsisten atas banyak objek yang diperebutkan, tetapi penulisan aktualnya sering kali hanya pada satu atau dua objek, lalu mempertanyakan apakah 2PL menyelesaikan hal ini.