Communication of control information and data in client/server systems
원문보기
IPC분류정보
국가/구분
United States(US) Patent
등록
국제특허분류(IPC7판)
G06F-015/173
G06F-015/16
G06F-003/00
G06F-013/36
출원번호
US-0590027
(2000-06-07)
등록번호
US-7330904
(2008-02-12)
발명자
/ 주소
Kleiman,Steven R.
출원인 / 주소
Network Appliance, Inc.
대리인 / 주소
Blakely Sokoloff Taylor & Zafman LLP
인용정보
피인용 횟수 :
4인용 특허 :
19
초록▼
The invention provides a method and system in which a client/server system uses a NUMA communication link, possibly in combination with a byte serial communication link, to transfer relatively large blocks of data between client and server. The method and system provides for transferring data betwee
The invention provides a method and system in which a client/server system uses a NUMA communication link, possibly in combination with a byte serial communication link, to transfer relatively large blocks of data between client and server. The method and system provides for transferring data between the client and server, in which timing for the actual data transfer is decoupled from a request (from the client) or a response (from the server). The method and system also provides for transferring data from either party to the other at mutually agreed locations, such as locations responsive to control information present in either the request or the response. Accordingly, either party can transfer data to the other at a location convenient to both the sender and the recipient, and either party can process data in any order it prefers, without regard for the order in which data is stored at the other party.
대표청구항▼
The invention claimed is: 1. A method of sending data between a client and a server using at least one of a first plurality of data buffers of different sizes in said client and at least one of a second plurality of data buffers of different sizes in said server, wherein at least some of said first
The invention claimed is: 1. A method of sending data between a client and a server using at least one of a first plurality of data buffers of different sizes in said client and at least one of a second plurality of data buffers of different sizes in said server, wherein at least some of said first plurality of data buffers are matched to different sizes of the second plurality data buffers, the method comprising steps of: sending, from said client to said server, an address of a client data buffer of said first plurality of data buffers, wherein said client data buffer is for a data transfer to be performed and said address of said client data buffer is responsive to a size of a data block to be transferred; and transferring said data block between said client and said server using said client data buffer and a server data buffer of said second plurality of data buffers, said client data buffer and said server data buffer matched to a size of data blocks to be transferred between said client and said server. 2. A method as in claim 1, wherein a request or a response for transferring said data includes at least some control information; and said steps of transferring said data are responsive to said control information. 3. A method as in claim 1, wherein a request or a response for transferring said data includes at least one memory address; said steps of sending said data blocks are responsive to said memory address, wherein said data is read from or written to a memory in response to said memory address. 4. A method as in claim 1, wherein said data buffers in said client include different sizes and alignments than said data buffers in said server. 5. A method as in claim 1, wherein said transferring is done asynchronously with respect to a request that initiated said transferring. 6. A system including a client and server; a NUMA communication link coupled to said client and server; and a first plurality of data buffers of different sizes in said client and a second plurality of data buffers of different sizes in said server, for data transfers between said client and said server using said NUMA communication link, wherein at least some of said first plurality of data buffers are matched to different sizes of the second plurality data buffers; wherein when data is transferred between said client and said server, an address of a client data buffer of said first plurality of data buffers is sent from said client to said server, with said address of said client data buffer for a data transfer responsive to a size of a data block to be transferred, and said client data buffer and a server data buffer of said second plurality of data buffers are used to transfer said data block, with said client data buffer and said server data buffer matched to a size of said data block to be transferred between said client and said server. 7. A system as in claim 6, also including a byte serial communication link, wherein transferring said data also uses said byte serial communication link. 8. A system as in claim 6, wherein either said client or server performs processing of information in transferring said data; said processing is performed in an order which is decoupled from an order of transferring said data. 9. A system as in claim 6, wherein transferring said data is responsive to control information in a request or a response for said data transfer. 10. A system as in claim 6, wherein transferring said data is responsive to a request or a response for said data transfer. 11. A system as in claim 6, wherein said one or more data buffers also is selected responsive to control information in a request or a response for transferring said data. 12. A system as in claim 6, wherein said data buffers in said client include different sizes and alignments than said data buffers in said server. 13. A method as in claim 6, wherein said data transfer is done asynchronously with respect to a request that initiated said transfer. 14. A system comprising: a server, said server having a memory including a client communication region and a data transfer region, said data transfer region having a first plurality of data buffers of different sizes for data transfers to and from a client, at least some of said first plurality of data buffers matched to different sizes of data blocks to be transferred into or out of those data buffers and matched to different sizes of a second plurality data buffers in said client that are also matched to said different sizes of said data blocks to be transferred; and a remote DMA communication link coupled to said data transfer region; wherein said client communication region includes information regarding a data transfer into or out of said data transfer region; and wherein an address of one or more of said first plurality of data buffers for said data transfer is selected for a data transfer responsive to a size of data blocks for said data transfer. 15. A system as in claim 14, including a byte serial communication link coupled to said client communication region. 16. A system as in claim 14, including a processing element in said server coupled to said data transfer region, said processing element responsive to a request from a client or a response to a client. 17. A system as in claim 14, including a processing element in said server coupled to said data transfer region, said processing element responsive to control information in said client communication region. 18. A system as in claim 14, including a processing element in said server coupled to said data transfer region, said processing element using information in said data transfer region independently of said remote DMA communication link. 19. A system as in claim 14, including a request from a client or a response to said client having information regarding a location within data transfer region. 20. A system as in claim 14, wherein said client communication region stores a request from a client or a response to said client. 21. A system as in claim 14, wherein said data transfer region stores a data transfer to or from a client. 22. A system as in claim 14, wherein said remote DMA communication link includes a NUMA communication link. 23. A system as in claim 14, wherein said data buffers in said client include different sizes and alignments than said data buffers in said server. 24. A method as in claim 14, wherein said data transfer is done asynchronously with respect to a request that initiated said transfer. 25. A method comprising: communicating a file system request between a client and a file server; and sending data between said client and said file server in response to the request, by using a non-uniform memory access (NUMA) communication link to perform a direct memory access (DMA) operation involving at least one of a plurality of data buffers of different sizes both in said client and in said file server, wherein at least some of said data buffers both in said client and in said file server are matched to sizes of data blocks to be transferred into or out of said data buffers, wherein at least some of said data buffers in said client are matched to different sizes of data buffers in said file server, and wherein selection of an address of one or more of said data buffers for a data transfer is responsive to information in said request or a response to said request and is responsive to a size of data blocks to be transferred in said DMA operation. 26. A method as in claim 25, wherein said memory access operation includes a remote DMA operation. 27. A method as in claim 25, wherein said client includes a database server. 28. A method as in claim 25, wherein said data buffers in said client include different sizes and alignments than said data buffers in said file server. 29. A method as in claim 25, wherein said sending data is done asynchronously with respect to said request. 30. A method comprising: communicating a database request between a client and a database server; and sending data between said client and said database server in response to the request, by using a non-uniform memory access (NUMA) communication link to perform a direct memory access (DMA) operation involving at least one of a plurality data buffers of different sizes both in said client and in said database server, wherein at least some of said data buffers both in said client and in said database server are matched to sizes of data blocks to be transferred into or out of said data buffers, wherein at least some of said data buffers in said client are matched to different sizes of data buffers in said database server, and wherein selection of an address for one or more of said data buffers for a data transfer is responsive to information in said request or a response to said request and is responsive to a size of data blocks to be transferred in said DMA operation. 31. A method as in claim 30, wherein said data buffers in said client include different sizes and alignments than said data buffers in said database server. 32. A method as in claim 30, wherein said sending data is done asynchronously with respect to said request. 33. A method comprising: communicating a request between a client and a cache server; and sending data between said client and said cache server in response to the request, by using a non-uniform memory access (NUMA) communication link to perform a direct memory access (DMA) operation involving at least one of a plurality of data buffers of different sizes both in said client and in said cache server, wherein at least some of said data buffers both in said client and in said cache server are matched to sizes of data blocks to be transferred into or out of said data buffers, wherein at least some of said data buffers in said client are matched to different sizes of data buffers in said cache server, and wherein selection of an address for one or more of said data buffers for a data transfer is responsive to information in said request or a response to said request and is responsive to a size of data blocks to be transferred in said DMA operation. 34. A method as in claim 33, wherein said data buffers in said client include different sizes and alignments than said data buffers in said cache server. 35. A method as in claim 33, wherein said sending data is done asynchronously with respect to said request. 36. A method comprising: communicating a request between a client and a web server; and sending data between said client and said web server in response to the request, by using a non-uniform memory access (NUMA) communication link to perform a direct memory access (DMA) operation involving at least one of a plurality of data buffers of different sizes both in said client and in said web server, wherein at least some of said data buffers both in said client and in said web server are matched to sizes of data blocks to be transferred into or out of said data buffers, wherein at least some of said data buffers in said client are matched to different sizes of data buffers in said web server, and wherein selection of an address for one or more of said data buffers for a data transfer is responsive to information in said request or a response to said request and is responsive to a size of data blocks to be transferred in said DMA operation. 37. A method as in claim 36, wherein said data buffers in said client include different sizes and alignments than said data buffers in said web server. 38. A method as in claim 36, wherein said sending data is done asynchronously with respect to said request.
연구과제 타임라인
LOADING...
LOADING...
LOADING...
LOADING...
LOADING...
이 특허에 인용된 특허 (19)
Sang Man Moh KR; Jong Seok Han KR; An Do Ki KR; Woo Jong Hahn KR; Suk Han Yoon KR; Gil Rok Oh KR, Apparatus for controlling cache by using dual-port transaction buffers.
Yamashita Hirofumi,JPX ; Takiyasu Yoshihiro,JPX ; Asai Mitsuo,JPX ; Hirose Nozomu,JPX ; Iwanaga Miho,JPX ; Ohno Ryuichi,JPX ; Onodera Takeshi,JPX, Computer network system for packet-transferring data between computers, network file server in computer network system and data transferring method thereof.
Casamatta Angelo,ITX, Data-processing system with CC-NUMA (cache-coherent, non-uniform memory access) architecture and remote cache incorporated in local memory.
Loewenstein Paul ; Hagersten Erik, Directory-based, shared-memory, scaleable multiprocessor computer system having deadlock-free transaction flow sans flow control protocol.
Bishop Chapman Brock ; Eli Chiprout ; Elmootazbellah Nabil Elnozahy ; David Brian Glasco ; Ramakrishnan Rajamony ; Freeman Leigh Rawson, III ; Ronald Lynn Rockhold, Efficient identification of candidate pages and dynamic response in a NUMA computer.
Goldrian Gottfried,DEX ; Margner Jurgen,DEX, Method and means for exchanging messages, responses and data between different computer systems that require a plurality of communication paths between them.
Massa, Michael T.; Forin, Alessandro; Eydelman, Vadim; Morre, Timothy M.; Zuberi, Khawar M., Method and system for switching between network transport providers.
McCown Patricia M. (Cresskill NJ) Conway Timothy J. (Highland Park NJ) Jessen Karl M. (Bayonne NJ), Methods and apparatus for monitoring system performance.
Ramagopal, Hebbalalu S.; Allen, Michael; Fridman, Jose; Hoffman, Marc, Multi-tiered memory bank having different data buffer sizes with a programmable bank select.
Krueger Phillip Eric ; Casper Corene ; Dove Kenneth Frank ; Kingsbury Brent Alan ; McKenney Paul Edward, Multiprocessor computer system with user specifiable process placement.
Danny Marvin Neal ; Steven Mark Thurber, System for determining whether a subsequent transaction may be allowed or must be allowed or must not be allowed to bypass a preceding transaction.
Putterman, Daniel; Dietrich, Brad; Toeman, Jeremy; Freitas, Pedro; Legrand, Ludovic; McCaffrey, Shawn; Grimm, James; Jin, Lijia; Novaes, Paul, Methods and apparatus for client aggregation of television programming in a networked personal video recording system.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.