La biblioteca jVerbs (solo Linux)
La biblioteca jVerbs contiene una verbs API y una endpoint API que permiten el desarrollo de aplicaciones Java™ que utilizan infraestructuras de red de alto rendimiento, como InfiniBand, iWARP, o RoCE. La interfaz verbs es una API de redes alternativa a la interfaz sockets. La interfaz verbs proporciona comunicaciones de envío y de recepción, y la interfaz endpoint es una API simplificada que proporciona una abstracción de un punto final jVerbs.


jVerbs se implementa como una biblioteca Java que se basa en las bibliotecas de usuario RDMA de Open Fabrics Enterprise Distribution (OFED). jVerbs utiliza una capa JNI ligera para establecer un puente entre el código Java y las bibliotecas de usuario OFED. Para evitar todos los impactos en el rendimiento que están asociados al paso de matrices y parámetros RDMA complejos a través de la interfaz JNI, la biblioteca jVerbs implementa un concepto llamado método SVM (stateful verbs method). Con este enfoque, cada estado de serialización JNI para una llamada verb se almacena en memoria caché en el contexto de un objeto SVM y puede volver a utilizarse muchas veces.

API de verbs
La finalidad de la interfaz verbs es separar datos y control. Asignando previamente recursos de comunicación como fijando la memoria para el acceso directo a la memoria (DMA), los datos se transfieren sin implicar el sistema operativo o la JVM. Este principio mejora el rendimiento de operaciones de transferencia de datos, un factor clave en la obtención de la baja latencia y alto ancho de banda en infraestructuras de red con capacidad para RDMA.
- Enviar y recibir tipos de comunicación RDMA
- Enviar y recibir comunicaciones RDMA son operaciones de dos caras. El remitente envía un mensaje, mientras que el receptor crea un almacenamiento intermedio de aplicación e indica donde deben recibirse los datos. Este mecanismo es parecido a la comunicaciones basadas en sockets TCP tradicionales.
- Operaciones RDMA
- Las operaciones RDMA son operaciones de una cara en las que solo un homólogo lee, graba o manipula almacenamientos intermedios de aplicaciones remotos.
API de endpoint
La interfaz endpoint es más sencilla que la interfaz verbs. Puede crear un punto final y una conexión de una forma parecida a las comunicaciones de sockets TCP utilizando operaciones de enlace, conexión y desconexión. Sin embargo, cuando un punto final se conecta representa un par de colas RDMA sencillo, que puede utilizarse para publicar operaciones de una cada o dos caras.
Para obtener más información sobre la programación con estas API, consulte Escribir aplicaciones Java que utilicen la biblioteca jVerbs (Linux).