Back to Opensearch

Arrow Flight RPC Plugin

plugins/arrow-flight-rpc/README.md

3.6.02.3 KB
Original Source

Arrow Flight RPC Plugin

The Arrow Flight RPC plugin provides streaming transport for node to node communication in OpenSearch using Apache Arrow Flight protocol. It integrates with the OpenSearch Security plugin to provide secure, authenticated streaming with TLS encryption.

Installation and Setup

Development Mode (./gradlew run)

For development using gradle:

  1. Enable feature flag in opensearch.yml:
yaml
opensearch.experimental.feature.transport.stream.enabled: true
  1. Run with plugin:
bash
./gradlew run -PinstalledPlugins="['arrow-flight-rpc']"

Manual Setup

For manual configuration and deployment:

  1. Enable feature flag in opensearch.yml:
yaml
opensearch.experimental.feature.transport.stream.enabled: true
  1. Add system properties and JVM options:
-Dio.netty.allocator.numDirectArenas=1
-Dio.netty.noUnsafe=false
-Dio.netty.tryUnsafe=true
-Dio.netty.tryReflectionSetAccessible=true
--add-opens=java.base/java.nio=org.apache.arrow.memory.core,ALL-UNNAMED
  1. Install and run the plugin manually

Documentation

For detailed usage and architecture information, see the docs folder:

Examples

See the stream-transport-example plugin for a complete example of how to implement streaming transport actions.

Limitations

  • REST Client Support: Arrow Flight streaming is not available for REST API clients. It only works for node-to-node transport within the OpenSearch cluster.