Senior
Koje vrste transakcija poznaješ? Čemu služe?
sobes.tech АИ
Одговор од АИ
U Go, transakcije su obično povezane s bazama podataka i koriste se za osiguranje ACID svojstava (atomičnost, konzistentnost, izolacija, trajnost).
Vrste transakcija:
- Automatske transakcije — kada se svaka operacija izvršava kao odvojena transakcija.
- Ekslicitne transakcije — kada programer eksplicitno započinje, potvrđuje ili poništava transakciju pomoću metoda
Begin(),Commit(),Rollback(). - Dugotrajne transakcije — koriste se u distribuiranim sistemima, gde transakcija može trajati dugo i zahteva koordinaciju.
Zašto su transakcije potrebne:
- Garantuje da će grupa operacija biti izvršena u celosti ili nikako.
- Sprečavaju uslove trke i obezbeđuju integritet podataka.
- Omogućavaju vraćanje promena u slučaju grešaka.
Primer korišćenja transakcije u Go sa bazom podataka:
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)
}