matrixorigin / matrixorigin/matrixone

[Bug]: sharding performance is poor.

Open
#19,166 23 comments 0 reactions 1 assignee Claimed by @ck89119 View on GitHub
area/partition deferred kind/bug
Dominant language
Go
Stars
1.9k
Forks
311
Avg merge
1d 3h
Merged PRs (30d)
768

Description

### Is there an existing issue for the same bug?

- [X] I have checked the existing issues.

### Branch Name

main

### Commit ID

b0855d26f

### Other Environment Information

```Markdown
- Hardware parameters:
- OS type:
- Others:
```

### Actual Behavior

**5cn,每个cn 100并发sharding的测试结果:**
image

**1cn,100并发无sharding的测试结果:**
企业微信截图_46f9a940-eb8d-4b75-98b3-dab208e77359

### Expected Behavior

_No response_

### Steps to Reproduce

```Markdown
带sharding的测试结果,启动集群配置中,添加cn和dn的配置,cn的副本数配置为5:
cn配置:
[cn.shardservice]
enable = true
dn配置:
[dn.shardservice]
enable = true
max-cn-freeze-time = "5s"
max-schedule-tables = 4

git clone https://github.com/matrixorigin/matrixone.git
cd mo-sysbench
cleanup:
sysbench --mysql-host=172.16.22.5 --mysql-port=6001 --mysql-user=dump --mysql-password=111 oltp_update_index.lua --mysql-db=sysbench_db --tables=1 --table_size=100000 --threads=100 --time=30 --report-interval=10 cleanup

prepare(prepare前需要先创建db:sysbench_db):
sysbench --mysql-host=172.16.22.5 --mysql-port=6001 --mysql-user=dump --mysql-password=111 oltp_update_index.lua --mysql-db=sysbench_db --tables=1 --table_size=100000 --threads=100 --time=30 --report-interval=10 prepare

git clone https://github.com/matrixorigin/mo-load.git

根据5个cn,查找cn对应的uuid,以及table_id,将每个cn的范围设置成对应的shard的范围,然后使用5个mo-load工具同时测试tps,将5个tps相加即为总tps,如测试脚本如有需要,联系我

不带sharding的测试结果
启动集群,cn的副本数配置为1:
git clone https://github.com/matrixorigin/mo-load.git

cd mo-load
vi mo.yaml(修改ip)
cd cases/sysbench/sysbench/update_pk_10_100000_prepare
vi replace.yml(修改shard范围)
./start.sh -c cases/sysbench/update_pk_10_100000_prepare -t 100 -d 1 -b sysbench_db
```

### Additional information

_No response_

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.