Advanced Configuration Options
Server configuration with YAML
If you need to fine-tune your Gremlin server configuration with advanced options,
you can use a YAML configuration file.
To start Docker with both a YAML Gremlin server configuration file and an Aerospike Graph configuration
file, place both files in a directory and pass the directory path to the Docker run
command. The Aerospike Graph configuration file must be named firefly-graph.properties
and the
Gremlin server configuration file must be named firefly-gremlin-server.yaml
.
In the following Docker run
command example, the two files are located in a directory
with the path /home/graph-user/graph/conf
.
docker run -p 8182:8182 -v /home/graph-user/graph/conf:/opt/aerospike-firefly/conf \
aerospike/aerospike-graph-service
An example Aerospike Graph configuration file is shown in the previous section. An example Gremlin server configuration file is shown below.
The graphs
key-value pair is required, and should show the path to the configuration
file within the Docker container which was included with the Docker run
command.
host: 0.0.0.0
port: 8182
evaluationTimeout: 10000
channelizer: org.apache.tinkerpop.gremlin.server.channel.WebSocketChannelizer
graphs: {
graph: /opt/aerospike-firefly/conf/firefly-graph.properties}
scriptEngines: {
gremlin-groovy: {
plugins: { org.apache.tinkerpop.gremlin.server.jsr223.GremlinServerGremlinPlugin: {},
org.apache.tinkerpop.gremlin.tinkergraph.jsr223.TinkerGraphGremlinPlugin: {},
org.apache.tinkerpop.gremlin.jsr223.ImportGremlinPlugin: {classImports: [java.lang.Math], methodImports: [java.lang.Math#*]},
org.apache.tinkerpop.gremlin.jsr223.ScriptFileGremlinPlugin: {files: [scripts/empty-sample.groovy]}}}}
serializers:
- { className: org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerV3d0, config: { ioRegistries: [org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerIoRegistryV3d0] }} # application/json
- { className: org.apache.tinkerpop.gremlin.driver.ser.GraphBinaryMessageSerializerV1 } # application/vnd.graphbinary-v1.0
- { className: org.apache.tinkerpop.gremlin.driver.ser.GraphBinaryMessageSerializerV1, config: { serializeResultToString: true }} # application/vnd.graphbinary-v1.0-stringd
processors:
- { className: org.apache.tinkerpop.gremlin.server.op.session.SessionOpProcessor, config: { sessionTimeout: 28800000 }}
- { className: org.apache.tinkerpop.gremlin.server.op.traversal.TraversalOpProcessor, config: { cacheExpirationTime: 600000, cacheMaxSize: 1000 }}
metrics: {
consoleReporter: {enabled: true, interval: 180000},
csvReporter: {enabled: true, interval: 180000, fileName: /tmp/gremlin-server-metrics.csv},
jmxReporter: {enabled: true},
slf4jReporter: {enabled: true, interval: 180000}}
strictTransactionManagement: false
idleConnectionTimeout: 0
keepAliveInterval: 0
maxInitialLineLength: 4096
maxHeaderSize: 8192
maxChunkSize: 8192
maxContentLength: 10485760
maxAccumulationBufferComponents: 1024
resultIterationBatchSize: 64
writeBufferLowWaterMark: 32768
writeBufferHighWaterMark: 65536
ssl: {
enabled: false}
You can find a full explanation of the Gremlin server configuration options in the TinkerPop documentation.