Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(clustertest): add basic MiniCluster module for distributed system #2615

Merged
merged 51 commits into from
Oct 15, 2024
Merged
Show file tree
Hide file tree
Changes from 14 commits
Commits
Show all changes
51 commits
Select commit Hold shift + click to select a range
1c3794f
fix(server): Random generate default jwt secret key
HJ-Young Jul 2, 2024
1460469
fix(server): random generate default jwt secret key
HJ-Young Jul 5, 2024
9840c7c
Merge branch 'apache:master' into master
HJ-Young Jul 5, 2024
85c2b6d
Apply suggestions from code review
imbajin Jul 13, 2024
f3199fa
Merge branch 'apache:master' into master
HJ-Young Jul 19, 2024
d43da0b
Merge branch 'apache:master' into master
HJ-Young Aug 4, 2024
0d50758
feat(it): add basic miniCluster supports SimpleEnv
HJ-Young Aug 4, 2024
d7d3fc7
feat(it): add dist to generate configuration files
HJ-Young Aug 7, 2024
c21c936
chore(it): move the path in Env Object to ClusterConstant
HJ-Young Aug 8, 2024
ab08c68
chore(it): move the path in Env Object to ClusterConstant
HJ-Young Aug 8, 2024
1c44444
Merge branch 'apache:master' into master
HJ-Young Aug 8, 2024
efa6c9c
chore(it): move the path in Env Object to ClusterConstant
HJ-Young Aug 8, 2024
92a8001
Merge remote-tracking branch 'origin/master'
HJ-Young Aug 8, 2024
1ef2cd0
feat(it): add the config and implement of multiEnv
HJ-Young Aug 9, 2024
530f3ea
feat(it): amend the implement of reading configuration files
HJ-Young Aug 16, 2024
ce20f44
fix(it): fix the bug of coping wrong node dir
HJ-Young Aug 17, 2024
31c58f4
fix(it): add configuration files in dist
HJ-Young Aug 17, 2024
3476109
Merge branch 'apache:master' into master
HJ-Young Aug 17, 2024
9f02e27
fix(it): get hugegraph.properties through template file
HJ-Young Aug 17, 2024
1714213
fix(it): add 5s intervals between generation of pd nodes
HJ-Young Aug 18, 2024
16a4347
Merge branch 'apache:master' into master
HJ-Young Aug 18, 2024
7c57f67
Merge branch 'apache:master' into master
HJ-Young Sep 9, 2024
a23ab6f
feat(ct): add test and ci to CT module
HJ-Young Sep 9, 2024
deedb7d
feat(ct): add CI yml file
HJ-Young Sep 9, 2024
7275b67
fix(ct): add dependency to ct-test pom
HJ-Young Sep 9, 2024
4dfea30
fix(ct): delete unused pom dependencies
HJ-Young Sep 9, 2024
2d1896a
fix(ct): fix ci file
HJ-Young Sep 9, 2024
17f96a4
fix(ct): fix ci file
HJ-Young Sep 9, 2024
94a60ba
fix(ct): fix ci file
HJ-Young Sep 11, 2024
956226e
fix(ct): update dependency file
HJ-Young Sep 11, 2024
4fa78c2
fix(ct): add Multi cluster test
HJ-Young Sep 12, 2024
48cfc6e
chore(ct): reformat code & update config files
HJ-Young Sep 23, 2024
80835a3
chore(ct): reformat code style based on code review comment
HJ-Young Sep 25, 2024
1f593d8
fix(ct): resolve dependency problems & add exegesis in BaseTest class
HJ-Young Sep 25, 2024
2f769d7
Merge branch 'apache:master' into master
HJ-Young Sep 25, 2024
dd0bbd6
fix(ct): use different Logger to record log
HJ-Young Oct 6, 2024
6d391f6
Merge branch 'apache:master' into master
HJ-Young Oct 6, 2024
57d39ad
fix(ct): sync new commit
HJ-Young Oct 6, 2024
7ca4c8a
Apply suggestions from code review
HJ-Young Oct 8, 2024
69b7623
fix(ct): update code based on comments
HJ-Young Oct 8, 2024
359b832
fix(ct): fix pom file problem
HJ-Young Oct 9, 2024
82d3dd3
fix(ct): update pom.xml
HJ-Young Oct 9, 2024
981d572
fix code
imbajin Oct 9, 2024
ab3d76c
Apply suggestions from code review
HJ-Young Oct 10, 2024
436c2ac
fix(ct): fix code style problems
HJ-Young Oct 10, 2024
d916ad8
Merge branch 'apache:master' into master
HJ-Young Oct 10, 2024
2896c07
fix(ct): update hg-client version
HJ-Young Oct 13, 2024
584c79b
fix(ct): simplify the dist
HJ-Young Oct 14, 2024
cf6994d
fix(ct): simplify the dist
HJ-Young Oct 14, 2024
e677136
fix(ct): simplify the dist
HJ-Young Oct 14, 2024
b4f451d
fix(ct): fix server config file path
HJ-Young Oct 14, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
78 changes: 78 additions & 0 deletions hugegraph-it/hg-it-dist/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
<?xml version="1.0" encoding="UTF-8"?>
HJ-Young marked this conversation as resolved.
Show resolved Hide resolved
<!--
~ 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.
-->

<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://maven.apache.org/POM/4.0.0"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.apache.hugegraph</groupId>
<artifactId>hugegraph-it</artifactId>
<version>${revision}</version>
<relativePath>../pom.xml</relativePath>
</parent>

<artifactId>hg-it-dist</artifactId>

<properties>
<dist.dir>${project.parent.basedir}</dist.dir>
<shell-executable>bash</shell-executable>
<assembly.dir>${project.basedir}/src/assembly</assembly.dir>
<assembly.descriptor.dir>${assembly.dir}/descriptor</assembly.descriptor.dir>
<assembly.static.dir>${assembly.dir}/static</assembly.static.dir>
<executable.jar.name>hg-it</executable.jar.name>
</properties>

<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.4</version>
<executions>
<execution>
<id>assembly-hugegraph-it</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<attach>false</attach>
<appendAssemblyId>false</appendAssemblyId>
<outputDirectory>${dist.dir}</outputDirectory>
<descriptors>
<descriptor>
${assembly.descriptor.dir}/assembly.xml
</descriptor>
</descriptors>
<finalName>${final.name}</finalName>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>

<dependencies>
<dependency>
<groupId>org.apache.hugegraph</groupId>
<artifactId>hg-it-minicluster</artifactId>
<version>${revision}</version>
</dependency>
</dependencies>

</project>
64 changes: 64 additions & 0 deletions hugegraph-it/hg-it-dist/src/assembly/descriptor/assembly.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
<!--
~ 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.
-->

<assembly>
<id>distribution</id>
<includeBaseDirectory>false</includeBaseDirectory>

<formats>
<format>dir</format>
</formats>

<fileSets>
<!-- <fileSet>-->
<!-- <directory>${assembly.static.dir}/bin</directory>-->
<!-- <outputDirectory>bin</outputDirectory>-->
<!-- <includes>-->
<!-- <include>*</include>-->
<!-- </includes>-->
<!-- <fileMode>755</fileMode>-->
<!-- </fileSet>-->
<fileSet>
<directory>${assembly.static.dir}/simple</directory>
<outputDirectory>simple</outputDirectory>
<includes>
<include>**/*</include>
</includes>
</fileSet>
<fileSet>
<directory>${assembly.static.dir}/multi</directory>
<outputDirectory>multi</outputDirectory>
<includes>
<include>**/*</include>
</includes>
</fileSet>
</fileSets>

<dependencySets>
<!-- code jars -->
<dependencySet>
<outputDirectory>/lib</outputDirectory>
<unpack>false</unpack>
<scope>runtime</scope>
<useProjectArtifact>false</useProjectArtifact>
<includes>
<include>org.apache.hugegraph:${executable.jar.name}:jar:*</include>
</includes>
</dependencySet>
</dependencySets>

</assembly>
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
#
# 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'
license:
verify-path: ./conf/verify-license.json
license-path: ./conf/hugegraph.license
grpc:
port: 8686
# grpc 的服务地址,部署时需要改为本地实际 IPv4 地址
host: 127.0.0.1

server:
# rest 服务端口号
port: 8620

pd:
# 存储路径
data-path: ./pd_data
# 自动扩容的检查周期,定时检查每个 store 的分区数量,自动进行分区数量平衡
patrol-interval: 1800
# 初始 store 列表,在列表内的 store 自动激活
initial-store-count: 3
# grpc IP:grpc port
initial-store-list: 127.0.0.1:8500,127.0.0.1:8501,127.0.0.1:8502

raft:
# 本机 raft 服务地址
address: 127.0.0.1:8610
# pd 集群服务地址
peers-list: 127.0.0.1:8610,127.0.0.1:8611,127.0.0.1:8612

store:
# store 下线时间。超过该时间,认为 store 永久不可用,分配副本到其他机器,单位秒
max-down-time: 172800
# 是否开启 store 监控数据存储
monitor_data_enabled: true
# 监控数据的间隔,minute (默认), hour, second
# default: 1 min * 1 day = 1440
monitor_data_interval: 1 minute
# 监控数据的保留时间 1 天; day, month, year
monitor_data_retention: 1 day
initial-store-count: 1

partition:
# 默认每个分区副本数
default-shard-count: 1
# 默认每机器最大副本数,初始分区数 = store-max-shard-count * store-number / default-shard-count
store-max-shard-count: 12

HJ-Young marked this conversation as resolved.
Show resolved Hide resolved
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
#
# 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的服务地址,
#注意:部署时需要改为本地实际IPv4地址。
host: $GRPC_HOST$
netty-server:
max-inbound-message-size: 100MB

server:
port : $SERVER_PORT$

pd:
# 集群ID,区分不同的PD集群

patrol-interval: 2147483647
data-path: $PD_DATA_PATH$

raft:
address: $RAFT_ADDRESS$
# raft集群
peers-list: $RAFT_PEERS_LIST$
# 快照生成时间间隔,单位秒
snapshotInterval: 300
metrics: true
store:
# store心跳超时时间,超过该时间,认为store临时不可用,转移Leader到其他副本,单位秒
keepAlive-timeout: 60
# store下线时间。超过该时间,认为store永久不可用,分配副本到其他机器,单位秒
max-down-time: 1800
partition:
# 默认分区总数
default-total-count: 30
# 默认每个分区副本数
default-shard-count: 3

discovery:
#客户端注册后,无心跳最长次数,超过后,之前的注册信息会被删除
heartbeat-try-count: 3
Binary file not shown.
Loading
Loading