Session Locking? Slow Query Log Isinya Query Session?

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.




session
jk = 10



















locking






concurrent / no locking
















request 1
jk =jk + 1
jk = 10 + 1 = 11


request 1
jk =jk + 1
jk = 10 + 1 = 11

request 2
jk = jk + 1
jk = 10 + 1 = 12
request 2
jk = jk + 1
jk = 11 + 1 = 12













































Final result

jk = 12





jk = 11



Ink Drawings
Ink Drawings
Ink Drawings
Ink Drawings
Ink Drawings
Ink Drawings
Ink Drawings
Ink Drawings
Ink Drawings
Ink Drawings
Ink Drawings
Ink Drawings
Continue reading “Session Locking? Slow Query Log Isinya Query Session?”