Sobes.tech
Middle+

Šta se dešava sa Xmin i Xmax tokom UPDATE-a?

sobes.tech АИ

Одговор од АИ

U PostgreSQL-u, prilikom izvršavanja operacije UPDATE, ne dolazi do jednostavne izmene reda, već se zapravo kreira nova verzija reda (MVCC — viševerzijsko upravljanje konkurencijom).

  • Xmin je identifikator transakcije koja je kreirala (ubacila) trenutnu verziju reda.
  • Xmax je identifikator transakcije koja je označila red kao obrisan (npr., pri UPDATE ili DELETE).

Kod UPDATE:

  1. Stara verzija reda dobija u polju Xmax identifikator trenutne transakcije koja vrši UPDATE — što znači da se ova verzija sada smatra obrisanom za nove transakcije.
  2. Kreira se nova verzija reda sa novim Xmin — identifikatorom trenutne transakcije, i praznim Xmax.

Na ovaj način, UPDATE je u suštini DELETE stare verzije + INSERT nove verzije, što omogućava obezbeđivanje izolacije transakcija i konzistentnosti podataka.