dataiotech Labs
dbaguidedbaguideDBAdataxtoolsdataopsphere
MVCCConcurrency

Multi-Version Concurrency Control (Çoklu Sürüm Eşzamanlılık Denetimi)

Okuyucuların yazıcıları, yazıcıların ise okuyucuları engellemediği (kilitlemediği) modern veritabanı eşzamanlılık kontrol mimarisidir.

Derin Mimari İncelemesi

MVCC, bir satır güncellendiğinde veya silindiğinde eski verinin hemen üzerine yazılmasını engeller. Bunun yerine:

  • •PostgreSQL: Güncellenen satırın yeni bir kopyasını (tuple) heap sayfasına ekler (xmin ve xmax işlem kimlikleriyle). Eski satır görünmez hale gelir ve daha sonra VACUUM tarafından temizlenir.
  • •MySQL (InnoDB): Satırı yerinde (in-place) günceller; ancak eski değerleri Undo Tablespace içindeki geri alma segmentlerine yazar. Okuyucular bir sorgu çalıştırdığında bu undo segmentlerinden satırın o anki eski halini yeniden inşa eder (Purge Thread temizler).

Üretim Gözlem ve Tanı Sorguları

PostgreSQL
SELECT n_dead_tup, n_live_tup, last_vacuum, last_autovacuum FROM pg_stat_user_tables WHERE relname = 'users';
MySQL
SHOW ENGINE INNODB STATUS; -- Check "History list length" under TRANSACTIONS section