File transfer utility which employs an intermediate data storage system
First Claim
1. A method of communicating and transferring information from a first process to a second process, each of which is running on a corresponding different one of first and second external processors, each processor having its own operating system which is different from the other processor'"'"'s operating system, and both of which first and second external processors are connected to a data storage system that is separate from a first and second external processors, the data storage system including a data storage medium that has a shared storage region that is accessible by both the first and second processes, said method comprising:
- establishing a data transfer channel between the first and second copending processes through the shared storage medium of the data storage system; and
by using the data transfer channel established in the data storage system, transferring information from the first to the second copending processes.
7 Assignments
0 Petitions
Accused Products
Abstract
A method of communicating between first and second processes running on a plurality of host processors that are connected to a data storage system, the method including the steps of establishing a connection between the first and second processes through the data storage system; and by using the connection established through the data storage system, sending information between the first and second processes.
275 Citations
19 Claims
-
1. A method of communicating and transferring information from a first process to a second process, each of which is running on a corresponding different one of first and second external processors, each processor having its own operating system which is different from the other processor'"'"'s operating system, and both of which first and second external processors are connected to a data storage system that is separate from a first and second external processors, the data storage system including a data storage medium that has a shared storage region that is accessible by both the first and second processes, said method comprising:
-
establishing a data transfer channel between the first and second copending processes through the shared storage medium of the data storage system; and
by using the data transfer channel established in the data storage system, transferring information from the first to the second copending processes. - View Dependent Claims (2, 3, 4)
defining areas within the shared storage region that are used to implement a set of control structures and a plurality of transfer buffers;
wherein the step of establishing the connection between the first and second processes includes using the set of control structures to establish the data transfer channel;
wherein the step of transferring information between first and second processes involves transferring the information through the plurality transfer buffers.
-
-
3. The method of claim 2 wherein the step of transferring information through the transfer buffers comprises:
-
through the first process, writing data to the plurality of transfer buffers;
through the second process, reading data that was written to the transfer buffers; and
using the control structures to synchronize the writing and reading steps.
-
-
4. The method of claim 1 wherein the data storage system includes a cache memory, a disk storage unit, and a controller which destages data from the cache memory into the disk storage unit, said method further comprising:
-
using the cache memory for establishing the data transfer channel and sending information; and
disabling the destaging function of the controller for the shared storage region.
-
-
5. A method of transferring information in a system that includes a first external processor and a different, second external processor, each processor having its own operating system which is different from the other processor'"'"'s operating system, both of which are connected to a common data storage system and that share a region of storage within the data storage system, the method comprising the steps of:
-
defining areas within the shared storage region that are used to implement a set of controlled structures and a plurality of transfer buffer;
using the control structures to establish a data transfer channel from a first process running on the first processor to a copending second process running on the second processor, said data transfer channel being through the shared storage region of the data storage system; and
after establishing the data transfer channel, transferring information from the first process to the second process through the transfer buffers, wherein the step of transferring information to the transfer buffers comprises;
through the first process, writing data to the plurality of transfer buffers;
through the second process, reading data that was written to the transfer buffers; and
using the control structures to synchronize the wiring and reading steps. - View Dependent Claims (6, 7, 8, 9, 10, 11, 12, 13, 14)
adding identifiers of the first and second processes to the first data structure; and
setting a first flag in the first data structure to indicate that the first process is requesting that the data transfer channel be established with the second process.
-
-
8. The method of claim 7 wherein the step of establishing the data transfer channel further comprises:
-
prior to the adding and setting steps, reading the first data structure from the shared storage region into a first local memory, said first local memory being remote from the data storage system and local to the first processor on which the first process is running; and
after the adding and setting steps, writing the first data structure back to the shared storage region.
-
-
9. The method of claim 8 wherein the step of establishing the data transfer channel further comprises:
-
prior to reading the first data structure from the shared storage region into the first local memory, locking a portion of shared storage region in which the first data structure is stored;
after writing the first data structure back to the shared storage region, unlocking the portion of shared storage region in which the first data structure is stored.
-
-
10. The method of claim 6 wherein the second data structure comprises a first table that includes a plurality of records each of which identifies a corresponding transfer buffer in the plurality of transfer buffers and wherein the step of using the control structures to synchronize the writing and reading steps comprises:
-
selecting a record among the plurality of records; and
performing a first sequence of steps comprising;
determining whether the transfer buffer which corresponds to the selected record is available to receive data;
if the transfer buffer which corresponds to the selected record is available to receive data, causing the first processor to perform the step of writing data to the plurality of transfers buffer by writing data to the transfer buffer which corresponds the to selected record; and
setting a first flag in the selected record to indicate that data has been written to that transfer buffer which corresponds to the selected record.
-
-
11. The method of claim 10 further comprising selecting a next record among the plurality of records in the first table and for the next selected record performing the first sequence of steps.
-
12. The method of claim 11 further comprising repeating the steps of selecting a next record and performing the first sequence of steps until all data that is available for transfer has been written to the plurality of transfer buffers.
-
13. The method of claim 10 wherein the step of using the control structures to synchronize the writing and reading steps further comprises:
-
through the second processor, polling the first table to determine when the first flag has been set;
upon detecting that the first flag has been set, causing the second processor to perform the step of reading data that was written to the transfer buffers by reading the data that was written to the transfer buffer which corresponds to the selected record; and
setting a second flag in the second data structure to indicate that the second processor has read the data that was written to the transfer buffer which corresponds to the selected record.
-
-
14. The method of claim 13 wherein the second data structure comprises a second table and the second flag is in the second table.
-
15. A data storage system for handling a file transfer between a first process and a second process, each of which is concurrently running on a corresponding different one of first and second external processors both of which first and second external processors are connected to the data storage system, said data storage system comprising:
-
a shared storage region to which both the first and second processes share access;
a set of control structures implemented in the shared storage region; and
a plurality of transfer buffers implemented in said shared storage region, wherein the set of control structures includes a first table which serves to establish and support a file transfer channel between the first and second processes and through the shared storage region, and a second table which serves to coordinate use of the plurality of transfer buffers during a transfer of the file from one of the first and second processes to the other of the first and second processes.
-
-
16. A computer program being readable on a computer-readable medium, said program for running a first processor which is connected to a data storage system to which a different second coprocessor is also connected, each processor having its own operating system which is different from the other processor'"'"'s operating system, said data storage system being separate from and external to the first the second processors and including a share stored region which is shared by both the first and second processors, said program comprising instructions enabling in able to first processes running on the first processor to perform the functions of:
-
by writing first data to the shared storage region, requesting that a data transfer channel be established through the shared storage region in the data storage system to a copending second process running on the second processor; and
using the data transfer channel through the shared storage region to transfer information from the first to the copending second process. - View Dependent Claims (17, 18, 19)
defining areas within the shared storage region that are used to implement control structures and a plurality of transfer buffers;
wherein the instructions for causing the first processor to perform the function of requesting comprise instructions for causing the first processor to perform the function of writing an identifier of the second process to the control structures to request the data transfer channel;
wherein the instructions for causing the first processor to perform the function of using the data transfer channel through the shared storage region to transfer information between the first and second processes comprise instructions for causing the first processor to perform the function of sending the information to the second process via the plurality of transfer buffers.
-
-
18. The computer program of claim 16 wherein said program further comprises instructions for causing the first processor to perform the function of:
-
defining areas within the shared storage region that are used to implement control structures and a plurality of transfer buffers;
wherein the instructions for causing the first processor to perform the function of requesting comprise instructions for causing the first processor to perform the function of writing an identifier of the second process to the control structures to request the data transfer channel;
wherein the instructions for causing the first processor to perform the function of using the data transfer channel through the shared storage region to transfer information between the first and second processes comprise instructions for causing the first processor to perform the functions of;
sending a block of the information to the second process by writing the block of information to the plurality of transfer buffers;
notifying the second process via the data storage system that the block of information has been written to the plurality of transfer buffers; and
repeating the sending and notifying functions for subsequent blocks of the information until all of the information has been written to the plurality of transfer buffers.
-
-
19. The computer program of claim 16 wherein said program further comprises instructions for causing the first processor to perform the function of:
using the control structures to coordinate and synchronize the transfer of the information to the second process.
Specification