Jeg (Nikolaj Brinch) havde valgt at hører dette indlæg af Mark Little fra RedHat, fordi jeg troede det ville gøre op med begrebet transaktioner.
Det startede med at Mark Little (som er englænder og super ekspert i transaktioner) gennemgik hvad transaktioner. Han kan virkelig forklare tingene så folk forstår det.
Transaktioner er ikke “database only”. Web Services benytter også transaktioner.
Hvis ikke det er two phase commit (2PC), er det ikke transkationer. Der er rigtig meget open source software som stadig ikke bruge 2PC. Folk tror de bruger transaktioner selvom de ikke gør.
Hvis der kun er een deltager i transaktionen er 1PC ok, gode transaction managers kan selv finde ud af dette og lave 1PC i stedet for 2PC hvis der ikke er brug for det. Generelt sagde han at gode Transaction Managers gør, er at optimere 2PC væk når der ikke er brug for det.
Pseudo-transactions – glem det! Det er at flytte Transaction Manager implementation op i applikations laget, og er absolutly horrible.
Heuristics: Farligt, svært og ikke automatisk resolution (redo, undo). Gode Transaction Systems kan recorde information nok til at “a human” manuelt kan resolve problemet.
Nogle Transaction Managers har ikke logging – stay far away, det skal en Transaction Manager.
2PC er en blocking protocol (blocking er skidt for scalability)
Husk at man kan bruge transaktioner som understøtter forskellige sammensætninger af ACID. F.eks recoverable transaktioner (ACI)
Hvornår skal man ikke bruge transaktioner:
2PC er ikke kun for distribuerede systemer.
En vældig god og indsigtsfuld præsentation som det er temmelig vigtigt at alle der har med transaktioner at gøre (og det har alle faktisk) lige kigger igennem.