Method and apparatus for data transfer and storage in a highly parallel computer network environment
First Claim
1. A method for transferring data using an arbitrarily large number of processes in a networked system having a computer device coupled to a first storage device having a memory and connecting to a second storage device, said system capable of running multiple concurrent processes, said system including a state indicator for indicating at least a first state and a second state, said second state indicating a transfer of data from said first storage device to said second storage device, said method comprising the steps of:
- creating one or more concurrent processes; and
for each of said one or more processes,determining whether said state indicator indicates a transfer of data from said first storage device to said second storage device,if said state indicator indicates a transfer of data from said first storage device to said second storage device, then transferring data from said first storage device to said second storage device, andif said state indicator does not indicate a transfer of data from said first storage device to said second storage device, then transferring data from a computer device to said first storage device, and if an error condition, interrupt or other transfer indication occurs during said data transfer, setting said state indicator to indicate a transfer of data from said first storage device to said second storage device, whereby other processes that are executing when the error condition, interrupt or other transfer indication occurs continue to execute and wherein said error condition, interrupt or other transfer indication occurs without regard to a precalculated specified storage threshold, said precalculated specified storage threshold indicating a memory size which is less than a size of the memory of said first storage device.
0 Assignments
0 Petitions
Accused Products
Abstract
A method and apparatus for sharing a single storage device among an arbitrarily large number of parallel processes with typically no wasted memory space and continued operations even when an error or interrupt occurs is disclosed. In a networked computer system having a communication network connecting a primary storage device between one or more computer devices and a secondary storage device, when some type of interrupt is generated or an error condition occurs or is otherwise indicated, a transfer of data from primary to secondary storage is indicated. A state indicator having at least a non-backup and a backup state may be set to the backup state to indicate that a data transfer from the primary storage device to the secondary storage device should occur. Alternatively, the transfer from the primary to the secondary storage device can begin without the use of a state indicator.
When the state indicator is in the backup state, a predetermined maximum number of processes will work on transferring data from the primary storage device to the secondary storage device. Other processes will transfer data from the computer to the primary storage device. The process which completes the transfer of data from the primary storage device to the secondary storage device then resets the state indicator to its normal state. Preferably, other processes which are already executing at the time when the state indicator is set to the backup state continue to execute to completion.
96 Citations
17 Claims
-
1. A method for transferring data using an arbitrarily large number of processes in a networked system having a computer device coupled to a first storage device having a memory and connecting to a second storage device, said system capable of running multiple concurrent processes, said system including a state indicator for indicating at least a first state and a second state, said second state indicating a transfer of data from said first storage device to said second storage device, said method comprising the steps of:
-
creating one or more concurrent processes; and for each of said one or more processes, determining whether said state indicator indicates a transfer of data from said first storage device to said second storage device, if said state indicator indicates a transfer of data from said first storage device to said second storage device, then transferring data from said first storage device to said second storage device, and if said state indicator does not indicate a transfer of data from said first storage device to said second storage device, then transferring data from a computer device to said first storage device, and if an error condition, interrupt or other transfer indication occurs during said data transfer, setting said state indicator to indicate a transfer of data from said first storage device to said second storage device, whereby other processes that are executing when the error condition, interrupt or other transfer indication occurs continue to execute and wherein said error condition, interrupt or other transfer indication occurs without regard to a precalculated specified storage threshold, said precalculated specified storage threshold indicating a memory size which is less than a size of the memory of said first storage device. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A method for transferring data using an arbitrarily large number of processes in a networked system having a computer device coupled to a first storage device having a memory and connecting to a second storage device, said system capable of running multiple concurrent processes, said system including a state indicator for indicating at least a first state and a second state, said second state indicating a transfer of data from said first storage device to said second storage device, said method comprising the steps of:
-
creating one or more concurrent processes; determining at the onset of each process whether a data transfer from the first storage device to the second storage device is indicated by the state indicator; if said state indicator indicates a transfer of data from said first storage device to said second storage device, then within that process transferring data from said first storage device to said second storage device, if said state indicator does not indicate a transfer of data from said first storage device to said second storage device, then within that process transferring data from a computer device to said first storage device, and if an error condition, interrupt or other transfer indication occurs within a process during transfer of data to said first storage, setting said state indicator to indicate a transfer of data from said first storage device to said second storage device, said process in which the state indicator is set allowing other processes that are executing when the error condition, interrupt or other transfer indication occurs to continue to execute, wherein said error condition, interrupt or other transfer indication occurs without regard to a precalculated specified storage threshold, said precalculated specified storage threshold indicating a memory size which is less than a size of the memory of said first storage device. - View Dependent Claims (7, 8, 9, 10)
-
-
11. A method for transferring data using an arbitrarily large number of processes in a networked system having a computer device coupled to a first storage device having a memory and connecting to a second storage device, said system capable of running multiple concurrent processes, said method comprising the steps of:
-
creating one or more concurrent processes; within each process, transferring data from a computer device to said first storage device, and if an error condition, interrupt or other transfer indication occurs during transfer of data to said first storage, then transferring data from said first storage device to said second storage device, said data transfer occurring within the process in which the error condition, interrupt or other transfer indication occurred, said data transfer occurring without blocking of other processes that are executing when the error condition, interrupt or other transfer indication occurs so that those other processes continue to execute, wherein said error condition, interrupt or other transfer indication occurs without regard to a precalculated specified storage threshold, said precalculated specified storage threshold indicating a memory size which is less than a size of the memory of said first storage device.
-
-
12. An apparatus for transferring data using an arbitrarily large number of processes, said apparatus comprising:
-
a first storage device having a central processing unit and a memory; a second storage device having a plurality of external memory devices connected thereto; a plurality of computer devices, each having a central processing unit and a memory; networking means for interconnecting said first storage device, said second device and said plurality of computer devices, said networking means permitting the transfer of data from said plurality of computer devices to said first storage device and from said first storage device to said second storage device; a state indicator in said memory of said first storage device, said state indicator having at least a first state and a second state, said second state indicating a data transfer from said first storage device to said second storage device; means for creating one or more processes, at least two of said processes capable of executing concurrently; means for determining whether said state indicator is in said second state; first means for transferring data from one of said plurality of computer devices to said first storage device when said state indicator indicates such a transfer, said first means being coupled to said determining means; second means for transferring data from said first storage device to said second storage device when said state indicator indicates such a transfer, said second means being coupled to said determining means; and means for setting said state indicator to said second state when an error condition, interrupt or other data transfer indication occurs, said process in which said error condition, interrupt or other data transfer indication occurs allowing other executing processes to continue to execute, wherein said error condition, interrupt or other transfer indication occurs without regard to a precalculated specified storage threshold, said precalculated specified storage threshold indicating a memory size which is less than a size of the memory of said first storage device. - View Dependent Claims (13, 14, 15, 16)
-
-
17. An apparatus for transferring data using an arbitrarily large number of processes, said apparatus comprising:
-
a first storage device having a central processing unit and a memory; a second storage device having a plurality of external memory devices connected thereto; a plurality of computer devices, each having a central processing unit and a memory; networking means for interconnecting said first storage device, said second device and said plurality of computer devices, said networking means permitting the transfer of data from said plurality of computer devices to said first storage device and from said first storage device to said second storage device; means for creating one or more processes, at least two of said processes capable of executing concurrently; first means for transferring data from said plurality of computer devices to said first storage device; second means, coupled to said first means, for transferring data from said first storage device to said second storage device when an error condition, interrupt or other data transfer indication occurs during a data transfer to said first storage device, said process in which said error condition, interrupt or other data transfer indication occurs transferring data from said storage device to said second storage device and allowing other executing processes to continue to execute, wherein said error condition, interrupt or other transfer indication occurs without regard to a precalculated specified storage threshold, said precalculated specified storage threshold indicating a memory size which is less than a size of the memory of said first storage device.
-
Specification