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)
}