The Direct Storage and Networking Interface (DiSNI) 是一个Java框架和API专门为了在用户空间进行存储和网络访问的(IBM的jVerbs的新开源代替)。DiSNI为RDMA编程提供了两个API,即low-level verbs API和更高级别的endpoint API。 这些API使您能够为InfiniBand,iWARP或RoCE等高性能网络开发Java应用程序。DiSNI是IBM公司开发的一种开源Java高性能RDMA通信框架。

1. Framework Desgin

下面这个图表显示了系统框架的设计

运行在JVM虚拟机的Java应用程序通过verbs interface和endpoints interface,接口调用底层libiverbs和librdmacm 用户库。控制路径通过与依赖于RDMA特定的网卡的内核verbs模块进行交互,以控制和管理RDMA资源对象,该路径通常用来进行监理连接。传输路径使用 Open Fabrics Enterprise Distribution (OFED) user verbs模块直接与RDMA网络接口适配器通信。此路由通常用于发送数据。

2. Verbs API

The verbs API 类似于Open Fabrics Enterprise Distribution(OFED)用户库的Native libverbs接口。针对Verbs API进行编程为程序员提供最大程度的控制,但是也需要深入了解RDMA编程模型。或者也可以使用endPoint API提供更高级别的抽象。更准确地说,程序员可以使用connect()或accept()等方法创建不同类型的endpoint,并像常规Socket一样连接它们。连接后,endpoint的行为就像RDMA Queue pairs(QP)一样,并且可以这样编程。

通常,DiSNI允许应用程序绕过内核并直接从Java虚拟机(JVM)内访问网络硬件,从而实现超低延迟和高吞吐量的网络连接。此外,DiSNI使RDMA模型可用于Java应用程序。例如,单边RDMA操作可以直接读取或写入远程JVM的内存,只需要相应地设置凭据。

DiSNI还采用了一种称为 stateful verbs methods (SVM) 的概念。这些是预序列化的RDMA操作,可以由应用程序缓存和重用。在将描述符发布到RDMA队列的过程中,SVM避免了昂贵的工作请求序列化和Scatter/Gather元素。

基于Java的RDMA高性能通信库(三):Direct Storage and Networking Interface (DiSNI)相关推荐

  1. 基于Java的RDMA高性能通信库(六):SDP - Java Socket Direct Protocol

    目录 1.Java网络编程和套接字API的历史 2.InfiniBand 高速网络通信技术 3. Java 网络协议栈API 4.Java 7 SDP 远程直接内存存取(RDMA) 4.1 Java7 ...

  2. 基于Java的RDMA高性能通信库(五):JXIO

    JXIO 是 Mellanox 公司的RDMA中间件accelio在Java上的包装,JXIO使用类似于Java nio的ServerChannel方式,熟悉接口可以做好变换.AcceliO是针对硬件 ...

  3. 基于Java的RDMA高性能通信库(一):IBM jVerbs库

    目录 1. verbs API 2. endpoint API 3. jVerbs 应用程序系统和运行时需求(仅限 Linux) 4. Java Socket Over RDMA 与 jVerbs 比 ...

  4. 基于Java的RDMA高性能通信库(二):Java Socket Over RDMA

    目录 1.Comparing JSOR with Java TCP communications 2.Comparing JSOR to Java Sockets Direct Protocol (S ...

  5. 基于Java的RDMA高性能通信库(四):DaRPC

    DaRPC是一个用于Java的RPC框架和API,它使用RDMA在用户空间中实现RPC消息处理和网络处理之间的紧密集成. 自80年代初以来,远程过程调用(RPC)一直是分布式系统的基石. 最近,在数据 ...

  6. 并发型服务器响应方式,基于Java NIO 开发高性能并发型服务器程序的研究

    基于Java NIO 开发高性能并发型服务器程序的研究 第8卷%第5期 软件导刊 2009年5月SoftwareGuide Vol.8No.5May.2009 基于JavaNIO开发高性能并发型服务器 ...

  7. 基于Java NIO的Socket通信

    基于Java NIO的Socket通信 Java NIO模式的Socket通信,是一种同步非阻塞IO设计模式,它为Reactor模式实现提供了基础. 下面看看,Java实现的一个服务端和客户端通信的例 ...

  8. 探果(简称tamguo)是基于java开发的在线题库系统

    简介: 探果(简称tamguo)是基于java开发的在线题库系统 启动 tms 找到tamguo-tms下面的application.propertys. domain.name // 页面引用静态资 ...

  9. 基于java软考在线题库系统计算机毕业设计源码+系统+lw文档+mysql数据库+调试部署

    基于java软考在线题库系统计算机毕业设计源码+系统+lw文档+mysql数据库+调试部署 基于java软考在线题库系统计算机毕业设计源码+系统+lw文档+mysql数据库+调试部署 本源码技术栈: ...

最新文章

  1. 金审系统与SAP接口
  2. testng入门_单元测试
  3. 两对光纤收发器用网线连接_光纤那么快,路由器和电脑之间为何不用光纤连接,反而用普通网线...
  4. 洛谷 P1255 数楼梯 70
  5. vue App.vue router 过渡效果, keep-alive 结合使用示例
  6. Traefik访问master节点不通的问题定位
  7. 基于python的人脸识别技术_用Python写个简单但强大的人脸识别系统
  8. 一天的学习成果:hash输出,dcache工作原理,include的home directory,fist optype的含义...
  9. CF903G-Yet Another Maxflow Problem【线段树,最大流】
  10. 全球撤稿排行榜前10出炉:第一名多到想象不到
  11. Python数据分析学习笔记01:安装相关软件、导入扩展模块与集成开发环境
  12. spark任务shell运行_Spark原理与实战(七)部署模式与运行机制
  13. Android_(控件)使用自定义控件在屏幕中绘制一条虚线
  14. 算法竞赛入门经典(第二版)习题解答——第一章
  15. 程序员必看!java开发金融类项目
  16. 基于asp.net C#中小型超市库存管理系统
  17. B2C电子商务开发的网店管理系统
  18. 浅析ERP系统--财务
  19. 类型 异常报告 消息 null 描述 服务器遇到一个意外的情况,阻止它完成请求。 例外情况 java.lang.NumberFormatException: null java.base/
  20. Windows server 2012 R2添加桌面图标(计算机、控制面板、网络等)

热门文章

  1. sql调用web服务
  2. 如何调试Android Framework?
  3. ylbtech-Unitity-CS:Hello world
  4. SQLServer2005表分区知识点摘要
  5. 知乎:中国工商银行南宁分行丢失2.5亿,工作人员个人行为,与银行无关
  6. 当AI渗透到财务管理 未来人机协作机器人有望“独当一面”
  7. Linux下三大最佳的开源视频播放器
  8. imp 只导入索引_使用imp导入表和索引至不同表空间方法
  9. java 链表 传递_java 链表 传递过程中的问题
  10. java怎么加定时器,Spring中定时器实现