sql >> Databasteknik >  >> RDS >> PostgreSQL

Hur man hanterar transaktioner över flera databaser

Både Cassandra och PostgreSQL stöder linjärisering och compare-and-set (CAS), så att du kan implementera transaktioner på klientsidan.

Om du vill ha Serialiserbar isoleringsnivå bör du ta en titt på Perkolatorns transaktioner . Percolators transaktioner är ganska kända i branschen och har använts i Amazonas DynamoDB transaktionsbibliotek , i CockroachDB-databasen och i själva Googles Pecolator-system. En steg-för-steg-visualisering av perkolatorns transaktioner kan hjälpa dig att förstå det.

Om du förväntar dig tvist och kan hantera Read Committed-isoleringsnivån så RAMP-transaktioner av Peter Bailis kan passa dig. Jag skapade också en steg-för-steg RAMP-visualisering .

Det tredje tillvägagångssättet är att använda kompenserande transaktioner som även kallas sagamönstret. Det beskrevs i slutet av 80-talet i sagorna papper men blev mer aktuellt med ökningen av distribuerade system. Se Tillämpa Saga-mönstret prata för inspiration.




  1. Flera mysql INSERT-satser i en fråga php

  2. Från bas 10 till bas 26 endast med bokstäver så att 26 blir aa

  3. mysql conditional join beror på en kolumn

  4. MySQL POW() Funktion – Höj ett värde till kraften av ett annat värde