ProgrammerZamanNow / qna

Q&A Bareng Programmer Zaman Now, Orang Ganteng dan Intelek
259 stars 7 forks source link

Mencegah terjadi nya race conditions #463

Open dwadp opened 1 year ago

dwadp commented 1 year ago

Halo mas @khannedy , saya mau bertanya tentang handling atau preventing race condition, semisal ambil contoh pada sistem e-commerce, ketika suatu barang sudah berada di keranjang belanja customer dan saat customer tersebut ingin melakukan checkout dan dalam waktu yang bersamaan terdapat customer lain yang juga ingin melakukan checkout terhadap barang tersebut yang sisanya katakanlah cuma 1, itu bagaimana caranya kira-kira menangani kasus tersebut, apakah ada teknik atau teknologi khusus yang digunakan? Terimakasih.

agus24 commented 1 year ago

bisa pake atomic lock ato pessimistic lock. paling sering gw pake atomic lock jadi suatu proses di lock dulu sebelum diproses, dan locknya di release ketika sudah selesai prosesnya. bisa pake redis untuk locking ato database jg bisa cuma kalo database lebih berat karena lewat disk bkn memory

dwadp commented 1 year ago

bisa pake atomic lock ato pessimistic lock. paling sering gw pake atomic lock jadi suatu proses di lock dulu sebelum diproses, dan locknya di release ketika sudah selesai prosesnya. bisa pake redis untuk locking ato database jg bisa cuma kalo database lebih berat karena lewat disk bkn memory

Kalau misalnya locking nya di level aplikasi gmn ya?

agus24 commented 1 year ago

Atomic lock itu di sisi aplikasi mas

On Tue, Dec 13, 2022, 12:31 Adi Perdana @.***> wrote:

bisa pake atomic lock ato pessimistic lock. paling sering gw pake atomic lock jadi suatu proses di lock dulu sebelum diproses, dan locknya di release ketika sudah selesai prosesnya. bisa pake redis untuk locking ato database jg bisa cuma kalo database lebih berat karena lewat disk bkn memory

Kalau misalnya locking nya di level aplikasi gmn ya?

— Reply to this email directly, view it on GitHub https://github.com/ProgrammerZamanNow/qna/issues/463#issuecomment-1347771130, or unsubscribe https://github.com/notifications/unsubscribe-auth/AFSFPETSTKCU4K2HW5DBCYLWNAC2VANCNFSM6AAAAAASSX3R7U . You are receiving this because you commented.Message ID: @.***>