System and method for a shared write address protocol over a remote direct memory access connection
IPC분류정보
국가/구분
United States(US) Patent
등록
국제특허분류(IPC7판)
G06F-015/16
H04L-012/911
H04L-029/08
출원번호
US-0230861
(2014-03-31)
등록번호
US-9544243
(2017-01-10)
발명자
/ 주소
Lentini, James
출원인 / 주소
NetApp, Inc.
대리인 / 주소
LeClairRyan, a Professional Corporation
인용정보
피인용 횟수 :
0인용 특허 :
59
초록▼
The present invention provides a system and method for a shared write address protocol (SWAP) that is implemented over a remote direct memory address (RDMA) connection. Each party to a connection establishes a flow control block that is accessible to its partner via a RDMA READ operation. The novel
The present invention provides a system and method for a shared write address protocol (SWAP) that is implemented over a remote direct memory address (RDMA) connection. Each party to a connection establishes a flow control block that is accessible to its partner via a RDMA READ operation. The novel protocol operates so that each module needs to have one outstanding RDMA READ operation at a time, i.e., to obtain the current flow control information from its partner. In operation, if data to be transmitted is less than or equal to a buffer size, an INLINE message data structure of the SWAP protocol is utilized to send the data to be target. However, if the data is greater than the buffer size, a second determination is made as to whether sufficient space exists in the message pool for the data. If insufficient space exists, the sender will wait until sufficient space exists before utilizing a novel WRITE operation of the SWAP protocol to transmit the data.
대표청구항▼
1. A method comprising: issuing, by a computing device, a read operation to a flow control block of another computing device, via a remote direct memory access (RDMA) connection with the another computing device, to retrieve a transaction identifier of a last processed response of the another comput
1. A method comprising: issuing, by a computing device, a read operation to a flow control block of another computing device, via a remote direct memory access (RDMA) connection with the another computing device, to retrieve a transaction identifier of a last processed response of the another computing device;determining, by the computing device, when sufficient space exists in a message pool on the another computing device to store data to be transmitted to the another computing device based on the retrieved transaction identifier and a size of the data; andissuing, by the computing device, a write operation via the RDMA connection to transmit the data to the another computing device, when the determining indicates that sufficient space exists in the message pool on the another computing device to store the data. 2. The method of claim 1 further comprising determining, by the computing device, when the size of data is less than or equal to an inline message size; andtransmitting, by the computing device, the data over the RDMA connection using an inline message data structure, when the determining indicates that the size of the data is less than or equal to the inline message size. 3. The method of claim 1 further comprising: determining, by the computing device, when sufficient transactions have been processed by the another computing device to free an amount of space in the message pool greater than or equal to the size of the data, when the determining indicates that sufficient space does not exist in the message pool on the another computing device to store the data; andtransmitting, by the computing device, the data to the another computing device, when the determining indicates that sufficient transactions have been processed by the second node to free an amount of space in the message pool greater than or equal to the size of the data. 4. The method of claim 1 further comprising receiving, by the computing device and from the another computing device, configuration information for the RDMA connection comprising at least a location of the flow control block. 5. A non-transitory machine readable medium having stored thereon instructions for performing a method comprising machine executable code which when executed by at least one machine, causes the machine to: issue a read operation to a flow control block of another computing device, via a remote direct memory access (RDMA) connection with the another computing device, to retrieve a transaction identifier of a last processed response of the another computing device;determine when sufficient space exists in a message pool on the another computing device to store data to be transmitted to the another computing device based on the retrieved transaction identifier and a size of the data; andissue a write operation via the RDMA connection to transmit the data to the another computing device, when the determining indicates that sufficient space exists in the message pool on the another computing device to store the data. 6. The non-transitory computer readable medium of claim 5 wherein the processor is further configured to execute the machine executable code to further cause the processor to: determine, by the computing device, when the size of data is less than or equal to an inline message size; andtransmit the data over the RDMA connection using an inline message data structure, when the determining indicates that the size of the data is less than or equal to the inline message size. 7. The non-transitory computer readable medium of claim 5 wherein the processor is further configured to execute the machine executable code to further cause the processor to: determine when sufficient transactions have been processed by the another computing device to free an amount of space in the message pool greater than or equal to the size of the data, when the determining indicates that sufficient space does not exist in the message pool on the another computing device to store the data;andtransmit the data to the another computing device, when the determining indicates that sufficient transactions have been processed by the second node to free an amount of space in the message pool greater than or equal to the size of the data. 8. The non-transitory computer readable medium of claim 5 wherein the machine executable code when executed by the machine further causes the machine to receive, from the another computing device, configuration information for the RDMA connection comprising at least a location of the flow control block. 9. A computing device comprising: a memory containing machine readable medium comprising machine executable code having stored thereon instructions for performing a method of optimizing communications over remote direct memory access (RDMA) connections; anda processor coupled to the memory, the processor configured to execute the machine executable code to cause the processor to: issue a read operation to a flow control block of another computing device, via an RDMA connection with the another computing device, to retrieve a transaction identifier of a last processed response of the another computing device;determine when sufficient space exists in a message pool on the another computing device to store data to be transmitted to the another computing device based on the retrieved transaction identifier and a size of the data; andissue a write operation via the RDMA connection to transmit the data to the another computing device, when the determining indicates that sufficient space exists in the message pool on the another computing device to store the data. 10. The computing device of claim 9, wherein the processor is further configured to execute the machine executable code to further cause the processor to: determine when the size of data is less than or equal to an inline message size; andtransmit the data over the RDMA connection using an inline message data structure, when the determining indicates that the size of the data is less than or equal to the inline message size. 11. The computing device of claim 9, wherein the processor is further configured to execute the machine executable code to further cause the processor to: determine when sufficient transactions have been processed by the another computing device to free an amount of space in the message pool greater than or equal to the size of the data, when the determining indicates that sufficient space does not exist in the message pool on the another computing device to store the data; andtransmit the data to the another computing device, when the determining indicates that sufficient transactions have been processed by the second node to free an amount of space in the message pool greater than or equal to the size of the data. 12. The computing device of claim 9, wherein the processor is further configured to execute the machine executable code to further cause the processor to receive, from the another computing device, configuration information for the RDMA connection comprising at least a location of the flow control block.
연구과제 타임라인
LOADING...
LOADING...
LOADING...
LOADING...
LOADING...
이 특허에 인용된 특허 (59)
Uzrad-Nali, Oran; Har-Chen, Dror, Apparatus and method for receive transport protocol termination.
Slaughter Gregory L. ; Traversat Bernard A. ; Block Robert J. ; Zheng Xiaoyan, Mechanism for reliable update of virtual disk device mappings without corrupting data.
Byers Russell Francis,CAX ; Duchaine Joseph Marcel Gilles,CAX ; Schuett Michael Leonard,CAX ; Grootenboer Cornelius Jacob,GBX, Method and controller for controlling shutdown of a processing unit.
Kazar, Michael L.; Nydick, Daniel S.; Sanzi, Jr., Richard N.; Gohh, Fred; Bianchini, Jr., Ronald P.; Speiser, Benjamin, Method and system for responding to file system requests.
Ohran Richard S. ; Rollins Richard N. ; Ohran Michael R. ; Marsden Wally, Method for improving recovery performance from hardware and software errors in a fault-tolerant computer system.
Hitz David ; Malcolm Michael ; Lau James ; Rakitzis Byron, Method for maintaining consistent states of a file system and for creating user-accessible read-only copies of a file s.
Wallach Walter A. ; Findlay Bruce ; Pellicer Thomas J. ; Chrabaszcz Michael, Method for providing a fault tolerant network using distributed server processes to remap clustered network resources to other servers during server failure.
McCown Patricia M. (Cresskill NJ) Conway Timothy J. (Highland Park NJ) Jessen Karl M. (Bayonne NJ), Methods and apparatus for monitoring system performance.
Ekrot Alexander C. ; Singer James H. ; Hemphill John M. ; Autor Jeffrey S. ; Galloway William C. ; Alexander Dennis J., Multi-server fault tolerance using in-band signalling.
Hitz David (Sunnyvale CA) Schwartz Allan (Saratoga CA) Lau James (Cupertino CA) Harris Guy (Mountain View CA), Multiple facility operating system architecture.
Hitz David ; Schwartz Allan ; Lau James ; Harris Guy, Multiple software-facility component operating system for co-operative processor control within a multiprocessor computer system.
Row Edward J. (Mountain View CA) Boucher Laurence B. (Saratoga CA) Pitts William M. (Los Altos CA) Blightman Stephen E. (San Jose CA), Parallel I/O network file server architecture.
Row Edward J. (Mountain View CA) Boucher Laurence B. (Saratoga CA) Pitts William M. (Los Altos CA) Blightman Stephen E. (San Jose CA), Parallel I/O network file server architecture.
Beardsley Brent Cameron (Tucson AZ) Hathorn Roger Gregory (Tucson AZ) Holley Bret Wayne (Tucson AZ) Iskiyan James Lincoln (Tucson AZ), Remote copy system for setting request interconnect bit in each adapter within storage controller and initiating request.
Coffman, Daniel M.; Hosn, Rafah A.; Kleindienst, Jan; Maes, Stephane H.; Raman, Thiruvilwamalai V., System and method for providing dialog management and arbitration in a multi-modal environment.
Clowes Richard F. (New York NY) Tims Fred W. (Springfield Center NY), Workstation-implemented data storage re-routing for server fault-tolerance on computer networks.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.