SDP协议
博客Steven.Lee 发表于:13年01月31日 14:00 [转载] DOIT.com.cn
SDP协议:
知道并且使用过RDS协议的人不少,但是可能不少人都没有听过sdp协议 。这个协议实际早在10g时代就存在过,只是没有专门的文档。这个白皮书算是比较少见的。其中只是简要的提到了sdp,所著笔墨不多,也没有提到如何实 现,可能在这个版本属于试验性的功能。文中提到依靠一个Oracle Application Server端的驱动,SDP协议可以与TCP/IP协议栈进行透明的转换。Database端如何配置SDP连接可以点击这里: 11.1 11.2, Exalogic端如何配置SDP的链接可以在这里找到。甚至还有如何在java程序中使用SDP协议的案例介绍。在实际应用中,多个Exadata机柜 的相连可以通过配置SDP协议连接,Exalogic和Exadata的连接也是通过SDP‘协议的。但是需要注意的是Oracle的Net Service目前是无法走RDS协议的。下图左侧是传统以太网tcp/ip协议栈的拓扑结构,右侧是infiniband使用SDP协议的拓扑结构。
还有可能会听过的协议有ZDP和IDB协议,这两个是新名词,如果有一点了解就知道是久瓶装新酒。iDB协议用于Exadata 数据库节点(DB node)和存储节点(cell node)之间的通信。i代表 intelligence, 言下之一就是智能数据库协议,您可不要小看它,整个Exadata的精髓offloading全靠它来完成,之所以其它第三方Oracle数据库一体机只 有Exadata的形而没有Exadata的神,原因就在此。简单的说它是由Oracle数据库内核来实现的,可以智能的将表扫描的工作放到存储一端去完 成,然后由存储进行过滤,最后只返回查询需要的数据。举个简单的例子: 比如某个表有1亿行,但是满足过滤条件的就只有1万行,数据库节点会发出一个指令告诉存储节点,“我需要查询某某表过滤条件是什么,你去处理一下,把结果 告诉我就成,我还有别的事情要忙”。这个指令就是iDB。iDB的实现是Oracle公司的最高机密,除了Exadata的核心研发团队和技术高管没有人 知道内部是如何实现的,只知道iDB协议是运行在ZDP协议(Zero-loss Zero-copy Datagram Protocol)之上,基于基于RDS协议的V3版本(OFED version 1.3.1))的标准进行研发的。Oracle的官方数据显示使用ZDP协议进行数据传输能达到每秒3GB/s,而仅仅消耗主机CPU资源的2%。
以上仅仅讲到Oracle相关的一些infiniband协议,最后上传一张图片讲囊括infiniband的Stack作为补充。