我对 JSOR 和 jVerbs 都有基本的了解。
两者都处理 JNI 的限制并使用快速路径来减少延迟。它们都使用用户动词 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 套接字接口。我的问题是,相对于 JSOR,使用 jVerbs 的性能增益可能是多少。有没有人知道或有处理这两者的经验?如果您有任何比较数据,那就太好了。我找不到任何东西。