SE521041C2 - Metod för optimering av transaktionsprotokoll inom en distribuerad databas - Google Patents

Metod för optimering av transaktionsprotokoll inom en distribuerad databas

Info

Publication number
SE521041C2
SE521041C2 SE9702014A SE9702014A SE521041C2 SE 521041 C2 SE521041 C2 SE 521041C2 SE 9702014 A SE9702014 A SE 9702014A SE 9702014 A SE9702014 A SE 9702014A SE 521041 C2 SE521041 C2 SE 521041C2
Authority
SE
Sweden
Prior art keywords
transaction
node
message
nodes
coordinator
Prior art date
Application number
SE9702014A
Other languages
English (en)
Other versions
SE9702014L (sv
SE9702014D0 (sv
Inventor
Ulf Mikael Ronstroem
Original Assignee
Ericsson Telefon Ab L M
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ericsson Telefon Ab L M filed Critical Ericsson Telefon Ab L M
Priority to SE9702014A priority Critical patent/SE521041C2/sv
Publication of SE9702014D0 publication Critical patent/SE9702014D0/sv
Priority to US09/084,502 priority patent/US6216126B1/en
Priority to EP98924732A priority patent/EP1016005B1/en
Priority to CA002291009A priority patent/CA2291009A1/en
Priority to PCT/SE1998/001010 priority patent/WO1998054659A2/en
Priority to JP50059599A priority patent/JP4241940B2/ja
Priority to KR19997011092A priority patent/KR20010013112A/ko
Priority to AU76831/98A priority patent/AU7683198A/en
Priority to DE69838506T priority patent/DE69838506T2/de
Publication of SE9702014L publication Critical patent/SE9702014L/sv
Publication of SE521041C2 publication Critical patent/SE521041C2/sv

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/466Transaction processing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99943Generating database or data structure, e.g. via user interface
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability

Description

'VK 10 15 20 25 30 35 521 041 TEKNIKENS TIDIGARE STÅNDPUNKT Det är sedan länge känt att det som här benämns "system" kan flertal olika exempelvis ut- utgöra en del av ett nätverk och omfattar ett noder vilka samverkar med varandra, genom att I ett pågår ständigt olika transaktioner mellan två göra noderna i en distribuerad databas. sådant system eller flera noder. Dessa transaktioner skall utföras på ett säkert och tidseffektivt sätt.
Så kallade distribuerade transaktioner innebär att en trans- aktion skall utföras mellan ett flertal noder eller deltagare.
En transaktion kan vara en godtycklig åtgärd som berör ett flertal noder. Två metoder, "traditionell commit i två faser" och "linjär commit", är väl kända i samband med distribuerade transaktioner. Med "commit" menas åtagande, det vill säga att en deltagare åtagit sig att göra något och även gör det.
Det är känt att nyttja säkerhetskopiering av informationen i en distribuerad databas. Således ligger en primär kopia av del av en tabell lagrad inom en första nod och en sekundär kopia av samma del ligger lagrad inom en andra nod.
En primär kopia med tillhörande sekundära kopia benämns här som ett fragment. En transaktion som berör en del av en tabell berör således ett fragment av en tabell som omfattar såväl en primär som en sekundär kopia av denna del. Då en distribuerad transaktion kan beröra ett flertal olika tabeller, eller ett flertal olika delar ev en tabell, så berörs således ett flertal olika fragment med därtill hörande kopior.
"Traditionell commit i två faser" samt "linjär commit" är för- delaktiga på olika sätt vid en transaktion som berör ett fler- tal fragment. Detta kommer att beskrivas närmare med hjälp av figurer i det efterföljande.
Det skall dock kortfattat nämnas här: f V..............,....~..--..~...-...-,.. ._ i ._ .. _ c__._...,.. .v ._ ,..___.__....._ , . , ..._ ..__.\.__. ___.. 10 15 20 25 :iso 35 _ _ _ .___.._,_..._._ .______í____._.-._.. - att "traditionell commit i två faser" medför att ett stort antal meddelanden behöver sändas, men där detta kan göras delvis parallellt och därmed kräver stora krav på tillgäng- lig processor- och överföringskapacitet men erbjuder rela- tivt korta svarstider, och - att "linjär commit" medför att ett mindre antal meddelanden behöver sändas, men där detta görs i stort sett seriellt, och därmed ställer lägre krav på tillgänglig processor- och , överföringskapacitet men ger relativt längre svarstider, vid en och samma transaktion.
Det skall även nämnas att med syftet att erhålla redundans i ett system är det känt att använda så kallad systemredundans, vilket innebär att det finns en parallell sekundär kopia av det kompletta systemet. En sådan kopia ligger hårdvarumässigt helt skild från den primära kopian.
Upphöjandet av ett sekundärt system till primärt system sker endast vid ett totalt bortfall av det primära systemet.
Vid ett bortfall av en transaktionskoordinator under en trans- aktion kan en så kallad blockering av systemet uppkomma. Detta ~ medför att systemet måste vänta tills dess att den bortfallna transaktionskoordinatorn åter startats upp eller tills dess att en sekundär kopia av transaktionskoordinatorn upphöjts till primär kopia och övertagit rollen som transaktionskoordi- nator.
Det är i dessa sammanhang känt att skapa en så kallad "icke blockerande koordinator". En sådant koordinator beskrivs i publikationen "Location and Replication independent recovery in a highly available database", Svein Erik Bratsberg, Svein- Olof Hvasshovel, øysten Torbjørnsen. Telenor R&D.
Denna metod medför kortfattat att parallella transaktionsko- w-...xwflwfl- -.-.-....-B-.f.~,~§.fl.... _ 10 15 20 25 C30 35 521 041 _ 4 _ ordinatorer nyttjas, vilket i sin tur medför mycket höga prestandakostnader.
Det skall även nämnas att publikation "D3 Dynamic Data Distri- bution Algorithm" av Chamberlain, som publicerades vid konfe- rensen "Very Large Databases" i Vancouver år 1992 även bes- kriver hanterandet av ett bortfall av en transaktionskoordi- nator under en transaktion. nEnoGöRELsE FÖR FÖRELIGGANDE UPPFINNING TEKNISKT PROBLEM Under beaktande av teknikens tidigare ståndpunkt, såsom den beskrivits ovan, är det ett tekniskt problem att, med utgångs- punkt från en metod att utföra en transaktion som berör ett antal noder inom ett system av noder vari information hörande till en distribuerad databas ligger lagrad, vilken information är uppdelad i tabeller, där transaktionen utgår från en trans- aktionskoordinator, vilken transaktion berör åtminstone en grupp av delar av åtminstone en första av tabellerna, där gruppen omfattar åtminstone en första och en andra del samt eventuellt ytterligare en eller flera delar, där den första delen ligger lagrad inom en första nod, och den andra delen ligger lagrad inom en andra nod, skild från den första noden, samt där eventuella andra delar inom gruppen ligger lagrade inom mellanliggande noder, vilka utgöres av ytterligare noder skilda från varandra och från den första och den andra noden, och där transaktionen utgöres av en dubbelsäker transaktion, erbjuda en möjlighet att genomföra en sådan transaktion skall på ett snabbt och säkert sätt i relation till tillgänglig processor- och överföringskapacitet.
Det är ett tekniskt problem att kunna dela in en sådan trans- aktion i huvudsakligen två faser, vilka erbjuder ett lågt antal meddelanden som behöver sändas i relation till "tradi- tionell commit i två faser" och en snabb svarstid i relation 10 15 20 25 30 35 521 041 till "linjär commit".
Det är ett tekniskt problem att kunna erbjuda en sådan trans- aktion i samband med att transaktionen berör ett flertal grupper där respektive grupp omfattar två eller flera delar.
Det är ytterligare ett tekniskt problem att kunna anpassa ett transaktionsprotokoll specifikt till att erbjuda en enkel och effektiv hantering av en transaktion som berör ett flertal olika fragment där varje fragment omfattar såväl en primär kopia som en eller flera back-up kopior, såsom en sekundär kopia och en stand-by kopia.
Det är vidare ett tekniskt problem att kunna anpassa ett transaktionsprotokoll till att erbjuda en enkel hantering av bortfallande noder under en transaktion, och så även av ett bortfall av transaktionskoordinatorn, utan att systemet hamnar i ett blockerat läge.
Det är ett tekniskt problem att kunna sätta ett lås på rätt sätt och vid rätt tidpunkt, samt att taga bort detsamma på rätt sätt och vid rätt tidpunkt, i samband med en transaktion, för att därmed kunna erbjuda en transaktion i endast två faser som även erbjuder en säker hantering av en transaktion med hänsyn till eventuellt bortfallna noder under transaktionen.
Det är även ett tekniskt problem att kunna erbjuda en uppdate- ring av ett sekundärt system i samband med en transaktion utan att därför behöva introducera ytterligare faser i transakti- Oflen .
Det är ett tekniskt problem att kunna erbjuda en möjlighet att genomföra en uppdatering av ett sekundärt system i förhållande till sättandet och släppandet av ett lås på berörda fragment på ett enkelt och ändamålsenligt sätt.
Det är vidare ett tekniskt problem att kunna erbjuda en möj- 10 15 20 25 130 35 521 041 _ 5 _ lighet att genomföra en uppdatering av ett sekundärt system i samband med en transaktion skall på olika säkra sätt beroende på vilket krav som ställs på säkerhet i samband med respektive transaktion.
Det måste även få anses vara ett tekniskt problem att kunna erbjuda en möjlighet att välja transaktionskoordinator inom det sekundära systemet på ett enkelt och effektivt sätt som dessutom erbjuder en viss lastreglering av noderna hörande till det sekundära systemet vid fördelningen av transaktions- koordinatorskapet.
LÖSNINGEN För att kunna lösa ett eller flera av de ovan angivna tekniska problemen anvisar nu föreliggande uppfinning en metod avsedd att nyttjas vid en transaktion som berör ett antal noder inom ett system av noder vari information hörande till en distri- buerad databas ligger lagrad, och vilken information är upp- delad i tabeller.
Transaktion utgår från en transaktionskoordinator, och berör åtminstone en grupp av delar av åtminstone en första av dessa tabeller, där respektive grupp omfattar åtminstone en första och en andra del samt eventuellt ytterligare en eller flera delar.
Den första delen ligger lagrad inom en första nod, den andra delen ligger lagrad inom en andra nod, skild från den första noden, och eventuella andra delar inom gruppen ligger lagrade inom mellanliggande noder, vilka utgöres av ytterligare noder skilda från varandra och från den första och den andra noden.
Transaktionen utgöres av en dubbelsäker transaktion.
Med a'si ten att erbjuda ett snabbt och säkert sätt att utföra en sådan transaktion, i relation till tillgänglig processor- 10 15 20 25 30 35 521 041 _ 7 _ och överföringskapacitet, anvisar föreliggande uppfinning speciellt att transaktionen inleds med en första fas, vilken omfattar: - att transaktionskoordinatorn sänder ett meddelande "för- bered", det vill säga en begäran om förberedelse av trans- aktionen, till den första noden, - att den första noden, om den första noden kan àtaga sig att genomföra transaktionen, därefter, direkt eller via en eller flera mellanliggande noder, sänder begäran om förberedelse till den andra noden, eller - att den första noden, om den första noden är oförmögen att àtaga sig att genomföra transaktionen, därefter, direkt eller via en eller flera mellanliggande noder, sänder ett meddelande "oförberedd" till den andra noden, - att den andra noden, om den andra noden kan àtaga sig att genomföra transaktionen, därefter sänder ett meddelande "förberedd", det vill säga att samtliga berörda noder är förberedda att genomföra transaktionen, direkt till trans- aktionskoordinatorn, eller - att den andra nod, om den andra nod är oförmögen att àtaga sig att genomföra transaktionen eller om den andra noden mottagit meddelandet "oförberedd", därefter sänder ett med- delande "oförberedd" direkt till transaktionskoordinatorn, vilket avslutar den första fasen.
Denna första fas följs av en andra fas, vilken omfattar: - att transaktionskoordinatorn sänder ett meddelande om åtgärd direkt till den andra noden, - att den andra nod därefter, direkt eller via en eller flera 10 15 20 25 :so 35 521 041 _ 3 _ mellanliggande noder, sänder meddelandet om åtgärd till den första noden, och - att den första nod därefter sänder ett avslutande meddelande till transaktionskoordinatorn, vilket avslutar den andra fasen.
Meddelandet om åtgärd är "genomför", det vill säga genomför åtgärden enligt transaktionen, och det avslutande meddelandet är "genomförd", det vill säga åtgärden enligt transaktionen är genomförd, om den första fasen avslutas med ett meddelande "förberedd".
Om däremot den första fasen avslutas med ett meddelande "oför- beredd" är meddelandet om åtgärd "avbryt", det vill säga av- bryt transaktionen, och det avslutande meddelandet är då "avbruten", det vill säga att transaktionen är avbruten.
Ovanstående beskriver förenklat hanteringen mot en grupp. Det är dock mycket vanligt att transaktionen berör ytterligare grupper av delar, där respektive grupp omfattar delar hörande till den första tabellen och/eller delar hörande till andra tabeller inom databasen, skilda från den första tabellen.
Dessa delar är lagrade på inbördes första respektive andra samt eventuellt en eller flera mellanliggande noder, var och en skilda från varandra inom respektive grupp av delar.
I ett sådant fall anvisar föreliggande uppfinning att den första fasen inleds med en begäran om förberedelse från transaktionskoordinatorn till respektive första nod och avslutas med ett meddelande "förberedd" eller "oförberedd" från respektive andra nod till transaktionskoordinatorn.
Vidare inleds den andra fasen med meddelandet om åtgärd från transaktionskoordinatorn till respektive andra nod och avslu- 10 15 20 25 30 35 521 041 _ 9 _ tas med det avslutande meddelandet från respektive första nod till transaktionskoordinatorn.
Här är meddelandet om åtgärd "genomför" och det avslutande meddelandet är "genomförd" om den första fas avslutas med ett meddelande "förberedd" från samtliga andra noder.
Vidare är meddelandet om åtgärd "avbryt" och det avslutande meddelandet är "avbruten" om den första fas avslutas med ett meddelande "oförberedd" från någon andra nod.
Föreliggande uppfinning bygger således huvudsakligen på att, vid en transaktion som berör ett flertal noder, dessa delas in i grupper, där meddelanden skickas seriellt inom respektive grupp och parallellt till respektive grupp, från transaktions- koordinatorn.
Den första fasen inleds med ett meddelande från transaktions- koordinatorn till den första noden inom respektive grupp och avslutas med ett meddelande från den sista noden inom respek- tive grupp direkt till transaktionskoordinatorn.
Den andra fasen inleds med ett meddelande från transaktions- koordinatorn till den sista noden inom respektive grupp och avslutas med ett meddelande från den första noden inom respek- tive grupp direkt till transaktionskoordinatorn.
Föreliggande uppfinning blir speciellt tillämplig när den första delen är tilldelad högre prioritet än andra delar in- gående i respektive grupp, och när respektive grupp omfattar en eller flera ytterligare delar vilka är lagrade i de/den mellanliggande nod/noderna.
I ett sådant fall sänds meddelandet i den första fasen seri- ellt från den första nod till den/de mellanliggande nod/noder- na och vidare till den andra noden, och meddelandet i den andra fasen sänds seriellt från den andra noden till den/de 10 15 20 25 30 35 521 041 _lo_ mellanliggande nod/noderna och vidare till den första noden.
En speciell sådan tillämpning föreligger när respektive grupp utgör ett fragment av databasen, vilket fragment omfattar den första delen, den andra delen samt en ytterligare del, vilken ligger lagrad på en tredje nod, och där den högre prioriteten består i att den första delen utgör en primär kopia av en del av en tabell, att den ytterligare delen utgör en sekundär kopia av den primära kopian, samt att den andra delen utgör en stand-by kopia av den primära kopian.
Föreliggande uppfinning anvisar vidare att ett säkert sätt att genomföra transaktioner där samtliga kopior inom ett fragment uppdateras och där ett bortfall av samtliga kopior inom ett fragment inte nödvändigtvis orsakar en blockering av systemet erbjuds genom att sättande respektive släppande av ett lås på respektive kopia hörande till ett fragment i samband med en transaktion göres genom att förberedelsen av den första noden i den första fasen omfattar att den första noden genererar ett sättande av ett lås på samtliga kopior hörande till fragmentet.
Vidare anvisar föreliggande uppfinning att den första noden genererar att låset på respektive kopia släpps först efter att den första noden mottagit meddelandet om åtagande samt sänt det avslutande meddelandet.
Ett sådant lås skall appliceras enligt en lämplig metod, såsom att endast de delar av respektive kopia som berörs av transak- tionen göres otillgängliga för andra transaktioner medan övriga delar är tillgängliga för andra transaktioner.
I en situation där någon av noderna inom något fragment som berörs av transaktionen faller bort under genomförandet av transaktionen anvisar föreliggande uppfinning - att transaktionskoordinatorn kontrollerar samtliga pågående 10 15 20 25 30 35 521 041 _ 11 _ sändningar av meddelande, - att den fas av transaktionen som avbrutits startas om från början, - att meddelanden skickas enligt denna fas men med bortfallen nod exkluderad ur meddelandekedjan, och - att om en nod mottager ett tidigare mottaget meddelande ignoreras detsamma och sändes vidare.
Om däremot den bortfallna noden utgöres av en första nod inom något fragment som berörs av transaktionen, samt om bortfallet sker under den förberedande fasen av transaktionen, avbrytes transaktionen.
Vidare anvisar föreliggande uppfinning att, om transaktions- koordinatorn faller bort under genomförandet av en transak- tion, en systemkoordinator är anpassad att detektera ett bortfallande av någon nod inom systemet, samt - att systemkoordinatorn ställer en allmän förfrågan till samtliga noder inom systemet om huruvida någon nod är deltagande i en transaktion där den bortfallna noden utgör transaktionskoordinator, - att en ny nod tilldelas rollen som transaktionskoordinator, - att samtliga noder inom respektive fragment som berörs av transaktionen sammanställer en statusrapport som sänds till den nya transaktionskoordinatorn, vilken statusrapport omfattar nodidentitet, fragmentidentitet, transaktions- status, samt huruvida noden utgör primär, sekundär eller stand-by kopia inom respektive fragment, och - att den nya transaktionskoordinatorn beslutar om huruvida transaktionen skall fortlöpa eller avbrytas utgående från 10 15 20 25 H 30 35 521 041 _ 12 _ statusrapporterna.
Föreliggande uppfinning anvisar vidare att ovanstående metod är tillämplig även om respektive grupp endast omfattar en första och en andra del, där den högre prioritet består i att den första delen utgör en primär kopia av en del av en tabell och där den andra delen utgör en sekundär kopia av den primära kopian.
Vid nyttjande av en sekundärt kopia av det totala systemet, det vill säga såväl ett primärt som ett sekundärt system, och med avsikten att erbjuda en möjlighet att uppdatera ett sådant sekundärt system i samband med en transaktion, anvisar före- liggande uppfinning att en uppdatering av det sekundära sys- temet skall begäras innan låset på respektive kopia släppts.
Denna uppdatering är genomförbar i ett steg, och uppdateringen kan göras genom en enkelsäker överföring eller en begränsat dubbelsäker överföring.
Vilken metod som väljs beror på vilken säkerhet som respektive transaktion kräver. Föreliggande uppfinning anvisar att de attribut som styr transaktionen anger huruvida en uppdatering av det sekundära systemet skall ske medelst enkel överföring eller begränsat dubbel överföring.
Vid en uppdatering genom en enkelsäker överföring sänder res- pektive första nod som berörs av transaktionen ett meddelande till motsvarande nod inom det sekundära systemet om vilken åtgärd som skall genomföras, det vill säga en "genomför".
Transaktionen fortlöper därefter utan att invänta svar från berörda noder i det sekundära systemet om huruvida åtgärden kan genomföras eller ej.
Vid en uppdatering genom en begränsat dubbelsäker överföring sänder respektive första nod som berörs av transaktionen ett meddelande till motsvarande nod inom det sekundära system om 10 15 20 25 30 35 ,, m., 521 041 _13- vilken åtgärd som skall genomföras, det vill säga "genomför", och ett svar inväntas från berörda noder inom det sekundära systemet som en del av transaktionen, där meddelandet besvaras med "genomförd", vilket indikerar till den första noden att åtgärden kommer att genomföras och att det sekundära systemet således kommer att uppdateras enligt transaktionen, eller med "avbruten", vilket indikerar till den första noden att åtgär- den ej kommer att genomföras och att det sekundära systemet således ej kommer att uppdateras enligt transaktionen.
Begränsningen i den dubbelsäkra överföringen består i att noder i det sekundära systemet ej kan begära att transaktionen skall avbrytas.
Föreliggande uppfinning anvisar även att en indikation på att det sekundära system ej kommer att uppdateras enligt transak- tionen medför att det sekundära system startas om för att på ett korrekt sätt utgöra en kopia av nämnda system.
Med syftet att erbjuda en enkel och effektiv möjlighet att välja transaktionskoordinator inom det sekundära systemet, vid an uppdatering av det sekundära systemet i samband med en transaktion, anvisar vidare föreliggande uppfinning att valet av transaktionskoordinator inom det sekundära systemet är möj- ligt genom att transaktionskoordinatorn inom det primära sys- temet väljer en logisk transaktionskoordinator från en mapp- ningstabell över möjliga logiska transaktionskoordinatorer inom det sekundära systemet.
Respektive logiska transaktionskoordinator på mappningstabel- len kan mappas mot en fysiska nod som verka inom det sekundära systemet.
En systemkoordinator inom det sekundära systemet ser till att samtliga positioner på mappningstabellen är besatta och att dessa noder är tillgängliga för att agera transaktionskoor- dinator. 10 15 20 25 É 30 i 35 .. n., 521 041 _14- Med avsikten att erbjuda en viss lastreglering av noderna inom det sekundära systemet anvisar föreliggande uppfinning att vid höga belastningar av vissa noder kan systemkoordinatorn inom det sekundära systemet se till att dessa högt belastade noder ej finns med på mappningstabellen.
FÖRDELAR De fördelar som främst kan få anses vara kännetecknande för en metod enligt föreliggande uppfinning är att härigenom erbjuds en möjlighet att genomföra transaktioner i en distribuerad databas med större tillförlitlighet och på ett snabbare sätt än vad som tidigare varit möjligt.
Detta är möjligt genom att en transaktion enligt föreliggande uppfinning ger kortare svarstider vid transaktioner som berör ett flertal fragment än vad som är möjlig medelst "linjär commit", vilket är det vanliga transaktionsprotokollet vid distribuerade transaktioner som berör ett flertal fragment med tillhörande kopior.
Vidare erbjuds ett icke blockerande system och kortare för- dröjningstider vid bortfallande av en eller flera noder under en transaktion.
Föreliggande uppfinning erbjuder även en möjlighet att uppda- tera ett sekundärt system utan att ytterligare faser krävs i transaktionen för att genomföra en sådan uppdatering.
Det som främst är kännetecknande för en metod, i enlighet med föreliggande uppfinning, anges i det efterföljande patentkra- vets 1 kännetecknande del. 10 15 20 25 so 135 Å ~ * « X | , - ; . .- 521 041 _ 15 _ KORT FIGURBESKRIVNING Tidigare kända metoder samt en metod, uppvisande de med före- liggande uppfinning förknippade egenheterna, skall i exempli- fierande syfte nu närmare beskrivas med hänvisning till bifo- gad ritning, där; figur 1 figur 2 figur 3 figur 4 figur 5 figur 6 figur 7 figur 8 figur 9 visar schematiskt och mycket förenklat en del av ett system av noder och deras inbördes förhål- landen, visar schematiskt hur en linjär commit är genom- förbar enligt känd teknik, visar schematiskt det inbördes förhållandet mellan olika noder som berörs av en "TPC-B" transaktion, vilken transaktion berör fyra grupper med tre deltagare inom respektive grupp, visar schematiskt hur en "TPC-B"-transaktion utförs genom traditionell commit i två faser, visar schematiskt hur en "TPC-B"-transaktion utförs genom linjär commit, visar förenklat och schematiskt hur en del av en transaktion enligt föreliggande uppfinning genom- förs, visar schematiskt hur en "TPC-B"-transaktion utförs enligt föreliggande uppfinning, visar schematiskt hur ett handhavande av en bortfallen nod, visar schematiskt ett handhavande av en bortfallen transaktionskoordinator, 10 15 20 25 30 35 = * = 1 v » 1 - . . i. 521 041 _ 15 _ figur 10 visar schematiskt ett exempel på grupper med endast två deltagare i respektive grupp, figur ll visar schematiskt ett första exempel på hur ett sekundärt system är uppdaterbart enligt förelig- gande uppfinning, figur 12 visar schematiskt ett andra exempel på hur ett sekundärt system är uppdaterbart enligt förelig- gande uppfinning, och figur 13 visar schematiskt hur en mappningstabell verkar vid valet av en transaktionskoordinator inom ett sekundärt system vid en uppdatering av det sekun- dära systemet.
BESKRIVNING ÖVER KÄNDA METODER VID TRANSAKTIONER INOM DISTRIBUERADE DATABASER För att ytterligare förenkla förståelsen av föreliggande upp- finning, och för att därmed ytterligare belysa de fördelar som erbjuds genom föreliggande uppfinning, skall här känd teknik beskrivas något mer detaljerat.
Inledningsvis skall här "traditionell commit i två faser" beskrivas, vilket är ett välkänt sätt att genomföra distri- buerade transaktioner. Denna metod omfattar, trots sin benäm- ning, tre faser av vilka två berör själva transaktionen. De tre faserna är: - uppdatering av transaktionen - förberedelse och åtagande - genomförande av åtgärden om samtliga deltagare åtagit sig att göra så, annars ingen åtgärd.
Första fasen är en uppstartningsfas där en transaktionskoor- dinator förbereder transaktionen genom diverse uppdateringar. 10 15 20 25 r3O 35 .. ;.,, 521 041 _17- I den andra fasen skickar transaktionskoordinatorn ett med- delande "förbered" eller "prepare", vilket är en begäran till alla deltagare om ett förberedande av en viss åtgärd och res- pektive deltagare förbereder sig för åtgärden. Respektive del- tagare svarar "förberedd" eller “prepared" om den kan àtaga sig att utföra åtgärden eller "oförberedd" eller "unprepared" om den inte kan göra ett sådant åtagande.
I antingen uppstartningsfasen eller förberedelsefasen ingår även att ett lås sättes på den del av databasen som berörs av transaktionen så att eventuella andra transaktioner som kan beröra samma del får vänta tills dess att pågående transaktion är färdig. Detta för att förhindra att villkoren för ett åtagande inte skall kunna ändras under själva transaktionen.
Ett sådant lås kan upprättas på olika sätt och således omfatta allt från att en hel nod låses till att endast den del av databasen som berörs av transaktionen låses. Föreliggande upp- finning är oberoende av vilken typ av lås som används varför detta inte kommer att beskrivas ytterligare här.
Därefter påbörjas fas tre, vilken omfattar att, om transak- tionskoordinatorn erhåller "förberedd" från samtliga delta- gande noder, transaktionskoordinatorn sänder ett meddelande "genomför" eller "commit“ vilket är en order om att åtgärden skall genomföras, annars, om transaktionskoordinatorn erhåller "oförberedd" från någon deltagande nod, sänds meddelandet "avbryt" eller "abort", vilket är en order om att ingen åtgärd skall göras.
Fas ett och två kan utgöra en gemensam fas där förberedelsen även omfattar en uppdatering inför transaktionen.
En traditionell commit i två faser mellan två noder kräver så- ledes åtminstone fyra meddelanden som sänds mellan transakti- onskoordinatcrn och respektive deltagare. I följande exempel utgör en nod l transaktionskoordinator och en nod 2 en delta- 10 15 20 25 30 35 521 041 _18- gare. De fyra meddelandena är: l: "förbered" från nod l till nod 2, 2: "förberedd" eller "oförberedd" från nod 2 till nod 1, 3: "genomför" eller "avbryt" från nod l till nod 2, 4: "genomförd" eller "avbruten" från nod 2 till nod l.
I ett system kan flera noder påverkas av en transaktion, det kan således finnas en hierarki av noder där en transaktions- koordinator inte nödvändigtvis behöver känna till om eventu- ella ytterligare noder som befinner sig längre ner i hierarkin än de till transaktionskoordinatorn direkt anslutande noderna som berörs av transaktionen.
Figur l visar ett exempel på en sådan hierarki, där en trans- aktionskoordinator l påbörjar en transaktion som berör del- tagare la och lb.
Figur 1 visar även att deltagare lb utgör koordinator för del- tagare lc och ld utan att transaktionskoordinatorn nödvändigt- vis behöver känna till detta.
Kommunikationen mellan transaktionskoordinatorn l och delta- gare la respektive deltagare lb kan ske samtidigt, vilket be- tyder att även om transaktionen sker från transaktionskoordi- natorn till ett flertal deltagare så tar den inte nödvändigt- vis längre tid eftersom de fyra meddelandena skickas samtidigt till och från de olika deltagarna.
Med samtidigt menas nödvändigtvis inte absolut samtidighet eftersom överföringskapaciteten mellan olika noder, processor- kapaciteten inom olika noder samt svarstiden från olika noder kan variera. Svarstiden från la kan exempelvis vara kortare än svarstiden från lb eftersom lb behöver genomföra vissa opera- tioner med lc och ld innan han kan svara transaktionskoordi- natorn l. 10 15 20 25 30 D35 521 041 _ 19 _ Traditionell commit i två faser ger således förhållandevis korta svarstider men kräver normalt ett översändande av för- hållandevis många meddelanden i jämförelse med andra metoder.
Det är även möjligt att förflytta koordinatorskapet, vilket medför en optimering av commit i två faser. Denna typ av opti- mering är vanlig i databaser vid telekommunikations-system. En sådan optimering är även önskvärd i situationer där en använ- dare inte är lika tillförlitlig som en server. Det är exempel- vis inte önskvärt att en hemdator-användare skall kunna vara transaktionskoordinator i en telekommunikations-databas.
Ett exempel på en förflyttning av koordinatorskapet är det som kallas "linjär commit", vilket är en optimering av traditi- onell commit i två faser där antalet nödvändiga meddelanden minskas i ett fall där ett flertal noder berörs av en trans- aktion.
Figur 2 avser att förenklat visa hur ett antal noder enligt figur 1 samverkar genom linjär commit.
Här visas att förflyttning av koordinatorskapet används i varje steg. Pilarna visar förberedelse- och åtagande-delen i fas två av en transaktion. Transaktionskoordinatorn begär förberedelse av deltagare la (1) samt vidarebefordrar koordi- natorskapet, deltagare la begär förberedelse av deltagare lb (2) om deltagare la kan åtaga sig att utföra transaktionen, samt vidarebefordrar koordinatorskapet, deltagare lb begär förberedelse av deltagare lc (3) om deltagare lb kan åtaga sig att utföra transaktionen samt vidarebefordrar koordinator- skapet och deltagare lc begär förberedelse av deltagare ld (4) om deltagare lc kan åtaga sig att utföra transaktionen.
Deltagare ld ser att han är sist i kedjan och eftersom begäran om förberedelse nått honom vet han att alla föregående noder har åtagit sig att utföra transaktionen. Deltagare ld har ko- ordinatorskapet och kan således skicka order "genomför" (5) 10 15 20 25 30 35 521 041 _ 20 _ till deltagare lc om deltagare 4 själv kan göra åtagandet. Då deltagare lc fått "genomför" från deltagare ld svarar denne deltagare lb (6) med "genomför", och så vidare till deltagare la (7), vilken kan sända "genomförd" (8) till transaktionsko- ordinatorn 1.
Transaktionskoordinatorn 1 får endast "genomförd" från del- ld åtagit sig att utföra transaktionen. Om någon deltagare, exempelvis tagare la om samtliga föregående deltagare lb, lc, deltagare lc, lämnar "oförberedd" aborteras eller avbryts transaktionen.
Linjär commit kräver endast två meddelanden mellan deltagande noder men ger dock förhållandevis långa svarstider eftersom allt sker seriellt. Speciellt om antalet deltagande noder är stort.
En vanligt förekommande test-metod för att kontrollera pres- tanda vid utförandet av transaktioner i en distribuerad data- bas är att utföra en så kallad "TPC-B"-transaktion. Deltagarna i en sådan transaktion visas schematiskt i Figur 3.
En TPC-B transaktion omfattar uppdaterandet av 4 olika tabeller i databasen.
En tabell kan vara uppdelad i ett antal olika grupper, vilka var och ett omfattar olika delar av tabeller som berörs av transaktionen. Dessa delar är fysiskt placerade i olika noder i systemet. Vid en uppdatering av en tabell måste således hela gruppen, det vill säga samtliga berörda delar, uppdateras.
I en TPC-B transaktion där fyra olika tabeller skall uppda- teras skall således alla delar hörande till respektive grupp uppdateras.
I figur 3 visas en transaktionskoordinator l och fyra grupper, gl, g2, g3, g4 var och ett omfattande tre olika delar som är 10 15 20 25 30 35 521 041 _21.. placerade i var sin nod. Den första gruppen gl är således utplacerat i tre deltagare dl, d2, d3, den andra gruppen g2 i tre deltagare och så vidare.
Figur 4 visar att vid nyttjandet av traditionell commit i två faser krävs ett översändande av fyra meddelande mellan trans- aktionskoordinatorn l och varje deltagare, där respektive dubbelriktad pil representerar fyra dessa meddelanden, vilket resulterar i ett antal av 4*g*d meddelanden, där g är antalet grupper och d antalet deltagare i respektive grupp. För en TPC-B transaktion enligt figur 3 resulterar detta i 48 med- delanden, där visserligen tolv meddelanden åt gången kan sändas samtidigt.
Figur 5 visar att vid nyttjande av linjär commit i samma kon- figuration av grupper och noder sänder transaktionskoordina- torn 1 ett meddelande till en första deltagare dl. Koordina- torskapet förflyttas till deltagare dl och denne skickar meddelandet och koordinatorskapet vidare seriellt enligt figuren till den sista deltagaren, vilken enligt figuren blir deltagare dl"' i den fjärde gruppen g4. Denne är sist i kedjan och meddelande om åtgärd, "genomför" eller “avbryt" beroende på vad som skett tidigare, skickas tillbaka genom kedjan till transaktionskoordinatorn 1. Detta kräver 2*g*d meddelanden, vilket i fallet enligt figur 3 resulterar i 24 meddelanden, vart och ett seriellt efter varandra.
BESKRIVNING ÖVER NU FöREsLAGEN uTFöRINcsFoRM Med hänvisning till figur 6 visas således en metod att utföra en transaktion som berör ett antal noder inom ett system av noder vari information hörande till en distribuerad databas ligger lagrad, vilken information är uppdelad i tabeller.
En transaktion utgår från en transaktionskoordinator l, och berör åtminstone en grupp gl av delar av åtminstone en första av tabellerna. 10 15 20 25 30 35 .1- .Uf 521 041 _ 22 _ Denna grupp gl omfattar åtminstone en första och en andra del samt eventuellt ytterligare en eller flera delar.
Den första delen ligger lagrad inom en första nod nl, och den andra delen ligger lagrad inom en andra nod n2, skild från den första noden nl. Eventuella andra delar inom gruppen ligger lagrade inom mellanliggande noder, vilka utgöres av ytter- ligare noder skilda från varandra och från den första och den andra noden.
Uppfinningen bygger på att transaktionen utgöres av en dubbel- säker transaktion.
Inledningsvis skall här meddelandegången mellan transaktions- koordinatorn 1 och en grupp gl visas. I figur 6 visas att transaktionen inleds med en första fas, vilken omfattar: - att transaktionskoordinatorn 1 sänder ett meddelande "a" "förbered", det vill säga en begäran om förberedelse av transaktionen, till den första noden nl, - att den första noden nl, om den första noden kan åtaga sig att genomföra transaktionen, därefter, direkt eller via en eller flera mellanliggande noder, sänder begäran "b" om förberedelse till den andra noden n2, eller - att den första noden nl, om den första noden är oförmögen att åtaga sig att genomföra transaktionen, därefter, direkt eller via en eller flera mellanliggande noder, sänder ett meddelande "b" "oförberedd" till den andra noden n2, - att den andra noden n2, om den andra noden kan åtaga sig att genomföra transaktionen, därefter sänder ett meddelande "c" "förberedd", det vill säga att samtliga berörda noder inom gruppen är förberedda att genomföra transaktionen, 1 direkt till transaktionskoordinatorn i, eller 10 15 20 25 30 35 521 041 _ 23 _ - att den andra noden n2, om den andra noden är oförmögen att åtaga sig att genomföra transaktionen eller om den andra noden mottagit meddelandet "oförberedd", därefter sänder ett meddelande "c" "oförberedd" direkt till transaktions- koordinatorn 1, vilket avslutar den första fasen Med direkt avses att meddelandet översändes med direkt adress till en mottagande nod. Detta förhindrar dock inte att meddel- andet sänds via en nod som ej deltager i transaktionen utan endast vidarebefordrar meddelandet enligt adressen för meddel- andet. Med indirekt menas att meddelandet skickas via en eller flera noder vilka själva deltager i transaktionen.
Som ett exempel på ett indirekt sänt meddelande visas i figur 6 att den första noden skickar meddelandet "b'" till en tredje nod n3, vilken även den deltager i transaktionen, och vilken, om denna tredje n3 nod kan åtaga sig att genomföra transak- tionen, skickar meddelandet "b"", det vill säga begäran om förberedelse, vidare till den andra noden n2.
Den första fasen följs av en andra fas, vilken omfattar: - att transaktionskoordinatorn l sänder ett meddelande "d" om åtgärd direkt till den andra noden n2, - att den andra noden n2 därefter, direkt eller via en eller flera mellanliggande noder, sänder meddelandet "e" om åt- gärd till den första noden nl, och - att den första noden nl därefter sänder ett avslutande meddelande "f" till transaktionskoordinatorn l, vilket avslutar den andra fasen.
Meddelandet om åtgärd "d", "e" är "genomför", det vill säga 10 15 20 25 i 30 35 521 041 _ 24 _ genomför åtgärden enligt transaktionen, och det avslutande meddelandet "f" är "genomförd", det vill säga åtgärden enligt transaktionen är genomförd, om den första fasen avslutas med ett meddelande "c" "förberedd".
Om däremot den första fasen avslutas med ett meddelande "c" "oförberedd", är meddelandet "d", "e" om åtgärd "avbryt", det vill säga avbryt transaktionen, och det avslutande meddelandet "f" är "avbruten", det vill säga att transaktionen är avbru- ten. Även här visas att, om en mellanliggande nod n3 deltager i transaktionen, meddelandet "e" mellan den andra noden n2 och den första noden nl kan delas upp i två meddelanden "e'", "e"“ för att gå via den mellanliggande noden n3.
Ovanstående visas i förenklande syfte hur en transaktion går till mot en grupp gl, men det vanliga är att flera grupper berörs i en transaktion.
TPC-B-transaktionen skall här användas som en exemplifierande utföringsform för att belysa uppfinningen och även för att på ett enkelt sätt jämföra föreliggande uppfinning med känd teknik.
Figur 7 visas således en transaktion som berör ett flertal grupper gl, g2, g3, g4 av delar, där respektive grupp omfattar delar hörande till den första tabellen eller delar hörande till någon annan tabell inom databasen, skild från den första tabellen.
Delarna är lagrade på inbördes första nl, nl', nl", nl"' respektive andra n2, n2', n2", n2"' samt eventuellt en eller flera mellanliggande n3, n3*, n3", n3"' noder, var och en skilda från varandra, inom respektive grupp av delar.
Den första fasen inleds med en begäran "a", "a'", 10 15 20 25 30 35 521 041 _ 25 _ "a"'" om förberedelse från transaktionskoordinatorn 1 till respektive första nod nl, nl', nl", n1"' och avslutas med ett meddelande "c", "c'", "c"", "c"'" "förberedd" eller "oförberedd" från respektive andra nod n2, n2', n2", n2"' till transaktionskoordinatorn 1.
Den andra fasen inleds med ett meddelande "d", "d'", "d"", "d"'“ om åtgärd från transaktionskoordinatorn 1 till respek- tive andra nod n2, n2', n2", n2"' och avslutas med ett av- slutande meddelande "f", "f'", "f"", "f"'" från respektive första nod nl, nl', nl", nl"' till transaktionskoordinatorn 1.
Meddelandet om åtgärd "d", "d'", "d"", "d"'" är "genomför", det vill säga genomför åtgärden enligt transaktionen, och det avslutande meddelandet "f“, "f'", "f"", "f"'" är "genom- förd", det vill säga åtgärden enligt transaktionen är genom- förd, om den första fasen avslutas med ett meddelande "c", IICI II' IICI III, "c"'" "förberedd" från samtliga andra noder n2, n2', n2", n2"'.
Om däremot den första fasen avslutas med ett meddelande "c", "c'", "c"", "c"'" "oförberedd" från någon andra nod n2, n2', n2", n2"', är meddelandet om åtgärd "avbryt", det vill säga avbryt transaktionen, och det avslutande meddelandet "f“, "f'", "f"", "f"'" är "avbruten", det vill säga att trans- aktionen är avbruten.
En metod enligt föreliggande uppfinning är särskilt lämplig när den första delen är tilldelad högre prioritet än andra delar ingående i respektive grupp.
Detta är fallet när respektive grupp utgör ett fragment av databasen, vilket fragment omfattar den första delen, den andra delen samt en ytterligare del, där den ytterligare delen ligger lagrad på en tredje nod, och där den högre prioritet för den första delen består i att den första delen utgör en 10 15 20 25 30 35 521 041 _26.. primär kopia av en del av tabellen, att den ytterligare delen utgör en sekundär kopia av den primära kopia, samt att den andra delen utgör en stand-by kopia av den primära kopia.
Hur säkerhetskopiering av olika delar av en tabell är åstad- kombar i en distribuerad databas, samt hur en databas är strukturerbar för att säkerställa en hög tillförlitlighet vid säkerhetskopiering, skall inte beskrivas närmare här, men referens lämnas till patentansökan "Metod vid en distribuerad databas, samt ett system anpassat att verka enligt metoden" för en närmare beskrivning av ovanstående beståndsdelar av ett fragment.
Då varje grupp gl, g2, g3, g4 utgör ett fragment, vilket om- fattar en primär kopia, en sekundär kopia samt en stand-by kopia, där respektive kopia är lagras inom olika noder nl, n2, n3, erhålls TPC-B-transaktionen vid en transaktion som berör 4 olika fragment.
I detta fall kräver en transaktion enligt föreliggande upp- finning 2*f*(n+l) meddelanden, där f är antalet fragment som berörs av en transaktion och n är antalet kopior inom respek- tive fragment, vilket för en TPC-B transaktion enligt figur 7 betyder 32 meddelanden. Av dessa kan fyra meddelanden sändas samtidigt vilket betyder ett sändande av fyra "samtidiga" meddelanden åtta gånger.
Vid en jämförelse med traditionell commit i två faser kompen- seras den något längre svarstiden (åtta gånger i stället för fyra gånger) av det mindre antalet meddelanden (32 stycken i stället för 48) som behöver sändas.
Vid en jämförelse med linjär commit kompenseras det större an- talet meddelanden (32 i stället för 24) av en betydligt kor- tare svarstid, vilket är möjligt genom den delvis samtidiga meddelande-sändningen. Syftet med att både inleda och avsluta sekvensen med transaktionskoordinatorn l är att härigenom 10 15 20 25 30 35 521 041 _27.. känner transaktionskoordinatorn l till huruvida förberedande delen fullföljts, varför en begäran om korrekt åtgärd kan sändas direkt efter den förberedande delen. Detta möjliggör den samtidiga meddelande-sändningen och den väsentligt kortare svarstiden i relation till linjär commit.
Föreliggande uppfinning beskriver att förberedelsen av den första noden nl, nl', nl", nl"' i den första fasen även kan omfatta att den första noden nl, nl', nl", nl"' genererar ett sättande av ett lås på samtliga kopior hörande till respektive fragmentet.
Den första noden nl, nl', nl", nl"' genererar även ett släp- pande av respektive lås, och detta göres först efter att den första noden mottagit meddelandet om åtagande samt sänt det avslutande meddelandet till transaktionskoordinatorn l.
Detta medför att när transaktionskoordinatorn l mottager det IIfIIII HfIIII' nod nl, nl', nl", nl"' vet han att samtliga noder inom avslutande meddelandet "f", "f"'" från en första detta fragment mottagit meddelandet om åtgärd. Om däremot den första noden, eller någon annan nod, inom ett fragment skulle falla bort under den andra fasen, och innan den första noden hunnit sända det avslutande meddelandet, vet transaktionsko- ordinatorn att ingen nod inom detta fragment fullföljt trans- aktionen eftersom samtliga noder låstes redan i det första skedet i den första fasen och att detta lås ännu är verksamt.
Något förenklat kan man säga att ett bortfall av den första noden, eller någon annan nod, medför ett omsändande av det senast sända meddelandet till kvarvarande noder. Hur ett sådant bortfall av en nod hanteras enligt föreliggande uppfin- ning kommer att beskrivas mer detaljerat med hänvisning till figur 8 senare i denna beskrivning.
Ett lås kan appliceras enligt en lämplig metod, såsom att endast de delar av respektive kopia som berörs av transak- 10 15 20 25 30 35 521 041 _ 23 _ tionen göres otillgängliga för andra transaktioner medan övriga delar fortfarande är tillgängliga för andra trans- aktioner.
Ett sättande av ett lås kan ske genom att den första noden nl, nl' nl" nl"' sättas i samband med det första meddelandet a, a', a', a"' inkluderar ett meddelande om att låset skall till samtliga berörda noder inom respektive fragment.
Ett släppande av ett lås behöver nödvändigtvis inte ske genom att ett specifikt meddelande om detta skickas till respektive nod. Detta skulle kräva ytterligare en fas i transaktionen vilket inte är nödvändigt. En transaktion efterföljs normalt av ett uppstädningsmeddelande där bland annat meddelande om att lås kan släppas ingår. Ett sådant meddelande sändes van- ligtvis nästa gång ett annat meddelande, som inte alls har med den aktuella transaktionen att göra, skall sändas mellan berörda noder, så kallad "piggi-backing".
Det är även möjligt att släppa låset genom att den andra och eventuella mellanliggande noder inom respektive fragment vet att om ytterligare en transaktion begärs som berör en låst del så har den första noden godkänt att en ny transaktion påbörjas vilket betyder att den första noden släppt sitt lås. Således vet den andra och eventuella mellanliggande noder att låset kan släppas.
Att behålla koordinatorskapet hos transaktionskoordinatorn, i kombination med läsningen av samtliga kopior inom ett fragment som kontrolleras av respektive första nod, ger en möjlighet till en icke blockerande hantering av bortfallande noder under en transaktion.
Om så skulle vara att någon av noderna inom något fragment som berörs av en transaktion faller bort under genomförandet av transaktionen, anvisar föreliggande uppfinning, enligt figur 8, där den mellanliggande noden n3 i den första gruppen gl 10 15 20 25 1730 35 521 041 _2Q- fallit bort (överkryssad): - att transaktionskoordinatorn 1 kontrollerar samtliga pågående sändningar av meddelanden, - att den fas av transaktionen som avbrutits startas om från början, - att meddelanden skickas enligt fasen men med bortfallen nod exkluderad ur meddelandekedjan, och - att om en nod mottager ett tidigare mottaget meddelande ignoreras detsamma och sändes vidare.
Transaktionen skall dock avbrytas om ett bortfall sker av en första nod inom något fragment som berörs av transaktionen under den förberedande fasen av transaktionen.
I figur 8 visas hur den mellanliggande noden n3 fallit bort under den första fasen varför meddelandet "b" från den första noden nl går direkt till den andra noden n2.
Figur 9 avser att illustrera att vid ett bortfall av transak- tionskoordinatorn l (överkryssad) under genomförandet av en transaktion anvisar föreliggande uppfinning att en systemko- ordinator ls är anpassad att detektera ett bortfallande av någon nod inom systemet, varefter: - systemkoordinatorn ls ställer en allmän förfrågan till samtliga noder inom systemet om huruvida någon nod är deltagande i en transaktion där den bortfallna noden l utgör transaktionskoordinator, - en ny nod l' tilldelas rollen som transaktionskoordinator, - samtliga noder inom respektive fragment gl, g2, g3 som be- rörs av transaktionen sammanställer en statusrapport som 10 15 20 25 "so 35 .w ~\-.; 521 041 _30.. sänds till den nya transaktionskoordinatorn, vilken status- rapport omfattar nodidentitet, fragmentidentitet, transak- tionsstatus, samt huruvida noden innehåller primär, sekun- där eller stand-by kopia inom respektive fragment, och - att den nya transaktionskoordinatorn 1' beslutar om huru- vida transaktionen skall fortlöpa eller avbrytas utgående från mottagna statusrapporter.
I ovanstående beskrivning omfattar respektive grupp tre delar men det finns inget som hindrar att föreliggande uppfinning nyttjas där respektive grupp omfattar en första och en andra del, och där den högre prioriteten hos respektive första del exempelvis består i att den första delen utgör en primär kopia av en del av en tabell samt att den andra delen utgör en sekundär kopia av den primära kopian.
Figur 10 avser att illustrera ett exempel där en transaktions- koordinator l genomför en transaktion som berör fyra grupper gl, g2, g3, g4, var och en omfattande två noder nl, n2 vilka innehåller primär respektive sekundär kopia av delar som berörs av transaktionen.
Såsom tidigare nämnts kan ett system utgöra ett primärt system p" och vara kompletterat med ett sekundärt system "s". Före- liggande uppfinning anvisar att en uppdatering av ett sådant sekundärt system "s" enligt en transaktion skall begäras innan låset släppts.
En sådan uppdatering kan ske såväl genom en enkelsäker över- föring som en begränsat dubbelsäker överföring. Vilken metod som väljs beror på vilken säkerhet som respektive transaktion kräver. Föreliggande uppfinning anvisar att de attribut som styr transaktionen anger huruvida en uppdatering av det sekun- dära systemet skall ske medelst enkel överföring eller begrän- sat dubbel överföring. 10 15 20 25 30 35 521 041 _ 31 _ Om samtliga attribut som styr transaktionen anger att en upp- datering av det sekundära systemet "s" skall ske medelst en enkelsäker överföring så sker detta medelst en enkelsäker överföring, och om något attribut som styr transaktionen anger att en uppdatering av det sekundära systemet "s" skall ske medelst en begränsat dubbelsäker överföring så sker detta med- elst en begränsat dubbelsäker överföring.
Figur ll avser att visa hur en uppdatering genom en enkelsäker överföring är genomförbar. Här visas att uppdateringen sker genom att respektive första nod nlp, nl'p som berörs av en transaktion sänder ett meddelande "as", "a's" "genomför" till motsvarande nod nls, nl's inom det sekundära systemet "s".
Transaktionen fortlöper sedan utan att invänta ett svar från respektive berörda noder nls, nl's inom det sekundära systemet IISII .
Figur 12 avser att illustrera hur en uppdatering genom en be- gränsat dubbelsäker överföring är genomförbar. Här visas att respektive första nod nlp, nl'p som berörs av transaktionen sänder ett meddelande "as", "a's" "genomför" till motsvarande nod nls, nl's inom det sekundära systemet "s".
Som en del av transaktionen inväntar de första noderna nlp, nl'p ett svar från berörda noder nls, nl's inom det sekundära systemet s", vilket svar består i ett meddelande "bs", "b's" "genomförd" från den första noden nlp, nl'p, vilket indikerar till den första noden nlp, nl'p att åtgärden kommer att genom- föras och att det sekundära systemet "s" således kommer att uppdateras enligt transaktionen, eller ett meddelande "bs", "b's" "avbruten", vilket indikerar till den första noden nlp, nl'p att åtgärden ej kommer att genomföras och att det sekun- dära system "s" således ej kommer att uppdateras enligt trans- aktionen.
En indikation pà att det sekundära systemet "s" ej kommer att uppdateras enligt transaktionen medför att det sekundära sys- 10 15 20 25 iso 35 521 041 _ 32 _ temet startas om för att på ett korrekt sätt utgöra en kopia av det primära systemet "p".
Ovanstående beskrivning av en uppdatering av ett sekundärt system kallas för en begränsat dubbelsäker överföring, där be- gränsningen består i att noder inom det sekundära systemet inte har rätt att begära att transaktionen skall stoppas eller avbrytas.
Den i samband med figur ll beskrivna metoden att uppdatera ett sekundärt system medför att berörda noder i det primära syste- met inte på ett naturligt sätt får någon indikation på huru- vida det sekundära systemet kommer att uppdateras enligt transaktionen eller ej. Detta hindrar dock inte att en sådan indikation kan genereras på något annat sätt som i sin tur medför att det sekundära systemet startas om för att på ett korrekt sätt utgöra en kopia av det primära systemet "p", vid en begäran om en icke genomförbar uppdatering i det sekundära systemet.
Skillnaden mellan en uppdatering genom enkelsäker eller be- gränsat dubbelsäker överföring ligger således i att vid be- gränsat dubbelsäker överföring är det i samband med trans- aktionen direkt känt huruvida det sekundära systemet är upp- daterat eller ej medan vid enkelsäker överföring kan det finnas en skillnad mellan det primära och sekundära systemet under en kort period.
Olika transaktioner medför olika förändringar där vissa för- ändringar är mindre känsliga för felaktigheter än andra. Såle- des kan ett av de attribut som styr transaktionen bestämma om denna skall ske medelst en enkelsäker överföring eller begrän- sat dubbelsäker överföring vid uppdateringen av det sekundära systemet.
Som ett exempel nå en transaktion som skulle kunna kräva en begränsat dubbelsäker överföring vid uppdaterandet av det 10 15 20 25 30 35 521041 _33.. sekundära systemet kan nämnas införandet av personuppgifter hörande till en abonnent i ett mobiltelefonnät. Här är det viktigt att korrekta uppgifter finns i både det primära och sekundära systemet.
Som ett exempel på en transaktion där en enkelsäker överföring kan vara tillräcklig vid uppdaterandet av det sekundära sys- temet kan nämnas införandet av abonnents tillfälliga position inom ett mobiltelefonnät. Eftersom denna uppgift är ständigt föränderlig och därför kommer att uppdateras igen inom en snar framtid är det inte lika kritiskt om denna uppgift inte är korrekt inom det sekundära systemet.
Det kan till och med vara så att när en indikation på att det sekundära systemet inte uppdaterats enligt en sådan transak- tion så behöver detta nödvändigtvis inte betyda att det sekun- dära systemet måste startas om eftersom det sekundära systemet antagligen kommer att uppdateras på ett korrekt sätt nästa gång som uppgiften om denna specifika abonnents position skall ändras.
Vid en begäran om en uppdatering av det sekundära systemet "s" enligt en transaktion inom det primära systemet "p" översänds information från berörda noder i det primära systemet "p" till berörda noder inom det sekundära systemet "s" varifrån en lo- gisk transaktionskoordinator är Valbar. Valet av transaktions- koordinator inom det sekundära systemet styrs genom denna information och en momentan belastning av till det sekundära system hörande noder.
Figur 13 avser att illustrera att informationen "i" kan bestå i att transaktionskoordinatorn lp inom det primära systemet "p" väljer en logisk transaktionskoordinator ltk från en mapp- ningstabell mt över möjliga logiska transaktionskoordinatorer inom det sekundära systemet "s". Detta val göres så att be- lastningen av att agera transaktionskoordinator skall fördelas slumpmässigt mellan de logiska transaktionskoordinatorer som 10 15 20 25 521041 _34- är valbara från mappningstabellen mt.
Respektive logiska transaktionskoordinator ltk på mappnings- tabellen mt kan mappas mot en fysiska nod ls eller fysisk transaktionskoordinator ftk som verka inom det sekundära systemet. Denna mappningstabell mt finns lagrad inom, eller finns tillgänglig för, varje nod hörande till det sekundära systemet "s". Då respektive nod inom det sekundära systemet som berörs av en transaktion mottager informationen "i" om vilken logisk transaktionskoordinator ltk som är vald kan dessa, genom mappningstabellen mt, identifiera samma fysiska transaktionskoordinator ftk inom det sekundära systemet "s".
En systemkoordinator sks inom det sekundära systemet ser till att samtliga positioner på mappningstabellen mt är besatta och av noder vilka är tillgängliga för att agera transaktionskoor- dinator. Vid höga belastningar av vissa noder kan således sys- temkoordinatorn sks se till att dessa noder ej finns med på mappningstabellen. Härigenom erhålls en viss lastreglering av noderna inom det sekundära systemet "s".
Uppfinningen är givetvis inte begränsad till den ovan såsom exempel angivna utföringsformen utan kan genomgå modifikatio- ner inom ramen för uppfinningstanken illustrerad i efter- följande patentkrav.

Claims (20)

10 15 20 25 30 35 521041 _35- P N R V
1. Metod att utföra en transaktion som berör ett antal noder inom ett system av noder vari information hörande till en dis- tribuerad databas ligger lagrad, vilken information är uppdelad i tabeller, där nämnda transaktion utgår från en transaktions- koordinator, vilken transaktion berör åtminstone en grupp av delar av åtminstone en första av nämnda tabeller, där nämnda grupp omfattar åtminstone en första och en andra del samt eventuellt ytterligare en eller flera delar, där nämnda första del ligger lagrad inom en första nod, och nämnda andra del ligger lagrad inom en andra nod, skild från nämnda första nod, samt där eventuella andra delar inom nämnda grupp ligger lagrade inom mellanliggande noder, vilka utgöres av ytterligare noder skilda från varandra och från nämnda första och nämnda andra nod, och där nämnda transaktion utgöres av en dubbelsäker transaktion, k ä n n e t e c k n a d därav, att nämnda transaktion inleds med en första fas, vilken omfattar: - att nämnda transaktionskoordinator sänder ett meddelande "förbered", det vill säga en begäran om förberedelse av nämnda transaktion, till nämnda första nod, - att nämnda första nod, om nämnda första nod kan åtaga sig att genomföra nämnda transaktion, därefter, direkt eller via en eller flera mellanliggande noder, sänder nämnda be- gäran om förberedelse till nämnda andra nod, eller - att nämnda första nod, om nämnda första nod är oförmögen att åtaga sig att genomföra nämnda transaktion, därefter, direkt eller via en eller flera mellanliggande noder, sänder ett meddelande "oförberedd" till nämnda andra nod, - att dämnda andra nod, om nämnda andra nod kan åtaga sig att genomföra nämnda transaktion, därefter sänder ett med- lO 15 20 25 30 35 521 041 _ 35 _ delande "förberedd", det vill säga att samtliga berörda noder är förberedda att genomföra nämnda transaktion, direkt till nämnda transaktionskoordinator, eller - att nämnda andra nod, om nämnda andra nod är oförmögen att åtaga sig att genomföra nämnda transaktion eller om nämnda andra nod mottagit meddelandet "oförberedd", därefter sänder ett meddelande "oförberedd" direkt till nämnda transaktionskoordinator, vilket avslutar nämnda första fas, att nämnda första fas följs av en andra fas, vilken omfattar: - att nämnda transaktionskoordinator sänder ett meddelande om åtgärd direkt till nämnda andra nod, - att nämnda andra nod därefter, direkt eller via en eller flera mellanliggande noder, sänder nämnda meddelande om åtgärd till nämnda första nod, och - att nämnda första nod därefter sänder ett avslutande med- delande till nämnda transaktionskoordinator, vilket avslutar nämnda andra fas, där nämnda meddelande om åt- gärd är "genomför", det vill säga genomför åtgärden enligt nämnda transaktion, och nämnda avslutande meddelande är "genom- förd", det vill säga åtgärden enligt transaktionen är genomförd, om nämnda första fas avslutas med ett meddelande "förberedd", eller där nämnda meddelande om åtgärd är "avbryt", det vill säga avbryt nämnda transaktion, och nämnda avslutande meddelande är "avbruten", det vill säga att transaktionen är avbruten, om nämnda första fas avslutas med ett meddelande "oförberedd".
2. Metod enligt patentkravet 1, k ä n n e t e c k n a d därav, att nämnda transaktion berör ytterligare grupper av delar, där respektive grupp omfattar delar hörande till nämnda 10 15 20 25 30 35 521 041 _ 37 _ första tabell eller delar hörande till någon annan tabell inom nämnda databas, skild från nämnda första tabell, att nämnda delar är lagrade på inbördes första respektive andra samt even- tuellt en eller flera mellanliggande noder, var och en skilda från varandra, inom respektive grupp av delar, att nämnda första fas inleds med nämnda begäran om förberedelse från nämnda transaktionskoordinator till respektive första nod och avslutas med ett meddelande "förberedd" eller "oförberedd" från respektive andra nod till nämnda transaktionskoordinator, att nämnda andra fas inleds med nämnda meddelande om åtgärd från nämnda transaktionskoordinator till respektive andra nod och avslutas med nämnda avslutande meddelande från respektive första nod till nämnda transaktionskoordinator, där nämnda med- delande om åtgärd är "genomför", det vill säga genomför åt- gärden enligt nämnda transaktion, och nämnda avslutande med- delande är "genomförd", det vill säga åtgärden enligt trans- aktionen är genomförd, om nämnda första fas avslutas med ett meddelande "förberedd" från samtliga andra noder, eller där nämnda meddelande om åtgärd är "avbryt", det vill säga avbryt nämnda transaktion, och nämnda avslutande meddelande är "av- bruten", det vill säga att transaktionen är avbruten, om nämnda första fas avslutas med ett meddelande "oförberedd" från någon andra nod.
3. Metod enligt patentkravet l eller 2, k ä n n e t e c k - n a d därav, att nämnda första del är tilldelad högre prio- ritet än andra delar ingående i respektive grupp.
4. Metod enligt patentkraven l eller 2, k ä n n e t e c k - n a d därav, att respektive grupp omfattar en eller flera ytterligare delar vilka är lagrade inom nämnda mellanliggande nod/noder, att meddelande i nämnda första fas sänds seriellt från nämnda första nod till nämnda mellanliggande nod/noder och vidare till nämnda andra nod, och att meddelande i nämnda andra fas sänds seriellt från nämnda andra nod till nämnda mellanliggande nod/noder och vidare till nämnda första nod. lO 15 20 25 30 35 521 041 _38..
5. Metod enligt patentkravet 3 och 4, k ä n n e t e c k - n a d därav, att respektive grupp utgör ett fragment av en tabell ingående i nämnda databas, vilket fragment omfattar nämnda första del, nämnda andra del samt en ytterligare del, att nämnda ytterligare del ligger lagrad på en tredje nod, och att nämnda högre prioritet består i att nämnda första del utgör en primär kopia av en del av nämnda tabell, att nämnda ytterligare del utgör en sekundär kopia av nämnda primära kopia, samt att nämnda andra del utgör en stand-by kopia av nämnda primära kopia.
6. Metod enligt patentkravet l och 5, k ä n n e t e c k - n a d därav, att förberedelsen av nämnda första nod i nämnda första fas omfattar att nämnda första nod genererar ett sät- tande av ett lås på samtliga kopior hörande till nämnda fragment.
7. Metod enligt patentkravet 6, k ä n n e t e c k n a d därav, att nämnda första nod genererar ett släppande av nämnda lås för samtliga kopior hörande till nämnda fragment först efter att nämnda första nod mottagit nämnda meddelande om åtagande samt sänt nämnda avslutande meddelande.
8. Metod enligt patentkraven 6 och 7, k ä n n e t e c k - n a d därav, att nämnda lås appliceras enligt en lämplig me- tod, såsom att endast de delar av respektive kopia som berörs av nämnda transaktion göres otillgängliga, medan övriga delar är tillgängliga, för andra transaktioner.
9. Metod enligt patentkraven 1 till 8, där någon av nämnda noder inom något fragment som berörs av nämnda transaktion faller bort under genomförandet av nämnda transaktion, k ä n n e t e c k n a d därav, - att nämnda transaktionskoordinator kontrollerar samtliga pågående sändningar av meddelanden, lO 15 20 25 30 35 521041 _39_ - att den fas av transaktionen som avbrutits startas om från början, - att meddelanden skickas enligt nämnda fas men med bort- fallen nod exkluderad ur meddelandekedjan, och - att om en nod mottager ett tidigare mottaget meddelande ignoreras detsamma och sändes vidare.
10. Metod enligt patentkravet 9, k ä n n e t e c k n a d därav, att, om nämnda bortfallna nod utgöres av en första nod inom något fragment som berörs av nämnda transaktion, samt om bortfallet sker under den förberedande fasen av nämnda transak- tion, nämnda transaktion avbrytes.
11. ll. Metod enligt patentkraven l till 8, där nämnda transak- tionskoordinator faller bort under genomförandet av nämnda transaktion, där en systemkoordinator är anpassad att detektera ett bortfallande av någon nod inom systemet, k ä n n e - t e c k n a d därav, - att nämnda systemkoordinator ställer en allmän förfrågan till samtliga noder inom nämnda system om huruvida någon nod är deltagande i en transaktion där nämnda bortfallna nod utgör transaktionskoordinator, - att en ny nod tilldelas rollen som transaktionskoordi- nator, - att samtliga noder inom respektive fragment som berörs av nämnda transaktion sammanställer en statusrapport som sänds till nämnda nya transaktionskoordinator, vilken statusrapport omfattar nodidentitet, fragmentidentitet, transaktionsstatus, samt huruvida nämnda nod utgör primär, sekundär eller stand-by kopia inom respektive fragment, och 10 15 20 25 30 35 521 041 _40- - att nämnda nya transaktionskoordinator beslutar om huru- vida nämnda transaktion skall fortlöpa eller avbrytas utgående från nämnda statusrapporter.
12. Metod enligt patentkravet 3, k ä n n e t e c k n a d därav, att respektive grupp omfattar en första och en andra del, och att nämnda högre prioritet består i att nämnda första del utgör en primär kopia av en del av nämnda tabell samt att nämnda andra del utgör en sekundär kopia av nämnda primära kopia.
13. Metod enligt patentkravet 6 och 7 eller 8, där nämnda system är kompletterat med ett sekundärt system, k ä n n e - t e c k n a d därav, att en begäran av en uppdatering av nämnda sekundära system enligt nämnda transaktion sker innan nämnda lås släppts.
14. Metod enligt patentkravet 13, där respektive transaktion åtföljs av olika attribut som styr genomförandet av aktuell transaktion, k ä n n e t e c k n a d därav, att om samtliga av nämnda attribut anger att en uppdatering av nämnda sekundära system skall ske medelst en enkelsäker överföring så sker detta medelst en enkelsäker överföring, och att om något av nämnda attribut anger att en uppdatering av nämnda sekundära system skall ske medelst en begränsat dubbelsäker överföring så sker detta medelst en begränsat dubbelsäker överföring.
15. Metod enligt patentkravet 13 eller 14, k ä n n e - t e c k n a d därav, att en enkelsäker överföring omfattar att respektive första nod som berörs av nämnda transaktion sänder ett meddelande "genomför" till motsvarande nod inom nämnda sekundära system om vilken åtgärd som skall genomföras, varefter nämnda transaktion fortlöper.
16. Metod enligt patentkravet 15, k ä n n e t e c k n a d därav, att en indikation på att en begärd åtgärd ej är genom- förbar genereras och översänds från nämnda sekundära system lO 15 20 25 30 35 521041 _41.. till nämnda primära system i en separat transaktion eller som en del av en annan transaktion mellan nämnda sekundära och nämnda primära system.
17. Metod enligt patentkravet 13 eller 14, k ä n n e - t e c k n a d därav, att en begränsat dubbelsäker överföring omfattar att respektive första nod som berörs av nämnda trans- aktion sänder ett meddelande "genomför" till motsvarande nod inom nämnda sekundära system om vilken åtgärd som skall genom- föras, varefter nämnda motsvarande nod inom nämnda sekundära system besvarar nämnda meddelande till nämnda första nod med ett "genomförd", vilket indikerar till nämnda första nod att nämnda åtgärd kommer att genomföras och att det sekundära systemet således kommer att uppdateras enligt nämnda transak- tion, eller med ett meddelande "ej genomförd", vilket indikerar till nämnda första nod att nämnda åtgärd ej kommer att genomföras och att nämnda sekundära system således ej kommer att uppdateras enligt nämnda transaktion.
18. Metod enligt patentkraven 16 eller 17, k ä n n e - t e c k n a d därav, att en indikation på att nämnda sekundära system ej kommer att uppdateras enligt nämnda transaktion medför att nämnda sekundära system startas om för att på ett korrekt sätt utgöra en kopia av nämnda system.
19. Metod enligt patentkravet 15 eller 17, k ä n n e - t e c k n a d därav, att nödvändig information för att välja en logisk transaktionskoordinator inom nämnda sekundära system sänds till respektive berörd nod inom nämnda sekundära system i samband med en uppdatering av nämnda sekundära system, och att en fysisk transaktionskoordinator utses inom nämnda sekundära system med utgångspunkt från nämnda information och en momentan belastning av till nämnda sekundära system hörande noder.
20. Metod enligt patentkravet 19, k ä n n e t e c k n a d därav, att en mappningstabell finns lagrad inom, eller till- gänglig för, samtliga noder hörande till nämnda sekundära lO 521 041 _42- system, att denna mappningstabell är en tabell varigenom en mappning från en logisk transaktionskoordinator till en fysisk nod inom nämnda sekundära system är möjlig, att nämnda informa- tion från nämnda primära system omfattar ett val av en logisk transaktionskoordinator inom nämnda sekundära system, och att en systemkoordinator inom nämnda sekundära system ser till att samtliga logiska transaktionskoordinatorer är mappningsbara mot en fysisk nod inom nämnda sekundära system och att endast tillgängliga noder, det vill säga noder som momentant är belastade på ett sätt så att de är tillgängliga för att agera transaktionskoordinator vid en eventuell transaktion, finns med på nämnda mappningstabell.
SE9702014A 1997-05-28 1997-05-28 Metod för optimering av transaktionsprotokoll inom en distribuerad databas SE521041C2 (sv)

Priority Applications (9)

Application Number Priority Date Filing Date Title
SE9702014A SE521041C2 (sv) 1997-05-28 1997-05-28 Metod för optimering av transaktionsprotokoll inom en distribuerad databas
US09/084,502 US6216126B1 (en) 1997-05-28 1998-05-27 Method for transaction within a distributed database
DE69838506T DE69838506T2 (de) 1997-05-28 1998-05-28 Verfahren für transaktionen zwischen verteilten datenbanken
PCT/SE1998/001010 WO1998054659A2 (en) 1997-05-28 1998-05-28 Method for transaction within a distributed database
CA002291009A CA2291009A1 (en) 1997-05-28 1998-05-28 Method for transaction within a distributed database
EP98924732A EP1016005B1 (en) 1997-05-28 1998-05-28 Method for transaction within a distributed database
JP50059599A JP4241940B2 (ja) 1997-05-28 1998-05-28 分散形データベース内でトランザクションをするための方法
KR19997011092A KR20010013112A (ko) 1997-05-28 1998-05-28 분산 데이터베이스에서의 트랜잭션 방법
AU76831/98A AU7683198A (en) 1997-05-28 1998-05-28 Method for transaction within a distributed database

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
SE9702014A SE521041C2 (sv) 1997-05-28 1997-05-28 Metod för optimering av transaktionsprotokoll inom en distribuerad databas

Publications (3)

Publication Number Publication Date
SE9702014D0 SE9702014D0 (sv) 1997-05-28
SE9702014L SE9702014L (sv) 1998-11-29
SE521041C2 true SE521041C2 (sv) 2003-09-23

Family

ID=20407137

Family Applications (1)

Application Number Title Priority Date Filing Date
SE9702014A SE521041C2 (sv) 1997-05-28 1997-05-28 Metod för optimering av transaktionsprotokoll inom en distribuerad databas

Country Status (9)

Country Link
US (1) US6216126B1 (sv)
EP (1) EP1016005B1 (sv)
JP (1) JP4241940B2 (sv)
KR (1) KR20010013112A (sv)
AU (1) AU7683198A (sv)
CA (1) CA2291009A1 (sv)
DE (1) DE69838506T2 (sv)
SE (1) SE521041C2 (sv)
WO (1) WO1998054659A2 (sv)

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0854423A1 (en) * 1997-01-20 1998-07-22 TELEFONAKTIEBOLAGET L M ERICSSON (publ) Data partitioning and duplication in a distributed data processing system
GB2346983B (en) * 1999-02-18 2003-04-16 Ibm Client/server computing for transaction processing with superior coordinator o ptimization
US6473829B1 (en) * 1999-05-28 2002-10-29 International Business Machines Corporation Data storage device providing communication between processing units
US7206805B1 (en) * 1999-09-09 2007-04-17 Oracle International Corporation Asynchronous transcription object management system
US7689560B2 (en) 2000-10-13 2010-03-30 Miosoft Corporation Persistent data storage techniques
US7587428B2 (en) * 2000-10-13 2009-09-08 Microsoft Corporation Maintaining a relationship between two different items of data
KR100659971B1 (ko) 2003-12-26 2006-12-22 한국전자통신연구원 웹서비스 트랜잭션의 자동중단 처리시스템 및 방법
US7478400B1 (en) 2003-12-31 2009-01-13 Symantec Operating Corporation Efficient distributed transaction protocol for a distributed file sharing system
US20050165748A1 (en) * 2004-01-15 2005-07-28 Seagate Technology Llc Method and apparatus for querying a computerized database
US8429059B2 (en) 2004-06-08 2013-04-23 Rosenthal Collins Group, Llc Method and system for providing electronic option trading bandwidth reduction and electronic option risk management and assessment for multi-market electronic trading
US20090276367A1 (en) * 2008-04-30 2009-11-05 Rosenthal Collins Group, L.L.C. Method and system for providing risk management for multi-market electronic trading
US7912781B2 (en) * 2004-06-08 2011-03-22 Rosenthal Collins Group, Llc Method and system for providing electronic information for risk assessment and management for multi-market electronic trading
US20080162378A1 (en) * 2004-07-12 2008-07-03 Rosenthal Collins Group, L.L.C. Method and system for displaying a current market depth position of an electronic trade on a graphical user interface
US20100076906A1 (en) * 2004-07-12 2010-03-25 Rosenthal Collins Group, L.L.C. Method and system for using quantitative analytics on a graphical user interface for electronic trading
US20100094777A1 (en) * 2004-09-08 2010-04-15 Rosenthal Collins Group, Llc. Method and system for providing automatic execution of risk-controlled synthetic trading entities
US8589280B2 (en) * 2005-05-04 2013-11-19 Rosenthal Collins Group, Llc Method and system for providing automatic execution of gray box strategies for electronic trading
WO2006119272A2 (en) 2005-05-04 2006-11-09 Rosenthal Collins Group, Llc Method and system for providing automatic exeuction of black box strategies for electronic trading
US8364575B2 (en) 2005-05-04 2013-01-29 Rosenthal Collins Group, Llc Method and system for providing automatic execution of black box strategies for electronic trading
US7617149B2 (en) * 2005-05-31 2009-11-10 Rosenthal Collins Group, Llc Method and system for electronically inputting, monitoring and trading spreads
US20080288391A1 (en) * 2005-05-31 2008-11-20 Rosenthal Collins Group, Llc. Method and system for automatically inputting, monitoring and trading spreads
US7849000B2 (en) 2005-11-13 2010-12-07 Rosenthal Collins Group, Llc Method and system for electronic trading via a yield curve
US20080059846A1 (en) * 2006-08-31 2008-03-06 Rosenthal Collins Group, L.L.C. Fault tolerant electronic trading system and method
US7805420B2 (en) * 2006-11-20 2010-09-28 Microsoft Corporation Versioning and concurrency control for multiple client access of data
US7921189B2 (en) * 2006-11-20 2011-04-05 Microsoft Corporation Single virtual client for multiple client access and equivalency
US7975109B2 (en) 2007-05-30 2011-07-05 Schooner Information Technology, Inc. System including a fine-grained memory and a less-fine-grained memory
US8229945B2 (en) 2008-03-20 2012-07-24 Schooner Information Technology, Inc. Scalable database management software on a cluster of nodes using a shared-distributed flash memory
US8732386B2 (en) * 2008-03-20 2014-05-20 Sandisk Enterprise IP LLC. Sharing data fabric for coherent-distributed caching of multi-node shared-distributed flash memory
US20100010937A1 (en) * 2008-04-30 2010-01-14 Rosenthal Collins Group, L.L.C. Method and system for providing risk assessment management and reporting for multi-market electronic trading
JP5463988B2 (ja) 2010-03-17 2014-04-09 富士通株式会社 構成情報管理装置、構成情報管理プログラム及び構成情報管理方法
US8266126B2 (en) * 2010-03-24 2012-09-11 Matrixx Software, Inc. System with multiple conditional commit databases
US9047351B2 (en) 2010-04-12 2015-06-02 Sandisk Enterprise Ip Llc Cluster of processing nodes with distributed global flash memory using commodity server technology
US8856593B2 (en) 2010-04-12 2014-10-07 Sandisk Enterprise Ip Llc Failure recovery using consensus replication in a distributed flash memory system
US8868487B2 (en) 2010-04-12 2014-10-21 Sandisk Enterprise Ip Llc Event processing in a flash memory-based object store
US8725951B2 (en) 2010-04-12 2014-05-13 Sandisk Enterprise Ip Llc Efficient flash memory-based object store
US9164554B2 (en) 2010-04-12 2015-10-20 Sandisk Enterprise Ip Llc Non-volatile solid-state storage system supporting high bandwidth and random access
US8666939B2 (en) 2010-06-28 2014-03-04 Sandisk Enterprise Ip Llc Approaches for the replication of write sets
US8694733B2 (en) 2011-01-03 2014-04-08 Sandisk Enterprise Ip Llc Slave consistency in a synchronous replication environment
US8874515B2 (en) 2011-04-11 2014-10-28 Sandisk Enterprise Ip Llc Low level object version tracking using non-volatile memory write generations
US9135064B2 (en) 2012-03-07 2015-09-15 Sandisk Enterprise Ip Llc Fine grained adaptive throttling of background processes
EP2867799A1 (en) * 2012-06-29 2015-05-06 Telefonaktiebolaget LM Ericsson (Publ) Methods and apparatus for implementing a distributed database
KR20140047230A (ko) * 2012-10-10 2014-04-22 (주)티베로 분산 시스템에서 분산 트랜잭션의 최적화를 위한 방법 및 트랜잭션을 최적화한 분산 시스템
US10044835B1 (en) 2013-12-11 2018-08-07 Symantec Corporation Reducing redundant transmissions by polling clients
US10264071B2 (en) 2014-03-31 2019-04-16 Amazon Technologies, Inc. Session management in distributed storage systems
US9519510B2 (en) * 2014-03-31 2016-12-13 Amazon Technologies, Inc. Atomic writes for multiple-extent operations
US10372685B2 (en) 2014-03-31 2019-08-06 Amazon Technologies, Inc. Scalable file storage service
US9959308B1 (en) 2014-09-29 2018-05-01 Amazon Technologies, Inc. Non-blocking processing of federated transactions for distributed data partitions
US11481385B1 (en) * 2021-01-29 2022-10-25 Neo4J Sweden Ab Graph database system to safely store data at high volume and scale

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4755792A (en) 1985-06-13 1988-07-05 Black & Decker Inc. Security control system
US5065311A (en) * 1987-04-20 1991-11-12 Hitachi, Ltd. Distributed data base system of composite subsystem type, and method fault recovery for the system
US5212789A (en) * 1989-10-12 1993-05-18 Bell Communications Research, Inc. Method and apparatus for updating application databases used in a distributed transaction processing environment
US5072370A (en) 1990-05-08 1991-12-10 International Business Machines Corporation System and method for monitoring electronic data processing equipment
JPH0415840A (ja) * 1990-05-10 1992-01-21 Toshiba Corp 分散型データベース管理装置
US5212788A (en) * 1990-05-22 1993-05-18 Digital Equipment Corporation System and method for consistent timestamping in distributed computer databases
US5893117A (en) * 1990-08-17 1999-04-06 Texas Instruments Incorporated Time-stamped database transaction and version management system
US5287501A (en) * 1991-07-11 1994-02-15 Digital Equipment Corporation Multilevel transaction recovery in a database system which loss parent transaction undo operation upon commit of child transaction
US5701480A (en) * 1991-10-17 1997-12-23 Digital Equipment Corporation Distributed multi-version commitment ordering protocols for guaranteeing serializability during transaction processing
US5423037A (en) 1992-03-17 1995-06-06 Teleserve Transaction Technology As Continuously available database server having multiple groups of nodes, each group maintaining a database copy with fragments stored on multiple nodes
US5555404A (en) 1992-03-17 1996-09-10 Telenor As Continuously available database server having multiple groups of nodes with minimum intersecting sets of database fragment replicas
US5530855A (en) * 1992-10-13 1996-06-25 International Business Machines Corporation Replicating a database by the sequential application of hierarchically sorted log records
US5404508A (en) 1992-12-03 1995-04-04 Unisys Corporation Data base backup and recovery system and method
US5432926A (en) * 1992-12-04 1995-07-11 International Business Machines Corporation Method and apparatus for improving database reliability and response time in a distributed transaction processing system
AU6133594A (en) * 1993-02-08 1994-08-29 Action Technologies, Inc. Method and apparatus for managing business processes
US5581750A (en) * 1993-03-15 1996-12-03 International Business Machines Corporation System and method for improving data recovery performance
US5835757A (en) * 1994-03-30 1998-11-10 Siemens Telecom Networks Distributed database management system for servicing application requests in a telecommunications switching system
US5752026A (en) * 1994-04-28 1998-05-12 The United States Of America As Represented By The Secretary Of The Navy Early commit locking computer database protocol
US5625811A (en) * 1994-10-31 1997-04-29 International Business Machines Corporation Method and system for database load balancing
US5799322A (en) * 1995-01-24 1998-08-25 Tandem Computer, Inc. System and method for stopping updates at a specified timestamp in a remote duplicate database facility
WO1997004389A1 (en) * 1995-07-20 1997-02-06 Novell, Inc. Transaction synchronization in a disconnectable computer and network
US5960194A (en) * 1995-09-11 1999-09-28 International Business Machines Corporation Method for generating a multi-tiered index for partitioned data
US5862318A (en) * 1995-10-26 1999-01-19 Microsoft Corporation System for generating a gapless series of identity values
US5799305A (en) * 1995-11-02 1998-08-25 Informix Software, Inc. Method of commitment in a distributed database transaction
US5850507A (en) * 1996-03-19 1998-12-15 Oracle Corporation Method and apparatus for improved transaction recovery
US5884327A (en) * 1996-09-25 1999-03-16 International Business Machines Corporation System, method and program for performing two-phase commit with a coordinator that performs no logging

Also Published As

Publication number Publication date
WO1998054659A3 (en) 1999-03-25
US6216126B1 (en) 2001-04-10
SE9702014L (sv) 1998-11-29
DE69838506D1 (de) 2007-11-15
KR20010013112A (ko) 2001-02-26
WO1998054659A2 (en) 1998-12-03
DE69838506T2 (de) 2008-07-03
JP2002500791A (ja) 2002-01-08
AU7683198A (en) 1998-12-30
EP1016005B1 (en) 2007-10-03
JP4241940B2 (ja) 2009-03-18
CA2291009A1 (en) 1998-12-03
EP1016005A2 (en) 2000-07-05
SE9702014D0 (sv) 1997-05-28

Similar Documents

Publication Publication Date Title
SE521041C2 (sv) Metod för optimering av transaktionsprotokoll inom en distribuerad databas
US6216136B1 (en) Method for performing complicated schema changes within a database
EP0423053B1 (en) Method of using cached partial trees in computing a path in a data communication network
US7149761B2 (en) System and method for managing the synchronization of replicated version-managed databases
CN1669001B (zh) 用于在服务器整合环境中执行业务连续性策略的方法和装置
US6041049A (en) Method and apparatus for determining a routing table for each node in a distributed nodal system
TW202037138A (zh) 共識系統停機時間恢復
JPH10187519A (ja) 分配システムの競合を防止する方法
CN101512527B (zh) 用于处理请求的数据处理系统和方法
JPH04230541A (ja) 連鎖分散データトランザクションシステムにおけるワーク単位識別子の管理方法
CN101933014A (zh) 用于复制和同步的系统和方法
EP0648353A1 (en) System for changing software during computer operation
WO2003056758A1 (en) Technique of determining connectivity solutions for network elements
US20030050930A1 (en) Method and apparatus for lockstep data replication
US7523113B2 (en) Distributed system, computer and state transition control method for distributed system
CN106302709A (zh) 一种网络文件管理的实现方法和系统
Jajodia et al. Integrating static and dynamic voting protocols to enhance file availability
US11561961B2 (en) Global uniqueness checking in distributed databases
JPH10111825A (ja) 複数データベース一致化更新方法および装置
US20030193938A1 (en) Distributed semi-rearrangeable non-blocking algorithm for clos networks
US20030204771A1 (en) Hybrid method for flushing transaction state in a fault-tolerant clustered database
CN108733477A (zh) 数据集群化处理的方法、装置及设备
JP4390307B2 (ja) ソフトウェア自動配布システム
CN101488134A (zh) 数据库系统的复制环境内的高性能修改事务的方法及系统
Munoz et al. Globdata: A platform for supporting multiple consistency modes

Legal Events

Date Code Title Description
NUG Patent has lapsed