Patent US6202067B1 successfully refreshed from Google Patents.
← Back to Patent Explorer
US6202067B1 Expired / Lapsed US ⏱️ 0.0 years remaining

Method and apparatus for correct and complete transactions in a fault tolerant distributed database system

Assignee: Nokia of America Corp
•
Filing: 1998-04-07
•
Granted: 2001-03-13
•
Expires: 2018-04-07
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract In a distributed network of processors, a method for completing update transactions using update transaction timers after failure of one processor. Failed slave processors are updated with other slave processors using a record of the last completed database update transaction at each processor prior to failure and using a journal in the master processor that records steps of database update transactions generated by the master database processor.

Inventors

  • 👤 Mark Lawrence Blood
  • 👤 Stephen Dexter Coomer
  • 👤 David Dayton Nason
  • 👤 Mohamad-Reza Yamini

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-03 10:50
CPC Classifications
G; G06; G06F; G06F15/00; G06F15/16; G06F11/00; G06F11/07; G06F11/14; G06F11/1474; G06F11/0703; G06F11/0706; G06F11/0709; G06F11/0751; G06F11/0754; G06F11/0757; G06F11/1471; G06F11/16; G06F11/20; G06F11/202; G06F11/2041; G06F11/2097; G06F16/00; G06F16/20; G06F16/27; G06F2201/00; G06F2201/80; Y; Y10; Y10S; Y10S707/00; Y10S707/953; Y10S707/959; Y10S707/964; Y10S707/966; Y10S707/99931; Y10S707/99938; Y10S707/99951; Y10S707/99952; Y10S707/99953

Claims Analysis

Total Claims: 39
Claim 1
Independent Claim 388 words
In a system comprised of at least one master processor and a plurality of slave processors wherein each processor accesses and controls a database associated with each processor, a method for compensating for a failure condition involving either said at least one master processor or any one of said plurality of slave processors, said method comprising the steps of: a) recording the last completed database update transaction at said each processor; b) creating a journal operatively associated with said at least one master database processor for recording steps of a predetermined number of database update transactions generated by said at least one master database processor; c) recording said steps of database update transactions in said journal; d) creating a plurality of first timers, each of said plurality of slave processors having associated with it, at least one of said plurality of first timers; e) creating a plurality of second timers, each of said plurality of slave processors having associated with it, at least one of said plurality of second timers; f) starting said at least one of said plurality of first timers at the beginning of an update transaction; g) sending a predetermined message from a first one of said plurality of slave processors to said at least one master processor at the end of an update transaction; h) starting said second timer associated with said first one of said plurality of slave processors when said predetermined message is sent to said at least one master processor; i) in the event of failure of any one of said plurality of slave processors: A) copying to said failed processor from said journal all database update transactions subsequent to the last database update of the previously failed processor; j) in the event of failure to said at least one master processor: A) detecting the expiration of said at least one of said plurality of first timers prior to the expiration of said at least one of a plurality of second timers and thereafter: 1) aborting said current update transaction; 2) sending an abort message to said plurality of slave database processors by said slave processor associated with the expired at least one of said plurality of first timers; B) detecting the expiration of said at least one of said plurality of second timers and thereafter committing said current update transaction.
Claim 2
Dependent Claim 388 words
In a system comprised of at least one master processor and a plurality of slave processors wherein each processor accesses and controls a database associated with each processor, a method for compensating for a failure condition involving either said at least one master processor or any one of said plurality of slave processors, said method comprising the steps of: a) recording the last completed database update transaction at said each processor; b) creating a journal operatively associated with said at least one master database processor for recording steps of a predetermined number of database update transactions generated by said at least one master database processor; c) recording said steps of database update transactions in said journal; d) creating a plurality of first timers, each of said plurality of slave processors having associated with it, at least one of said plurality of first timers; e) creating a plurality of second timers, each of said plurality of slave processors having associated with it, at least one of said plurality of second timers; f) starting said at least one of said plurality of first timers at the beginning of an update transaction; g) sending a predetermined message from a first one of said plurality of slave processors to said at least one master processor at the end of an update transaction; h) starting said second timer associated with said first one of said plurality of slave processors when said predetermined message is sent to said at least one master processor; i) in the event of failure of any one of said plurality of slave processors: A) copying to said failed processor from said journal all database update transactions subsequent to the last database update of the previously failed processor; j) in the event of failure to said at least one master processor: A) detecting the expiration of said at least one of said plurality of first timers prior to the expiration of said at least one of a plurality of second timers and thereafter: 1) aborting said current update transaction; 2) sending an abort message to said plurality of slave database processors by said slave processor associated with the expired at least one of said plurality of first timers; B) detecting the expiration of said at least one of said plurality of second timers and thereafter committing said current update transaction.
Claim 3
Dependent Claim 45 words
The method of claim 1 , further comprising the step of resetting said at least one of said plurality of first timers after the associated slave processor receives each step of an update transaction, said step being performed after step f) but before step g).
Claim 4
Dependent Claim 37 words
The method of claim 1 , wherein said step h) further comprises the step of disabling said at least one of said plurality of first timers associated with said first one of said plurality of slave processors.
Claim 5
Dependent Claim 29 words
The method of claim 1 , wherein said step b) is comprised of creating a circular buffer for recording steps of database update transactions generated by the master database.
Claim 6
Dependent Claim 16 words
The method of claim 1 , wherein said journal is updated during steps a) through j).
Claim 7
Dependent Claim 229 words
In a distributed network of processors, comprised of at least one master processor and a plurality of slave processors wherein each processor accesses and controls a database associated with each processor, a method for updating a database of a failed slave processor to match other databases after said failed slave processor recovers comprising the steps of: a) recording a record of the last completed database update transaction at each processor located in the distributed network during a first timer window established by a first timer from a plurality of first timers, wherein each first timer from the plurality of first timers is associated with each processor; b) creating a journal operatively associated with said master database processor located in the distributed network that records the steps of database update transactions generated by the master database processor during a second timer window established by a second timer associated with each processor, wherein the second timer is from a plurality of second timers; c) recording said steps of database update transactions in said journal; d) upon the recovery of the failed processor located in the distributed network, copying to said failed processor from said journal all database update transactions subsequent to the last database update of the previously failed processor; and e) updating the database associated with said failed processor with all database update transactions subsequent to the last database update.
Claim 8
Dependent Claim 229 words
In a distributed network of processors, comprised of at least one master processor and a plurality of slave processors wherein each processor accesses and controls a database associated with each processor, a method for updating a database of a failed slave processor to match other databases after said failed slave processor recovers comprising the steps of: a) recording a record of the last completed database update transaction at each processor located in the distributed network during a first timer window established by a first timer from a plurality of first timers, wherein each first timer from the plurality of first timers is associated with each processor; b) creating a journal operatively associated with said master database processor located in the distributed network that records the steps of database update transactions generated by the master database processor during a second timer window established by a second timer associated with each processor, wherein the second timer is from a plurality of second timers; c) recording said steps of database update transactions in said journal; d) upon the recovery of the failed processor located in the distributed network, copying to said failed processor from said journal all database update transactions subsequent to the last database update of the previously failed processor; and e) updating the database associated with said failed processor with all database update transactions subsequent to the last database update.
Claim 9
Dependent Claim 30 words
The method according to claim 6 , wherein said step b) is comprised of creating a circular buffer for recording steps of database update transactions generated by the master database.
Claim 10
Dependent Claim 18 words
The method according to claim 7 , wherein said circular buffer is updated during steps a) through d).
Claim 11
Dependent Claim 27 words
The method according to claim 6 , where said step a) is further comprised of the step of recording the number of the last database update transaction.
Claim 12
Dependent Claim 28 words
The method according to claim 6 , where said step a) is further comprised of the step of recording a complete copy of the last database update transaction.
Claim 13
Dependent Claim 27 words
The method according to claim 6 , where said step a) is further comprised of the step of recording the date of the last database update transaction.
Claim 14
Dependent Claim 27 words
The method according to claim 6 , wherein said step a) is further comprised of the step of recording the time of the last database update transaction.
Claim 15
Dependent Claim 28 words
The method according to claim 6 , further including the step of copying to the failed slave processor, database update transactions that occurred during steps a) through d).
Claim 16
Dependent Claim 57 words
The method according to claim 6 , further comprising the steps of: e) designating a processor as a back-up master processor; f) creating a journal operatively associated with said back-up master processor; g) recording into the journal operatively associated with said back-up master processor, the information recorded into the journal operatively associated with said master database processor.
Claim 17
Dependent Claim 166 words
In a distributed network of processors, comprised of at least one master processor and a plurality of slave processors wherein each processor accesses and controls a database associated with each processor, a method for completing update transactions after failure of said at least one master processor comprising the steps of: creating a plurality of timers, operatively associated with said plurality of slave processors such that each of said plurality of slave processors is associated with at least one of said plurality of timers; receiving a current update transaction at a first one of said plurality of slave processors; sending a vote to commit message from said first one of said plurality of slave processors to said at least one master processor upon receiving said current update transaction; starting said at least one of a plurality of timers associated with said any one of said plurality of slave processors sending said message; and responding to the expiration of said at least one of a plurality of timers.
Claim 18
Dependent Claim 166 words
In a distributed network of processors, comprised of at least one master processor and a plurality of slave processors wherein each processor accesses and controls a database associated with each processor, a method for completing update transactions after failure of said at least one master processor comprising the steps of: creating a plurality of timers, operatively associated with said plurality of slave processors such that each of said plurality of slave processors is associated with at least one of said plurality of timers; receiving a current update transaction at a first one of said plurality of slave processors; sending a vote to commit message from said first one of said plurality of slave processors to said at least one master processor upon receiving said current update transaction; starting said at least one of a plurality of timers associated with said any one of said plurality of slave processors sending said message; and responding to the expiration of said at least one of a plurality of timers.
Claim 19
Dependent Claim 34 words
The method of claim 15 , wherein said step of responding to the expiration of said at least one of a plurality of timers further comprises the step of committing said current update transaction.
Claim 20
Dependent Claim 58 words
The method of claim 15 , further comprising the steps of: receiving an abort message from said any one of said plurality of slave processors before the expiration of said at least one of a plurality of timers; and aborting said current update transaction by said any one of said plurality of slave processors receiving said abort message.
Claim 21
Dependent Claim 36 words
The method of claim 15 , further comprising the step of sending an abort message to said plurality of slave database processors by said any one of said plurality of slave processors receiving said abort message.
Claim 22
Dependent Claim 245 words
In a distributed network of processors, comprised of at least one master processor and a plurality of slave processors wherein each processor accesses and controls a database associated with each processor, a method for completing update transactions after failure of said at least one master processor comprising the steps of: a) creating a plurality of first timers operatively associated with said plurality of slave processors such that each of said plurality of slave processors is associated with at least one of said plurality of first timers; b) creating a plurality of second timers operatively associated with said plurality of slave processors such that each of said plurality of slave processors is associated with at least one of said plurality of second timers; c) starting said at least one of said plurality of first timers in response to the associated slave processor receiving a begin step of a current update transaction; d) sending a message from any one of said plurality of slave processors to said at least one master processor in response to the associated slave processor receiving the end step of a current update transaction; e) starting said at least one of a plurality of second timers associated with said any one of said plurality of slave processors sending said message in response to sending said message; and f) detecting the expiration of said at least one of said plurality of first timers or said at least one of a plurality of second timers.
Claim 23
Dependent Claim 245 words
In a distributed network of processors, comprised of at least one master processor and a plurality of slave processors wherein each processor accesses and controls a database associated with each processor, a method for completing update transactions after failure of said at least one master processor comprising the steps of: a) creating a plurality of first timers operatively associated with said plurality of slave processors such that each of said plurality of slave processors is associated with at least one of said plurality of first timers; b) creating a plurality of second timers operatively associated with said plurality of slave processors such that each of said plurality of slave processors is associated with at least one of said plurality of second timers; c) starting said at least one of said plurality of first timers in response to the associated slave processor receiving a begin step of a current update transaction; d) sending a message from any one of said plurality of slave processors to said at least one master processor in response to the associated slave processor receiving the end step of a current update transaction; e) starting said at least one of a plurality of second timers associated with said any one of said plurality of slave processors sending said message in response to sending said message; and f) detecting the expiration of said at least one of said plurality of first timers or said at least one of a plurality of second timers.
Claim 24
Dependent Claim 48 words
The method of claim 19 , further comprising the steps of: g) detecting the expiration of said at least one of said plurality of first timers prior to the expiration of said at least one of a plurality of second timers; and h) aborting said current update transaction.
Claim 25
Dependent Claim 40 words
The method of claim 20 , further comprising the step of: i) sending an abort message to said plurality of slave database processors by said slave processor associated with the expired at least one of said plurality of first timers.
Claim 26
Dependent Claim 60 words
The method of claim 21 , further comprising the steps of: j) receiving the abort message by one of said plurality of slave processors; k) aborting the current update transaction by said one of said plurality of slave processors; and i) sending an abort message to said plurality of slave processors by said one of a plurality of slave processors.
Claim 27
Dependent Claim 32 words
The method of claim 22 , further comprising the steps of: f) detecting the expiration of said at least one of said plurality of second timers; g) committing said current update transaction.
Claim 28
Dependent Claim 357 words
In a distributed network of processors, comprised of at least one master processor and a plurality of slave processors wherein each processor accesses and controls a database associated with each processor, a method for completing update transactions after failure of said at least one master processor comprising the steps of: a) creating a plurality of first timers operatively associated with said plurality of slave processors such that each of said plurality of slave processors is associated with at least one of said plurality of first timers; b) creating a plurality of second timers operatively associated with said plurality of slave processors such that each of said plurality of slave processors is associated with at least one of said plurality of second timers; c) starting said at least one of said plurality of first timers in response to the associated slave processor receiving a begin step of a current update transaction; d) resetting said at least one of said plurality of timers in response to receiving a portion of said update transaction by said associated slave processor; e) disabling said at least one of said plurality of timers in response to receiving a message from said at least one master processor; f) sending a message from any one of said plurality of slave processors to said at least one master processor in response to the associated slave processor receiving the end step of a current update transaction; g) starting said at least one of a plurality of second timers associated with said any one of said plurality of slave processors sending said message in response to sending said message; h) detecting the expiration of said at least one of said plurality of first timers prior to the expiration of said at least one of a plurality of second timers and thereafter: i) aborting said current update transaction; ii) sending an abort message to said plurality of slave database processors by said slave processor associated with the expired at least one of said plurality of first timers; i) detecting the expiration of said at least one of said plurality of second timers and thereafter committing said current update transaction.
Claim 29
Dependent Claim 357 words
In a distributed network of processors, comprised of at least one master processor and a plurality of slave processors wherein each processor accesses and controls a database associated with each processor, a method for completing update transactions after failure of said at least one master processor comprising the steps of: a) creating a plurality of first timers operatively associated with said plurality of slave processors such that each of said plurality of slave processors is associated with at least one of said plurality of first timers; b) creating a plurality of second timers operatively associated with said plurality of slave processors such that each of said plurality of slave processors is associated with at least one of said plurality of second timers; c) starting said at least one of said plurality of first timers in response to the associated slave processor receiving a begin step of a current update transaction; d) resetting said at least one of said plurality of timers in response to receiving a portion of said update transaction by said associated slave processor; e) disabling said at least one of said plurality of timers in response to receiving a message from said at least one master processor; f) sending a message from any one of said plurality of slave processors to said at least one master processor in response to the associated slave processor receiving the end step of a current update transaction; g) starting said at least one of a plurality of second timers associated with said any one of said plurality of slave processors sending said message in response to sending said message; h) detecting the expiration of said at least one of said plurality of first timers prior to the expiration of said at least one of a plurality of second timers and thereafter: i) aborting said current update transaction; ii) sending an abort message to said plurality of slave database processors by said slave processor associated with the expired at least one of said plurality of first timers; i) detecting the expiration of said at least one of said plurality of second timers and thereafter committing said current update transaction.
Claim 30
Dependent Claim 169 words
A distributed network of processors each processor having associated therewith a database comprising: a master processor for updating databases associated with said each processor; a plurality of slave processors recording database updates sent by said master processor; a plurality of first timers, each of said plurality of slave processors having associated with it, at least one said plurality of first timers, each first timer having associated therewith a first timer window; a plurality of second timers, each of said plurality of slave processors having associated with it, at least one of said plurality of second timers, each second timer having associated therewith a second timer window; a journal, associated with said master processor, for recording steps of database update transactions successfully completed by the master database processor wherein said journal is used for updating or re-synchronizing a database of said failed slave processor after the failed processor recovers or returns to service; and a high speed data interconnect for interconnecting said master processor and said plurality of slave processors.
Claim 31
Dependent Claim 169 words
A distributed network of processors each processor having associated therewith a database comprising: a master processor for updating databases associated with said each processor; a plurality of slave processors recording database updates sent by said master processor; a plurality of first timers, each of said plurality of slave processors having associated with it, at least one said plurality of first timers, each first timer having associated therewith a first timer window; a plurality of second timers, each of said plurality of slave processors having associated with it, at least one of said plurality of second timers, each second timer having associated therewith a second timer window; a journal, associated with said master processor, for recording steps of database update transactions successfully completed by the master database processor wherein said journal is used for updating or re-synchronizing a database of said failed slave processor after the failed processor recovers or returns to service; and a high speed data interconnect for interconnecting said master processor and said plurality of slave processors.
Claim 32
Dependent Claim 23 words
The apparatus of claim 25 , wherein at least one of said journal further comprises a circular buffer for storing database update transactions.
Claim 33
Dependent Claim 30 words
The apparatus of claim 25 , wherein at least one of said plurality of slave processors further comprise at least one database record for storing the last completed update transaction.
Claim 34
Dependent Claim 19 words
The apparatus of claim 27 , wherein at least one of said database record further comprises random access memory.
Claim 35
Dependent Claim 34 words
The apparatus of claim 25 , wherein at least one of said plurality of slave processors further comprise at least one electronic storage media device storing an indicator of the last completed update transaction.
Claim 36
Dependent Claim 15 words
The apparatus of claim 25 , wherein said high speed data interconnect further comprises Ethernet.
Claim 37
Dependent Claim 158 words
A distributed network of processors each processor having associated therewith a database comprising: a master processor for updating databases associated with said each processor via a two-phase commit; a plurality of slave processors recording database updates sent by said master processor; a plurality of first timers, each of said plurality of slave processors having associated with it, at least one said plurality of first timers, each first timer having associated therewith a first timer window; a plurality of second timers, each of said plurality of slave processors having associated with it, at least one of said plurality of second timers, each second timer having associated therewith a second timer window; a journal operatively associated with said at least one master database processor for recording steps of database update transactions generated by said at least one master database processor; and a memory means for storing an indicia of the last completed database update transaction performed by said slave processor.
Claim 38
Dependent Claim 158 words
A distributed network of processors each processor having associated therewith a database comprising: a master processor for updating databases associated with said each processor via a two-phase commit; a plurality of slave processors recording database updates sent by said master processor; a plurality of first timers, each of said plurality of slave processors having associated with it, at least one said plurality of first timers, each first timer having associated therewith a first timer window; a plurality of second timers, each of said plurality of slave processors having associated with it, at least one of said plurality of second timers, each second timer having associated therewith a second timer window; a journal operatively associated with said at least one master database processor for recording steps of database update transactions generated by said at least one master database processor; and a memory means for storing an indicia of the last completed database update transaction performed by said slave processor.
Claim 39
Dependent Claim 23 words
The apparatus of claim 31 , wherein said plurality of first timers are of a longer duration than said plurality of second timers.

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2004-03-12 2004-09-11 2005-03-13 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2008-03-12 2008-09-11 2009-03-13 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2012-03-12 2012-09-11 2013-03-13 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag