Modified machine architecture with machine redundancy
First Claim
1. In a multiple computer environment in which an application program written to execute only on a single computer runs simultaneously on a plurality of computers each of which has a local memory in which globally named objects, assets or resources are locally substantially replicated and in which a synchronizing lock corresponding to the global name is acquired and released in sequence by any computer utilizing one of said objects, assets or resources, said lock authorizing the acquiring computer to update the local contents of the locked object, asset or resource and preventing all other computers accessing their corresponding local object, asset or resource, the improvement comprising the step of:
- following computer failure of any computer which has acquired but not released any specific lock, (i) releasing said specific lock, whereby said application program running conducted by the non-failed ones of said computers can continue by allocation of said lock to a non-failed one of said computers in due course, if necessary.
1 Assignment
0 Petitions
Accused Products
Abstract
A multiple computer system in which a single application program, written to execute on only a single computer, runs on multiple computers is disclosed. Each computer (M1, . . . Mn) has a substantially identical local memory structure. Synchronizing locks are used to ensure that only one computer is able to write to a local memory location and all other computers are prohibited to writing to their corresponding memory location. In the event of failure of a computer holding such a lock, the lock is arranged to be released. The released lock can then be re-allocated to another computer which has not failed. In this way failure of one, or a sequence of, computers, does not result in failure of the whole computer system.
-
Citations
25 Claims
-
1. In a multiple computer environment in which an application program written to execute only on a single computer runs simultaneously on a plurality of computers each of which has a local memory in which globally named objects, assets or resources are locally substantially replicated and in which a synchronizing lock corresponding to the global name is acquired and released in sequence by any computer utilizing one of said objects, assets or resources, said lock authorizing the acquiring computer to update the local contents of the locked object, asset or resource and preventing all other computers accessing their corresponding local object, asset or resource, the improvement comprising the step of:
following computer failure of any computer which has acquired but not released any specific lock, (i) releasing said specific lock, whereby said application program running conducted by the non-failed ones of said computers can continue by allocation of said lock to a non-failed one of said computers in due course, if necessary. - View Dependent Claims (19, 20, 21)
-
2. The improved method as claimed in claim I wherein at the time of said computer failure at least one other computer is awaiting allocation of said specific lock, said method comprising the further step of:
(ii) allocating said specific lock to the, or one of, said computer(s) awaiting allocation. - View Dependent Claims (3, 4, 5, 6)
- 7. A multiple computer system in which an application program written to execute only on a single computer runs simultaneously on said multiple computers each of which has a local memory in which globally named objects, assets or resources are locally substantially replicated and in which a synchronizing lock corresponding to the global name is acquired and released in sequence by any computer utilizing one of said objects, assets or resources, said lock authorizing the acquiring computer to update the local contents of the locked object, asset or resource and preventing all other computers accessing their corresponding local object, asset or resource, wherein said system includes a computer failure detector to detect failure of any one of said computers and release means to release any lock acquired but not released by a failed computer, whereby said application program running conducted by the non-failed ones of said computers can continue allocation of said lock to a non-failed one of said computers in due course, if necessary.
-
13. A single computer intended to operate in a multiple computer system which comprises a plurality of computers each having a local memory and each being interconnected via a communications network wherein different portions of at least one application program each written to execute on only a single computer, each execute substantially simultaneously on a corresponding one of said plurality of computers, and at least one memory location is replicated in the local memory of each said computer, said system further comprising updating means associated with each said computer to in due course update each said memory location via said communications network after each occasion at which each said memory location has its content written to, or re-written, with a new content,
said single computer comprising: -
a local memory having at least one memory location intended to be updated via a communications port connectable to said communications network, updating means to in due course update the memory locations of other substantially similar computers via said communications port;
lock means associated with said local memory to acquire a lock on an object, asset or resource of said local memory, a computer failure detector to detect failure of another computer, and release means to release any lock acquired but not released by a failed computer, whereby said application program portion executing on said single computer can acquire said lock of failed computers in due course, if necessary. - View Dependent Claims (14, 15, 16, 17, 18)
-
-
22. In a single computer capable of interoperating with at least one other computer coupled to said single computer at least intermittently via a communications network to form a multiple computer system having a plurality of computers wherein each computer has a local memory, a method for handling a lock of an object, asset, or resource comprising:
-
executing at least a portion of at least one application program written to execute on only a single computer and modified to execute substantially simultaneously on one of said plurality of computers;
replicating at least one memory location in the local memory of each of said plurality of computers;
updating each said memory location of said other computer in due course via said communications network after each occasion at which a memory location has a memory content written to, or re-written, with a new content;
acquiring a lock on an object, asset or resource of said local memory;
detecting a failure of another computer, and releasing any lock acquired but not released by a failed computer, so that said application program portion executing on said single computer can acquire said lock of failed computers in due course. - View Dependent Claims (23, 25)
-
-
24. A computer program recorded on a memory device comprising instructions which, when executed on a computer, perform in at least one single computer capable of interoperating with at least one other computer coupled to said single computer at least intermittently via a communications network to form a multiple computer system having a plurality of computers wherein each computer has a local memory, a method for handling a lock of an object, asset, or resource, said method comprising the steps of:
-
replicating at least one memory location in the local memory of each of said plurality of computers;
updating each said memory location of said other computer in due course via said communications network after each occasion at which a memory location has a memory content written to, or re-written, with a new content;
acquiring a lock on an object, asset or resource of said local memory;
detecting a failure of another computer, and releasing any lock acquired but not released by a failed computer, so that said application program portion executing on said single computer can acquire said lock of failed computers in due course.
-
Specification