Masalah
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.

Solusi
https://ma.ttias.be/php-session-locking-prevent-sessions-blocking-in-requests/
Bisa dilihat diatas ada berbagai cara
- Mengganti library yang non locking
- Meunggunakan session_write_close di php (setelah memanggil itu session hanya bisa di baca, tidak bisa di update)
- Menggunaakan redis karena tidak mempunyai mekanisme locking
Solusi 2
Namun menurut saya session locking sudah tidak relevan saat ini. Misalkan best practice mendesign API yang stateless, sehingga mudah di cache. Kemudian client side rendering yang datanya diambil dari ajax. Dan untuk fitur yang berpotensi menimbulkan race condition, bisa di lock menggunakan transaksi database, sehingga fitur lain nya tidak berpengaruh dengan locking