Electrical computers and digital processing systems: multicomput – Multicomputer data transferring via shared memory
Reexamination Certificate
1996-09-30
2002-08-20
Rinehart, Mark H. (Department: 2152)
Electrical computers and digital processing systems: multicomput
Multicomputer data transferring via shared memory
C710S039000
Reexamination Certificate
active
06438586
ABSTRACT:
BACKGROUND OF THE INVENTION
The invention relates generally to mechanism for transferring information between processes typically running on different host processors.
File transfers between computers are commonly done using communication protocol over a computer network. If the network is the Internet, one application protocol which is particularly popular referred to as ftp (file transfer protocol). Typically, the user or process that wants to send or retrieve a file from a remote computer invokes the file transfer protocol. In general, the user's ftp command opens a control channel over the network to the remote or target machine. Then through the use of various commands, e.g. put and get commands, the user can send a file to or retrieve a file from the remote machine. According to the ftp protocol, the actual file transfer takes place over a separate data channel that is different from the control channel.
A general characteristic of ftp and other similar file or data transfer protocols is that the machines are linked together over a common computer network. The connection to that network can be temporary and established solely for the purpose of the transfer or it can be a connection which is more permanent and which exists for other computing and communication purposes.
SUMMARY OF THE INVENTION
In general, in one aspect, the invention is 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 includes 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, transferring information between the first and second processes.
Preferred embodiments include the following features. The method further includes defining a shared storage region within the data storage system and performing the establishing and sending steps through the shared storage region. The method also includes defining areas within the shared storage region that are used to implement a set of control structures and a plurality of transfer buffers, and the step of establishing the connection between the first and second processes includes using the set of control structures to establish the connection and the step of transferring information between the first and second processes uses the plurality of transfer buffers. In a data storage system which includes a cache memory, a disk storage unit, and a controller which destages data from the cache memory into the disk storage unit, the method further involves using the cache memory for establishing the connection and sending information; and disabling the destaging function of the controller for the shared storage region. The step of transferring information through the transfer buffers includes the steps of using the first process to write data to the plurality of transfer buffers; using the second process to read data that was written to the transfer buffers; and using the control structures to synchronize the writing and reading operations.
In general, in another aspect, the invention is a method of transferring information in a system that includes a plurality of host processors that are connected to a common data storage system and that share a region of storage within the data storage system. The method includes the steps of defining areas within the shared storage region that are used to implement a set of control structures and a plurality of transfer buffers; using the control structures to establish a connection between a first process and a second process through the shared memory of the data storage system, wherein the first and second processes are running on the plurality of host processors; and after establishing the connection, transferring information between the first process and the second process through the transfer buffers. The step of transferring information through the transfer buffers includes the steps of: 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.
Preferred embodiments include the following features. The set of control structures includes a first data structure and a second data structure, and the step of establishing a connection uses the first data structure and the step of using the control structures to synchronize the writing and reading uses the second data structure. The step of establishing a connection involves 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 a connection is being requested by the first process of the second process. The step of establishing a connection further involves, prior to the adding and setting steps, reading the first data structure from the shared memory into a first local memory of the host processor on which the first process is running; and after the adding and setting steps, writing the first data structure back to the shared memory. Also, the step of establishing a connection further involves, prior to reading the first data structure from the shared memory into the first local memory, locking a portion of shared memory in which the first data structure is stored; after writing the first data structure back to the shared memory, unlocking the portion of shared memory in which the first data structure is stored.
Also in preferred embodiments, the second data structure includes a first table that includes a plurality of records each of which identifies a corresponding transfer buffer in the plurality of transfer buffers and the step of using the control structures to synchronize the writing and reading steps involves selecting a record among the plurality of records; and performing a first sequence of steps including 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 process 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. The method also includes 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. The method also includes 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. The step of using the control structures to synchronize the writing and reading steps further includes the steps of through the second process, 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 process 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 process has read the data that was written to the transfer buffer which corresponds to the selected record.
In general, in yet another aspect, the invention is a data storage system for handling a file transfer between a first process and a second process, each of which is running on a selected one of a plurality of host processors that are connected to the data storage system. The data storage system includes 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
Hass Yeshayahu
Raz Yoav
Vishlitzky Natan
EMC Corporation
Fitzgerald Leanne J.
Gunther John M.
Perkins Robert Kevin
Rinehart Mark H.
LandOfFree
File transfer utility which employs an intermediate data... does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with File transfer utility which employs an intermediate data..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and File transfer utility which employs an intermediate data... will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-2923011