У меня есть основное понимание как JSOR, так и jVerbs.Ядровые сокеты на RDMA (JSOR) против производительности jVerbs в Infiniband
Оба ограничения ручек JNI и использование быстрого пути для уменьшения латентности. Оба они используют интерфейс пользователя Verbs RDMA для предотвращения переключения контекста и обеспечения быстрого доступа к пути. Оба варианта также имеют опции для переноса с нулевой копией.
Разница в том, что JSOR по-прежнему использует интерфейс Java Socket. jVerbs предоставляет новый интерфейс. jVerbs также имеет что-то, называемое Stateful Verbs Call, чтобы избежать повторной сериализации запросов RDMA, которые, по их словам, уменьшают задержку. jVerbs предоставляет более собственный интерфейс, и приложения могут напрямую использовать их. Я прочитал документ jVerbs SoCC 2013, где они строят jverbsRPC поверх jVerbs и показывают, что он значительно сокращает время ожидания операций zookeeper и memcache.
Документация для обоих показывает, что они работают лучше, чем обычные сокеты Java на основе TCP/IP, SDP и IPoIB.
У меня нет сравнения производительности между JSOR и jVerbs. Я думаю, что jVerbs может работать лучше, чем JSOR. Но, с JSOR, мне не нужно менять свой существующий код, потому что он по-прежнему использует тот же интерфейс сокета java. Мой вопрос заключается в том, что может быть приростом производительности при использовании jVerbs относительно JSOR. Кто-нибудь знает или имеет опыт работы с ними? Если у вас есть данные сравнения, это будет здорово. Я не мог найти.