JP2019517692A - OpenFabricsにおけるスループットの改善 - Google Patents
OpenFabricsにおけるスループットの改善 Download PDFInfo
- Publication number
- JP2019517692A JP2019517692A JP2018561265A JP2018561265A JP2019517692A JP 2019517692 A JP2019517692 A JP 2019517692A JP 2018561265 A JP2018561265 A JP 2018561265A JP 2018561265 A JP2018561265 A JP 2018561265A JP 2019517692 A JP2019517692 A JP 2019517692A
- Authority
- JP
- Japan
- Prior art keywords
- data
- header
- buffers
- destination
- rdma
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 239000000872 buffer Substances 0.000 claims abstract description 219
- 238000000034 method Methods 0.000 claims abstract description 64
- 239000002699 waste material Substances 0.000 claims description 25
- 238000013507 mapping Methods 0.000 claims description 17
- 230000008569 process Effects 0.000 abstract description 51
- 238000004891 communication Methods 0.000 description 29
- 238000010586 diagram Methods 0.000 description 24
- 238000012546 transfer Methods 0.000 description 10
- 238000004590 computer program Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000006855 networking Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000009365 direct transmission Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/28—DMA
- G06F2213/2806—Space or buffer allocation for DMA transfers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Bus Control (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Systems (AREA)
- Computer And Data Communications (AREA)
Abstract
Description
あるコンピューティング環境において、2つ(又はそれ以上)のコンピューティングシステム間のデータ転送は、データ及び付随するヘッダ(並びに他のメタデータ)をあるコンピューティングシステムのメモリから(例えば、複数のソースバッファから)別のコンピューティングシステムのメモリに(例えば、1つ以上の宛先バッファに)直接送信することを含み得る。ヘッダは典型的にサイズが小さいため(例えば1k)、あるコンピューティングシステムのメモリから別のコンピューティングシステムのメモリにヘッダを転送する書き込み操作のみを行うことは、リソースの集中は言うまでもなく、非効率である。
コンピューティングシステムにおける例示的な実装
データ及びヘッダの書き込みの例
データ及びヘッダの合体の例
ヘッダ及びデータ配置の例
ヘッダ及びデータを合体させるための例示的なプロセス
例示的なコンピューティング環境
例示的なネットワーキング環境
Claims (20)
- データ及びヘッダを受信することと、
前記データ及び前記ヘッダが書き込まれる複数のバッファを識別することと、
前記データ及び前記ヘッダの配置情報を決定することであって、
前記配置情報は、
前記複数のバッファのうちのそれぞれのバッファのサイズ、
前記データのページ境界位置合わせ、及び
前記ヘッダのヘッダ位置合わせに少なくとも部分的に基づいて決定される、ことと、
前記データ及び前記ヘッダを前記複数のバッファに書き込むことであって、
前記データを前記書き込むことは、前記配置情報を使用し、
前記データは、ページ境界に書き込まれ、
前記ヘッダは、ヘッダ境界に書き込まれる、ことと、を含む、方法。 - 前記配置情報を使用することが、結果的に、
前記複数のバッファのうちの最小数のバッファを利用し、
前記データが前記最小数のバッファに書き込まれるときに、ページ境界に位置合わせされ、
電信上の無駄を最小限にする、ことになる、請求項1に記載の方法。 - 前記配置情報が、前記データ及び前記ヘッダを最後から2番目のバッファに書き込むための命令を含む、請求項1に記載の方法。
- 複数のソースバッファ内に含まれる前記ヘッダ及び前記データを前記配置情報に基づいて前記複数のバッファにマッピングすることにより、前記ヘッダ及び前記データをリモートダイレクトメモリアクセス(RDMA)書き込みに合体させる、ことを更に含む、請求項1に記載の方法。
- 前記最小数のバッファにおいて前記データをページ境界に位置合わせできない場合に、前記複数のバッファのうちの1つ以上の追加バッファを選択すること、を更に含む、請求項1に記載の方法。
- 前記複数のバッファが複数の宛先バッファを含み、
前記最小数のバッファが1つ以上の宛先バッファを含む、請求項1に記載の方法。 - 前記RDMA書き込みが32ビットデータ空間を含む、請求項4に記載の方法。
- 前記ヘッダのオフセットを前記32ビットデータ空間に組み込むこと、を更に含む、請求項7に記載の方法。
- プログラム命令を記憶する非一時的コンピュータ可読ストレージ媒体(CRM)であって、前記プログラム命令は、
データ及びヘッダを受信すること、
前記データ及び前記ヘッダが書き込まれる複数のバッファを識別すること、及び
前記データ及び前記ヘッダの配置情報を決定することであって、
前記配置情報は、
前記複数のバッファのうちのそれぞれのバッファのサイズ、
前記データのページ境界位置合わせ、及び
前記ヘッダのヘッダ位置合わせに少なくとも部分的に基づいて決定される、こと、並びに
前記データ及び前記ヘッダを前記複数のバッファに書き込むことであって、
前記データを前記書き込むことは、前記配置情報を使用し、
前記データは、ページ境界に書き込まれ、
前記ヘッダは、ヘッダ境界に書き込まれる、ことと、を実行可能である、非一時的CRM。 - 前記配置情報を使用することが、結果的に、
前記複数のバッファのうちの最小数のバッファを利用し、
前記データが前記最小数のバッファに書き込まれるときに、ページ境界に位置合わせされ、
電信上の無駄を最小限にする、ことになる、請求項9に記載の非一時的CRM。 - 前記配置情報が、前記データ及び前記ヘッダを最後から2番目のバッファに書き込むための命令を含む、請求項9に記載の非一時的CRM。
- 複数のソースバッファ内に含まれる前記ヘッダ及び前記データを前記配置情報に基づいて前記複数のバッファにマッピングすることにより、前記ヘッダ及び前記データをリモートダイレクトメモリアクセス(RDMA)書き込みに合体させることであって、
前記RDMA書き込みは、32ビットデータ空間を含む、ことと、
前記ヘッダのオフセットを前記32ビットデータ空間に組み込むことと、を更に含む、請求項9に記載の非一時的CRM。 - 前記最小数のバッファにおいて前記データをページ境界に位置合わせできない場合に、前記複数のバッファのうちの1つ以上の追加バッファを選択すること、を更に含む、請求項9に記載の非一時的CRM。
- 前記複数のバッファが複数の宛先バッファを含み、
前記最小数のバッファが1つ以上の宛先バッファを含む、請求項9に記載の非一時的CRM。 - 1つ又は2つ以上のプロセッサと、
前記1つ又は2つ以上のプロセッサに結合されたメモリと、を備え、前記メモリは、前記1つ又は2つ以上のプロセッサによって実行可能なプログラム命令を記憶し、前記プログラム命令は、
データ及びヘッダを受信すること、
前記データ及び前記ヘッダが書き込まれる複数のバッファを識別すること、及び
前記データ及び前記ヘッダの配置情報を決定することであって、
前記配置情報は、
前記複数のバッファのうちのそれぞれのバッファのサイズ、
前記データのページ境界位置合わせ、及び
前記ヘッダのヘッダ位置合わせに少なくとも部分的に基づいて決定される、こと、並びに
前記データ及び前記ヘッダを前記複数のバッファに書き込むことであって、
前記データを前記書き込むことは、前記配置情報を使用し、
前記データは、ページ境界に書き込まれ、
前記ヘッダは、ヘッダ境界に書き込まれる、ことと、を実行可能である、システム。 - 前記配置情報を使用することが、結果的に、
前記複数のバッファのうちの最小数のバッファを利用し、
前記データが前記最小数のバッファに書き込まれるときに、ページ境界に位置合わせされ、
電信上の無駄を最小限にする、ことになる、請求項15に記載のシステム。 - 前記配置情報が、前記データ及び前記ヘッダを最後から2番目のバッファに書き込むための命令を含む、請求項15に記載のシステム。
- 複数のソースバッファ内に含まれる前記ヘッダ及び前記データを前記配置情報に基づいて前記複数のバッファにマッピングすることにより、前記ヘッダ及び前記データをリモートダイレクトメモリアクセス(RDMA)書き込みに合体させることであって、
前記RDMA書き込みは、32ビットデータ空間を含む、ことと、
前記ヘッダのオフセットを前記32ビットデータ空間に組み込むことと、を更に含む、請求項15に記載のシステム。 - 前記最小数のバッファにおいて前記データをページ境界に位置合わせできない場合に、前記複数のバッファのうちの1つ以上の追加バッファを選択すること、を更に含む、請求項15に記載のシステム。
- 前記複数のバッファが複数の宛先バッファを含み、
前記最小数のバッファが1つ以上の宛先バッファを含む、請求項15に記載のシステム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/168,449 US10375168B2 (en) | 2016-05-31 | 2016-05-31 | Throughput in openfabrics environments |
US15/168,449 | 2016-05-31 | ||
PCT/US2017/033951 WO2017210015A1 (en) | 2016-05-31 | 2017-05-23 | Improving throughput in openfabrics environments |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2019517692A true JP2019517692A (ja) | 2019-06-24 |
JP6788691B2 JP6788691B2 (ja) | 2020-11-25 |
Family
ID=59215982
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018561265A Active JP6788691B2 (ja) | 2016-05-31 | 2017-05-23 | OpenFabricsにおけるスループットの改善 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10375168B2 (ja) |
EP (1) | EP3465450B1 (ja) |
JP (1) | JP6788691B2 (ja) |
CN (1) | CN109478171B (ja) |
WO (1) | WO2017210015A1 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9996463B2 (en) * | 2015-11-10 | 2018-06-12 | International Business Machines Corporation | Selection and placement of volumes in a storage system using stripes |
CN110888827B (zh) * | 2018-09-10 | 2021-04-09 | 华为技术有限公司 | 数据传输方法、装置、设备及存储介质 |
US11379404B2 (en) * | 2018-12-18 | 2022-07-05 | Sap Se | Remote memory management |
US11863469B2 (en) * | 2020-05-06 | 2024-01-02 | International Business Machines Corporation | Utilizing coherently attached interfaces in a network stack framework |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0678001A (ja) * | 1992-05-29 | 1994-03-18 | Hewlett Packard Co <Hp> | ネットワークアダプタシステム |
JP2004240711A (ja) * | 2003-02-06 | 2004-08-26 | Fujitsu Ltd | バッファメモリ装置及びバッファメモリ制御方法 |
WO2009144800A1 (ja) * | 2008-05-29 | 2009-12-03 | 富士通株式会社 | データ中継装置、データ中継プログラム、データ受信装置および通信システム |
JP2011150666A (ja) * | 2010-01-25 | 2011-08-04 | Fujitsu Ltd | 通信装置、情報処理装置、通信装置の制御方法及び制御プログラム |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5491802A (en) * | 1992-05-29 | 1996-02-13 | Hewlett-Packard Company | Network adapter for inserting pad bytes into packet link headers based on destination service access point fields for efficient memory transfer |
WO1999034273A2 (en) | 1997-12-30 | 1999-07-08 | Lsi Logic Corporation | Automated dual scatter/gather list dma |
US6694392B1 (en) | 2000-06-30 | 2004-02-17 | Intel Corporation | Transaction partitioning |
US7361881B2 (en) * | 2002-03-13 | 2008-04-22 | Oy Ajat Ltd | Ganged detector pixel, photon/pulse counting radiation imaging device |
US7376763B2 (en) | 2003-07-17 | 2008-05-20 | International Business Machines Corporation | Method for transferring data from a memory subsystem to a network adapter by extending data lengths to improve the memory subsystem and PCI bus efficiency |
US8190796B2 (en) | 2004-11-02 | 2012-05-29 | Standard Microsystems Corporation | Hardware supported peripheral component memory alignment method |
US7590777B2 (en) * | 2004-12-10 | 2009-09-15 | International Business Machines Corporation | Transferring data between system and storage in a shared buffer |
US8874844B1 (en) * | 2008-12-02 | 2014-10-28 | Nvidia Corporation | Padding buffer requests to avoid reads of invalid data |
US9146678B2 (en) * | 2013-04-29 | 2015-09-29 | International Business Machines Corporation | High throughput hardware acceleration using pre-staging buffers |
US20160026605A1 (en) * | 2014-07-28 | 2016-01-28 | Emulex Corporation | Registrationless transmit onload rdma |
-
2016
- 2016-05-31 US US15/168,449 patent/US10375168B2/en active Active
-
2017
- 2017-05-23 WO PCT/US2017/033951 patent/WO2017210015A1/en unknown
- 2017-05-23 JP JP2018561265A patent/JP6788691B2/ja active Active
- 2017-05-23 EP EP17733209.5A patent/EP3465450B1/en active Active
- 2017-05-23 CN CN201780029882.6A patent/CN109478171B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0678001A (ja) * | 1992-05-29 | 1994-03-18 | Hewlett Packard Co <Hp> | ネットワークアダプタシステム |
JP2004240711A (ja) * | 2003-02-06 | 2004-08-26 | Fujitsu Ltd | バッファメモリ装置及びバッファメモリ制御方法 |
WO2009144800A1 (ja) * | 2008-05-29 | 2009-12-03 | 富士通株式会社 | データ中継装置、データ中継プログラム、データ受信装置および通信システム |
JP2011150666A (ja) * | 2010-01-25 | 2011-08-04 | Fujitsu Ltd | 通信装置、情報処理装置、通信装置の制御方法及び制御プログラム |
Also Published As
Publication number | Publication date |
---|---|
US10375168B2 (en) | 2019-08-06 |
EP3465450B1 (en) | 2023-07-26 |
WO2017210015A1 (en) | 2017-12-07 |
EP3465450A1 (en) | 2019-04-10 |
US20170346899A1 (en) | 2017-11-30 |
CN109478171A (zh) | 2019-03-15 |
JP6788691B2 (ja) | 2020-11-25 |
CN109478171B (zh) | 2022-11-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9864538B1 (en) | Data size reduction | |
US11907139B2 (en) | Memory system design using buffer(s) on a mother board | |
EP3125126B1 (en) | Data processing system and data processing method | |
EP3057272B1 (en) | Technologies for concurrency of cuckoo hashing flow lookup | |
US8447884B1 (en) | Methods for mapping virtual addresses to physical addresses in a network device and systems thereof | |
JP6788691B2 (ja) | OpenFabricsにおけるスループットの改善 | |
US10915486B1 (en) | Ingress data placement | |
TW201220197A (en) | for improving the safety and reliability of data storage in a virtual machine based on cloud calculation and distributed storage environment | |
CN105335309B (zh) | 一种数据传输方法及计算机 | |
US20150339153A1 (en) | Data flow affinity for heterogenous virtual machines | |
US10108572B1 (en) | Pipelined I/O adapter device with low-latency write requests retries | |
US20160275042A1 (en) | Zero-copy data transmission system | |
WO2017201984A1 (zh) | 一种数据处理的方法、相关设备及存储*** | |
US9311044B2 (en) | System and method for supporting efficient buffer usage with a single external memory interface | |
CN114153778A (zh) | 跨网络桥接 | |
CN109857545B (zh) | 一种数据传输方法及装置 | |
CN115964319A (zh) | 远程直接内存访问的数据处理方法及相关产品 | |
JP5893028B2 (ja) | キャッシングに対応したストレージ装置上における効率的なシーケンシャルロギングのためのシステム及び方法 | |
CN104881315A (zh) | 基于桌面虚拟化技术的存储设备映射方法及*** | |
US10049001B1 (en) | Dynamic error correction configuration | |
US10523741B2 (en) | System and method for avoiding proxy connection latency | |
CN113422792B (zh) | 数据传输方法、装置、电子设备及计算机存储介质 | |
US8918559B2 (en) | Partitioning of a variable length scatter gather list | |
US20240104045A1 (en) | System and method for ghost bridging | |
WO2017143314A1 (en) | System for business intelligence data integration |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20190129 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20190422 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20190422 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20200318 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20200407 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20200706 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20200714 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20200928 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20201013 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20201030 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6788691 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |