Patent Publication Number: US-7711986-B2

Title: Fault recovery for transaction server

Description:
RELATED APPLICATIONS 
     The present patent application is a continuation of the previously filed patent application assigned Ser. No. 11/215,697, filed on Aug. 30, 2005. 
    
    
     FIELD OF THE INVENTION 
     The present invention relates generally to transaction servers, and more particularly to fault recover for such transaction servers. 
     BACKGROUND OF THE INVENTION 
     Transaction servers are servers that store data that is modifiable via transactions. A transaction generally and non-restrictively is a request to read, write, or update the data stored in a transaction server. Common transactions include orders, purchases, changes, additions, and deletions. Transaction servers are used in banking systems, stock and securities-trading systems, and other types of systems where it is important to ensure that any given transaction is never lost, and that the data can be recovered in the presence of a fault on the transaction server. 
     Transactions may update one or more master files that serve both as an audit trail and a history for future analyses. A major issue in a transaction-processing system is ensuring that all master files are updated before the transaction is considered completely processed. For example, if two files must be updated, but a system failure occurs after the first one but before the second one, the software has to be able to roll back the first update and start over later. Such a process may be referred to as a two-phase commit process. 
     More particularly, the two-phase commit process is a technique for ensuring that a transaction successfully updates all appropriate files in a distributed database environment. All servers involved in the transaction first confirm that the transaction has been received and is recoverable. Next, each server is told to commit the transaction by a transaction manager. Committing the transaction means that the request or activity of the transaction is actually performed. For instance, if a transaction involves updating data, committing the transaction means that the data is actually updated. 
     In a two-phase commit system, even if a given server shuts down due to a fault after the transaction manager has decided to commit the transaction, the consistency of the data can be recovered because the durability of the data is guaranteed at each server. However, in a two-phase commit process, a write has to be synchronously performed at all the servers. As a result, the completion of a commit process is as slow as the slowest server, such as the slowest storage device of any server, within the system. This can be detrimental to high-speed transaction processing. 
     Therefore, in general high-speed transaction processing means that a two-phase commit process and system cannot be employed. One alternative is the PERSEAS system, described in the prior art reference Athanasios E. Papathanasiou et al., “Lightweight Transactions on Networks of Workstations,” Technical Report 209, September 1997, Institute of Computer Science, Crete, Greece. In the PERSEAS system, a memory-based database is mirrored to the memory of a different node or process. When a transaction updating the database is initiated, an undo log is first copied to the memory of a local process, and then the undo log is copied to the memory of a remote process. However, the PERSEAS system is useful primarily in memory-based databases, and does not result in performance enhancements where the database is ultimately written to a relatively low-performance storage device like a hard disk drive. 
     Another alternative is the Echo system described in the prior art reference Timothy Mann et al., “A Coherent Distributed File Cache with Directory Write-Behind,” Research Report 103, June 1993, Digital Systems Research Center, Palo Alto, Calif. In the Echo system, a log is created for a process of changing the file system, and redundantly copied to a large number of cache servers, to improve the reliability of write-behind operations. A write-behind systems is one in which a transaction is not committed, or written, until copies of the transaction have been stored at a number of cache servers. However, the Echo system also not result in performance enhancements for updates that are ultimately applied to permanent, or non-volatile, storage devices like hard disk drives. 
     Thus, in a transaction-processing system, committed data should not be lost due to a fault within the transaction server. Therefore, the durability of the data is usually guaranteed by the writing the data to a database stored on a permanent, or non-volatile, storage device like a hard disk drive. However, a hard disk drive is a low-performance storage device, in that it has high latency and low throughput as compared to, for instance, volatile semiconductor memory. The PERSEAS and Echo systems that have been described provide solutions that are not related to such low-performance storage devices, and thus do not solve the problem of having a high-performance transaction-processing system in which fault recovery is guaranteed and that uses a low-performance storage device like a hard disk drive. 
     SUMMARY OF THE INVENTION 
     The present invention relates to fault recovery for a transaction server. A method of the invention includes a primary device, such as a primary server, receiving a write transaction. The primary server transmits the write transaction to N backup devices, such as N backup servers, where N is greater than one. Each backup device records the write transaction to a local redo log stored at a high-performance storage and transmits a notification to the primary device that the write transaction has been recorded. When the primary device receives notifications from M of the N backup devices, where M is less than N, the primary device commits the write transaction, including recording it to a low-performance storage. Once the primary device has received notification or confirmation that the write transaction has been recorded to the low-performance storage, it requests or instructs each backup device to delete the local redo log for the write transaction. 
     If the primary device incurs a fault, one of the backup devices becomes the new primary device. The new primary device determines which of the backup devices has the newest local redo log. Where the new primary device has the newest local redo log, it sends the newest local redo log to the other backup devices. Where one of the other backup devices has the newest local redo log, the new primary device requests that it send the newest local redo log to all other of the backup devices. As each backup device receives the newest local redo log, it updates its local redo log to the same state as the newest local redo log received. After this process is performed, the new primary device is ready to resume service, such that it is capable of receiving and committing additional or new write transactions. 
     A system of the present invention includes N backup devices and a primary device. Each backup device has a high-performance storage. The primary device is to transmit a write transaction to the N backup devices for recording to local redo logs stored at their high-performance storages, which may be volatile or non-volatile semiconductor memory. Upon receiving notifications from M of the N backup devices that the write transaction has been recorded, the primary device commits the write transaction. For instance, the system may include a low-performance storage, such as a hard disk drive. The primary device thus records the write transaction to the low-performance storage to commit the write transaction. 
     An article of manufacture of the invention includes a computer-readable medium and means in the medium. The computer-readable medium may be a recordable data storage medium, a modulated carrier signal, or another type of computer-readable medium. The means is for transmitting a write transaction to N backup devices for recording to local redo logs stored at high-performance storages of the N backup devices. The means is further for committing the write transaction upon receiving notifications from M of the N backup devices that the write transaction has been recorded. 
     Still other aspects and embodiments of the invention will become apparent by reading the detailed description that follows, and by referring to the accompany drawings. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The drawings referenced herein form a part of the specification. Features shown in the drawing are meant as illustrative of only some embodiments of the invention, and not of all embodiments of the invention, unless otherwise explicitly indicated, and implications to the contrary are otherwise not to be made. 
         FIG. 1  is a diagram of a transaction-processing system, according to an embodiment of the invention. 
         FIG. 2  is a flowchart of a method for committing transactions within the transaction-processing system of  FIG. 1  in a high-performance manner, according to an embodiment of the invention, and is suggested for printing on the first page of the patent. 
         FIG. 3  is a diagram illustratively depicting the performance of the method of  FIG. 2  in relation to the transaction-processing system of  FIG. 1 , according to an embodiment of the invention. 
         FIG. 4  is a method for high-performance recovery of a fault within the transaction-processing system of  FIG. 1 , in which transactions are committed in accordance with the method of  FIG. 2 , according to an embodiment of the invention. 
         FIG. 5  is a diagram illustratively depicting the performance of the method of  FIG. 4  in relation to the transaction-processing system of  FIG. 1 , according to an embodiment of the invention. 
     
    
    
     DETAILED DESCRIPTION OF THE DRAWINGS 
     In the following detailed description of exemplary embodiments of the invention, reference is made to the accompanying drawings that form a part hereof, and in which is shown by way of illustration specific exemplary embodiments in which the invention may be practiced. These embodiments are described in sufficient detail to enable those skilled in the art to practice the invention. Other embodiments may be utilized, and logical, mechanical, and other changes may be made without departing from the spirit or scope of the present invention. The following detailed description is, therefore, not to be taken in a limiting sense, and the scope of the present invention is defined only by the appended claims. 
       FIG. 1  shows a transaction-processing system  100 , according to an embodiment of the invention. The system  100  includes a primary server  102 , a number of backup servers  104 A and  104 B, and a hard disk drive  106 . The primary server  102  is more generally a primary device, and may include one or more computing devices. The primary server  102  is the interface through which requesting devices, such as the requesting device  110 , send transactions for commitment within the transaction-processing system  100 . As has been described, transactions are generally and non-restrictively requests to read, write, or update data stored within the system  100 . The requesting device  110  may be another server, a client device, or another type of computing device. 
     The backup servers  104 A and  104 B are collectively referred to as the backup servers  104 . The backup servers  104  are more generally each a backup device, and may each include one or more computing devices. The backup servers  104  provide a backup role to the primary server  102 , and upon the primary server  102  incurring a fault such that it has to be shutdown, one of the backup servers  104  may become the new primary server. It is said that there are N backup servers  104 , where N=2 in the specific embodiment depicted in  FIG. 1 . In general, however, there are N&gt;1 of the backup servers  104 . 
     The hard disk drive  106  is more generally a reliable storage device, in that data persisted to the hard disk drive  106  is guaranteed to be able to be read later in time. For instance, the hard disk drive  106  may be an array of hard disk drives configured in a redundant array of independent disks (RAID) configuration, or in another fault-tolerant configuration. However, the hard disk drive  106  is a low-performance storage device, as compared to other types of storage devices, such as semiconductor memories. That is, even if the hard disk drive  106  is a high-performance hard disk drive, such high-performance hard disk drives are nevertheless slower than other storage devices, like semiconductor memories. The hard disk drive  106  is the primary repository of the data of the transaction-processing system  100 . In one embodiment, the hard disk drive  106  may be a part of an application server that is responsible for maintaining a database stored on the hard disk drive  106 . 
     The backup servers  104  include semiconductor memories  108 A and  108 B, collectively referred to as the memories  108 . The memories  108  are high-performance storage devices as compared to other types of storage devices, such as magnetic storage devices like the hard disk drive  106 . That is, even if the memories  108  are low-performance semiconductor memories, such low-performance semiconductor memories are nevertheless faster than other storage devices, such as hard disk drives. 
     The memories  108 , however, are unreliable storage devices. For instance, the memories  108  may be volatile memory devices that lose their contents when power is removed from the memories  108 , in contradistinction to a non-volatile storage device, like the hard disk drive  106 , which retains its contents when power is removed from the hard disk drive  106 . Furthermore, even where the memories  108  are non-volatile memory devices, they may still be unreliable in that they do not have the reliability of other storage devices, like the hard disk drive  106 . For instance, the hard disk drive  106  may be configured in a RAID configuration that provides fault tolerance should one of its constituent drives fails, whereas the memories  108  may not be configured in any sort of fault-tolerant configuration. 
     In general, the hard disk drive  106  has higher storage capability than the memories  108  do. For example, the hard disk drive  106  may have storage measured in terms of gigabytes or terabytes, whereas the memories  108  may just have storage measured in terms of megabytes or gigabytes. Thus, the hard disk drive  106 , as the primary repository of the data of the transaction-processing system  100 , is capable of storing all the data of the system  100 . By comparison, at best the memories  108  can only store a portion of the data of the transaction-processing system  100 , and may not be able to store all the data of the system  100 . 
       FIG. 2  shows a method  200  for committing a transaction within the transaction-processing system  100  of  FIG. 1 , according to an embodiment of the invention. The parts of the method  200  are performed by the primary server  102 , except as otherwise indicated. For instance, the parts  208  and  210  of the method  200  are performed by each of the backup servers  104 . The method  200  may be implemented in one embodiment as parts of a computer program stored on a computer-readable medium. 
     The primary server  102  receives a write transaction from the requesting device  110  ( 202 ). A write transaction is generally referred to herein as a transaction to create, modify, update, or delete data within the transaction-processing system  100 . For instance, in a database system, a write transaction may be a request to create a new record, modify or update an existing recording, ot delete an existing record. The primary server  102  transmits the write transaction to all of the N backup servers  104  ( 204 ). 
     Each of the N backup servers  104  then performs the following ( 206 ). Each backup server first records the write transaction to a local redo log stored in its respective memory, such as one of the memories  108 . A local redo log is a description of the write transaction. In one embodiment, the local redo log specifies the step or steps that have to be performed in order to effectuate the write transaction on the data stored in the hard disk drive  106 . For example, a given write transaction may be to change the data of an existing record from A to B. To effectuate this write transaction, a new record may first be created in which the data thereof is B. The old record, having the data A, may then be deleted, and the new record, having the data B, replaced for the old record. Each backup server then sends a notification to the primary server  102  that it has thus recorded the write transaction ( 210 ). 
     The backup servers  104  may perform the parts  208  and  210  at different times. For instance, one of the backup servers  104  may be inherently faster than the other backup server and thus performs the parts  208  and  210  more quickly. Alternatively, one of the backup servers  104  may be currently processing other tasks, such that the other backup server performs the parts  208  and  210  more quickly, even if this latter backup server intrinsically operates at the same speed as or even slower than the former backup server. As a result, the primary server  102  receives a notification from a given backup server ( 212 ) at potentially different times. 
     If the primary server  102  has not yet received notifications from M of the N backup servers  104  ( 214 ), where M is less than N, then the primary server  102  waits until it has received notifications from M of the N backup servers  104 , before it commits the write transaction ( 216 ). Thus, having more than one backup server  104 —that is, having N&gt;1—ensures that there is redundancy within the transaction-processing system  100 , even with respect to the backup servers  104  thereof. However, committing the write transaction when just M of the N backup servers  104 , where 0&lt;M&lt;N, have notified the primary server  102  that they have recorded the write transaction, ensures that the system  100  operates in a high-performance manner. For example, there may be N=9 backup servers, where M=7. Thus, even if one or two of the backup servers is performing slowly, this fact does not slow down commitment of write transactions within the entire system  100 , since the primary server  102  only waits for M=7 of the backup severs to notify that they have recorded the write transactions before committing the transactions. In one embodiment, N&gt;2 and M&gt;1. 
     Committing the write transaction can involve performing the parts  218  and  220  in one embodiment of the invention. The requesting device  110  is notified that the write transaction has been committed ( 218 ). The write transaction is also recorded to the low-performance storage device, namely the hard disk drive  106  ( 220 ). Recording the write transaction to the hard disk drive  106  means that the write transaction is actually processed in relation to the data of the transaction-processing system  100  as stored on the hard disk drive  106 . That is, whereas the redo logs of the memories  108  store the step or steps needed to process the write transaction, the hard disk drive  106  actually stores the data of the system  100 , such that the write transaction is processed in relation to this data. 
     In one embodiment, the write transaction may be considered as being committed even before it has been recorded to the hard disk drive  106 , so long as M of the N backup servers  104  have record the write transaction in question. In such an embodiment, transaction processing is especially performed in a high-performance manner, because the local redo logs are stored in high-performance memories  108 , whereas the hard disk drive  106  is a low-performance storage device by comparison. Thus, transactions may be committed quickly within the transaction-processing system  100 , even where the hard disk drive  106  is a low-performance storage device. 
     The primary server  102  ultimately receives confirmation or notification from the hard disk drive  106  that the write transaction has been recorded to this low-performance storage device ( 222 ). At this time, it is known that the data of the transaction-processing system  100  is stored on a reliable storage device, since the hard disk drive  106  is a reliable storage device. Therefore, the local redo logs stored on the memories  108  of the backup servers  104  are no longer needed. The primary server  102  thus instructs the backup servers  104  to delete their local redo logs from the memories  108  as to the write transaction that is the subject of the method  200  ( 224 ). 
     The local redo logs are only needed to reconstruct a write transaction where the write transaction has not yet been successfully processed in relation to the data stored on the hard disk drive  106 . However, once the write transaction has been successfully processed, it is guaranteed by the reliable nature of the hard disk drive  106  that the write transaction does not have to be reprocessed. Therefore, the local redo logs are deleted from the memories  108 . As has been described, the memories  108  are smaller in capacity than the hard disk drive  106 , so the local redo logs are maintained or stored in the memories  108  only for as long as needed, such that there is always room within the memories  108  for the local redo logs of other write transactions. 
       FIG. 3  illustratively depicts the performance of the method  200  of  FIG. 2  in relation to the transaction-processing system  100 , according to an embodiment of the invention. The primary server  102  receives a write transaction from the requesting device  110 , as indicated by the letter A. The primary server  102  thus transmits the write transaction to the backup servers  104 , as indicated by the letters B. The backup servers  104  record the write transaction as local redo logs  302 A and  302 B, collectively referred to as the logs  302 , within their memories  108 . When this recording process is complete, the backup servers  104  notify the primary server  102 , as indicated by the letters C. 
     Once the primary server  102  has received M&lt;N such notifications, the primary server  102  indicates to the requesting device  110  that the write transaction has been committed, as indicated by the letter D. The primary server  102  records the write transaction to the hard disk drive  106 , as indicated by the letter E, and the hard disk drive  106  reports back to the primary server  102  that the write transaction has been processed in relation to the data stored thereon, as indicated by the letter F. The primary server  102  finally instructs the backup servers  104  to delete their logs  302  as to the write transaction, as indicated by the letters G. The backup servers  102  thus delete the logs  302 . 
     Thus, in one embodiment, where the hard disk drive  106  is the bottleneck of the transaction-processing system  100  in that it slows down performance thereof, transactions are recorded to the hard disk drive  106  in a write-behind manner, as has been described in relation to the method  200  of  FIG. 2 . That is, the transactions are committed in one embodiment before they are written to the hard disk drive  106 . As a result, the hard disk drive  106  never stores the newest data within the system  100 . At best, it stores the same data as the memories  108  of the backup servers  104 , and at worst stores older data than the memories  108 . Recovery can then be performed in a high-speed manner, as will be described, without having to access the hard disk drive  106 . 
     In other words, it is guaranteed that one of the local redo logs  302  stores the most recent data within the transaction-processing system  100 , as compared to the hard disk drive  106 . Therefore, should the primary server  102  fail, recovery can occur in a high-performance manner, because the hard disk drive  106  does not have to be accessed to reconstruct any of the local redo logs  302 . The state of a write transaction can thus be recovered at high speed, based on one of the redo logs  302 . It is guaranteed that one of the redo logs  302  necessary for recovery exists at one of the high-performance memories  108 , because the redo logs  302  are not deleted until the hard disk drive  106  has processed the transaction in question. 
     The process of the method  200  of  FIG. 2 , as illustratively described in  FIG. 3 , is such that when recording has been completed at M of the N backup servers  104 , commitment is then accomplished on the hard disk drive  106 . Where M&gt;1, there is thus redundancy within the local redo logs  302 . Transaction recovery is completed at high speed due to the high-performance nature of the memories  108 , and transaction recovery does not require accessing of the hard disk drive  106 . 
     It is noted that in some situations the prior art provides for a redo log, but writes the redo log to a hard disk drive and requires that the schema of the database be changed in order for the redo log to be recorded. However, in practice, there are cases where the schema of a database cannot be changed due to customer specifications. Furthermore, writing a redo log to the same hard disk drive to which the data of the transaction-processing system is written is impractical for two reasons. 
     First, generally a query is rewritten, in a process known as query rewriting, before an inquiry is made to the database stored on a hard disk drive. Since a query after rewriting is closed, the redo log has to be saved in correspondence with a query before rewriting occurs. As a result, the query before rewriting has to be transferred to the hard disk drive. However, this is inefficient. Second, it takes time to write a redo log before a transaction is completed, which affects transaction processing performance. That is, writing a redo log to a hard disk drive is a slow process, since the hard disk drive is a low-performance storage device. 
     The redo logs of embodiments of the invention as has been described in relation to the method  200  avoid these problems. Writing to the hard disk drive  106  is accomplished with write-behind, in that the hard disk drive  106  is written to only after commit or transaction data has been copied to the memories  108  of the backup servers  104 . This eliminates the possibility that the hard disk drive  106  stores the newest data, such that it is always possible to recover the newest data using only the high-performance memories  108 , without involving the low-performance hard disk drive  106 . 
       FIG. 4  shows a method  400  for recovering from a fault within the primary server  102  within the transaction-processing system  100  of  FIG. 1 , according to an embodiment of the invention. The parts of the method  200  are generally performed by a new primary server, such as one of the backup servers  104 , except as otherwise noted. For instance, the parts  418  and  420  are performed by each of the backup servers  104 , regardless of whether a given backup server is the new primary server or not. The method  400  may be implemented in one embodiment as part of a computer program stored on a computer-readable medium. 
     The primary server  102  incurs a fault ( 402 ), such that it fails or is otherwise shutdown. As a result, one of the N backup servers  104  becomes the new primary server ( 404 ). The manner by which one of the N backup servers  104  becomes the new primary server can be accomplished in any manner. For instance, the backup servers  104  may “race” to become the new primary server, and the backup server that wins the race becomes the new primary server. The remaining of the backup servers  104  are referred now as the N−1 backup servers, where the N backup servers  104  still include the backup server that is the new primary server. That is, the N−1 backup servers include all of the N backup servers  104 , except for the backup server that has become the new primary server. 
     The new primary server determines which of the N backup servers  104  has the newest local redo log( 406 ). The new primary server itself can have the newest local redo log in one embodiment of the invention. Because the backup servers  104  record a write transaction at different speeds and potentially at different times, the primary server  102  may have failed while some of the backup servers  104  have completed recording the write transaction to their local redo logs, and while others have not yet completed recording. Furthermore, the primary server  102  may have failed before it has instructed all of the backup servers  104  to record a given write transaction, such that only some of the backup servers  104  have recorded the transaction. Thus, the states of the various local redo logs  302  may be different at the different backup servers  104 , such that only one, or less than all, of the backup servers  104  have local redo logs with the newest data. The local redo log or logs that have the newest transaction-oriented data are referred to as the newest local redo log or logs. 
     In one embodiment, the new primary server determines which of the N backup servers  104  has the newest local redo log as follows. First, the new primary server inquires each of the N−1 backup servers as to the newest commit data that it has stored within its local redo log ( 408 ). Next, the new primary server compares the newest commit data received from each of the N−1 backup servers, as well as the newest commit data that it has stored in its own local redo log ( 410 ). The one of the N backup servers that has the newest commit data is thus concluded as having the newest local redo log. Where more than one of the N backup servers  104  has the newest local redo log—that is, there is more than one such log having the same newest commit data—the new primary server selects one of these servers as having the newest local redo log for purposes of the method  400 . 
     Where the backup server having the newest local redo log is not the new primary server, the new primary server requests that this backup server send the newest local redo log to all other of the N backup servers  104  ( 412 ). If the new primary server has the newest local redo log, then it sends its newest local redo log itself to all other of the N backup servers  104  ( 414 ). Therefore, each of the N backup servers  104  other than the backup server having the newest local redo log performs the following ( 416 ). First, each such server receives the newest local redo log as has been sent ( 418 ), and then each such server updates its local redo log to the same state as the newest local redo log that has been received ( 420 ). 
     As a result, all of the local redo logs of the backup servers  104  are now up-to-date, and the new primary server can resume transaction-processing service ( 422 ), such that it is capable of receiving and committing additional write transactions. Furthermore, any transactions that are within the local redo logs that have not been committed may now be recorded to the hard disk drive  106  and committed. In one embodiment, the method  400  takes no greater than thirty seconds. This is possible because the low-performance hard disk drive  106  is not accessed for the recovery process of the method  400 . Rather, just the high-performance memories  108  are accessed during this recovery process. It is guaranteed that the hard disk drive  106  never stores the newest transaction data, such that just the memories  108  need to be accessed for recovery. 
     It is noted that the method  400  that has been described does not require a separate redo log within the database stored on the hard disk drive  106  itself, because there is no possibility that the newest transaction data is stored on the hard disk drive  106 . Thus, even if the schema of the database stored on the hard disk drive  106  changes, this does not affect the redo logs  302  stored in the memories  108 . That is, the redo logs  302  are independent of the schema of the database for which the transaction-processing system  100  of  FIG. 1  stores data. 
     The technique that has been described thus makes it possible to recover transaction data at high speed, without depending on the hard disk drive  106 . That is, the database itself, which is stored on the hard disk drive  106 , is not depended on for recovery purposes. Rather, just the redo logs  302 , stored on the memories  108 , are employed to recover from a fault. 
       FIG. 5  illustratively depicts the performance of the method  400  of  FIG. 4  in relation to the transaction-processing system  100 , according to an embodiment of the invention. The primary server  102  has incurred a fault, such that it has been shutdown, as indicated by the server  102  being crossed out in  FIG. 5 . The backup server  104 A has become the new primary server, as indicated by the letter A. The backup server  104  determines which of the servers  104  has the newest local redo log. It does this by inquiring the backup server  104 B as to its newest commit data, as indicated by the letter B. The backup server  104 A thus compares the newest commit data of the backup server  104 B to its own newest commit data. 
     If the backup server  104 A has the newest commit data, then the backup server  104 A has the newest local redo log, and sends this log to the backup server  104 B, which updates its own local redo log to the same state. If the backup server  104 B has the newest commit data, then the backup server  104 B has the newest local redo log, and the backup server  104 A requests that the backup server  104 B send its newest local redo log to the backup server  104 A. The backup server  104 A then updates its own local redo log to the same state. Once this process has been completed, the backup server  104 A is ready to receive new transactions, such as from the requesting device  110 , as indicated by the letter C. The recovery process of the method  400  of  FIG. 4  as depicted in  FIG. 5  at no time requires that the hard disk drive  106  be accessed, and is thus a high-speed operation. 
     It is noted that, although specific embodiments have been illustrated and described herein, it will be appreciated by those of ordinary skill in the art that any arrangement calculated to achieve the same purpose may be substituted for the specific embodiments shown. This application is thus intended to cover any adaptations or variations of embodiments of the present invention. Therefore, it is manifestly intended that this invention be limited only by the claims and equivalents thereof.