Transaktionsbehandling - Transaction processing

Transaktionsbehandling er informationsbehandling inden for datalogi, der er opdelt i individuelle, udelelige operationer kaldet transaktioner . Hver transaktion skal lykkes eller mislykkes som en komplet enhed; den kan aldrig kun være fuldstændig fuldstændig.

Når du f.eks. Køber en bog fra en online boghandel, bytter du penge (i form af kredit) til en bog. Hvis din kredit er god, sikrer en række relaterede operationer, at du får bogen, og boghandlen får dine penge. Men hvis en enkelt operation i serien mislykkes under udvekslingen, mislykkes hele udvekslingen. Du får ikke bogen, og boghandlen får ikke dine penge. Den teknologi, der er ansvarlig for at gøre børsen afbalanceret og forudsigelig, kaldes transaktionsbehandling. Transaktioner sikrer, at dataorienterede ressourcer ikke opdateres permanent, medmindre alle operationer i transaktionsenheden gennemføres med succes. Ved at kombinere et sæt relaterede operationer til en enhed, der enten helt lykkes eller helt mislykkes, kan man forenkle fejlgendannelse og gøre ens applikation mere pålidelig.

Transaktionsbehandlingssystemer består af computerhardware og software, der er vært for en transaktionsorienteret applikation, der udfører de rutinemæssige transaktioner, der er nødvendige for at drive forretning. Eksempler omfatter systemer, der administrerer salgsordreindgang, flyreservationer, lønningslister, medarbejderrekorder, fremstilling og forsendelse.

Da de fleste, men ikke nødvendigvis alle, transaktionsbehandling i dag er interaktive, betragtes udtrykket ofte som synonymt med online transaktionsbehandling .

Beskrivelse

Transaktionsbehandling er designet til at opretholde et systems integritet (typisk en database eller nogle moderne filsystemer ) i en kendt, konsekvent tilstand ved at sikre, at indbyrdes afhængige operationer på systemet enten alle gennemføres med succes eller alle aflyses med succes.

Overvej f.eks. En typisk banktransaktion, der indebærer at flytte $ 700 fra en kundes opsparingskonto til en kundes checkkonto. Denne transaktion involverer mindst to separate operationer i computertermer: debitering af opsparingskontoen med $ 700 og kreditering af checkkontoen med $ 700. Hvis den ene operation lykkes, men den anden ikke gør det, vil bankens bøger ikke balancere i slutningen af ​​dagen. Der skal derfor være en måde at sikre, at begge operationer lykkes eller begge mislykkes, så der aldrig er inkonsekvens i bankens database som helhed.

Transaktionsbehandling forbinder flere individuelle operationer i en enkelt, udelelig transaktion og sikrer, at enten alle operationer i en transaktion gennemføres uden fejl, eller at ingen af ​​dem er. Hvis nogle af de operationer, er afsluttet, men fejl opstår, når der er forsøgt de andre, de transaktion-system "ruller tilbage" alle af transaktionerne transaktionen (inklusive de vellykkede), og derved slette alle spor af transaktionen og gendannelse af systemet til den konsekvente, kendte tilstand, at den var i, før behandlingen af ​​transaktionen begyndte. Hvis alle operationer af en transaktion er fuldført, bliver transaktionen begået af systemet, og alle ændringer i databasen bliver gjort permanent; transaktionen kan ikke rulles tilbage, når dette er gjort.

Transaktionsbehandling beskytter mod hardware- og softwarefejl, der kan efterlade en transaktion delvist gennemført. Hvis computersystemet går ned midt i en transaktion, garanterer transaktionsbehandlingssystemet, at alle operationer i eventuelle uengagerede transaktioner annulleres.

Generelt udstedes transaktioner samtidigt. Hvis de overlapper hinanden (dvs. skal røre ved den samme del af databasen), kan dette skabe konflikter. For eksempel, hvis den kunde, der er nævnt i eksemplet ovenfor, har $ 150 på sin opsparingskonto og forsøger at overføre $ 100 til en anden person, mens han samtidig flytter $ 100 til checkkontoen, kan kun en af ​​dem lykkes. At tvinge transaktioner til at blive behandlet sekventielt er imidlertid ineffektivt. Derfor er samtidige implementeringer af transaktionsbehandling programmeret til at garantere, at slutresultatet afspejler et konfliktfrit resultat, det samme som kunne opnås, hvis transaktionerne udføres sekventielt i en hvilken som helst rækkefølge (en egenskab kaldet serialiserbarhed ). I vores eksempel betyder det, at uanset hvilken transaktion der først blev udstedt, lykkes enten overførslen til en anden person eller flytningen til checkkontoen, mens den anden mislykkes.

Metodik

De grundlæggende principper for alle transaktionsbehandlingssystemer er de samme. Terminologien kan imidlertid variere fra et transaktionsbehandlingssystem til et andet, og de nedenstående udtryk er ikke nødvendigvis universelle.

Tilbageføring

Transaktionsbehandlingssystemer sikrer databasens integritet ved at registrere databasens mellemliggende tilstande, når den ændres, og derefter bruge disse poster til at gendanne databasen til en kendt tilstand, hvis en transaktion ikke kan foretages. For eksempel afsættes kopier af oplysninger på databasen før dens ændring ved en transaktion til side af systemet, før transaktionen kan foretage ændringer (dette kaldes undertiden et før -billede ). Hvis en del af transaktionen mislykkes, før den begås, bruges disse kopier til at gendanne databasen til den tilstand, den var i, før transaktionen begyndte.

Rul fremad

Det er også muligt at føre en separat journal over alle ændringer af et databasesystem. (kaldes nogle gange efter billeder ). Dette er ikke påkrævet for tilbageførsel af mislykkede transaktioner, men det er nyttigt til opdatering af databasesystemet i tilfælde af en databasefejl, så nogle transaktionsbehandlingssystemer leverer det. Hvis databasesystemet fejler helt, skal det gendannes fra den seneste backup. Sikkerhedskopieringen afspejler ikke transaktioner begået siden backupen blev foretaget. Men når databasesystemet er gendannet, kan journal over efterbilleder anvendes på databasen ( rollforward ) for at bringe databasesystemet opdateret. Alle igangværende transaktioner på tidspunktet for fejlen kan derefter rulles tilbage. Resultatet er en database i en konsekvent, kendt tilstand, der indeholder resultaterne af alle transaktioner, der er begået frem til fiaskoøjeblikket.

Deadlocks

I nogle tilfælde kan to transaktioner i løbet af deres behandling forsøge at få adgang til den samme del af en database på samme tid på en måde, der forhindrer dem i at fortsætte. For eksempel kan transaktion A få adgang til del X af databasen, og transaktion B kan få adgang til del Y af databasen. Hvis transaktion A på det tidspunkt forsøger at få adgang til del Y af databasen, mens transaktion B forsøger at få adgang til del X, opstår der et dødvande , og ingen af ​​transaktionerne kan bevæge sig fremad. Transaktionsbehandlingssystemer er designet til at opdage disse deadlocks, når de opstår. Typisk vil begge transaktioner blive annulleret og rullet tilbage, og derefter vil de blive startet igen i en anden rækkefølge automatisk, så dødvandet ikke opstår igen. Eller nogle gange vil kun en af ​​de fastlåste transaktioner blive annulleret, rullet tilbage og genstartet automatisk efter en kort forsinkelse.

Deadlocks kan også forekomme blandt tre eller flere transaktioner. Jo flere transaktioner, der er involveret, jo sværere er de at opdage, til det punkt, at transaktionsbehandlingssystemer finder, at der er en praktisk grænse for de blokeringer, de kan opdage.

Kompensationstransaktion

I systemer, hvor commit- og rollback -mekanismer ikke er tilgængelige eller uønskede, bruges en kompensationstransaktion ofte til at fortryde mislykkede transaktioner og gendanne systemet til en tidligere tilstand.

SYRE kriterier

Jim Gray definerede egenskaber ved et pålideligt transaktionssystem i slutningen af ​​1970'erne under forkortelsen ACID - atomicitet, konsistens, isolation og holdbarhed.

Atomicitet

En transaktions ændringer i staten er atomiske: enten sker alt eller intet. Disse ændringer omfatter databaseændringer, meddelelser og handlinger på transducere.

Konsistens

Konsistens : En transaktion er en korrekt transformation af staten. De handlinger, der udføres som en gruppe, overtræder ikke nogen af ​​de integritetsbegrænsninger, der er knyttet til staten.

Isolation

Selvom transaktioner udføres samtidigt, forekommer det for hver transaktion T, at andre udførte enten før T eller efter T, men ikke begge.

Holdbarhed

Når en transaktion er gennemført (forpligter), overlever dens ændringer i databasen fejl og bevarer dens ændringer.

Fordele

Transaktionsbehandling har disse fordele:

  • Det tillader deling af computerressourcer mellem mange brugere
  • Det flytter tidspunktet for jobbehandling til, når computerressourcerne har mindre travlt
  • Det undgår tomgang i computerressourcerne uden menneskelig interaktion og overvågning minut for minut
  • Det bruges på dyre klasser af computere til at hjælpe med at amortisere omkostningerne ved at holde høje udnyttelsesgrader for de dyre ressourcer

Ulemper

  • De har relativt dyre installationsomkostninger
  • Der mangler standardformater
  • Hardware og software uforenelighed

Implementeringer

Standard transaktion-behandling software , såsom IBM 's Information Management System , blev først udviklet i 1960'erne, og blev ofte tæt koblet til bestemte database management systemer . Client -server computing implementerede lignende principper i 1980'erne med blandet succes. I de senere år er den distribuerede klient -server -model imidlertid blevet betydeligt vanskeligere at vedligeholde. Da antallet af transaktioner voksede som reaktion på forskellige onlinetjenester (især Internettet ), var en enkelt distribueret database ikke en praktisk løsning. Derudover består de fleste onlinesystemer af en hel pakke programmer, der fungerer sammen, i modsætning til en streng klient -server -model, hvor den enkelte server kunne håndtere transaktionsbehandlingen. I dag er der en række transaktionsbehandlingssystemer tilgængelige, der fungerer på mellemprogramniveau, og som skaleres til store systemer, herunder mainframes .

En indsats er X/Open Distributed Transaction Processing (DTP) (se også Java Transaction API (JTA). Imidlertid er proprietære transaktionsbehandlingsmiljøer som IBMs CICS stadig meget populære, selvom CICS også har udviklet sig til at omfatte åbne branchestandarder. .

Udtrykket ekstrem transaktionsbehandling (XTP) blev brugt til at beskrive transaktionsbehandlingssystemer med usædvanligt udfordrende krav, især gennemløbskrav (transaktioner pr. Sekund). Sådanne systemer kan implementeres via distribuerede eller klynge stilarkitekturer. Det blev brugt mindst i 2011.

Referencer

Yderligere læsning

  • Gerhard Weikum, Gottfried Vossen, Transaktionelle informationssystemer: teori, algoritmer og praksis med samtidighedskontrol og genopretning , Morgan Kaufmann, 2002, ISBN  1-55860-508-8
  • Jim Gray , Andreas Reuter, Transaction Processing-Concepts and Techniques, 1993, Morgan Kaufmann, ISBN  1-55860-190-2
  • Philip A. Bernstein, Eric Newcomer, Principles of Transaction Processing, 1997, Morgan Kaufmann, ISBN  1-55860-415-4
  • Ahmed K. Elmagarmid (redaktør), Transaktionsmodeller til avancerede databaseapplikationer, Morgan-Kaufmann, 1992, ISBN  1-55860-214-3

eksterne links