-
Notifications
You must be signed in to change notification settings - Fork 197
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
docker容器重启后数据意外丢失 #313
Comments
这里出错的数据只涉及正要修改的数据,或者说数据没写进去,还是80%的数据中有大量的误伤。 TuGraph的行存,感觉应该不会误伤。以及这个能复现么 |
找到了当时的IO监控数据,使用iotop查看到的情况是 主要的负载被视频写入的业务占用了,lgraph_server的进程占据了读取的前4个; |
综合看了一下,主要是2个方面的问题: 2、IO的问题 |
durable参数和optimistic_txn是默认值,conf配置用的是默认的/usr/local/etc/lgraph.json:
docker-compose的配置如下:
关于重启前字段是否完整的情况,因为当时的日志用了merge写入且没有打印具体返回,重启后是对上游的数据进行检查对比的,一般写入是多个字段都不为null时才进行业务写入,以业务节点Video为例,有 |
看您的docker将数据目录挂出来了,不太会和配置有关系。请您复现的时候,注意一下几个点吧,帮助做更多的判断。
|
merge语句的问题有相关的复现了,相关节点schema和merge命令如下
异常的字段为 |
补充一下当时和数据库相关的操作:发生过一次机器迁移,把/var/lib/lgraph/data目录下的数据打包迁移到了重装的新系统,docker和系统配置不变; |
我们尝试复现一下 |
过程是这样的:我把TuGraph和一个dfs文件系统部署在一台机器上,用TuGraph做文件信息管理,当时有测过一些文件上传,数据库没有问题;后来测试的时候有一些视频转流和解码存储的操作,可能有大量io和cpu消耗,当时发现一些非主键或数据量较大的节点扫描命令在TuGraph阻塞住了,最多时可能有20,30条阻塞,就进行了TuGraph容器重启。第二天进行测试的时候发现保存视频信息节点的结束时间endTime字段为空,80%该类节点的endTime值都丢失了

这是当时的机器负载情况
丢失属性的节点写入cypher是merge (n0:video{id:12451}) set n0+={id:12451
,start_time:'2023-10-23 10:12:58',end_time:'2023-10-23 10:15:06'} merge (n1:video{id:12452}) set n1+={id:12452
,start_time:'2023-10-23 10:12:58',end_time:'2023-10-23 10:15:06'},当时执行成功了,但是重启后部分end_time为Null,其他字段正常
docker版本是tugraph-runtime-centos7:3.5.0,已经做了存储挂载。服务器系统是Ubuntu 18.04.5 LTS
The text was updated successfully, but these errors were encountered: