Laravel Pessimistic Locking nedir ve nasıl kullanılır?

PHP 20 Ara 2022

Laravel Pessimistic Locking, bir veritabanı işleminde, bir veri kaydının başka bir işlem tarafından değiştirilmemesi için kullanılan bir yöntemdir. Bu yöntem, veri kaydının bir başka işlem tarafından değiştirilmesine izin vermez ve veri kaydını kilitler. Bu sayede, veri kaydını değiştirmek isteyen başka bir işlem, veri kaydının kilitli olduğunu görerek beklemeye veya başka bir işlem yapmaya zorlanır.

Laravel'de Pessimistic Locking, Eloquent modellerinde lockForUpdate methodunu kullanarak uygulanabilir. Örneğin, aşağıdaki kod bloğu, bir veri kaydını değiştirmeyi deneyen bir işlemi beklemeye zorlar:

$user = DB::table('users')
            ->where('id', 1)
            ->lockForUpdate()
            ->first();

$user->name = 'John';
$user->save();

Bu örnekte, lockForUpdate methodu kullanılarak, User modelindeki name alanının değiştirilmesine izin verilmez ve veri kaydı kilitlenir. Bu sayede, başka bir işlem aynı veri kaydını değiştirmeye çalıştığında, işlem beklemeye zorlanır ve veri kaydının değiştirilmesine izin verilmez.

Laravel'de Pessimistic Locking'i kullanarak, veri kayıtlarının değiştirilmesini önleyebilir ve veri güvenliğini sağlayabilirsiniz. Dikkat etmeniz gereken nokta, Pessimistic Locking'in işlemleri yavaşlatabileceği ve veritabanı performansını düşürebileceğidir. Bu nedenle, Pessimistic Locking'i sadece gerektiğinde ve gerektiği şekilde kullanmalısınız.

Daha fazla bilgi için, Laravel dokümantasyonuna göz atabilirsiniz:
https://laravel.com/docs/9.x/queries#pessimistic-locking

Etiketler