RDS協(xié)議:
Reliable Datagram Sockets (RDS)實(shí)際是由Oracle公司研發(fā)的運(yùn)行在infiniband之上,直接基于IPC的協(xié)議。之所以出現(xiàn)這么一種協(xié)議,根本的原因在于傳統(tǒng)的 TCP/IP棧本身過(guò)于低效,對(duì)于高速互聯(lián)開銷太大,導(dǎo)致傳輸?shù)男侍汀DS相比IPoIB, CPU的消耗量減少了50%, 相比傳統(tǒng)的UDP協(xié)議,網(wǎng)絡(luò)延遲減少了一半。下圖左側(cè)是使用IPoIB協(xié)議的infiniband設(shè)備的拓?fù)鋱D,右側(cè)是使用RDS協(xié)議的 infiniband設(shè)備的拓?fù)浣Y(jié)構(gòu)。默認(rèn)情況下,RDS協(xié)議不會(huì)被使用,需要進(jìn)行額外的relink。另外即使relink RDS庫(kù)以后,RAC節(jié)點(diǎn)間的CSS通信也是無(wú)法使用RDS協(xié)議的,節(jié)點(diǎn)間心跳維持以及監(jiān)控總是使用IPoIB。下圖左側(cè)infiniband使用IPoIB協(xié)議的拓?fù)浣Y(jié)構(gòu),右側(cè)是infiband使用RDS協(xié)議的拓?fù)浣Y(jié)構(gòu)。
SDP協(xié)議:
知道并且使用過(guò)RDS協(xié)議的人不少,但是可能不少人都沒(méi)有聽(tīng)過(guò)sdp協(xié)議 。這個(gè)協(xié)議實(shí)際早在10g時(shí)代就存在過(guò),只是沒(méi)有專門的文檔。這個(gè)白皮書算是比較少見(jiàn)的。其中只是簡(jiǎn)要的提到了sdp,所著筆墨不多,也沒(méi)有提到如何實(shí) 現(xiàn),可能在這個(gè)版本屬于試驗(yàn)性的功能。文中提到依靠一個(gè)Oracle Application Server端的驅(qū)動(dòng),SDP協(xié)議可以與TCP/IP協(xié)議棧進(jìn)行透明的轉(zhuǎn)換。Database端如何配置SDP連接可以點(diǎn)擊這里: 11.1 11.2, Exalogic端如何配置SDP的鏈接可以在這里找到。甚至還有如何在java程序中使用SDP協(xié)議的案例介紹。在實(shí)際應(yīng)用中,多個(gè)Exadata機(jī)柜 的相連可以通過(guò)配置SDP協(xié)議連接,Exalogic和Exadata的連接也是通過(guò)SDP‘協(xié)議的。但是需要注意的是Oracle的Net Service目前是無(wú)法走RDS協(xié)議的。下圖左側(cè)是傳統(tǒng)以太網(wǎng)tcp/ip協(xié)議棧的拓?fù)浣Y(jié)構(gòu),右側(cè)是infiniband使用SDP協(xié)議的拓?fù)浣Y(jié)構(gòu)。
還有可能會(huì)聽(tīng)過(guò)的協(xié)議有ZDP和IDB協(xié)議,這兩個(gè)是新名詞,如果有一點(diǎn)了解就知道是久瓶裝新酒。iDB協(xié)議用于Exadata 數(shù)據(jù)庫(kù)節(jié)點(diǎn)(DB node)和存儲(chǔ)節(jié)點(diǎn)(cell node)之間的通信。i代表 intelligence, 言下之一就是智能數(shù)據(jù)庫(kù)協(xié)議,您可不要小看它,整個(gè)Exadata的精髓offloading全靠它來(lái)完成,之所以其它第三方Oracle數(shù)據(jù)庫(kù)一體機(jī)只 有Exadata的形而沒(méi)有Exadata的神,原因就在此。簡(jiǎn)單的說(shuō)它是由Oracle數(shù)據(jù)庫(kù)內(nèi)核來(lái)實(shí)現(xiàn)的,可以智能的將表掃描的工作放到存儲(chǔ)一端去完 成,然后由存儲(chǔ)進(jìn)行過(guò)濾,最后只返回查詢需要的數(shù)據(jù)。舉個(gè)簡(jiǎn)單的例子: 比如某個(gè)表有1億行,但是滿足過(guò)濾條件的就只有1萬(wàn)行,數(shù)據(jù)庫(kù)節(jié)點(diǎn)會(huì)發(fā)出一個(gè)指令告訴存儲(chǔ)節(jié)點(diǎn),“我需要查詢某某表過(guò)濾條件是什么,你去處理一下,把結(jié)果 告訴我就成,我還有別的事情要忙”。這個(gè)指令就是iDB。iDB的實(shí)現(xiàn)是Oracle公司的最高機(jī)密,除了Exadata的核心研發(fā)團(tuán)隊(duì)和技術(shù)高管沒(méi)有人 知道內(nèi)部是如何實(shí)現(xiàn)的,只知道iDB協(xié)議是運(yùn)行在ZDP協(xié)議(Zero-loss Zero-copy Datagram Protocol)之上,基于基于RDS協(xié)議的V3版本(OFED version 1.3.1))的標(biāo)準(zhǔn)進(jìn)行研發(fā)的。Oracle的官方數(shù)據(jù)顯示使用ZDP協(xié)議進(jìn)行數(shù)據(jù)傳輸能達(dá)到每秒3GB/s,而僅僅消耗主機(jī)CPU資源的2%。
以上僅僅講到Oracle相關(guān)的一些infiniband協(xié)議,最后上傳一張圖片講囊括infiniband的Stack作為補(bǔ)充。