SE521433C2 - En metod för hantering av risken för en total låsning mellan samtidiga transaktioner i en databas - Google Patents

En metod för hantering av risken för en total låsning mellan samtidiga transaktioner i en databas

Info

Publication number
SE521433C2
SE521433C2 SE9802598A SE9802598A SE521433C2 SE 521433 C2 SE521433 C2 SE 521433C2 SE 9802598 A SE9802598 A SE 9802598A SE 9802598 A SE9802598 A SE 9802598A SE 521433 C2 SE521433 C2 SE 521433C2
Authority
SE
Sweden
Prior art keywords
transactions
transaction
locking
strictly growing
complex
Prior art date
Application number
SE9802598A
Other languages
English (en)
Other versions
SE9802598D0 (sv
SE9802598L (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 SE9802598A priority Critical patent/SE521433C2/sv
Publication of SE9802598D0 publication Critical patent/SE9802598D0/sv
Priority to PCT/SE1999/001301 priority patent/WO2000005648A1/en
Priority to JP2000561556A priority patent/JP2002521747A/ja
Priority to AU56602/99A priority patent/AU5660299A/en
Priority to US09/358,432 priority patent/US6275823B1/en
Priority to BR9912294-4A priority patent/BR9912294A/pt
Priority to EP99943527A priority patent/EP1097419A1/en
Priority to KR1020017000747A priority patent/KR100817488B1/ko
Priority to CN99811211A priority patent/CN1122919C/zh
Priority to CA002338285A priority patent/CA2338285C/en
Publication of SE9802598L publication Critical patent/SE9802598L/sv
Publication of SE521433C2 publication Critical patent/SE521433C2/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
    • 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/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/524Deadlock detection or avoidance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2308Concurrency control
    • G06F16/2336Pessimistic concurrency control approaches, e.g. locking or multiple versions without time stamps
    • G06F16/2343Locking methods, e.g. distributed locking or locking implementation details
    • 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/99931Database or file accessing
    • Y10S707/99938Concurrency, e.g. lock management in shared database
    • 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/99944Object-oriented database structure

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

25 521 433 Denna låskö kan realiseras på olika sätt, såsom genom en lista eller hash-tabell, och det är även möjligt att tilldela respektive objekt flera låsköer där olika sorters lås ställs i olika köer.
I förenklande syñe kommer de flesta utföringsformema av föreliggande uppfinning endast att visa en låskö för respektive objekt. Det är dock uppenbart för en fackman hur föreliggande uppfinning kan realiseras i det fall som flera låsköer används.
En risk för att en total låsning skall uppstå kan upptäckas genom att jämföra låsköerna för olika objekt. I en sådan jämförelse jämförs samtliga transaktioner som finns i en låskö för ett objekt med de transaktioner som finns i låsköema för de andra objekten i databasen. Om man i en sådan jämförelse finner att två transaktioner vill accessa två (eller flera) gemensamma objekt har man upptäckt en risk för total låsning.
Detta behöver nödvändigtvis inte innebära att situationen utvecklas till en total låsning efter- som olika tidsaspekter avseende när de olika objekten kommer att accessas av respektive trans- aktion och vilken typ av lås som kommer att sättas av respektive transaktion på de olika objek- ten avgör om situationen kommer att utvecklas till en total låsning eller ej.
Tidsaspekten innebär att en väntan kan bero på andra orsaker än att en viss transaktion orsakat en total låsning, såsom att en transaktion väntar på grund av en total låsning orsakad av helt andra transaktioner, att föregående transaktioner i låskön tar tid att genomföra eller att den egna accessen tar tid utan att därför en total låsning har uppstått.
Typ av lås innebär att accessen exempelvis kan utgöras av en ren läsning, vilket innebär att denna transaktion kommer att sätta ett så kallat delat lås på objektet och objektet kommer då fortfarande att vara tillgängligt för läsning av andra transaktioner.
När en risk för total låsning är upptäckt förorsakar detta ett ytterligare agerande som kan utgöras av olika förfaringssätt.
Dessa sätt kan indelas i huvudsakligen två grupper, "detektion av total låsning" (eng.: 10 15 20 25 b).
Deadlock Detection) och "undvikande av total låsning" (eng: Deadlock Avoidance).
Vid detektion av total låsning startas en process varigenom ett fastställande av huruvida en faktisk total låsning föreligger eller ej är möjligt innan någon av de inblandade transaktionerna aborteras.
Vid undvikande av total låsning aborteras en av de inblandade transaktionerna så fort som en risk för total låsning upptäckts utan ett faktiskt konstaterande av att en total låsning föreligger.
Olika sätt är kända varigenom ett avgörande om vilken transaktion som skall tillåtas fortsätta och vilken som skall aborteras är möjligt. Vanligt är att transaktioner med en inbördes högre prioritet ges företräde framför transaktioner med en inbördes lägre prioritet.
Om den totala läsningen uppstår mellan två transaktioner av samma prioritet tillåts den äldsta fortsätta och den yngsta aborteras om det, exempelvis genom tidstärnplar, finns någon möjlig- het att avgöra vilken som är yngst respektive äldst.
Föreliggande uppfinning är inte beroende av vilket sätt som används efter att en risk för total låsning är upptäckt varför detta inte kommer att beskrivas ytterligare här. I den fortsatta beskrivningen kommer det således endast att hänvisas till att ett ytterligare agerande vidtages efier att en risk för total låsning är upptäckt.
Olika sätt att implementera detektion av total låsning beskrivs och visas i publikationema EP-AZ-O 433 882. US-A-S 440 743, SE-TS-O 135 173, samt "Two-phase Deadlock Algorithm", av A.K. Elmagarmid och A.K. Datta, IEEE Transactions on Computers, vol. 37, No. 11, November 1988. Här visas olika sätt att inte bara upptäcka en möjlig risk för total låsning utan även att detektera huruvida en total låsning faktisk föreligger.
Det är även känt att tilldela samtliga objekt inom en databas en inbördes nummerordning i relation till varandra.
Detta kan åstadkommas genom att samtliga objekt inom en tabell ligger konsekutivt efter 10 15 25 30 521 433 varandra även om objekten i praktiken kan vara fysiskt placerade i annan ordning men länkade till varandra i den konsekutiva ordningen via exempelvis en länkad lista.
Om då exempelvis samtliga tabeller inom en databas tilldelas olika nummer, tabell 1, tabell 2, tabell 3 och så vidare, så kommer samtliga objekt inom den totala databasen att kunna anses ligga i en inbördes nummerordning, det vill säga den konsekutiva ordningen inom tabellen i kombination med tabellordningen.
En sådan organisation av databasen erbjuder en möjlighet att förebygga, och därmed helt undvika, en total låsning mellan två transaktioner.
Detta är möjligt genom att endast tillåta de inom databasen verkande transaktionema att accessa aktuella objekt i nummerordning. Om så är fallet kan aldrig en första transaktion låsa ett forsta objekt och sedan 'backa' för att accessa ett i nummerordningen tidigare objekt, ett andra objekt, som möjligen redan blivit låst av en andra transaktion som i sin tur önskar accessa det första objektet, om det andra objektet ligger före det forsta objektet i den beskrivna nummerordningen.
Enligt denna metod kan väntetider, det vill säga en 'normal' låsning, eventuellt uppstå men aldrig en total låsning.
Det skall även nämnas att inom en databas där varje objekt är tilldelad en inbördes ordning enligt ovan så kan både transaktioner som verkar enligt denna ordning och transaktioner som inte tar hänsyn till denna ordning verka samtidigt. För att skilja på dessa transaktioner så benämns i denna beskrivning transaktioner som tar hänsyn till en sådan ordning som "strikt växande transaktioner" och transaktioner som inte tar hänsyn till en sådan ordning benämns som "icke strikt växande transaktioner". l en kombination av de två metoderna kan en total låsning uppträda så fort som den ena transaktionen utgöres av en icke strikt växande transaktion men aldrig mellan två strikt växande transaktioner, 10 15 20 25 30 521 433 se i' i Det skall även nämnas att svårighetema med att övervaka en databas avseende total låsning är speciellt stora i distribuerade databaser.
För vidare information om databashantering i allmänhet och total låsning, samt hanteringen därav i synnerhet, hänvisas till "Principles of Distributed Database Systems", av Mffamer Özsu och Patrick Valduriez, ISBN 0-l3-691643-0.
REDOGÖRELSE FÖR FÖRELIGGANDE UPPFINNING TEKNISKA PROBLEM Under beaktande av teknikens tidigare ståndpunkt, såsom den beskrivits ovan, torde det få anses vara ett tekniskt problem att avsevärt kunna minska erforderlig exekveringskapacitet för övervakandet av risken för total låsning i förhållande till vad som krävs enligt känd teknik och med en bibehållen säkerhet avseende total låsning mellan samtidiga transaktioner i databasen.
Det är ett tekniskt problem att kunna kategorisera transaktioner till så kallade låsande transaktioner så att låsande respektive icke låsande kombinationer av transaktioner på ett enkelt sätt kan skiljas från varandra genom att se till vilken kategori berörda transaktioner hör.
Det är ett tekniskt problem att kunna erbjuda en möjlighet att enkelt skilja kombinationer av transaktioner som kan orsaka en total låsning från kombinationer av transaktioner som visser~ ligen begär access av samma objekt men som trots detta inte kan orsaka en total låsning vid jämförelsen av transaktioner som finns i olika låsköer.
Det är ett tekniskt problem att, vid genomgången av en låskö hörande till ett objekt, kunna skilja på transaktioner som oavsett vilken annan transaktion dessa kombineras med inte kan orsaka en total låsning från transaktioner som i kombination med vissa andra transaktioner kan orsaka en total låsning, Det är vidare ett tekniskt problem att, vid genomgången av en låskö hörande till ett objekt, kunna skilja på transaktioner som i kombination med vissa transaktioner inte kan orsaka en 10 15 20 25 521 433 total låsning från transaktioner som i kombination med andra transaktioner kan orsaka en total låsning, och det är ett ytterligare tekniskt problem att, i samband med sådana transaktioner, kunna erbjuda en möjlighet att på ett enkelt sätt upptäcka kombinationer av transaktioner som kan orsaka en total låsning.
Det är även ett tekniskt problem att kunna erbjuda en möjlighet att använda såväl strikt växan- de som icke strikt växande transaktioner inom samma databas, och att även i en sådan databas kunna skilja kombinationer av transaktioner som kan orsaka en total låsning från kombinati- oner av transaktioner som inte kan orsaka en total låsning, oavsett om transaktionerna är strikt växande eller icke strikt växande.
Det är även ett tekniskt problem att kunna erbjuda olika kategoriseringar beroende på vilka hänsyn som skall tas, såsom hänsyn till läsande respektive skrivande transaktioner, enkla res- pektive komplexa transaktioner, och strikt växande respektive icke strikt växande transak- tioner, där dessa hänsyn kan tas var För sig eller i godtycklig kombination med varandra.
Det är vidare ett tekniskt problem att kunna märka transaktioner så att dessa otvetydigt kan hänföras till någon kategori av transaktioner varigenom låsande kombinationer av transaktioner enkelt kan urskiljas från icke låsande kombinationer av transaktioner.
Det är vidare ett tekniskt problem att på ett enkelt sätt kunna erbjuda en enkel möjlighet att direkt kunna hänFöra respektive transaktion i en låskö till aktuell kategori.
LösmNGEN Med avsikten att erbjuda en lösning till ett eller flera av Föregående tekniska problem utgår föreliggande uppfinning från en metod För hantering av risken För total låsning mellan samtidiga transaktioner i en databas, där respektive objekt inom databasen är tilldelad åtminstone en lås- kö vari transaktioner som begärt access till ett objekt ställs i kö för att invänta, i låskön, Före- gående transaktioners access till objektet.
Hanteringen omfattar en genomgång av transaktionerna ingående i låsköer hörande till olika 10 l5 20 30 5 2 1 4 3 3 7 _ objekt vilken visar om det föreligger en risk för att en första transaktion skall kunna orsaka en total låsning med en andra transaktion vilka båda begärt access till samma första och andra objekt.
Med utgångspunkt från en sådan metod anvisar föreliggande uppñnning speciellt att transakti- onerna verkande inom databasen som kan orsaka en total låsning i kombination med andra transaktioner kategoriseras som läsande transaktioner, att kombinationer av inom databasen verkande transaktioner delas upp i läsande respektive icke läsande kombinationer, och att endast en upptäckt av en läsande kombination förorsakar ett ytterligare agerande.
Detta medför att vid en upptäckt av en icke låsande kombination krävs inget ytterligare ageran- de från databasen och exekveringsarbetet med att utvärdera huruvida risken för total låsning föreligger, samt en uppföljning av dessa transaktioner, ej behöver utföras, vilket minskar det exekveringsarbete som hanteringen av risken för total läsning kräver.
Det finns olika sätt att kategorisera transaktioner som verkar inom databasen varigenom risken för total låsning kan utvärderas.
Ett sådant sätt är att dela upp transaktionema i enkla respektive komplexa transaktioner, där enkla transaktioner utgöres av transaktioner som endast accessar ett objekt inom databasen och komplexa transaktioner utgöres av transaktioner som accessar två eller fiera objekt inom databasen.
I detta fall är komplexa transaktioner så kallade låsande transaktioner, en läsande kombination av utgöres två komplexa transaktioner, och en icke läsande kombination utgöres av en enkel transaktion och någon annan transaktion, oavsett om denna är enkel eller komplex.
Det är även möjligt att dela upp transaktioner i skrivande respektive läsande transaktioner, där skrivande är transaktioner så kallade läsande transaktioner, där en läsande kombination utgöres av en skrivande transaktion och någon annan transaktion, oavsett om denna är läsande eller skrivande, och där en icke läsande kombination utgöres av två läsande transaktioner. 10 15 25 30 521 433 ' 8.1» i Det är enligt föreliggande uppfinning även möjligt att tillämpa hanteringen av möjlig total låsning i en databas där såväl strikt växande som icke strikt växande transaktioner verkar samtidigt.
I en sådan databas utgöres enligt föreliggande uppfinning icke strikt växande transaktioner så kallade läsande transaktioner, en läsande kombination utgöres av en icke strikt växande trans- aktion och någon annan transaktion, oavsett om denna är strikt växande eller icke strikt växande, och en icke läsande kombination utgöres av tvâ strikt växande transaktioner.
Det är enligt föreliggande uppfinning även möjligt att vid hanteringen av möjlig total låsning taga hänsyn till en godtycklig kombination av faktorerna enkel respektive komplex transaktion, läsande respektive skrivande transaktion samt strikt växande respektive icke strikt växande transaktion, vilka kombinationer, samt hur dessa kan resultera i låsande respektive icke låsaride kombinationer av transaktioner, kommer att visas mer utförligt i beskrivningen av föredragna utföringsforiner.
Vilken kombination som är mest fordelaktig kan bero på den specifika databas vari förelig- gande uppfinning skall implementeras.
Enligt föreliggande uppfinning skall även de i databasen verkande transaktionerna märkas enligt sin kategoritillhörighet.
Detta sker genom att respektive transaktion tilldelas en här benämnd låsflagga, vilken låsflagga anpassas till att visa huruvida transaktionen kan orsaka en total låsning i kombination med en annan transaktion eller ej.
Denna låsflagga tilldelas bitar som anpassas till att visa hunivida transaktionen är enkel eller komplex, läsande eller skrivande samt strikt växande eller icke strikt växande, allt enligt vilka kombinationer som används i den aktuella databasen.
Vidare anvisar föreliggande uppfinning att låsflaggan, hörande till de i en låskö väntande trans- aktionerna, kan visas i Iåskö för att kategoritillhörigheten skall kunna ses direkt i låskön vari- 10 15 20 25 521 433 9 , genom jämförelsen av lâsköer hörande till olika objekt ytterligare förenklas.
Föreliggande uppfinning anvisar även att det är möjligt att visa kategoritillhörigheten genom att tilldela respektive objekt ett flertal låsköer, där antalet låsköer för respektive objekt är lika med antalet kategorier av transaktioner som verkar inom databasen, och där en kötillhöiighet även visar en transaktions kategoritillhörighet.
FÖRDELAR De fördelar som främst kan få anses vara kännetecknande för en metod enligt föreliggande uppfinning är att erforderlig exekveringskapacitet för att hantera möjlig total låsning mellan samtidiga transaktioner minskas avsevärt i förhållande till vad som fordras enligt känd teknik, och detta med en bibehållen säkerhet avseende total låsning mellan samtidiga transaktioner i databasen.
Vidare erbjuder föreliggande uppfinning ett enkelt sätt låta såväl strikt växande som icke strikt växande transaktioner att verka samtidigt i en och samma databas, där denna kombination ger en kraftfiill möjlighet att hantera problematiken kring total låsning.
Det skall vidare nämnas att föreliggande uppfinning är speciellt fördelaktig för en tillämpning inom en distribuerad databas.
Det som främst kan få anses vara kännetecknande för en metod, i enlighet med föreliggande uppfinning, anges i det efterföljande patentkravets l kännetecknande del.
KORT FIGURBESKRIVNING En metod, uppvisande de med föreliggande uppfinning förknippade egenheterna, skall i 10 15 20 521 453 inf r exemplifierande syfie nu närmare beskrivas med hänvisning till bifogad ritning, där; figur 1 visar schematiskt en total låsning mellan en första och en andra transaktion, figur 2 visar schematiskt två objekt med tillhörande låsköer i en första situation, figur 3a och 3b visar en matris vari lâsande respektive icke lâsande kombinationer av transaktioner enligt en första utföringsform kan härledas, figur 4a och 4b visar en matris vari lâsande respektive icke lâsande kombinationer av transaktioner enligt en andra utföringsforni kan härledas, figur Sa, Sb och 5c visar en matris vari lâsande respektive icke lâsande kombinationer av transaktioner enligt en tredje utföringsform kan härledas, figur 6a och 6b visar en matris vari lâsande respektive icke lâsande kombinationer av transaktioner enligt en fiärde utföringsform kan härledas, figur 7a, 7b och 7c visar en matris vari lâsande respektive icke lâsande kombinationer av transaktioner enligt en femte utföringsform kan härledas, figur Sa, 8b, 8c och Sd visar en matris vari lâsande respektive icke lâsande kombinationer av transaktioner enligt en sjätte utföringstbrm kan härledas, figur 9a, 9b, 9c, 9d och 9e visar en matris vari lâsande respektive icke lâsande kombi- nationer av transaktioner enligt en sjunde utföringsform kan härledas, figur 10 visar schematiskt en låsflagga hörande till en transaktion, vilken visar en kategoritillhörighet för transaktionen i fråga, figur l 1 - 17 visar schematiskt olika utföringsformer av en låsflagga enligt figur 10, 10 15 20 25 30 521 433 lll figur 18 visar ett exempel på en låsko enligt föreliggande upptinning och figur 19 visar schematiskt ett objekt med ett flertal olika låsköer, samt hur dessa visar en kategoritillhörighet for inom respektive låskö väntande transak- tioner.
BESKRIVNING övER NU FÖRESLAGNA UTFÖRINGSFORMER Med hänvisning till figur 1 visas således tvâ olika transaktioner, en forsta transaktion T1 och en andra transaktion Tl, som verkar i en gemensam databas 1. Denna databas omfattar ett flertal olika objekt och figuren visar ett forsta objekt 01 och ett andra objekt 02.
Den forsta transaktionen Tl har access till det forsta objektet Tl, vilket är visat med en hel- dragen linje. På samma sätt har den andra transaktionen TZ access till det andra objektet 02.
I den forsta transaktionen T1 krävs även en access till det andra objektet 02, visat med en streckad linje, och i den andra transaktionen T2 krävs en access till det forsta objektet Ol, även det visat med en streckad linje.
I detta exempel är den forsta transaktionen en skrivande, eller forändrande. transaktion, vilket betyder att inga andra transaktioner erbjuds access till det forsta objektet Ol forrän den forsta transaktionen Tl är färdig med det forsta objektet O1. Eñersom den forsta transaktionen är skrivande kan den heller inte ges access till något annat objekt, såsom det andra objektet 02, sålänge som någon annan transaktion, såsom den andra transaktionen T2, har access till detta objekt. De två transaktionema Tl, TZ kommer således att vänta på varandra och läsningen kan inte lösas. Detta är en total låsning.
Här visas att en total låsning kan uppstå mellan två olika transaktioner. Det skall dock nämnas att en total låsning även kan uppstå mellan tre eller flera transaktioner där exempelvis en forsta transaktion väntar på en andra transaktion, denna andra transaktion väntar på en tredje transak- tion, och denna tredje transaktion väntar på den första transaktionen. I forenklande och 10 15 20 25 521 435 , 12 ' exemplifierande syfle visas dock i denna beskrivning förhållandet mellan två olika transaktioner och hur dessa kan orsaka en total låsning. Det är dock för fackmannen uppenbart hur förelig- gande uppfinning skall tillämpas för att kunna användas i det generella fallet där fler än två transaktioner kan låsa varandra.
I figur 2 visas att respektive objekt 01, 02 är tilldelad en låskö L1, L2, där de transaktioner som väntar på att tå access till objektet står i kö.
I låskön Ll finns ett antal olika positioner LlO, Lll, Ll2, Ll3, L14 där en position LlO visar den transaktion Tl som för tillfället accessa objektet 01 och med väntande transaktioner TS, T4, TZ, TS i övriga positioner Ll 1, Ll2, Ll3, L14. Här visas att i den tredje positionen Ll3 för låskön Ll för det forsta objektet 01 finns den andra transaktionen TZ som även är den transaktion som för tillfället äccessar det andra objektet 02. På samma sätt visas att i den andra positionen L22 för låskön L2 för det andra objektet 02 finns den första transaktionen Tl.
Risken för en total låsning mellan den första transaktionen Tl och den andra transaktionen T2 kan förutses innan den faktiskt resulterar i en total låsning. En jämförelse av låsköema L1, L2 för de två objekten 01, 02 visar att den transaktion T1, TZ som för tillfället har access till respektive objekt 01, 02 även väntar i låskön för den andra objektet.
En jämförelse av låsköer startar med att innehållet i, eller transaktionen som befinner sig i, den första positionen LlO för en låskö Ll jämförs med innehållet i positionerna för låsköerna hörande till alla andra objekt i databasen. Sådanajämfcârelser pågår kontinuerligt och kräver en viss exekveringskapacitet från databasen.
I figur 2 har situationen möjligen ännu ej utvecklats till en total låsning. Risken för en total lås- ning har dock upptäckts och enligt känd teknik är det här möjligt att exempelvis agera enlig detektion av total låsning eller undvikande av total låsning. Föreliggande uppfinning är dock inte beroende av vilket agerande som används efter att en risk för total låsning upptäckts varför ett sådant agerande inte kommer att beskrivas ytterligare här.
En upptäckt risk för total låsning behöver inte resultera i en total låsning eftersom det inte är 10 15 20 5 2 'l 4 3 3 13 säkert att de berörda transaktionerna Tl, T2 kommer att låsa berörda objekt Ol, 02 för varandra eller någon annan transaktion. Transaktionema kan exempelvis vara läsande och således tillåta att en annan läsande transaktion ges samtidig access till objektet.
Föreliggande uppfinning anvisar en metod för hantering av risken för total låsning mellan samtidiga transaktioner i en databas, vilken omfatta en genomgång av låskön L1 för det första objektet 01 där det finns olika transaktioner Tl, T3, T4, T2, T5 i positionerna LlO, Ll 1, Ll2, LIS, L 14 hörande till låskön Ll. Vissa av transaktionema kan i kombination med andra transaktioner i andra låsköer orsaka en total låsning. Dessa transaktioner benämns enligt Föreliggande uppfinning som låsande transaktioner. Vissa andra transaktioner kommer aldrig att orsaka, eller vara delaktiga i, en total låsning.
Föreliggande uppfinning avser att erbjuda en möjlighet att kunna visa vilka transaktioner som kombination med vissa andra transaktioner kommer att kunna orsaka en total låsning.
Då en låsande transaktion upptäcks vid en genomgång av en låskö skall denna transaktion jämföras med andra transaktioner inom andra låsköer för att utvärdera om dessa tillsammans bildar en så kallad låsande eller icke låsande kombination av transaktioner.
Endast en upptäckt av en låsande kombination förorsakar enligt föreliggande uppfinning ett ytterligare agerande, exempelvis enligt vad som tidigare visats under rubriken 'Teknikens tidigare ståndpunkt'.
På detta sätt kommer hanteringen av risken för total låsning att förenklas avsevärt, eftersom en jämförelse mellan flera transaktioner endast behöver genomföras då en låsande transaktion upptäckts, och då en låsande transaktion upptäckts påbörjas endast ett ytterligare agerande då denna låsande transaktion bildar en låsande kombination med någon annan transaktion.
De transaktioner som verkar inom en databas kan kategoriseras på olika sätt, vilket visar om en transaktion kan anses vara låsande eller ej. l det följande skall ett antal sådana kategorier visas, samt hur kombinationer av dessa kan erbjuda ett förenklat förfarande vid en jämförelse mellan olika låsköer. Kombinationer av transaktioner som hänförs till olika kategorier kommer 10 15 20 25 14 att delas in i läsande respektive icke läsande kombinationer.
Med en läsande kombination avses i denna beskrivning en kombination av tvâ transaktioner som, om dessa begär access till samma objekt, kommer att resultera i en total läsning. Med en icke läsande kombination avses i denna beskrivning en kombination av två transaktioner som, om dessa begär access till samma objekt, inte kommer att resultera i en total läsning, även om den ena transaktionen är en så kallad läsande transaktion, och således för vilken kombination något ytterligare agerande inte är nödvändigt.
Enligt en Första Föreslagen utföringsform av föreliggande uppfinning kan transaktioner delas upp i enkla AT respektive komplexa BT transaktioner, där enkla transaktioner AT utgöres av transaktioner som endast accessar ett objekt inom databasen, och komplexa transaktioner BT utgöres av transaktioner som accessar två eller flera objekt inom databasen.
Figur 3 visar att, enligt denna utföringsform, utgör komplexa transaktioner BT så kallade läsande transaktioner, att en läsande kombination, visat med ett "X" i figurerna, utgöres av två komplexa transaktioner BT (figur Sa), och att en icke läsande kombination, visat med ett "-" i figurerna, utgöres av en enkel transaktion AT och någon annan transaktion, oavsett om denna är enkel AT eller komplex BT (figur 3b).
Enligt en andra föreslagen utföringsforrii av föreliggande uppfinning kan transaktioner delas upp i läsande CT transaktioner respektive skrivande DT transaktioner.
Det skall förstås att med läsande transaktioner menas icke förändrande transaktioner som sätter ett delat läs på berört objekt och som därmed tillåter andra icke törändrande transaktioner sam- tidig access till berört objekt, och att med skrivande transaktioner menas Förändrande transakti- oner som sätter ett exklusivt lås på berört objekt och som därmed inte tillåter någon annan transaktion samtidig access till berört objekt.
Figur 4 visar att, enligt denna utföringsform, utgör skrivande transaktioner DT så kallade läsande transaktioner, att en läsande kombination utgöres av en skrivande transaktion DT och någon annan transaktion, oavsett om denna är läsande CT eller skrivande DT (figur 4a), och 10 l5 20 25 521 453 15 att en icke låsande kombination utgöres av två läsande transaktioner CT (figur 4b).
Enligt en tredje föreslagen utföringstbrrn av föreliggande uppfinning kan transaktionerna delas upp i en kombination av enkla AT respektive komplexa BT transaktioner samt läsande CT respektive skrivande DT transaktioner.
Figur 5 visar att med sådana kombinationer så utgör såväl komplexa transaktioner BT som skrivande transaktioner DT så kallade läsande transaktioner, att en låsande kombination ut- göres av en komplex skrivande transaktion BDT och en komplex transaktion BT, oavsett om denna är skrivande DT eller läsande CT (figur Sa), och att en icke läsande kombination utgöres av en enkel transaktion AT, oavsett om denna är läsande CT eller skrivande DT, och någon annan transaktion, oavsett om denna är läsande CT, skrivande DT, enkel AT eller komplex BT (figur 5b), eller av två komplexa läsande transaktioner BCT (figur Se).
Enligt en fiärde föreslagen utföringsform av föreliggande uppfinning kan hanteringen av risken för total låsning även omfatta strikt växande transaktioner, vilka aldrig kan orsaka en total lås- ning med varandra. Det kan dock fortfarande uppstå en total låsning mellan inbördes icke strikt växande transaktioner, och mellan en strikt växande transaktion och en icke strikt verkande transaktion.
Enligt denna utföringsforrn kan transaktioner delas upp i strikt växande ET respektive icke strikt växande FT transaktioner.
Figur 6 visar att, enligt denna utföringsform. utgör icke strikt växande transaktioner FT så kallade låsande transaktioner, att en läsande kombination utgöres av en icke strikt växande transaktion FT och någon annan transaktion, oavsett om denna är strikt växande ET eller icke strikt växande FT (figur 6a), och att en icke läsande kombination utgöres av två strikt växande transaktioner ET (figur ób).
Enligt en femte föreslagen utföringsform av föreliggande uppfinning kan transaktionerna delas upp i en kombination av strikt växande ET respektive icke strikt växande FT transaktioner och enkla AT respektive komplexa BT transaktioner. 10 15 20 25 521 433 16 Figur 7 visar att i en sådan kombination utgör såväl komplexa transaktioner BT som icke strikt växande transaktioner FT så kallade låsande transaktioner, att en låsande kombination utgöres av en komplex icke strikt växande transaktion BFT och en komplex transaktion BT, oavsett om denna är strikt växande ET eller icke strikt växande FT (figur 7a), och att en icke låsande kombination utgöres av en enkel transaktion AT, oavsett om denna är strikt växande ET eller icke strikt växande FT, och någon annan transaktion, oavsett om denna är enkel AT, komplex BT, strikt växande ET eller icke strikt växande FT (figur 7b), eller två strikt växande transaktioner ET, oavsett om dessa är enkla eller komplexa (figur 7c).
Det är enligt en sjätte Föreslagen utföringsforrn av föreliggande uppfinning möjligt att dela upp transaktioner i en kombination av läsande CT respektive skrivande DT transaktioner samt strikt växande ET respektive icke strikt växande FT transaktioner.
Figur 8 visar att med sådana kombinationer utgör såväl skrivande transaktioner DT som icke strikt växande transaktioner FT så kallade låsande transaktioner, att en låsande kombination utgöres av en skrivande icke strikt växande transaktion DFT och någon annan transaktion, oavsett om denna är läsande CT, skrivande DT, strikt växande ET eller icke strikt växande FT (ñgur Sa), eller skrivande strikt växande transaktion DET och en läsande icke strikt växande transaktion CFT (figur Sb), och att en icke låsande kombination utgöres av två läsande trans- aktioner CT, oavsett om dessa är strikt växande ET eller icke strikt växande FT (figur Sc), eller två strikt växande transaktioner ET, oavsett om dessa är läsande CT eller skrivande DT (figur Sd).
Enligt en sjunde föreslagen utföringsform av föreliggande uppfinning är det möjligt att dela upp transaktionerna i en kombination av enkla AT respektive komplexa BT transaktioner, läsande CT respektive skrivande DT transaktioner samt strikt växande ET respektive icke strikt växande FT transaktioner.
Figur 9 visar att, i en sådan kombination av kategorier för transaktioner, utgör såväl komplexa transaktioner BT, skrivande transaktioner DT som icke strikt växande transaktioner FT så kallade låsande transaktioner, att en låsande kombination utgöres av en komplex skrivande icke 10 15 20 25 521 453 l7 strikt växande transaktion BDF T och en komplex transaktion BT, oavsett om denna är läsande CT, skrivande DT, strikt växande ET eller icke strikt växande FT (figur 9a), eller en komplex skrivande strikt växande transaktion BDET och en komplex läsande icke strikt växande trans- aktion BCFT (figur 9b), och att en icke läsande kombination utgöres av en enkel transaktion AT i kombination med någon annan transaktion, oavsett om denna är läsande CT, skrivande DT, strikt växande ET eller icke strikt växande FT (figur 9c), eller två strikt växande trans- aktioner ET, oavsett om dessa är läsande CT, skrivande DT, enkla AT eller komplexa BT (figur 9d), eller två komplexa läsande transaktioner BCT, oavsett om dessa är strikt växande ET eller icke strikt växande FT (figur 9e).
I figur 9 är enkla transaktioner ej visade som strikt respektive icke strikt växande eftersom dessa per definition är strikt växande.
Det är for en fackman uppenbart att i det fall som transaktionerna kan kategoriseras enligt andra kriterier än de som visats här så kan även läsande respektive icke låsande kombinationer bildas enligt endast sådana kategorier eller i kombination med andra kategorier enligt före- liggande uppfinning och det skall förstås att de här visade kategorierna, och kombinationerna av kategorier, endast är föreslagna utföringsformer av föreliggande uppfinning.
Med avsikten att märka respektive transaktion med en kategoritillhörighet anvisar föreliggande uppfinning att respektive transaktion, enligt figur lO, tilldelas en här benämnd låsflagga 2 vilken anpassas till att visa huruvida en transaktion kan orsaka en total låsning i kombination med en annan transaktion eller ej. l figuren visas att en transaktion 3 förenklat kan sägas om- fatta ett huvuddel 31, en kommandodel 32 samt en variabeldel 33. Här visas att låsflaggan 2 är tilldelad en position i transaktionens huvuddel 31.
Denna låsflagga kan omfatta olika antal bitar beroende vilken eller vilka tillhörigheter till kategorier som behöver kunna representeras. l det fall som transaktionerna delas upp i eiikla AT respektive koinplexa BT transaktioner anvisar föreliggande uppfinning, enligt figur l l, att låsflaggan 2 ointattar en första bit 21, vilken tilldelas ett första logiskt värde för enkla transaktioner AT och ett andra logiskt värde 10 15 20 521 433 is* for komplexa transaktioner BT.
I det fall som transaktionema delas upp i läsande CT respektive skrivande DT transaktioner anvisar Föreliggande uppfinning, enligt figur 12, att låstlaggan omfattar en andra bit 22, vilken tilldelas ett forsta logiskt värde for läsande transaktioner CT och ett andra logiskt värde for skrivande transaktioner DT.
I det fall som transaktionerna delas upp i såväl enkla AT respektive komplexa BT transakti- oner som läsande CT respektive skrivande DT transaktioner anvisar Föreliggande uppfinning, enligt figur 13, att låsflaggan omfattar en forsta bit 21 och en andra bit 22, där den forsta biten 2l tilldelas ett forsta logiskt värde for enkla transaktioner AT och ett andra logiskt värde for komplexa transaktioner BT, och där den andra biten 22 tilldelas ett forsta logiskt värde for läsande transaktioner CT och ett andra logiskt värde for skrivande transaktioner DT.
I det fall som transaktionerna delas upp i strikt växande ET respektive icke strikt växande FT transaktioner anvisar föreliggande uppfinning, enligt ñgur 14, att låsflaggan omfattar en tredje bit 23, vilken tilldelas ett forsta logiskt värde for strikt växande transaktioner ET och ett andra logiskt värde for icke strikt växande transaktioner FT.
I det fall som transaktionema delas upp i såväl enkla AT respektive komplexa BT transaktioner som strikt växande ET respektive icke strikt växande FT transaktioner anvisar föreliggande uppfinning, enligt figur 15, att låsflaggan 2 omfattar en forsta bit 21 och en tredje bit 23, där den forsta biten 21 tilldelas ett forsta logiskt värde for enkla transaktioner AT och ett andra logiskt värde for komplexa transaktioner BT, och där den tredje biten 23 tilldelas ett forsta logiskt värde for strikt växande transaktioner ET och ett andra logiskt värde for icke strikt växande transaktioner FT.
I det fall som transaktionerna delas upp i såväl läsande CT respektive skrivande DT transakti- oner som strikt växande ET respektive icke strikt växande FT transaktioner anvisar forelig- gande uppfinning, enligt figur 16, att låstlaggan omfattar en andra bit 22 och en tredje bit 23, där den andra biten 22 tilldelas ett forsta logiskt värde for läsande transaktioner CT och ett andra logiskt värde for skrivande transaktioner DT, och där den tredje biten 23 tilldelas ett 10 15 25 5 2 1 4 3 3 19 forsta logiskt värde for strikt växande transaktioner ET och ett andra logiskt värde for icke strikt växande transaktioner FT.
I det fall som transaktionerna delas upp i såväl enkla AT respektive komplexa BT transakti- oner, läsande CT respektive skrivande DT transaktioner som strikt växande ET respektive icke strikt växande FT transaktioner anvisar föreliggande uppfinning, enligt figur 17, att låsflaggan omfattar en forsta bit 21, en andra bit 22 och en tredje bit 23, där den forsta biten 21 tilldelas ett forsta logiskt värde fór enkla transaktioner AT och ett andra logiskt värde fór komplexa transaktioner BT, där den andra biten 22 tilldelas ett forsta logiskt värde for läsande trans- aktioner CT och ett andra logiskt värde for skrivande transaktioner DT, och där den tredje biten 23 tilldelas ett forsta logiskt värde for strikt växande transaktioner ET och ett andra logiskt värde for icke strikt växande transaktioner FT.
Figur 18 visar att låsflaggan 212, 213, 274, 215 hörande till de i en låsko Ll väntande transakti- onerna TZ, T3, T4, TS, visas i låskon Ll, vilket medfor att kategoritillhorighet kan ses direkt i låskön, och att vissa väntande transaktioner inte alls behover jämforas med andra transaktioner eftersom vissa transaktioner, såsom enkla transaktioner, aldrig orsakar totala läsningar enligt föreliggande uppfinning.
Det är även möjligt att visa kategoritillhorigheten genom att tilldela respektive objekt ett flertal låskoer.
Figur 19 visar ett objekt 03 med ett flertal olika lâsköer 1.3 l, L32, L33, L3n. En transak- tion TlO har accessat objektet 03 och andra transaktioner Tl l, T12, Tl3, Tl9 väntar i olika låsköer L3 l, L32, L33, ..., L3n på att få accessa objektet 03. Antalet låskoer (n) for respektive objekt är enligt denna utföringsfonn lika med ett antal kategorier av transaktioner som verkar inom databasen och kötillhörigheten visar vilken kategoritillhorighet respektive transaktion Tl l, T12, Tl3, Tl9 har.
Transaktioner hörande till samma eller olika kategorier kan orsaka en total låsning enligt vad som visats tidigare. 10 5 2 1 4 3 3 20 Kötillhörigheten, eller kategoritillhorighet, visar således huruvida en transaktion kan anses vara läsande eller ej och således huruvida den kan orsaka en total låsning i kombination med en annan transaktion eller ej.
Dessa kategorier kan omfatta kombinationer av enkla respektive komplexa transaktioner, läs- ande respektive skrivande transaktioner, och/eller strikt växande respektive icke strikt växande transaktioner. Det skall även förstås att dessa kategorier är utforingsexempel och att även andra kategorier som inte är visade i denna beskrivning kan representeras med olika låsköer.
Uppfinningen är givetvis inte begränsad till den ovan såsom exempel angivna utfóringsforrnen utan kan genomgå modifikationer inom ramen för uppfinningstanken illustrerad i efterföljande patentkrav.

Claims (19)

10 15 20 k) vi 30 521 433 21 PATENTKRAV
1. l. Metod för hantering av risken för total låsning mellan samtidiga transaktioner i en data- bas, där respektive objekt inom nämnda databas är tilldelad åtminstone en låskö vari transak- tioner som begärt access till ett objekt ställs i kö för att invänta, i nämnda låskö, föregående transaktioners access till nämnda objekt, där nämnda hantering omfattar en genomgång av vilka transaktioner som befinner sig i nämnda låsköer, k ä n n e t e c k - n a d därav, att en inom nämnda databas verkande transaktion kan kategoriseras som en låsande transaktion, att en låsande transaktion kan orsaka en total låsning i kombination med en eller flera andra transaktioner, att kombinationer av en låsande transaktion och en eller flera andra transaktioner kategoriseras som låsande respektive icke låsande kombinationer, att en icke låsande kombination aldrig resulterar i en total låsning, att en låsande kombination kan resultera i en total låsning, att en upptäckt av en låsande transaktion förorsakar en vidare genomgång av nämnda låsköer, att, vid nämnda vidare genomgång, nämnda låsande trans- aktion jämförs med transaktioner hörande till nämnda låsköer för en utvärdering av huruvida nämnda kombination av transaktioner utgör en låsande eller icke låsande kombination, och att endast en upptäckt av en låsande kombination förorsakar ett ytterligare agerande.
2. Metod enligt patentkravet l, k ä n n e t e c k n a d därav, att nämnda transaktioner delas upp i enkla respektive komplexa transaktioner, att enkla transak- tioner utgöres av transaktioner som endast accessar ett objekt inom nämnda databas, att kom- plexa transaktioner utgöres av transaktioner som accessar två eller flera objekt inom nämnda databas, att nämnda komplexa transaktioner utgör nämnda låsande transaktioner, att nämnda låsande kombination utgöres av två komplexa transaktioner, och att nämnda icke låsande kombination utgöres av en enkel transaktion och någon annan transaktion, oavsett om denna är enkel eller komplex.
3. Metod enligt patentkravet l, k ä n n e t e c k n a d därav, att nämnda transaktioner delas upp i skrivande respektive läsande transaktioner. att nämnda skrivande transaktioner utgör nämnda låsande transaktioner, att nämnda låsande kombination utgöres av en skrivande transaktion och någon annan transaktion, oavsett om denna är läsande eller skrivande. och att nämnda icke låsande kombination utgöres av två läsande transaktioner. 10 15 20 to t;
4. Metod enligt patentkravet I, k ä n n e t e c k n a d därav, att närrmda transaktioner delas upp i enkla respektive komplexa transaktioner samt läsande res- pektive skrivande transaktioner, att enkla transaktioner utgöres av transaktioner som endast accessar ett objekt inom nämnda databas, att komplexa transaktioner utgöres av transaktioner som accessar två eller flera objekt inom nämnda databas, att nämnda komplexa transaktioner samt nämnda skrivande transaktioner utgör nämnda låsande transaktioner, att nämnda låsande kombination utgöres av en komplex skrivande transaktion och en komplex transaktion, oavsett om denna är skrivande eller läsande, och att nämnda icke låsande kombination utgöres av en enkel transaktion, oavsett om denna är läsande eller skrivande, och någon annan transaktion, oavsett om denna är läsande, skrivande, enkel eller komplex, eller av två komplexa läsande transaktioner.
5. Metod enligt patentkravet l, där såväl strikt växande som icke strikt växande transak- tioner verkar samtidigt inom nämnda databas, k ä n n e t e c k n a d därav, att nämnda icke strikt växande transaktioner utgör nämnda låsande transaktioner, att nämnda låsande kombination utgöres av en icke strikt växande transaktion och någon annan transaktion, oavsett om denna är strikt växande eller icke strikt växande, och att nämnda icke läsande kombination utgöres av två strikt växande transaktioner.
6. Metod enligt patentkravet l, där såväl strikt växande som icke strikt växande transak- tioner verkar samtidigt inom nämnda databas, k ä n n e t e c k n a d därav, att nämnda transaktioner delas upp i enkla respektive komplexa transaktioner samt strikt växande respektive icke strikt växande transaktioner, att enkla transaktioner utgöres av trans- aktioner som endast accessar ett objekt inom nämnda databas, att komplexa transaktioner ut- göres av transaktioner som accessar två eller flera objekt inom nämnda databas, att nämnda komplexa transaktioner samt nämnda icke strikt växande transaktioner utgör nämnda låsande transaktioner, att nämnda låsande kombination utgöres av en komplex icke strikt växande transaktion och en komplex transaktion, oavsett om denna är strikt växande eller icke strikt växande, och att nämnda icke låsande kombination utgöres av en enkel transaktion, oavsett om denna är strikt växande eller icke strikt växande, och någon annan transaktion, oavsett om denna är enkel, komplex, strikt växande eller icke strikt växande, eller två strikt växande 10 15 20 25 521 435 23 transaktioner, oavsett om dessa är enkla eller komplexa.
7. Metod enligt patentkravet l, där såväl strikt växande som icke strikt växande transak- tioner verkar samtidigt inom nämnda databas, k ä n n e t e c k n a d därav, att nämnda transaktioner delas upp i läsande respektive skrivande transaktioner samt strikt växande respektive icke strikt växande transaktioner, att nämnda skrivande transaktioner samt nämnda icke strikt växande transaktioner utgör nämnda läsande transaktioner, att nämnda läsande kombination utgöres av en skrivande icke strikt växande transaktion och någon annan transaktion, oavsett om denna är läsande, skrivande, strikt växande eller icke strikt växande, eller skrivande strikt växande transaktion och en läsande icke strikt växande transaktion, och att nämnda icke läsande kombination utgöres av två läsande transaktioner, oavsett om dessa är strikt växande eller icke strikt växande, eller två strikt växande transaktioner, oavsett om dessa är läsande eller skrivande.
8. Metod enligt patentkravet 1, där såväl strikt växande som icke strikt växande transak- tioner verkar samtidigt inom nämnda databas, k ä n n e t e c k n a d därav, att nämnda transaktioner delas upp i enkla respektive komplexa transaktioner, läsande respektive skrivande transaktioner samt strikt växande respektive icke strikt växande trans- aktioner, att enkla transaktioner utgöres av transaktioner som endast accessar ett objekt inom nämnda databas, att komplexa transaktioner utgöres av transaktioner som accessar två eller flera objekt inom nämnda databas, att nämnda komplexa transaktioner, skrivande transaktioner samt icke strikt växande transaktioner utgör nämnda läsande transaktioner, att nämnda läsande kombination utgöres av en komplex skrivande icke strikt växande transaktion och en komplex transaktion, oavsett om denna är läsande, skrivande, strikt växande eller icke strikt växande, eller en komplex skrivande strikt växande transaktion och en komplex läsande icke strikt växande transaktion, och att nämnda icke läsande kombination utgöres av en enkel transaktion i kombination med någon annan transaktion, oavsett om denna är läsande, skrivande, strikt växande eller icke strikt växande, eller tvä strikt växande transaktioner, oavsett om dessa är läsande, skrivande, enkla eller komplexa. eller två komplexa läsande transaktioner, oavsett om dessa är strikt växande eller icke strikt växande.
9. Metod enligt patentkravetl, k ä n n e t e c k n a d därav, att 10 15 20 IQ U: 521 433 24 nämnda transaktion tilldelas en här benämnd låsflagga, och att nämnda låsflagga anpassas till att visa huruvida nämnda transaktion kan orsaka en total låsning i kombination med en annan transaktion eller ej.
10. Metod enligt patentkraven 2 och 9, k ä n n e t e c k n a d därav, att nämnda låsflagga omfattar en forsta bit, och att nämnda forsta bit tilldelas ett första logiskt värde for enkla transaktioner och ett andra logiskt värde for komplexa transaktioner.
11. Metod enligt patentkraven 3 och 9, k ä n n e t e c k n a d därav, att nämnda låsflagga omfattar en andra bit, och att nämnda andra bit tilldelas ett forsta logiskt värde for läsande transaktioner och ett andra logiskt värde for skrivande transaktioner.
12. Metod enligt patentkraven 4 och 9, k ä n n e t e c k n a d därav, att nämnda låsfiagga omfattar en forsta bit och en andra bit, att nämnda forsta bit tilldelas ett forsta logiskt värde for enkla transaktioner och ett andra logiskt värde for komplexa transak- tioner, och att nämnda andra bit tilldelas ett forsta logiskt värde for läsande transaktioner och ett andra logiskt värde for skrivande transaktioner.
13. Metod enligt patentkraven 5 och 9, k ä n n e t att nämnda låsflagga omfattar en tredje bit, och att nämnda tredje bit tilldelas ett forsta logiskt värde for strikt växande transaktioner och ett andra logiskt värde for icke strikt växande trans- aktioner. -
14. Metod enligt patentkraven 6 och 9, k ä n n e t e c k n a d därav, att nämnda låsflagga omfattar en forsta bit och en tredje bit, att nämnda forsta bit tilldelas ett forsta logiskt värde for enkla transaktioner och ett andra logiskt värde for komplexa transak- tioner, och att nämnda tredje bit tilldelas ett forsta logiskt värde for strikt växande transakti- oner och ett andra logiskt värde for icke strikt växande transaktioner.
15. Metod enligt patentkraven 7 och 9, k ä n n e t e c k n a d därav, att nämnda låstlaaga omfattar en andra bit och en tredje bit, att nämnda andra bit tilldelas ett forsta logiskt värde for läsande transaktioner och ett andra logiskt värde for skrivande trans- ecknaddärav, 10 15 25 25 aktioner, och att nämnda tredje bit tilldelas ett forsta logiskt värde for strikt växande transak- tioner och ett andra logiskt värde for icke strikt växande transaktioner.
16. Metod enligt patentkraven 8 och 9, k ä n n e t e c k n a d därav, att nänmda låstlagga omfattar en forsta bit, en andra bit och en tredje bit, att nämnda forsta bit tilldelas ett forsta logiskt värde for enkla transaktioner och ett andra logiskt värde for kom- plexa transaktioner, att nämnda andra bit tilldelas ett forsta logiskt värde for läsande transakti- oner och ett andra logiskt värde for skrivande transaktioner, och att nämnda tredje bit tilldelas ett forsta logiskt värde for strikt växande transaktioner och ett andra logiskt värde for icke strikt växande transaktioner. e c k -
17. Metod enligt något av patentkraven9till 16, k ä n n e t n a d därav, att närnnda lâsflagga visas i nämnda låsko.
18. Metod enligt något av patentkraven 1 till 8, där nämnda objekt är tilldelat ett flertal lås- köer, k ä n n e t e c k n a d därav, att antalet låskoer for respektive objekt är lika med ett antal kategorier av transaktioner verkande inom databasen, där trans- aktioner hörande till samma eller olika kategorier orsaka en total låsning, och att nämnda kötillhorighet, eller kategoritillhorighet, visar huruvida en transaktion kan orsaka en total låsning i kombination med en annan transaktion eller ej.
19. l9. Metod enligt patentkravet 18, k ä n n e t e c k n a d därav, att nämnda kategorier omfattar kombinationer av enkla respektive komplexa transaktioner, läsande respektive skrivande transaktioner, och/eller strikt växande respektive icke strikt växande transaktioner.
SE9802598A 1998-07-22 1998-07-22 En metod för hantering av risken för en total låsning mellan samtidiga transaktioner i en databas SE521433C2 (sv)

Priority Applications (10)

Application Number Priority Date Filing Date Title
SE9802598A SE521433C2 (sv) 1998-07-22 1998-07-22 En metod för hantering av risken för en total låsning mellan samtidiga transaktioner i en databas
CA002338285A CA2338285C (en) 1998-07-22 1999-07-22 A method relating to the handling of transactions in databases
US09/358,432 US6275823B1 (en) 1998-07-22 1999-07-22 Method relating to databases
JP2000561556A JP2002521747A (ja) 1998-07-22 1999-07-22 データベースにおけるトランザクションの処理に関する方法
AU56602/99A AU5660299A (en) 1998-07-22 1999-07-22 A method relating to the handling of transactions in databases
PCT/SE1999/001301 WO2000005648A1 (en) 1998-07-22 1999-07-22 A method relating to the handling of transactions in databases
BR9912294-4A BR9912294A (pt) 1998-07-22 1999-07-22 Processo de manuseio do risco de um impasse entre transações simultâneas em uma base de dados.
EP99943527A EP1097419A1 (en) 1998-07-22 1999-07-22 A method relating to the handling of transactions in databases
KR1020017000747A KR100817488B1 (ko) 1998-07-22 1999-07-22 데이터베이스에서 트랜잭션의 처리에 관한 방법
CN99811211A CN1122919C (zh) 1998-07-22 1999-07-22 涉及数据库中事务处理的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
SE9802598A SE521433C2 (sv) 1998-07-22 1998-07-22 En metod för hantering av risken för en total låsning mellan samtidiga transaktioner i en databas

Publications (3)

Publication Number Publication Date
SE9802598D0 SE9802598D0 (sv) 1998-07-22
SE9802598L SE9802598L (sv) 2000-01-23
SE521433C2 true SE521433C2 (sv) 2003-11-04

Family

ID=20412138

Family Applications (1)

Application Number Title Priority Date Filing Date
SE9802598A SE521433C2 (sv) 1998-07-22 1998-07-22 En metod för hantering av risken för en total låsning mellan samtidiga transaktioner i en databas

Country Status (10)

Country Link
US (1) US6275823B1 (sv)
EP (1) EP1097419A1 (sv)
JP (1) JP2002521747A (sv)
KR (1) KR100817488B1 (sv)
CN (1) CN1122919C (sv)
AU (1) AU5660299A (sv)
BR (1) BR9912294A (sv)
CA (1) CA2338285C (sv)
SE (1) SE521433C2 (sv)
WO (1) WO2000005648A1 (sv)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6826570B1 (en) * 2000-07-18 2004-11-30 International Business Machines Corporation Dynamically switching between different types of concurrency control techniques to provide an adaptive access strategy for a parallel file system
US7111001B2 (en) * 2003-01-27 2006-09-19 Seiko Epson Corporation Event driven transaction state management with single cache for persistent framework
US7337290B2 (en) * 2003-04-03 2008-02-26 Oracle International Corporation Deadlock resolution through lock requeing
US7496574B2 (en) * 2003-05-01 2009-02-24 International Business Machines Corporation Managing locks and transactions
US20040255086A1 (en) * 2003-06-11 2004-12-16 Hewlett-Packard Development Company, L.P. Reader/writer locking protocol
US7209919B2 (en) * 2003-06-11 2007-04-24 International Business Machines Corporation Library server locks DB2 resources in short time for CM implicit transaction
US7395278B2 (en) * 2003-06-30 2008-07-01 Microsoft Corporation Transaction consistent copy-on-write database
US7210135B2 (en) * 2003-08-26 2007-04-24 Microsoft Corporation Data flow analysis of transactional processes
CN100353325C (zh) * 2004-08-23 2007-12-05 华为技术有限公司 实现共享内存数据库的方法及内存数据库系统
CN100361081C (zh) * 2005-01-18 2008-01-09 华为技术有限公司 处理多线程/多任务/多处理器的方法
CN100337207C (zh) * 2005-03-11 2007-09-12 华为技术有限公司 一种信号量死锁的检测方法
CN100365632C (zh) * 2006-04-05 2008-01-30 华为技术有限公司 实现内存数据和数据库数据事务一致性的处理方法
JP4432087B2 (ja) * 2006-12-26 2010-03-17 インターナショナル・ビジネス・マシーンズ・コーポレーション データベース更新管理システム、プログラムおよび方法
US20080282244A1 (en) * 2007-05-07 2008-11-13 Microsoft Corporation Distributed transactional deadlock detection
US20090164443A1 (en) * 2007-12-19 2009-06-25 Ramos Jo A Database performance mining
CN101425070B (zh) * 2008-08-11 2011-04-20 深圳市金蝶中间件有限公司 一种死锁定位的方法、死锁定位装置和数据系统
US8375367B2 (en) * 2009-08-06 2013-02-12 International Business Machines Corporation Tracking database deadlock
CN101714167B (zh) * 2009-11-03 2013-03-06 北京九合创胜网络科技有限公司 一种访问单文件数据库的方法及装置
CN102193987B (zh) * 2011-03-25 2013-03-20 北京世纪互联宽带数据中心有限公司 基于oltp的增加节点数据关系的方法及系统
US9245053B2 (en) 2013-03-12 2016-01-26 International Business Machines Corporation Efficiently searching and modifying a variable length queue
US10540524B2 (en) * 2014-12-31 2020-01-21 Mcafee, Llc Memory access protection using processor transactional memory support
CN107526629B (zh) * 2016-06-22 2023-04-14 中兴通讯股份有限公司 一种事务处理系统及并发控制方法
CN107766127B (zh) * 2016-08-23 2021-07-06 阿里巴巴集团控股有限公司 事务消息处理方法、装置、设备及系统
CN109614243A (zh) * 2018-10-22 2019-04-12 中国平安人寿保险股份有限公司 数据处理方法、装置及存储介质、计算机设备

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4318182A (en) * 1974-04-19 1982-03-02 Honeywell Information Systems Inc. Deadlock detection and prevention mechanism for a computer system
DE3330529A1 (de) 1983-08-24 1985-03-14 Siemens AG, 1000 Berlin und 8000 München Verfahren und einrichtung zum vermeiden von globalen systemverklemmungen in verteilten datenbank-systemen
US4819159A (en) * 1986-08-29 1989-04-04 Tolerant Systems, Inc. Distributed multiprocess transaction processing system and method
US5193188A (en) * 1989-01-05 1993-03-09 International Business Machines Corporation Centralized and distributed wait depth limited concurrency control methods and apparatus
CA2027934C (en) * 1989-12-22 1994-06-21 Cherie C. Barnes Accelerated deadlock detection in congested data transactions
US5179702A (en) * 1989-12-29 1993-01-12 Supercomputer Systems Limited Partnership System and method for controlling a highly parallel multiprocessor using an anarchy based scheduler for parallel execution thread scheduling
JPH05134886A (ja) 1990-11-30 1993-06-01 Fujitsu Ltd デツドロツク検出方式
US5285528A (en) * 1991-02-22 1994-02-08 International Business Machines Corporation Data structures and algorithms for managing lock states of addressable element ranges
DE69422743T2 (de) * 1993-03-30 2000-06-08 Fujitsu Ltd., Kawasaki Endlosschleife-Erkennungsgerät
GB9424699D0 (en) * 1994-12-07 1995-02-01 Int Computers Ltd Deadlock detection mechanism
US5764976A (en) 1995-02-06 1998-06-09 International Business Machines Corporation Method and system of deadlock detection in a data processing system having transactions with multiple processes capable of resource locking
US5784623A (en) * 1996-05-29 1998-07-21 Oracle Corporation Using a parent latch that covers a plurality of child latches to track the progress of a process attempting to acquire resources
US5940828A (en) * 1997-11-18 1999-08-17 International Business Machines Corporation Locking contention resolution for shared resources

Also Published As

Publication number Publication date
SE9802598D0 (sv) 1998-07-22
US6275823B1 (en) 2001-08-14
CA2338285A1 (en) 2000-02-03
JP2002521747A (ja) 2002-07-16
SE9802598L (sv) 2000-01-23
KR100817488B1 (ko) 2008-03-27
CA2338285C (en) 2008-09-30
WO2000005648A1 (en) 2000-02-03
EP1097419A1 (en) 2001-05-09
AU5660299A (en) 2000-02-14
CN1122919C (zh) 2003-10-01
KR20010071955A (ko) 2001-07-31
BR9912294A (pt) 2001-04-17
CN1319203A (zh) 2001-10-24

Similar Documents

Publication Publication Date Title
SE521433C2 (sv) En metod för hantering av risken för en total låsning mellan samtidiga transaktioner i en databas
CN1026631C (zh) 利用索引树对数据库记录进行并发存取的方法
US8219587B2 (en) Method for searching a tree structure
US9075650B2 (en) Global avoidance of hang states via priority inheritance in multi-node computing system
US8788543B2 (en) Scalable, concurrent resizing of hash tables
US6182186B1 (en) Method and apparatus that utilizes lock states to lock resources
US8239343B2 (en) Database reorganization technique
US6226641B1 (en) Access control for groups of related data items
EP1342173B1 (en) Database management system and method for databases having large objects
CN100428165C (zh) 用于控制子上下文之间的存储器访问的装置、系统和方法
US6411983B1 (en) Mechanism for managing the locking and unlocking of objects in Java
US7831626B1 (en) Integrated search engine devices having a plurality of multi-way trees of search keys therein that share a common root node
US20110138135A1 (en) Fast and Efficient Reacquisition of Locks for Transactional Memory Systems
US5113451A (en) Method for labelling polygons
GB2121995A (en) Method of and apparatus for assigning software resources to memory devices
US20080288691A1 (en) Method and apparatus of lock transactions processing in single or multi-core processor
GB2121218A (en) Shared resource locking apparatus
US11307784B2 (en) Method and apparatus for storing memory attributes
WO2023051235A1 (zh) 一种威胁情报大数据共享方法及系统
CN105550029A (zh) 一种进程调度方法及装置
US7100009B2 (en) Method and system for selective memory coalescing across memory heap boundaries
US11416390B2 (en) Tri-color bitmap array for garbage collection
CN107291371B (zh) 一种读写锁的实现方法及装置
US6643718B1 (en) Method and apparatus for controlling order dependency of items in a multiple FIFO queue structure
CN106681939B (zh) 磁盘页面的读取方法和装置

Legal Events

Date Code Title Description
NUG Patent has lapsed