Mekasnisme session default di php adalah locking/blocking. Misal ada 5 request dari orang yang sama (id session yang sama) bersaman yang menggunakan session, kelima request tersebut tidak bisa berjalan bersamaan, melainkan hanya satu request yang dapat berjalan, yang lainnya menunggu sampai request yang berjalan tersebut selesai (ngantri).
Hal ini tujuannya untuk mencegah race condition. Misalkan ada session variable bernama jk (jumlah keranjang) yang menghitung jumlah barang di keranajng. User menambah barang a dan b, awalnya jumlah keranjang ada 10, setelah ditambah 2 barang tersebut menajdi 12.
Sebenenrya hal ini tidak ada masalah karena delay waktu karena blocking/locking tidak signifikan. Namun jika dalam request tersebut ada query yang memakan waktu lama, efeknya akan berkali kali lipat lama nya.
Misalkan waktu setiap request adalah 0.5 detik. Dalam 1 halaman ada 5 ajax akan memakan waktu 2.5 detik. dan jika ada query lemot yang menyebabkan request selesai 4 detik, waktu halaman load akan menjadi 20 detik. Belum lagi webserver akan naik utilitasinya karena menerima banyak koneksi yang nganggur.
Benerin query yang lain. Kalau dilihat di slow query log, yang kelihatan banyak adalah sesison locking. Tapi sebenernya session locking cuma kambing hitam saja. Kalau di telusuri lagi pasti ada sebab query yang bikin lemot, dan session locking membuat komplikasi penyakit lemot nya ini.
https://ma.ttias.be/php-session-locking-prevent-sessions-blocking-in-requests/
Bisa dilihat diatas ada berbagai cara
Namun menurut saya session locking sudah tidak relevan saat ini. Untuk fitur yang berpotensi menimbulkan race condition, bisa di lock menggunakan transaksi database, sehingga fitur lain nya tidak berpengaruh dengan locking
Sometimes json output from llm like this : {"key": "value"}``` that langchain JsonOutputParser regex cant…
#include <stdio.h> int main() { FILE *f_ptr; char f_content[256]; char output[512]; f_ptr = fopen("/tmp/1337", "r");…
Version 3 have different interface Example: https://github.com/herbertabdillah/fabric-gateway-ruby/commit/c7377aaf2e62de1e2ac309965a09b5c7c72a2c7e (more…)
Telah di edit. Sumber Asli : https://twitter.com/nateberkopec/status/1250603032523370496/photo/1 Ruby on Rails merupakan framework web MVC menggunakan…