我对 JSOR 和 jVerbs 都有基本的了解。
两者都处理 JNI 的限制并使用快速路径来减少延迟。它们都使用用户 Verbs RDMA 接口来避免上下文切换并提供快速路径访问。两者都有零拷贝传输选项。
不同的是,JSOR 仍然使用 Java Socket 接口。jVerbs 提供了一个新界面。jVerbs 也有一种叫做 Stateful Verbs Call 的东西,以避免重复序列化 RDMA 请求,他们说这可以减少延迟。jVerbs 提供了更原生的接口,应用程序可以直接使用这些接口。我阅读了 jVerbs SoCC 2013 论文,其中他们在 jVerbs 之上构建 jverbsRPC 并表明它显着减少了 zookeeper 和 memcache 操作的延迟。
两者的文档表明,它们的性能优于基于 TCP/IP、SDP 和 IPoIB 的常规 Java 套接字。
我没有 JSOR 和 jVerbs 之间的任何性能比较。我认为 jVerbs 可能比 JSOR 表现得更好。但是,使用 JSOR,我不必更改现有代码,因为它仍然使用相同的 Java 套接字接口。我的问题是使用 jVerbs 相对于 JSOR 的性能提升可能是什么。有没有人知道或有处理这两者的经验?如果您有任何比较数据,那就太好了。我找不到任何。
我想开发一个能够发送/接收RDMA消息的内核模块.我想知道是否可以从内核空间调用Mellanox库.
我可以从内核模块调用Mellanox RDMA函数吗?
答:我在这里有一些工作代码:https://github.com/jcarreira/disag-firebox