Biblioteka produktu jVerbs (tylko systemLinux )
Biblioteka jVerbs zawiera interfejs API verbs i interfejs API produktu endpoint , które umożliwiają tworzenie aplikacji Java™ , które korzystają z infrastruktur sieciowych o wysokiej wydajności, takich jak InfiniBand, iWARPlub RoCE. Interfejs verbs jest alternatywnym interfejsem API w sieci do interfejsu sockets . Interfejs czasowników udostępnia komunikację wysyłania i odbierania, a interfejs endpoint jest uproszczonym interfejsem API, który udostępnia abstrakcję punktu końcowego jVerbs .
Produkt jVerbs jest zaimplementowany jako biblioteka Java, która jest oparta na bibliotekach użytkowników RDMA Open Fabrics Enterprise Distribution (OFED). Produkt jVerbs używa cienkiej warstwy JNI do utworzenia mostu między kodem Java a bibliotekami użytkowników OFED. Aby uniknąć wpływu na wydajność, które są powiązane z przekazywaniem złożonych parametrów RDMA i tablic za pomocą interfejsu JNI, biblioteka jVerbs implementuje koncepcję o nazwie stateful verbs method (SVM). W przypadku tego podejścia każdy stan serializacji JNI dla wywołania verb jest buforowany w kontekście obiektu SVM i może być wielokrotnie wykorzystywany wielokrotnie.

verbsinterfejs API
Celem interfejsu verbs jest oddzielne dane i sterowanie. Dzięki wstępnie przydzielaniu zasobów komunikacyjnych, takich jak pamięć pinning dla bezpośredniego dostępu do pamięci (Direct Memory Access-DMA), dane są przesyłane bez angażowania systemu operacyjnego lub maszyny JVM. Ta zasada zwiększa wydajność operacji przesyłania danych, co stanowi kluczowy czynnik w osiąganiu niskich opóźnień i wysokiej przepustowości w infrastrukturze sieciowej obsługując RDMA.
- Typy komunikacji wysyłania i odbierania RDMA
- Komunikacja wysyłania i odbierania RDMA to operacje dwustronne. Nadawca wysyła komunikat, podczas gdy odbiornik tworzy bufor aplikacji i wskazuje, gdzie mają być odbierane dane. Ten mechanizm jest podobny do tradycyjnej komunikacji opartej na gnieździe TCP.
- Operacje RDMA
- Operacje RDMA są operacjami jednostronnymi, w których tylko jeden węzeł równorzędny odczytuje, zapisuje lub manipuluje buforami aplikacji zdalnych.
endpointinterfejs API
Interfejs endpoint jest prostszy niż interfejs czasowników. Można utworzyć punkt końcowy i połączenie w podobny sposób do komunikacji gniazda TCP, korzystając z operacji łączenia, łączenia i rozłączania. Jednak gdy punkt końcowy jest połączony, reprezentuje prostą parę kolejki RDMA, która może być używana do wykonywania operacji jednostronnego lub dwustronnego.
Więcej informacji na temat programowania za pomocą tych interfejsów API zawiera sekcja Zapisywanie aplikacji Java, które korzystają z biblioteki jVerbs (tylko w systemieLinux ).