Isoleringsnivåer

Transaktioner och felhantering i PostgreSQL

Jason Myers

Instructor

Samtidighet

  • Hanterar koordinering av flera operationer samtidigt.
  • Medför unika problem i en databas.
  • Använder regler kallade isoleringsnivåer för att göra det lättare att resonera om utfall.
Transaktioner och felhantering i PostgreSQL

Smutsiga läsningar

Smutsig läsning

Transaktioner och felhantering i PostgreSQL

Icke-repeterbar läsning

Icke-repeterbar läsning

Transaktioner och felhantering i PostgreSQL

Fantomläsning

Fantomläsning

Transaktioner och felhantering i PostgreSQL

Serialiseringsanomali

Serialiseringsanomalي

Transaktioner och felhantering i PostgreSQL

Isoleringsnivåer

Isoleringsnivå Smutsig läsning Icke-repeterbar läsning Fantomläsning Serialiseringsanomali
Read Uncommitted Skyddad (PostgreSQL) sårbar sårbar sårbar
Read Committed Skyddad sårbar sårbar sårbar
Repeatable Read Skyddad Skyddad Skyddad (PostgreSQL) sårbar
Serializable Skyddad Skyddad Skyddad Skyddad
Transaktioner och felhantering i PostgreSQL

Isoleringsnivåers effekter

START TRANSACTION ISOLATION LEVEL READ UNCOMMITTED; 
SELECT COUNT(*) FROM cookies WHERE name = 'lemon drop';

-- Cookie 6 has been added in an external transaction.

SELECT COUNT(*) FROM cookies WHERE name = 'lemon drop';
COMMIT;

Satsresultat

  • Första SELECT-resultat: 5
  • Andra SELECT-resultat: 6
Transaktioner och felhantering i PostgreSQL

Isoleringsnivåers effekter

START TRANSACTION ISOLATION LEVEL SERIALIZABLE; 
SELECT COUNT(*) FROM cookies WHERE name = 'lemon drop';

-- Cookie 6 has been added in an external transaction.

SELECT COUNT(*) FROM cookies WHERE name = 'lemon drop';
COMMIT;

Satsresultat

  • Första SELECT-resultat: 5
  • Andra SELECT-resultat: 5
Transaktioner och felhantering i PostgreSQL

Nu kör vi en övning!

Transaktioner och felhantering i PostgreSQL

Preparing Video For Download...