US2010262590A1PendingUtilityA1

Multi-computer distributed processing with replicated local memory exclusive read and write and network value update propagation

Assignee: WARATEK PTY LTDPriority: Apr 23, 2004Filed: Jun 22, 2010Published: Oct 14, 2010
Est. expiryApr 23, 2024(expired)· nominal 20-yr term from priority
G06F 15/16G06F 8/456
52
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

A modified computer architecture enables an applications program to be run simultaneously on a plurality of computers (M 1 , . . . Mn). Shared memory at each computer is updated with amendments and/or overwrites so that all memory read requests are satisfied locally. During initial program loading, for example, instructions which result in memory being re-written or manipulated are identified. Additional instructions are inserted to cause the equivalent memory locations at all computers to be updated. In addition, the initialization of JAVA language classes and objects is disclosed so that all memory locations for all computers are initialized in the same manner. The finalization of JAVA language classes and objects is also disclosed so finalization only occurs when the last class or object present on all machines is no longer required. During initial program loading, for example, instructions which result in the application program acquiring (or releasing) a lock on a particular asset (synchronization) are identified. Additional instructions are inserted to result in a modified synchronization routine with which all computers are updated.

Claims

exact text as granted — not AI-modified
1 . A multiple computer system having at least one application program running simultaneously on a plurality of computers interconnected by a communications network, wherein different portions of said application program(s) execute substantially simultaneously on different ones of said computers, wherein for each said portion, a like plurality of substantially identical objects are created, each in the corresponding computer, and wherein all read requests by each said computer are satisfied only from reading the objects created in the requesting computer. 
     
     
         2 . The system of  claim 1 , wherein each of said plurality of substantially identical objects has a substantially identical name. 
     
     
         3 . The system of  claim 2 , wherein the initial contents of each of said identically named objects is substantially the same. 
     
     
         4 . The system of  claim 2 , wherein each group of identical objects is collectively deleted when each one of said plurality of computers no longer needs to refer to their corresponding object of said group of objects. 
     
     
         5 . The system of  claim 4 , wherein each said computer includes a distributed run time application, with the distributed run time application of each said computer able to communicate with all other computers wherein, if a portion of said application program(s) running on one of said computers no longer needs to refer to an object in that computer, then the identity of the unreferenced object is transmitted by the distributed run time application of said one computer to a shared table accessible by all the other computers. 
     
     
         6 . The system of  claim 5 , wherein each said application program is modified before, during, or after loading by inserting a finalization routine to modify each instance at which said application program no longer needs to refer to an object. 
     
     
         7 . The system of  claim 6 , wherein said inserted finalization routine modified a pre-existing finalization routine to enable the pre-existing finalization routine to execute if all computers no longer need to refer to their corresponding object, and to disable the pre-existing finalization routine if at least one computer does need to refer to a corresponding object. 
     
     
         8 . The system of  claim 2 , further comprising a locking application applicable to all said computers, wherein any computer wishing to utilize a named object therein acquires an authorizing lock from said locking application which permits said utilization and which prevents all the other computers from utilizing their corresponding named object until said authorizing lock is relinquished. 
     
     
         9 . The system of  claim 8 , wherein said locking application includes an acquire lock routine and a release lock routine, wherein both said routines are included in modifications made to said application program running on all said computers. 
     
     
         10 . The system of  claim 9 , wherein said locking application further comprises a shared table listing said named objects in use by any said computer, a lock status for each said object, and a queue of any pending lock acquisitions. 
     
     
         11 . The system of  claim 10 , wherein said locking application is located within an additional computer not running said application program and connected to said communications network. 
     
     
         12 . The system of  claim 11 , wherein each said application program is modified before, during, or after loading by inserting said acquire lock routine and said release lock routine to modify each instance at which said application program acquires and releases respectively a lock on an object. 
     
     
         13 . The system of  claim 1 , wherein each said computer includes a distributed run time application, with the distributed run time application of each said computer able to communicate with all other computers such that if a portion of said application program(s) running on one of said computers changes the contents of an object in that computer, then the change in content for said object is propagated by the distributed run time application of said one computer to all other computers to change the content of the corresponding object in each of said other computers. 
     
     
         14 . The system of  claim 13 , wherein all said distributed run time applications communicate via said communications link at a data transfer rate which is substantially less than the local memory read rate. 
     
     
         15 . The system of  claim 1 , wherein each said application program is modified before, during, or after loading by inserting an updating propagation routine to modify each instance at which said application program writes to memory, said updating propagation routine propagating every memory write by one computer to all said other computers. 
     
     
         16 . The system of  claim 1 , wherein each said application program is modified before, during, or after loading by inserting an initialization routine to modify each instance at which said application program creates an object, said initialization routine propagating every object newly created by one computer to all said other computers. 
     
     
         17 . The system of  claim 16 , wherein said inserted initialization routine modifies a pre-existing initialization routine to enable the pre-existing initialization routine to execute on creation of the first of said like plurality of objects, and to disable the pre-existing initialization routine on creation of all subsequent ones of said like plurality of objects. 
     
     
         18 . The system of  claim 17 , wherein the application program is modified in accordance with a procedure selected from a group of procedures consisting of re-compilation at loading, pre-compilation prior to loading, compilation prior to loading, just-in-time compilation, and re-compilation after loading and before execution of the relevant portion of application program. 
     
     
         19 . The system of  claim 18 , wherein said modified application program is transferred to all said computers in accordance with a procedure selected from the group consisting of master/slave transfer, branched transfer, and cascaded transfer. 
     
     
         20 . The system of  claim 1 , wherein a local memory capacity allocated to each of the at least one application program is substantially identical, and a total memory capacity available to the at least one application program is said allocated memory capacity. 
     
     
         21 . The system of  claim 1 , wherein at least some of said computers are manufactured by different manufacturers and/or have different operating systems. 
     
     
         22 . A method of running at least one application program on a plurality of computers simultaneously, said computers being interconnected by a communications network, the method comprising:
 executing different portions of said application program(s) on different ones of said computers and, for each said portion, creating a like plurality of substantially identical objects each in the corresponding computer, and   satisfying all read requests by each said computer by reading only from objects created in the requesting computer.   
     
     
         23 . The method of  claim 22 , further comprising:
 naming each of said plurality of substantially identical objects with a substantially identical name.   
     
     
         24 . The method of  claim 22 , further comprising:
 if a portion of said application program running on one of said computers changes the contents of an object in that computer, then the change in content of said object is propagated to all of the other computers via said communications network to change the content of the corresponding object in each of said other computers.   
     
     
         25 . The method of  claim 24 , further comprising:
 modifying said application program before, during or after loading by inserting an updating propagation routine to modify each instance at which said application program writes to memory, said updating propagation routine propagating every memory write by one computer to all said other computers.   
     
     
         26 . The method of  claim 25 , further comprising:
 modifying said application program utilizing a procedure selected from a group of procedures consisting of re-compilation at loading, pre-compilation prior to loading, compilation prior to loading, just-in-time compilation, and re-compilation after loading and before execution of the relevant portion of application program.   
     
     
         27 . The method of  claim 26 , further comprising:
 transferring the modified application program to all said computers utilizing a procedure selected from the group consisting of a master/slave transfer, a branched transfer, and a cascaded transfer.   
     
     
         28 . The method of  claim 25 , further comprising:
 communicating said local memory writes constituting an updating data transmission at a data transfer rate which is substantially less than a local memory read rate.   
     
     
         29 . The method of  claim 23 , further comprising:
 creating the initial contents of each of said identically named objects to be substantially the same.   
     
     
         30 . The method of  claim 29 , further comprising:
 if a portion of said application program running on one of said computers creates an object in that computer, then the created object is propagated to all of the other computers via said communications network.   
     
     
         31 . The method of  claim 30 , further comprising:
 modifying said application program before, during or after loading by inserting an initialization routine to modify each instance at which said application program creates an object, said initialization routine propagating every object created by one computer to all said other computers.   
     
     
         32 . The method of  claim 31 , further comprising:
 modifying said application program utilizing a procedure selected from the group of procedures consisting of re-compilation at loading, pre-compilation prior to loading, compilation prior to loading, just-in-time compilation, and re-compilation after loading and before execution of the relevant portion of application program.   
     
     
         33 . The method of  claim 32 , further comprising:
 transferring the modified application program to all said computers utilizing a procedure selected from the group consisting of a master/slave transfer, a branched transfer and a cascaded transfer.   
     
     
         34 . The method of  claim 22 , further comprising:
 deleting all said identical objects collectively when all of said plurality of computers no longer need to refer to their corresponding object.   
     
     
         35 . The method of  claim 34 , further comprising:
 providing each said computer with a distributed run time application to communicate between said computers via said communications network.   
     
     
         36 . The method of  claim 35 , further comprising:
 providing a shared table accessible by each said distributed run time application and in which is stored the identity of any computer which no longer requires to access an object, together with the identity of the object.   
     
     
         37 . The method of  claim 36 , further comprising:
 associating a counter with said shared table, said counter storing a count of the number of said computers which no longer require to access said object.   
     
     
         38 . The method of  claim 37 , further comprising:
 providing an additional computer on which said shared program does not run and which hosts said shared table and counter, said additional computer being connected to said communications network.   
     
     
         39 . The method of  claim 22 , further comprising:
 requiring any of said computers wishing to utilize a named object therein to acquire an authorizing lock which permits said utilization and which prevents all the other computers from utilizing their corresponding named object until said authorizing lock is relinquished.   
     
     
         40 . The method of  claim 39 , further comprising:
 providing each said computer with a distributed run time application to communicate between said computers via said communications network.   
     
     
         41 . The method of  claim 40 , further comprising:
 providing a shared table accessible by each said distributed run time application and in which is stored the identity of any computer which currently has to access an object, together with the identity of the object.   
     
     
         42 . The method of  claim 41 , further comprising:
 associating a counter with said shared table, said counter storing a count of the number of said computers which seek access to said object.   
     
     
         43 . The method of  claim 42 , further comprising:
 providing an additional computer on which said shared program does not run and which hosts said shared table and counter, said additional computer being connected to said communications network.   
     
     
         44 . A single computer arranged to cooperate with at least one other like computer to form the multiple computer system as claimed in  claim 1 .

Join the waitlist — get patent alerts

Track US2010262590A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.