Go from ... over [email protected]

强烈需要增加功能,访问最大/小rank的边,而不是每次导入新的rank数据就更新GQL

@xuguruogu 非常感谢您的反馈!Nebula 最近对论坛做了中英文的区分,这里是英文论坛,您可以去中文论坛:https://discuss.nebula-graph.com.cn 提问,我们的 on-call 小伙伴将会在那里及时回复您的问题。 感谢!

您好,感谢您提出的问题,这个功能我们需要评估是否要做,我们尽快评估回复你!

而不是每次导入新的rank数据就更新GQL

我猜你这里是不是把 rank值作为过滤条件了?

可以yield ranking,然后排序

这里把rank作为版本号。期望的是批量更新数据后无需更新SQL即可访问到最新版本的数据。

此外:强烈建议可以选择最多保留几个版本的数据。比如写入四份数据进去,则自动淘汰第一版数据。考虑一下

这个过期淘汰是个挺好的feature

这里把rank作为版本号。期望的是批量更新数据后无需更新SQL即可访问到最新版本的数据。

拿 rank 的最大值,这个我们在评估是否要支持这样的语法。

此外:强烈建议可以选择最多保留几个版本的数据。比如写入四份数据进去,则自动淘汰第一版数据。考虑一下

nebula 现在是支持 TTL 功能,你可以考虑你们更新数据的周期,然后用这个功能,比如你们每天写一个版本,第一个版本是星期一写的,然后你们希望保留5个版本,那么用于做 TTL 的字段可以设置为写入的时间再加6天的秒数,这样第6天插入数据就可以自动把第一天的清除掉,这只是个例子。可以看下你们业务可以通过使用 TTL 功能。感谢您的提问。

TTL并不是万能的。如果数据刷新周期由周改为天,相应的过期改动会很危险。如果数据生产者出现故障,导致一段时间没有新数据导入,此时会产生所有数据都无法访问的故障。 :grinning:

@jude-zhu

这个只是个例子,真正使用看业务,假如您觉得不能用。这个需求我们会考虑的,评估之后会回复您的。

此外:强烈建议可以选择最多保留几个版本的数据。比如写入四份数据进去,则自动淘汰第一版数据。考虑一下

请问下您现在的实现方式是?

这个可以做,不过我个人倾向于当一个edge的四元组都相同的时候,只保留一定数量的版本。(storage内部是有个版本号的,只不过目前没有对外暴露),如果用rank当作版本号可能其他的构图设计会有其他问题。

这个版本号不是用来标识schema id变更的么

1 Like

其实其他思路也是可以的,比如可以配置rank 小于 某个value时会被compact掉。这样类似于按照rank整体删除某版本数据。

key和value里各有一个版本号,key里的是多版本,value里的是schema版本