diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml
index 0c90c1e451..efc26862ad 100644
--- a/docker/docker-compose.yml
+++ b/docker/docker-compose.yml
@@ -22,18 +22,22 @@ services:
image: hugegraph/pd
container_name: pd
hostname: pd
- network_mode: host
+ ports:
+ - "8620:8620"
healthcheck:
- test: ["CMD", "curl", "-f", "http://localhost:8620"]
+ test: ["CMD", "curl", "-f", "http://localhost:8620/v1/health"]
interval: 10s
timeout: 5s
retries: 3
+ volumes:
+ - ./pd-conf:/hugegraph-pd/conf
store:
image: hugegraph/store
container_name: store
hostname: store
- network_mode: host
+ ports:
+ - "8520:8520"
depends_on:
pd:
condition: service_healthy
@@ -42,12 +46,17 @@ services:
interval: 10s
timeout: 5s
retries: 3
+ volumes:
+ - ./store-conf/application.yml:/hugegraph-store/conf/application.yml
server:
image: hugegraph/server
container_name: server
hostname: server
- network_mode: host
+ ports:
+ - "8080:8080"
+ environment:
+ - hugegraph.pd.peers=pd:8686
depends_on:
store:
condition: service_healthy
@@ -56,3 +65,5 @@ services:
interval: 10s
timeout: 5s
retries: 3
+ volumes:
+ - ./server-conf:/hugegraph-server/conf
diff --git a/docker/pd-conf/application.yml b/docker/pd-conf/application.yml
new file mode 100644
index 0000000000..81115d5dac
--- /dev/null
+++ b/docker/pd-conf/application.yml
@@ -0,0 +1,72 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+spring:
+ application:
+ name: hugegraph-pd
+
+management:
+ metrics:
+ export:
+ prometheus:
+ enabled: true
+ endpoints:
+ web:
+ exposure:
+ include: "*"
+
+logging:
+ config: 'file:./conf/log4j2.xml'
+# TODO: handle the license file later (PDConfig)
+license:
+ verify-path: ./conf/verify-license.json
+ license-path: ./conf/hugegraph.license
+grpc:
+ port: 8686
+ host: pd
+
+server:
+ # REST service port number
+ port: 8620
+
+pd:
+ data-path: ./pd_data
+ patrol-interval: 1800
+ initial-store-count: 1
+ initial-store-list: store:8500
+
+raft:
+ address: pd:8610
+ peers-list: pd:8610
+
+store:
+ # The time when the store went offline. After that time, the store is considered permanently unavailable, and the replica is allocated to another machine, in seconds
+ max-down-time: 172800
+ # Specifies whether to enable store monitoring data storage
+ monitor_data_enabled: true
+ # The interval between monitoring data, minute, hour, second
+ # default: 1 min * 1 day = 1440
+ monitor_data_interval: 1 minute
+ # Retention time of monitoring data is 1 day; day, month, year
+ monitor_data_retention: 1 day
+
+partition:
+ # Default number of replicas per partition
+ default-shard-count: 1
+ # The default maximum number of replicas per machine
+ # the initial number of partitions= store-max-shard-count * store-number / default-shard-count
+ store-max-shard-count: 12
diff --git a/docker/pd-conf/application.yml.template b/docker/pd-conf/application.yml.template
new file mode 100644
index 0000000000..8b8f0d63c5
--- /dev/null
+++ b/docker/pd-conf/application.yml.template
@@ -0,0 +1,72 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+spring:
+ application:
+ name: hugegraph-pd
+logging:
+ config: file:./conf/log4j2.xml
+
+management:
+ metrics:
+ export:
+ prometheus:
+ enabled: true
+ endpoints:
+ web:
+ exposure:
+ include: "*"
+
+grpc:
+ port: $GRPC_PORT$
+ # grpc's service address,
+ # Note: You need to change to the local actual Iv 4 address when deploying.
+ host: $GRPC_HOST$
+ netty-server:
+ max-inbound-message-size: 100MB
+
+server:
+ port : $SERVER_PORT$
+
+pd:
+ # Cluster ID: to distinguish different PD clusters
+
+ patrol-interval: 2147483647
+ data-path: $PD_DATA_PATH$
+
+raft:
+ address: $RAFT_ADDRESS$
+ # raft cluster
+ peers-list: $RAFT_PEERS_LIST$
+ # The interval between snapshot generation, in seconds
+ snapshotInterval: 300
+ metrics: true
+store:
+ # If the store heartbeat timeout period exceeds this time, the store is temporarily unavailable and the leader is transferred to another replica in seconds
+ keepAlive-timeout: 60
+ # The time when the store went offline. After that time, the store is considered permanently unavailable, and the replica is allocated to another machine, in seconds
+ max-down-time: 1800
+partition:
+ # The default total number of partitions
+ default-total-count: 30
+ # Default number of replicas per partition
+ default-shard-count: 3
+
+discovery:
+ # After the client registers, the maximum number of heartbeats is not reached, and after that, the
+ previous registration information will be deleted
+ heartbeat-try-count: 3
diff --git a/docker/pd-conf/log4j2.xml b/docker/pd-conf/log4j2.xml
new file mode 100644
index 0000000000..a804948703
--- /dev/null
+++ b/docker/pd-conf/log4j2.xml
@@ -0,0 +1,135 @@
+
+
+
+
+
+
+
+ logs
+ hugegraph-pd
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docker/pd-conf/verify-license.json b/docker/pd-conf/verify-license.json
new file mode 100644
index 0000000000..868ccbebbb
--- /dev/null
+++ b/docker/pd-conf/verify-license.json
@@ -0,0 +1,6 @@
+{
+ "subject": "hugegraph-license",
+ "public_alias": "publiccert",
+ "store_ticket": "803b6cc3-d144-47e8-948f-ec8b39c8881e",
+ "publickey_path": "/public-certs.store"
+}
diff --git a/docker/server-conf/computer.yaml b/docker/server-conf/computer.yaml
new file mode 100644
index 0000000000..a3274ec761
--- /dev/null
+++ b/docker/server-conf/computer.yaml
@@ -0,0 +1,39 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# common parameters
+common: {
+ worker_heap: 10000,
+ vertex_input_dir: /data,
+ workers: 51,
+ zookeeper_list: "127.0.0.1:2181",
+ max_edges_per_segment: 10485760,
+ edges_immutable: true,
+ partitions: 255,
+ compute_threads: 5,
+ input_threads: 5,
+ message_async: false,
+ message_queue_size: 1000,
+ message_send_threads: 10,
+ messages_per_segment: 104857600,
+ hugegraph_url: "http://server:8080",
+ hugegraph_name: hugegraph,
+ hugegraph_timeout: 60
+}
+
+env: {
+ computer_home: /home/computer
+}
diff --git a/docker/server-conf/graphs/hugegraph.properties b/docker/server-conf/graphs/hugegraph.properties
new file mode 100644
index 0000000000..7e756bfcba
--- /dev/null
+++ b/docker/server-conf/graphs/hugegraph.properties
@@ -0,0 +1,28 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+gremlin.graph=org.apache.hugegraph.HugeFactory
+backend=hstore
+serializer=binary
+store=hugegraph
+pd.peers=pd:8686
+task.scheduler_type=local
+task.schedule_period=10
+task.retry=0
+task.wait_timeout=10
+search.text_analyzer=jieba
+search.text_analyzer_mode=INDEX
diff --git a/docker/server-conf/gremlin-driver-settings.yaml b/docker/server-conf/gremlin-driver-settings.yaml
new file mode 100644
index 0000000000..7ef456e5b0
--- /dev/null
+++ b/docker/server-conf/gremlin-driver-settings.yaml
@@ -0,0 +1,25 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+hosts: [server]
+port: 8182
+serializer: {
+ className: org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerV1d0,
+ config: {
+ serializeResultToString: false,
+ ioRegistries: [org.apache.hugegraph.io.HugeGraphIoRegistry]
+ }
+}
diff --git a/docker/server-conf/gremlin-server.yaml b/docker/server-conf/gremlin-server.yaml
new file mode 100644
index 0000000000..32135163fd
--- /dev/null
+++ b/docker/server-conf/gremlin-server.yaml
@@ -0,0 +1,127 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# host and port of gremlin server, need to be consistent with host and port in rest-server.properties
+#host: 127.0.0.1
+#port: 8182
+
+# timeout in ms of gremlin query
+evaluationTimeout: 30000
+
+channelizer: org.apache.tinkerpop.gremlin.server.channel.WsAndHttpChannelizer
+# don't set graph at here, this happens after support for dynamically adding graph
+graphs: {
+}
+scriptEngines: {
+ gremlin-groovy: {
+ staticImports: [
+ org.opencypher.gremlin.process.traversal.CustomPredicates.*',
+ org.opencypher.gremlin.traversal.CustomFunctions.*
+ ],
+ plugins: {
+ org.apache.hugegraph.plugin.HugeGraphGremlinPlugin: {},
+ org.apache.tinkerpop.gremlin.server.jsr223.GremlinServerGremlinPlugin: {},
+ org.apache.tinkerpop.gremlin.jsr223.ImportGremlinPlugin: {
+ classImports: [
+ java.lang.Math,
+ org.apache.hugegraph.backend.id.IdGenerator,
+ org.apache.hugegraph.type.define.Directions,
+ org.apache.hugegraph.type.define.NodeRole,
+ org.apache.hugegraph.masterelection.GlobalMasterInfo,
+ org.apache.hugegraph.util.DateUtil,
+ org.apache.hugegraph.traversal.algorithm.CollectionPathsTraverser,
+ org.apache.hugegraph.traversal.algorithm.CountTraverser,
+ org.apache.hugegraph.traversal.algorithm.CustomizedCrosspointsTraverser,
+ org.apache.hugegraph.traversal.algorithm.CustomizePathsTraverser,
+ org.apache.hugegraph.traversal.algorithm.FusiformSimilarityTraverser,
+ org.apache.hugegraph.traversal.algorithm.HugeTraverser,
+ org.apache.hugegraph.traversal.algorithm.JaccardSimilarTraverser,
+ org.apache.hugegraph.traversal.algorithm.KneighborTraverser,
+ org.apache.hugegraph.traversal.algorithm.KoutTraverser,
+ org.apache.hugegraph.traversal.algorithm.MultiNodeShortestPathTraverser,
+ org.apache.hugegraph.traversal.algorithm.NeighborRankTraverser,
+ org.apache.hugegraph.traversal.algorithm.PathsTraverser,
+ org.apache.hugegraph.traversal.algorithm.PersonalRankTraverser,
+ org.apache.hugegraph.traversal.algorithm.SameNeighborTraverser,
+ org.apache.hugegraph.traversal.algorithm.ShortestPathTraverser,
+ org.apache.hugegraph.traversal.algorithm.SingleSourceShortestPathTraverser,
+ org.apache.hugegraph.traversal.algorithm.SubGraphTraverser,
+ org.apache.hugegraph.traversal.algorithm.TemplatePathsTraverser,
+ org.apache.hugegraph.traversal.algorithm.steps.EdgeStep,
+ org.apache.hugegraph.traversal.algorithm.steps.RepeatEdgeStep,
+ org.apache.hugegraph.traversal.algorithm.steps.WeightedEdgeStep,
+ org.apache.hugegraph.traversal.optimize.ConditionP,
+ org.apache.hugegraph.traversal.optimize.Text,
+ org.apache.hugegraph.traversal.optimize.TraversalUtil,
+ org.opencypher.gremlin.traversal.CustomFunctions,
+ org.opencypher.gremlin.traversal.CustomPredicate
+ ],
+ methodImports: [
+ java.lang.Math#*,
+ org.opencypher.gremlin.traversal.CustomPredicate#*,
+ org.opencypher.gremlin.traversal.CustomFunctions#*
+ ]
+ },
+ org.apache.tinkerpop.gremlin.jsr223.ScriptFileGremlinPlugin: {
+ files: [scripts/empty-sample.groovy]
+ }
+ }
+ }
+}
+serializers:
+ - {className: org.apache.tinkerpop.gremlin.driver.ser.GraphBinaryMessageSerializerV1,
+ config: {
+ serializeResultToString: false,
+ ioRegistries: [org.apache.hugegraph.io.HugeGraphIoRegistry]
+ }
+ }
+ - {className: org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerV1d0,
+ config: {
+ serializeResultToString: false,
+ ioRegistries: [org.apache.hugegraph.io.HugeGraphIoRegistry]
+ }
+ }
+ - {className: org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerV2d0,
+ config: {
+ serializeResultToString: false,
+ ioRegistries: [org.apache.hugegraph.io.HugeGraphIoRegistry]
+ }
+ }
+ - {className: org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerV3d0,
+ config: {
+ serializeResultToString: false,
+ ioRegistries: [org.apache.hugegraph.io.HugeGraphIoRegistry]
+ }
+ }
+metrics: {
+ consoleReporter: {enabled: false, interval: 180000},
+ csvReporter: {enabled: false, interval: 180000, fileName: ./metrics/gremlin-server-metrics.csv},
+ jmxReporter: {enabled: false},
+ slf4jReporter: {enabled: false, interval: 180000},
+ gangliaReporter: {enabled: false, interval: 180000, addressingMode: MULTICAST},
+ graphiteReporter: {enabled: false, interval: 180000}
+}
+maxInitialLineLength: 4096
+maxHeaderSize: 8192
+maxChunkSize: 8192
+maxContentLength: 65536
+maxAccumulationBufferComponents: 1024
+resultIterationBatchSize: 64
+writeBufferLowWaterMark: 32768
+writeBufferHighWaterMark: 65536
+ssl: {
+ enabled: false
+}
diff --git a/docker/server-conf/log4j2.xml b/docker/server-conf/log4j2.xml
new file mode 100644
index 0000000000..f1dd7e8395
--- /dev/null
+++ b/docker/server-conf/log4j2.xml
@@ -0,0 +1,144 @@
+
+
+
+
+
+ logs
+ hugegraph-server
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docker/server-conf/remote-objects.yaml b/docker/server-conf/remote-objects.yaml
new file mode 100644
index 0000000000..c3b59ff5da
--- /dev/null
+++ b/docker/server-conf/remote-objects.yaml
@@ -0,0 +1,29 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+hosts: [server]
+port: 8182
+serializer: {
+ className: org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerV1d0,
+ config: {
+ serializeResultToString: false,
+ ioRegistries: [
+ org.apache.hugegraph.io.HugeGraphIoRegistry,
+ org.apache.hugegraph.io.HugeGraphIoRegistry
+ ]
+ }
+}
+
diff --git a/docker/server-conf/remote.yaml b/docker/server-conf/remote.yaml
new file mode 100644
index 0000000000..7ef456e5b0
--- /dev/null
+++ b/docker/server-conf/remote.yaml
@@ -0,0 +1,25 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+hosts: [server]
+port: 8182
+serializer: {
+ className: org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerV1d0,
+ config: {
+ serializeResultToString: false,
+ ioRegistries: [org.apache.hugegraph.io.HugeGraphIoRegistry]
+ }
+}
diff --git a/docker/server-conf/rest-server.properties b/docker/server-conf/rest-server.properties
new file mode 100644
index 0000000000..5798ee6c83
--- /dev/null
+++ b/docker/server-conf/rest-server.properties
@@ -0,0 +1,77 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+# bind url
+# could use '0.0.0.0' or specified (real)IP to expose external network access
+restserver.url=http://0.0.0.0:8080
+#restserver.enable_graphspaces_filter=false
+# gremlin server url, need to be consistent with host and port in gremlin-server.yaml
+#gremlinserver.url=http://127.0.0.1:8182
+
+graphs=./conf/graphs
+
+# The maximum thread ratio for batch writing, only take effect if the batch.max_write_threads is 0
+batch.max_write_ratio=80
+batch.max_write_threads=0
+
+# configuration of arthas
+arthas.telnet_port=8562
+arthas.http_port=8561
+arthas.ip=127.0.0.1
+arthas.disabled_commands=jad
+
+# authentication configs
+# choose 'org.apache.hugegraph.auth.StandardAuthenticator' or
+# 'org.apache.hugegraph.auth.ConfigAuthenticator'
+#auth.authenticator=
+
+# for StandardAuthenticator mode
+#auth.graph_store=hugegraph
+# auth client config
+#auth.remote_url=127.0.0.1:8899,127.0.0.1:8898,127.0.0.1:8897
+
+# for ConfigAuthenticator mode
+#auth.admin_token=
+#auth.user_tokens=[]
+
+# TODO: Deprecated & removed later (useless from version 1.5.0)
+# rpc server configs for multi graph-servers or raft-servers
+#rpc.server_host=127.0.0.1
+#rpc.server_port=8091
+#rpc.server_timeout=30
+
+# rpc client configs (like enable to keep cache consistency)
+#rpc.remote_url=127.0.0.1:8091,127.0.0.1:8092,127.0.0.1:8093
+#rpc.client_connect_timeout=20
+#rpc.client_reconnect_period=10
+#rpc.client_read_timeout=40
+#rpc.client_retries=3
+#rpc.client_load_balancer=consistentHash
+
+# raft group initial peers
+#raft.group_peers=127.0.0.1:8091,127.0.0.1:8092,127.0.0.1:8093
+
+# lightweight load balancing (beta)
+server.id=server-1
+server.role=master
+
+# slow query log
+log.slow_query_threshold=1000
+
+# jvm(in-heap) memory usage monitor, set 1 to disable it
+memory_monitor.threshold=0.85
+memory_monitor.period=2000
diff --git a/docker/store-conf/application-pd.yml b/docker/store-conf/application-pd.yml
new file mode 100644
index 0000000000..0315c4b4fe
--- /dev/null
+++ b/docker/store-conf/application-pd.yml
@@ -0,0 +1,34 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+management:
+ metrics:
+ export:
+ prometheus:
+ enabled: true
+ endpoints:
+ web:
+ exposure:
+ include: "*"
+
+rocksdb:
+ # rocksdb total memory usage, force flush to disk when reaching this value
+ total_memory_size: 32000000000
+ # memtable size used by rocksdb
+ write_buffer_size: 32000000
+ # For each rocksdb, the number of memtables reaches this value for writing to disk.
+ min_write_buffer_number_to_merge: 16
diff --git a/docker/store-conf/application.yml b/docker/store-conf/application.yml
new file mode 100644
index 0000000000..0a9dfa7829
--- /dev/null
+++ b/docker/store-conf/application.yml
@@ -0,0 +1,49 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+pdserver:
+ address: pd:8686
+
+grpc:
+ host: store
+ port: 8500
+ netty-server:
+ max-inbound-message-size: 1000MB
+
+raft:
+ disruptorBufferSize: 1024
+ address: store:8510
+ max-log-file-size: 600000000000
+ snapshotInterval: 1800
+
+server:
+ port: 8520
+
+app:
+ data-path: ./storage
+
+spring:
+ application:
+ name: store-node-grpc-server
+ profiles:
+ active: default
+ include: pd
+
+logging:
+ config: 'file:./conf/log4j2.xml'
+ level:
+ root: info
diff --git a/docker/store-conf/log4j2.xml b/docker/store-conf/log4j2.xml
new file mode 100644
index 0000000000..388d09e2fd
--- /dev/null
+++ b/docker/store-conf/log4j2.xml
@@ -0,0 +1,137 @@
+
+
+
+
+
+
+
+ logs
+ hugegraph-store
+ raft-hugegraph-store
+ audit-hugegraph-store
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+