RDS協(xié)議:
Reliable Datagram Sockets (RDS)實際是由Oracle公司研發(fā)的運(yùn)行在infiniband之上,直接基于IPC的協(xié)議。之所以出現(xiàn)這么一種協(xié)議,根本的原因在于傳統(tǒng)的 TCP/IP棧本身過于低效,對于高速互聯(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é)議不會被使用,需要進(jìn)行額外的relink。另外即使relink RDS庫以后,RAC節(jié)點間的CSS通信也是無法使用RDS協(xié)議的,節(jié)點間心跳維持以及監(jiān)控總是使用IPoIB。下圖左側(cè)infiniband使用IPoIB協(xié)議的拓?fù)浣Y(jié)構(gòu),右側(cè)是infiband使用RDS協(xié)議的拓?fù)浣Y(jié)構(gòu)。
SDP協(xié)議:
知道并且使用過RDS協(xié)議的人不少,但是可能不少人都沒有聽過sdp協(xié)議 。這個協(xié)議實際早在10g時代就存在過,只是沒有專門的文檔。這個白皮書算是比較少見的。其中只是簡要的提到了sdp,所著筆墨不多,也沒有提到如何實 現(xiàn),可能在這個版本屬于試驗性的功能。文中提到依靠一個Oracle Application Server端的驅(qū)動,SDP協(xié)議可以與TCP/IP協(xié)議棧進(jìn)行透明的轉(zhuǎn)換。Database端如何配置SDP連接可以點擊這里: 11.1 11.2, Exalogic端如何配置SDP的鏈接可以在這里找到。甚至還有如何在java程序中使用SDP協(xié)議的案例介紹。在實際應(yīng)用中,多個Exadata機(jī)柜 的相連可以通過配置SDP協(xié)議連接,Exalogic和Exadata的連接也是通過SDP‘協(xié)議的。但是需要注意的是Oracle的Net Service目前是無法走RDS協(xié)議的。下圖左側(cè)是傳統(tǒng)以太網(wǎng)tcp/ip協(xié)議棧的拓?fù)浣Y(jié)構(gòu),右側(cè)是infiniband使用SDP協(xié)議的拓?fù)浣Y(jié)構(gòu)。
還有可能會聽過的協(xié)議有ZDP和IDB協(xié)議,這兩個是新名詞,如果有一點了解就知道是久瓶裝新酒。iDB協(xié)議用于Exadata 數(shù)據(jù)庫節(jié)點(DB node)和存儲節(jié)點(cell node)之間的通信。i代表 intelligence, 言下之一就是智能數(shù)據(jù)庫協(xié)議,您可不要小看它,整個Exadata的精髓offloading全靠它來完成,之所以其它第三方Oracle數(shù)據(jù)庫一體機(jī)只 有Exadata的形而沒有Exadata的神,原因就在此。簡單的說它是由Oracle數(shù)據(jù)庫內(nèi)核來實現(xiàn)的,可以智能的將表掃描的工作放到存儲一端去完 成,然后由存儲進(jìn)行過濾,最后只返回查詢需要的數(shù)據(jù)。舉個簡單的例子: 比如某個表有1億行,但是滿足過濾條件的就只有1萬行,數(shù)據(jù)庫節(jié)點會發(fā)出一個指令告訴存儲節(jié)點,“我需要查詢某某表過濾條件是什么,你去處理一下,把結(jié)果 告訴我就成,我還有別的事情要忙”。這個指令就是iDB。iDB的實現(xiàn)是Oracle公司的最高機(jī)密,除了Exadata的核心研發(fā)團(tuán)隊和技術(shù)高管沒有人 知道內(nèi)部是如何實現(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ǔ)充。