taosdata / TDengine

High-performance, scalable time-series database designed for Industrial IoT (IIoT) scenarios
https://tdengine.com
GNU Affero General Public License v3.0
23.34k stars 4.85k forks source link

java.sql.SQLException: TDengine Error: Invalid Vgroup ID #4319

Closed quchunhui closed 3 years ago

quchunhui commented 3 years ago

Bug Description 集群有3个节点,正在大批量写入数据的过程中,模拟数据的程序如下: https://github.com/quchunhui/java-demo/blob/master/tdengine/src/main/java/com/rexel/tdengine/api/MockData.java

由于taosd占用的系统资源太多了(系统共64个G内存,taosd占用了60多个G),重启了taosd的进程(以前重复过类似的操作,都没有问题),然后就一直提示java.sql.SQLException: TDengine Error: Invalid Vgroup ID,导致模拟数据不能正常进行。

To Reproduce Steps to reproduce the behavior:

  1. 一直通过前面的模拟数据的程序(命令:nohup java -classpath /home/radmin/package/tdengine-1.0-jar-with-dependencies.jar com.rexel.tdengine.api.MockData 1 50 100 "2015-02-01 00:00:00.000" "2017-12-31 23:59:59.999" 5 >/home/radmin/package/java_mock_thread.log &)
  2. 重启其中某一个节点的taosd进程(命令:systemctl restart taosd)

Expected Behavior taosd进程重启过程中,发生短时间的连接失败,重启结束之后,可以正常的插入数据。

Screenshots image

Environment (please complete the following information):

sangshuduo commented 3 years ago

@quchunhui 请问现在写入了多少个数据库多少个表多少条数据?

quchunhui commented 3 years ago

@quchunhui 请问现在写入了多少个数据库多少个表多少条数据?

1个数据库 1个超级表 5000个子表, 数据500多亿(计划模拟写入千亿)

sangshuduo commented 3 years ago

3个节点总共64G内存,是3台物理机吗?还是3台虚拟机或者 docker容器?数据库创建是多副本还是单副本?

quchunhui commented 3 years ago

3个节点总共64G内存,是3台物理机吗?还是3台虚拟机或者 docker容器?数据库创建是多副本还是单副本?

3台物理机,每台机器24核64GB内存 数据库是3副本,16block。

sangshuduo commented 3 years ago

@quchunhui 这是一个已知问题,我们在解决中

sangshuduo commented 3 years ago

@quchunhui  能否提供表的 schema?

blocks 数字可以设少一点,可以减少内存占用,带来的副作用是落盘频率会变快。另外 blocks 数字设成3的倍数比较好。