JSOR 系統需求及支援的 API (僅限Linux )

Java™ 用戶端和伺服器應用程式必須已安裝特定的硬體和執行時期軟體,才能使用 JSOR 特性。 JSOR 支援一組有限的 API 和類別。

附註: RDMA 實作已淘汰,並可能在未來版本 IBM® SDK Java Technology Edition 第 8 版中移除。 可能的替代方案是開放程式碼 Libfabric 程式庫。

支援的硬體和執行時期需求

下列必要條件適用:
  • 下列平台及「遠端直接存取記憶體 (RDMA)」配接卡上提供此特性:
    • Linux® 32 位元 x-86 ,具有 InfiniBand (IB) 或 RDMA over Converged Ethernet (RoCE)
    • Linux AMD64/EM64T 搭配 IB 或 RoCE
    • Linux 32 位元 POWER ® 搭配 RoCE
    • Linux 64 位元 POWER (含 RoCE )
    • 開始服務重新整理 2 的變更Linux 64 位元 POWER8® (Little Endian) with IB服務重新整理 2 的變更結束
    配接卡必須由適當的高效能交換器交互連接。
  • 您必須安裝 OpenFabrics Enterprise Distribution (OFED) v1.5.3 或更新版本,您可以從 OpenFabrics Alliance 網站下載: https://www.openfabrics.org/index.php/resources/ofed-for-linux-ofed-for-windows/ofed-overview.html。 在執行時期期間,會動態尋找並載入下列程式庫中的符號: librdmacm.solibibverbs.so。 這些程式庫由 OFED 執行時期提供。
  • 使用者必須具有足夠的許可權,才能鎖定兩個主機系統上的記憶體。 必須鎖定或固定 RDMA Socket 緩衝區,以避免作業系統在資料傳送期間交換記憶體頁面。

已測試環境

  • Mellanox MT26428 ConnectX 虛擬通訊協定交互連接 (VPI) PCI Express ® (PCIe) 主機,它們透過 Voltaire 40 GB InfiniBand 交換器交互連接。
  • Mellanox MT25208 InfiniHost III Ex 主機,由 Cisco 4x InfiniBand 交換器互連。
  • Mellanox MT26448 ConnectX EN PCIe 主機 (直接交互連接)。
  • Mellanox MT4099 ConnectX-3 VPI 主機,它們直接交互連接。

支援的 API 和類別

下列 API 和類別集的支援受到限制:
  • java.net.Socketjava.net.ServerSocket 會排除下列方法的支援:
    • Socket(Proxy proxy)
    • Socket(SocketImpl impl)
    • setSocketFactory(SocketImplFactory fac)
    • setPerformancePreferences(int connectionTime, int latency, int bandwidth).
  • java.io.InputStream,包括下列方法的支援:
    • available()
    • close()
    • mark(int readlimit)
    • markSupported()
    • read()
    • read(byte[] b)
    • read(byte[] b, int off, int len)
    • reset()
    • skip()
  • java.io.OuputStream 包括下列方法的支援:
    • close()
    • flush()
    • write(byte[] b)
    • write(byte[] b, int off, int len)
    • write(int b)
  • java.net.SocketOptions 包括下列選項的支援:
    • SO_TIMEOUT
    • TCP_NODELAY
    • SO_LINGER
    • SO_BINDADDR
    • SO_REUSEADDR
    • SO_BROADCAST
    • SO_SNDBUF
    • SO_RCVBUF
    • SO_KEEPALIVE
    • SO_OOBINLINE
    在執行時期,會在 RDMA Socket 層次處理下列選項:
    • SO_BINDADDR
    • SO_REUSEADDR
    • SO_SNDBUF
    • SO_RCVBUF
    附註: 在 Socket 建立之後,但在該 Socket 上進行連接或連結作業之前, SO_SNDBUFSO_RCVBUF 立即生效。
    對於其餘 Socket 選項, JSOR 執行時期會回復到 TCP/IP 實作。
開始服務更新 2 修正套件 10 的變更對於 NIO 串流 Socket 應用程式,支援下列 Java 類別:
  • java.nio.channels.SocketChannel
  • java.nio.channels.ServerSocketChannel
  • java.nio.channels.Selector
服務更新 2 修正套件 10 的變更結束

如果要管理 Socket 傳送和接收緩衝區大小,請使用 JSOR 所包含的 Java 環境變數。 如需相關資訊,請參閱 JSOR 環境設定 (僅限Linux )