Sobes.tech
Senior

Milyen tranzakciótípusokat ismersz? Mire vannak szükségük?

sobes.tech MI

Válasz az MI-től

A Go-ban a tranzakciók általában adatbázisokhoz kapcsolódnak, és az ACID (atomitás, koherencia, izoláció, tartósság) biztosítására használják őket.

Tranzakció típusok:

  • Automatikus tranzakciók — amikor minden művelet külön tranzakcióként hajtódik végre.
  • Explicit tranzakciók — amikor a fejlesztő explicit módon indít, jóváhagy vagy visszavon egy tranzakciót a Begin(), Commit(), Rollback() metódusok segítségével.
  • Hosszú életű tranzakciók — elosztott rendszerekben használják, ahol a tranzakció hosszú ideig tarthat és koordinációt igényel.

Miért szükségesek a tranzakciók:

  • Biztosítják, hogy egy műveletcsoport vagy teljes egészében végrehajtódik, vagy egyáltalán nem.
  • Megelőzik a versenyhelyzeteket és biztosítják az adatok integritását.
  • Lehetővé teszik a változtatások visszavonását hibák esetén.

Példa tranzakció használatára Go-ban adatbázissal:

tx, err := db.Begin()
if err != nil {
    log.Fatal(err)
}
_, err = tx.Exec("INSERT INTO users(name) VALUES(?)", "Alice")
if err != nil {
    tx.Rollback()
    log.Fatal(err)
}
err = tx.Commit()
if err != nil {
    log.Fatal(err)
}