欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種基于RDMA的高并發(fā)數(shù)據(jù)傳輸方法與流程

文檔序號:11156915閱讀:575來源:國知局
一種基于RDMA的高并發(fā)數(shù)據(jù)傳輸方法與制造工藝

本發(fā)明涉及分布式存儲系統(tǒng)領(lǐng)域,特別涉及一種基于RDMA的高并發(fā)數(shù)據(jù)傳輸方法。



背景技術(shù):

遠程直接內(nèi)存訪問(Remote Direct Memory Access,RDMA)是指在沒有雙方主機操作系統(tǒng)直接參與下,直接訪問遠端內(nèi)存,從而提供高帶寬、低延遲的特性。

分布式環(huán)境下的數(shù)據(jù)傳輸決定了系統(tǒng)整體的I/O性能,這類技術(shù)被廣泛的應(yīng)用在分布式文件系統(tǒng)和數(shù)據(jù)庫系統(tǒng)中。傳統(tǒng)的分布式系統(tǒng)大多以磁盤作為存儲介質(zhì),并通過基于TCP/IP的遠程過程調(diào)用模塊進行數(shù)據(jù)傳輸,由于磁盤帶寬低,延遲高,因此網(wǎng)絡(luò)傳輸模塊本身不會成為瓶頸,近年來,內(nèi)存日益廉價,將存儲和計算轉(zhuǎn)移到內(nèi)存的內(nèi)存計算已經(jīng)成為一種趨勢,存儲介質(zhì)性能提升的同時,網(wǎng)絡(luò)傳輸也面臨極大的挑戰(zhàn)。

目前,尚不存在通用的數(shù)據(jù)傳輸模塊,用于高效處理不同的網(wǎng)絡(luò)I/O特性,同時,在并發(fā)控制上,仍采用集中式的同步模型,嚴重影響系統(tǒng)的可擴展性。



技術(shù)實現(xiàn)要素:

本發(fā)明旨在至少解決上述技術(shù)問題之一。

為此,本發(fā)明的目的在于提出一種減少文件在讀寫時的數(shù)據(jù)復制、降低服務(wù)端處理壓力,并提供高效的并發(fā)控制的基于RDMA的高并發(fā)數(shù)據(jù)傳輸方法。

為了實現(xiàn)上述目的,本發(fā)明的實施例公開了一種基于RDMA的高并發(fā)數(shù)據(jù)傳輸方法,在所述高并發(fā)數(shù)據(jù)傳輸方法中,數(shù)據(jù)存儲在所述數(shù)據(jù)傳輸系統(tǒng)的各節(jié)點內(nèi)存中,所述數(shù)據(jù)傳輸系統(tǒng)的各節(jié)點通過RDMA進行網(wǎng)絡(luò)互聯(lián),所述數(shù)據(jù)傳輸系統(tǒng)包括客戶端和服務(wù)端,所述客戶端是數(shù)據(jù)遠程讀寫請求的發(fā)起者,所述服務(wù)端用于存儲和管理共享數(shù)據(jù),并發(fā)控制依賴于分布式鎖協(xié)議,所述分布式鎖包含共享式讀鎖和獨享式寫鎖,該方法包括以下步驟:S1:在所述客戶端接入所述數(shù)據(jù)傳輸系統(tǒng)前,構(gòu)建分級緩沖區(qū),其中,所述分級緩沖區(qū)用于遠程數(shù)據(jù)收發(fā)時進行數(shù)據(jù)的臨時存放;S2:實施遠程數(shù)據(jù)讀寫時,由所述客戶端主動執(zhí)行用戶緩沖區(qū)、所述分級緩沖區(qū)和遠端存儲區(qū)之間的數(shù)據(jù)轉(zhuǎn)移;S3:所述服務(wù)端在所述遠程存儲區(qū)的每個獨立數(shù)據(jù)塊的首部設(shè)置鎖字段,用于并發(fā)控制,當多客戶端并發(fā)讀寫數(shù)據(jù)時,通過所述分布式鎖協(xié)議進行并發(fā)控制。

根據(jù)本發(fā)明實施例的基于RDMA的高并發(fā)數(shù)據(jù)傳輸方法,減少文件在讀寫時的數(shù)據(jù)復制、降低服務(wù)端處理壓力,并提供高效的并發(fā)控制。

另外,根據(jù)本發(fā)明上述實施例的基于RDMA的高并發(fā)數(shù)據(jù)傳輸方法,還可以具有如下附加的技術(shù)特征:

進一步地,所述分級緩沖區(qū)注冊到網(wǎng)卡,用于數(shù)據(jù)中轉(zhuǎn),在執(zhí)行遠程數(shù)據(jù)傳輸時,由緩沖區(qū)調(diào)度器進行管理。

進一步地,所述分級緩沖區(qū)被切分為不同大小的多個內(nèi)存塊,所述多個內(nèi)存塊由系統(tǒng)配置文件統(tǒng)一設(shè)置;其中,用空閑塊元數(shù)據(jù)對所述分級緩沖區(qū)內(nèi)的所有內(nèi)存塊的使用情況進行統(tǒng)一描述,當所述客戶端線程申請內(nèi)存塊時,更新所述空閑塊元數(shù)據(jù)描述占用信息,當所述客戶端完成數(shù)據(jù)傳輸后,釋放相應(yīng)的內(nèi)存塊。

進一步地,所述緩沖區(qū)調(diào)度器用于:當所述緩沖區(qū)調(diào)度器收到所述客戶端的線程申請內(nèi)存塊請求之后,通過匹配算法獲取適合大小的內(nèi)存塊;所述緩沖區(qū)調(diào)度器通過全局鎖對空閑塊元數(shù)據(jù)加鎖,并查詢對應(yīng)大小內(nèi)存塊的使用情況,以占用最先查詢到的空閑內(nèi)存塊;所述緩沖區(qū)調(diào)度器返回占用的所述空閑內(nèi)存塊的地址。

進一步地,所述匹配算法為:根據(jù)傳輸數(shù)據(jù)的大小選擇相應(yīng)大小的內(nèi)存塊。

進一步地,所述鎖字段位于對應(yīng)獨立數(shù)據(jù)塊的首部,所述鎖字段包括獨享鎖標識和共享鎖標識,所述獨享鎖包括用于存放當前占用客戶端ID和時間戳。

進一步地,所述數(shù)據(jù)轉(zhuǎn)移的過程包括:從遠端讀取數(shù)據(jù)時,所述客戶端首先通過緩沖區(qū)調(diào)度器申請適當大小的內(nèi)存塊,然后將數(shù)據(jù)讀請求發(fā)送到所述服務(wù)端;所述服務(wù)端接收到請求之后,將所讀數(shù)據(jù)塊加鎖,然后將所述數(shù)據(jù)塊的地址返回給所述客戶端;所述客戶端收到所述數(shù)據(jù)塊的地址之后,使用RDMA_READ原語將所述所讀數(shù)據(jù)塊讀取到申請的內(nèi)存塊中;讀取完畢之后,所述客戶端將所述申請的內(nèi)存塊內(nèi)數(shù)據(jù)拷貝到所述用戶緩沖區(qū)中,并遠程地將共享鎖釋放;將數(shù)據(jù)寫入所述服務(wù)端時,客戶端先將數(shù)據(jù)拷貝到用戶緩沖區(qū),然后使用RDMA_WRITE將數(shù)據(jù)寫到所述服務(wù)端。

進一步地,所述共享鎖的搶占與釋放過程包括:在搶占所述共享鎖時,所述服務(wù)端通過GCC提供的原子操作fetch_and_add對共享字段進行加一操作;然后判斷所述獨享鎖字段當前是否為零,如果為零,則成功返回,否則循環(huán)等待直到所述獨享鎖歸零;在釋放所述共享鎖時,所述客戶端遠程調(diào)用RDMA_FETCH_AND_ADD原語對所述共享鎖字段減一,并返回。

進一步地,所述獨享鎖的搶占與釋放過程包括:在搶占所述獨享鎖時,所述服務(wù)端通過GCC提供的原子操作compare_and_swap將完整鎖字段進行比較替換;在釋放所述獨享鎖時,所述客戶端通過RDMA_COMPARE_AND_SWAP原語將鎖字段歸零,并釋放所述獨享鎖。

進一步地,在釋放所述獨享鎖時還包括:當所述客戶端釋放所述獨享鎖失敗后,所述客戶端對所述共享加一等待,并重復替換原語,通過修正比較值直到替換成功。

本發(fā)明的附加方面和優(yōu)點將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過本發(fā)明的實踐了解到。

附圖說明

本發(fā)明的上述和/或附加的方面和優(yōu)點從結(jié)合下面附圖對實施例的描述中將變得明顯和容易理解,其中:

圖1是本發(fā)明實施例的基于RDMA的高并發(fā)數(shù)據(jù)傳輸方法的流程圖;

圖2是本發(fā)明一個實施例的分級緩沖區(qū)布局圖;

圖3是本發(fā)明一個實施例的鎖字段示意圖;

圖4是本發(fā)明一個實施例的服務(wù)端發(fā)送模型和客戶端讀寫模型對比圖;

圖5是本發(fā)明一個實施例的共享鎖搶占和釋放示意圖;

圖6是本發(fā)明一個實施例的互斥鎖搶占和釋放示意圖。

具體實施方式

下面詳細描述本發(fā)明的實施例,所述實施例的示例在附圖中示出,其中自始至終相同或類似的標號表示相同或類似的元件或具有相同或類似功能的元件。下面通過參考附圖描述的實施例是示例性的,僅用于解釋本發(fā)明,而不能理解為對本發(fā)明的限制。

參照下面的描述和附圖,將清楚本發(fā)明的實施例的這些和其他方面。在這些描述和附圖中,具體公開了本發(fā)明的實施例中的一些特定實施方式,來表示實施本發(fā)明的實施例的原理的一些方式,但是應(yīng)當理解,本發(fā)明的實施例的范圍不受此限制。相反,本發(fā)明的實施例包括落入所附加權(quán)利要求書的精神和內(nèi)涵范圍內(nèi)的所有變化、修改和等同物。

以下結(jié)合附圖描述本發(fā)明。

直接內(nèi)存訪問(Direct Memory Access,DMA)允許某些硬件裝置獨立地直接讀寫內(nèi)存,而不需要CPU的大量的參與,該技術(shù)用于緩解CPU對外設(shè)的處理壓力,整個數(shù)據(jù)傳輸過程只需CPU在最開始進行初始化傳輸操作,然后將整個傳輸動作交給DMA控制器來執(zhí)行完成。

遠程直接內(nèi)存訪問(Remote Direct Memory Access,RDMA)是一種新型的網(wǎng)絡(luò)通訊技術(shù),它能實現(xiàn)在雙方操作系統(tǒng)不直接參與的情況下直接訪問遠端內(nèi)存,并實現(xiàn)高吞吐、低延遲的特性。RDMA通過讓網(wǎng)絡(luò)適配器將數(shù)據(jù)直接傳輸?shù)綄Ψ降膬?nèi)存實現(xiàn)數(shù)據(jù)傳輸?shù)牧憧截悾瑥亩薈PU和Cache的直接參與,并減少了冗余的現(xiàn)場切換。目前支持RDMA技術(shù)的網(wǎng)絡(luò)協(xié)議棧包括Infiniband、RoCE(RDMA over Converged Ethernet)和iWARP,前兩者由Mellanox提供硬件技術(shù)支持,特別地,后兩者由于采用了普通以太網(wǎng)的數(shù)據(jù)鏈路層,因此均可與以太網(wǎng)完全兼容。RDMA通信的具體流程包括:首先由本地CPU以MMIO的方式向網(wǎng)卡發(fā)起通信命令,本地網(wǎng)卡檢測到新的命令之后,以DMA的方式從內(nèi)存中讀取待傳輸?shù)臄?shù)據(jù),將數(shù)據(jù)打包,并在RDMA網(wǎng)絡(luò)進行數(shù)據(jù)傳輸,對方網(wǎng)卡接收到數(shù)據(jù)之后,將數(shù)據(jù)以DMA的方式直接寫入到內(nèi)存對應(yīng)的地址區(qū)域,并將相應(yīng)的完成信息寫入到完成隊列,整個過程不涉及對方CPU參與,并繞過了雙方的內(nèi)核,實現(xiàn)了數(shù)據(jù)傳輸?shù)牧憧截?。通訊雙方在建立通訊之前需要經(jīng)過一下步驟:打開網(wǎng)卡設(shè)備;創(chuàng)建保護域,該保護域會與在后面階段創(chuàng)建的對象綁定,以保障數(shù)據(jù)傳輸安全,任何跨域的操作將會引發(fā)通訊錯誤;注冊內(nèi)存,該階段將通訊的內(nèi)存進行注冊,具體方法是建立該段內(nèi)存用戶態(tài)地址和內(nèi)存地址的映射,并將映射表存到網(wǎng)卡緩存,同時生成該內(nèi)存段的密鑰對(lkey和rkey),網(wǎng)卡在本地或遠程訪問內(nèi)存時需攜帶相應(yīng)的密鑰進行身份確認;創(chuàng)建CQ(Completion Queue),發(fā)送方在消息發(fā)送成功后或者接收方接收消息成功后均會將相應(yīng)的完成信息放入完成隊列,用戶可以反復檢測完成隊列來驗證消息發(fā)送是否完成;創(chuàng)建QP(Queue Pair),QP可以對等到TCP/IP的socket,QP由Send Queue和Receive Queue構(gòu)成,發(fā)送方把要發(fā)送的消息放入發(fā)送隊列,同時接收方將接收請求放入接收隊列,雙方通過這種方式進行網(wǎng)絡(luò)通信;QP狀態(tài)初始化,通訊雙方創(chuàng)建一一對應(yīng)的QP之后,需要進行一系列的握手狀態(tài)轉(zhuǎn)換,直到成功建立起通訊鏈路。QP可以建立不同的連接類型,包括RC(Reliable Connection)、UC(Unreliable Connection)和UD(Unreliable Datagram),RC模式下,QP只能進行一對一可靠傳輸,數(shù)據(jù)包發(fā)送成功后會有相應(yīng)的確認信息反饋,UC模式下,QP進行一對一傳輸,無確認信息反饋,UD模式則無一對一的界定,也沒有確認信息反饋,以上三種傳輸模式具有不同的特點,同時對通信原語的支持程度也各不相同。

分布式鎖用于對分布式環(huán)境中并發(fā)多任務(wù)進行同步控制,一般實現(xiàn)方法可大致分為三類:

集中式調(diào)度,將訪問共享資源的請求交給一個主節(jié)點進行集中調(diào)控,這類方法易于實現(xiàn),但單節(jié)點的處理能力成為了系統(tǒng)瓶頸,擴展性較差;

基于分布式一致性協(xié)調(diào)器的實現(xiàn)方法,這類方法往往依賴于第三方實現(xiàn)的現(xiàn)有系統(tǒng),他們能處理在分布式環(huán)境下的并發(fā)請求,并保證一致性,例如ZooKeeper和Redis,ZooKeeper借助Paxos算法,構(gòu)建了一個輕量級的分布式樹結(jié)構(gòu),用戶可以通過在ZooKeeper上創(chuàng)建一條特定路徑來表征對某一臨界資源的占用,Redis是一個分布式的內(nèi)存級Key-Value數(shù)據(jù)庫系統(tǒng),一樣可以被用來提供分布式鎖服務(wù)。這類系統(tǒng)因為借助復雜的一致性算法,在提供鎖服務(wù)時代價較高,整體性能不好;

基于RDMA遠程原子操作的分布式鎖服務(wù),通過原子地修改內(nèi)存數(shù)據(jù)來實現(xiàn)對共享資源的搶占效果。

圖1是本發(fā)明實施例的一種基于RDMA的高并發(fā)數(shù)據(jù)傳輸方法的流程圖。如圖1所示,根據(jù)本發(fā)明實施例的基于RDMA的高并發(fā)數(shù)據(jù)傳輸方法,包括數(shù)據(jù)傳輸系統(tǒng),數(shù)據(jù)存儲在數(shù)據(jù)傳輸系統(tǒng)的各節(jié)點內(nèi)存中,數(shù)據(jù)傳輸系統(tǒng)的各節(jié)點通過RDMA進行網(wǎng)絡(luò)互聯(lián),數(shù)據(jù)傳輸系統(tǒng)包括客戶端和服務(wù)端,客戶端是數(shù)據(jù)遠程讀寫請求的發(fā)起者,服務(wù)端用于存儲和管理共享數(shù)據(jù),并發(fā)控制依賴于分布式鎖協(xié)議,分布式鎖包含共享式讀鎖和獨享式寫鎖,該方法包括以下步驟:

S1:在客戶端接入數(shù)據(jù)傳輸系統(tǒng)前,構(gòu)建分級緩沖區(qū),其中,分級緩沖區(qū)用于遠程數(shù)據(jù)收發(fā)時進行數(shù)據(jù)的臨時存放。

在本發(fā)明的一個實施例中,分級緩沖區(qū)由客戶端在接入系統(tǒng)之前分配,并注冊到網(wǎng)卡,用于數(shù)據(jù)中轉(zhuǎn),在執(zhí)行遠程數(shù)據(jù)傳輸時,由緩沖區(qū)調(diào)度器對其進行管理。

需要注意的是,不引入分級緩沖區(qū)也能實現(xiàn)數(shù)據(jù)傳輸,具體做法是,當用戶發(fā)起數(shù)據(jù)讀寫請求時,直接在用戶提供的數(shù)據(jù)塊和遠端數(shù)據(jù)塊之間進行數(shù)據(jù)交換,但是,用戶提供的內(nèi)存區(qū)域需要臨時注冊,這一過程時間代價較高,同時需要臨時交換注冊生成的密鑰,引入了新的數(shù)據(jù)往返次數(shù),增加了延遲。

圖2是本發(fā)明一個實施例的分級緩沖區(qū)布局圖。如圖2所示,在本發(fā)明的一個實施例中,分級緩沖區(qū)還包括:分級緩沖區(qū)被切分為不同大小的內(nèi)存塊,且每種內(nèi)存塊具有特定的數(shù)量,可由系統(tǒng)配置文件統(tǒng)一設(shè)置;用空閑塊元數(shù)據(jù)對分級緩沖區(qū)內(nèi)的所有內(nèi)存塊進行統(tǒng)一管理,空閑塊元數(shù)據(jù)用于描述內(nèi)存塊的當前占用情況,當客戶端線程申請內(nèi)存塊時,更新空閑塊元數(shù)據(jù),當客戶端完成數(shù)據(jù)傳輸后,更新空閑塊元數(shù)據(jù)以釋放該內(nèi)存塊。

在本發(fā)明的一個實施例中,緩沖區(qū)調(diào)度器用于:

當緩沖區(qū)調(diào)度器收到客戶端的線程申請內(nèi)存塊請求之后,通過匹配算法獲取適合大小的內(nèi)存塊。在本發(fā)明的一個實施例中,匹配算法為:根據(jù)傳輸數(shù)據(jù)的大小選擇相應(yīng)大小的內(nèi)存塊,即匹配算法要求最匹配內(nèi)存塊大小具有如下選取規(guī)則:

其中,S為返回內(nèi)存塊大小,Sdata為當前需要傳輸數(shù)據(jù)大小,Si代表大小為i的內(nèi)存塊,Smax代表最大內(nèi)存塊,d代表最大容忍往返次數(shù),系統(tǒng)默認為3,借此,在數(shù)據(jù)轉(zhuǎn)移時,更加合適的內(nèi)存塊大小有助于減少數(shù)據(jù)遠程傳輸?shù)拇螖?shù),降低響應(yīng)延遲。例如,用戶需要讀寫的數(shù)據(jù)大小為3MB,則申請1MB的內(nèi)存塊,分3次往返完成數(shù)據(jù)傳輸,而當讀寫數(shù)據(jù)變?yōu)?MB時,則需申請較大的內(nèi)存塊,一次完成數(shù)據(jù)傳輸。

緩沖區(qū)調(diào)度器通過全局鎖對空閑塊元數(shù)據(jù)加鎖,并查詢對應(yīng)大小內(nèi)存塊的使用情況,以占用最先查詢到的空閑內(nèi)存塊。在本發(fā)明的一個實施例中,鎖字段包含8個字節(jié)(如圖3),位于對應(yīng)獨立數(shù)據(jù)塊的首部,該鎖字段被劃分為兩部分,前4個字節(jié)代表獨享鎖標識,后4字節(jié)代表共享鎖標識,其中獨享鎖的前2字節(jié)用于存放當前占用客戶端ID,后2字節(jié)用于存放時間戳,其作用在于,當同一客戶端內(nèi)部多個線程并發(fā)搶鎖時,這些線程共用一個客戶端ID,會導致身份重疊而出現(xiàn)匹配紊亂的現(xiàn)象,因此引入時間戳,將各線程的操作區(qū)分開。

緩沖區(qū)調(diào)度器返回占用的空閑內(nèi)存塊的地址。

S2:實施遠程數(shù)據(jù)讀寫時,由客戶端主動執(zhí)行用戶緩沖區(qū)、分級緩沖區(qū)和遠端存儲區(qū)之間的數(shù)據(jù)轉(zhuǎn)移,以提升數(shù)據(jù)傳輸效率。

在本發(fā)明的一個實施例中,數(shù)據(jù)轉(zhuǎn)移方法包括:從遠端讀取數(shù)據(jù)時,客戶端首先通過緩沖區(qū)調(diào)度器申請適當大小的內(nèi)存塊,然后將數(shù)據(jù)讀請求發(fā)送到服務(wù)端;服務(wù)端接收到請求之后,首先將所讀數(shù)據(jù)塊加鎖,然后將數(shù)據(jù)塊地址返回;客戶端收到遠端地址之后,直接使用RDMA_READ原語把遠端地址所讀數(shù)據(jù)塊讀取到申請的內(nèi)存塊中;讀取完畢之后,將申請的內(nèi)存塊內(nèi)數(shù)據(jù)拷貝到用戶緩沖區(qū)中,并遠程地將共享鎖釋放;將數(shù)據(jù)寫入遠端時,與遠程讀操作不同的是,數(shù)據(jù)流剛好方向相反,客戶端先將數(shù)據(jù)拷貝到緩沖區(qū),然后使用RDMA_WRITE將數(shù)據(jù)寫到遠端。

通過客戶端執(zhí)行數(shù)據(jù)傳輸具有如下優(yōu)勢:

服務(wù)端在單線程響應(yīng)單個客戶端數(shù)據(jù)請求時,假設(shè)總體時間開銷為Ts,那么,該服務(wù)端線程能夠?qū)崿F(xiàn)的吞吐量為:

其中NetIOPS為網(wǎng)卡能夠提供的最大吞吐量,顯然,減少Ts有助于提升服務(wù)端的整體處理能力。在本發(fā)明的數(shù)據(jù)傳輸模型中,將數(shù)據(jù)傳輸?shù)膱?zhí)行者從服務(wù)端轉(zhuǎn)交給客戶端(如圖4),極大的減少了服務(wù)端的數(shù)據(jù)請求處理時間,提升了系統(tǒng)性能。

S3:服務(wù)端在遠程存儲區(qū)的每個獨立數(shù)據(jù)塊的首部設(shè)置鎖字段,用于并發(fā)控制,當多客戶端并發(fā)讀寫數(shù)據(jù)時,通過分布式鎖協(xié)議進行并發(fā)控制。

在本發(fā)明的一個實施例中,共享鎖包括對共享鎖的搶占與釋放;具體方法是:在搶占共享鎖時,服務(wù)端通過GCC提供的原子操作fetch_and_add對共享字段進行加一操作;然后判斷獨享鎖字段當前是否為零,如果為零,則成功返回,否則循環(huán)等待直到獨享鎖歸零;在釋放共享鎖時,客戶端遠程調(diào)用RDMA_FETCH_AND_ADD原語對共享鎖字段減一,并成功返回。圖5給出了一個共享鎖搶占與釋放示例。

在本發(fā)明的一個實施例中,獨享鎖包括對獨享鎖的搶占與釋放;具體方法是:在搶占獨享鎖時,服務(wù)端通過GCC提供的原子操作compare_and_swap將8字節(jié)完整鎖字段進行比較替換,其中,比較值為{0,0,0},替換值為{CID,Ts,0},三個值分別代表客戶端ID,時間戳,共享鎖占有者數(shù)量,該原子操作首先用比較值和鎖字段原本的數(shù)值進行對比,如果相等,則將替換值換入,否則不替換,最后將鎖字段原本的數(shù)值返回,整個過程原子進行;如果替換失敗,代表當前有其他用戶已經(jīng)搶占該鎖,因此循環(huán)操作直到替換成功;在釋放獨享鎖時,客戶端通過RDMA_COMPARE_AND_SWAP原語將鎖字段歸零,并成功釋放獨享鎖。圖6給出了一個互斥鎖搶占與釋放示例。

在本發(fā)明的一個實施例中,獨享鎖釋放時,存在替換失敗的可能,即釋放獨享鎖失敗后,客戶端對搶占該共享鎖的客戶端會直接對其加一并等待,因此需要重復執(zhí)行替換原語,并修正比較值直到替換成功。

另外,本發(fā)明實施例的基于RDMA的高并發(fā)數(shù)據(jù)傳輸方法的其它構(gòu)成以及作用對于本領(lǐng)域的技術(shù)人員而言都是已知的,為了減少冗余,不做贅述。

在本說明書的描述中,參考術(shù)語“一個實施例”、“一些實施例”、“示例”、“具體示例”、或“一些示例”等的描述意指結(jié)合該實施例或示例描述的具體特征、結(jié)構(gòu)、材料或者特點包含于本發(fā)明的至少一個實施例或示例中。在本說明書中,對上述術(shù)語的示意性表述不一定指的是相同的實施例或示例。而且,描述的具體特征、結(jié)構(gòu)、材料或者特點可以在任何的一個或多個實施例或示例中以合適的方式結(jié)合。

盡管已經(jīng)示出和描述了本發(fā)明的實施例,本領(lǐng)域的普通技術(shù)人員可以理解:在不脫離本發(fā)明的原理和宗旨的情況下可以對這些實施例進行多種變化、修改、替換和變型,本發(fā)明的范圍由權(quán)利要求及其等同限定。

當前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
恭城| 疏勒县| 莆田市| 潞城市| 饶阳县| 焉耆| 台南市| 阳谷县| 丹棱县| 合江县| 青河县| 太保市| 兴和县| 清河县| 龙山县| 富裕县| 昭通市| 金山区| 托里县| 南乐县| 黄陵县| 琼海市| 景谷| 岢岚县| 象山县| 昆明市| 南丹县| 石首市| 青州市| 禹州市| 城固县| 徐水县| 思南县| 江陵县| 洛川县| 屏东市| 拉孜县| 紫阳县| 恩平市| 读书| 千阳县|