创建索引并重建索引后,再去删除索引,此时数据不统一

  • nebula 版本:3.6.0
  • 部署方式:云端 / 分布式 / 单机
  • 安装方式:k8s
  • 是否上生产环境:Y / N
  • 硬件信息
    • 磁盘( 推荐使用 SSD)
    • CPU、内存信息
  • 问题的具体描述
    创建索引并重建索引后,再去删除索引,此时数据不统一,执行SHOW TAG INDEXES,删除的索引不在了,但是执行SHOW TAG INDEX STATUS,已经删除的索引信息还在


删除的数据和 schema 一般是在下一个清理周期被清理掉的,你可以过一段时间看看是不是删掉的索引还在。

索引是被删掉了,但是执行

SHOW TAG INDEX STATUS

查询索引状态的时候,还是有之前的数据,这个数据是会被定期删除的吗?我使用的默认配置,现在距离删除索引已经三个小时了

show 理论上就是一个展示的效果。:thinking: 应该是对应的信息还没更新,你试试 24 小时之后看看呢?

这个数据确实一直没有更新,应该算是个bug吧

我不知道你咋使用的,所以我不能判断它是个 bug。你用了 rebuild index 命令,并看过对应的 rebuild job 完成了么。

复现步骤:
1.为tag的属性创建一个索引"test_index_0"

2.重建索引"test_index_0", rebuild job 成功完成

3.删除步骤1创建的索引 “test_index_0”

4.执行SHOW TAG INDEXES,未显示索引"test_index_0"信息,它已被删除

5.执行SHOW TAG INDEX STATUS, 依然显示索引"test_index_0"信息。

sorry,我刚串台了,- -。串到另外一个数据显示不对的帖子了。

show indexes status 应该是记录的是历史信息,即便这个 index 不在了,还是历史还是记录它曾经存在的。 @MuYi 我的理解对么

我这个也有同样问题,我之前建了个没有指定属性的索引,我想再建个指定属性的索引,创建不成功,然后我删掉这个已存在的索引,再建指定属性的索引还是不成功,再建以前存在的索引,报已存在,有没有办法,立即同步数据啊,我想立马再建索引。

创建不成功是因为256长度限制,可以创建了

1 个赞

你的问题和他的不是同一个问题呀,一个是信息展示不统一,一个是 schema 变更之后再重建报已存在。 @MuYi :thinking: 我们这种 schema 删除再创建会报错的设定,需要优化下么?

是的,但他复现的操作,我这边也是一样的:
4.执行SHOW TAG INDEXES,未显示索引"test_index_0"信息,它已被删除
5.执行SHOW TAG INDEX STATUS, 依然显示索引"test_index_0"信息。
我理解的是SHOW TAG INDEX STATUS显示的是执行过rebuild的记录,我其他没有执行rebuild的,都不显示。
我的问题是:
1、删了重建同名索引,建不了,可能删除不是实时的。
2、新建索引长度超256建不了,搜索以往问题,说是3.4.0版本后解决了。

1 个赞

:thinking: 话说索引那么长,感觉不是很必要啊。

你的理解是对滴。show indexes status是历史的rebuild的记录

删除再建,你等个20s的心跳同步时间以后再试试

此话题已在最后回复的 30 天后被自动关闭。不再允许新回复。