DynamicRecord - 它是什么?

DynamicRecord - what is it?

当我运行以下查询时:

match (n) return distinct labels(n);

我看到以下错误:

DynamicRecord[396379,used=false,(0),type=-1,data=byte[],start=true,next=-1] not in use

其他人问了怎么处理这种情况。我在问一组不同的问题:Neo4j 中的 DynamicRecord 是什么?而且,如何避免此类错误?

什么是 DynamicRecord

DynamicRecord 的来源是 here。这基本上没用。

总之,我能收集到的是:

  • 它是存储内核中的一个非常低级的结构。
  • A multitude of tests 将其用于一致性检查。
  • 它似乎是一个动态创建的记录(意思是,在 运行 时间 - 不存储在磁盘上),它可以表示不同类型的数据(属性 块、模式、等等)

这在很大程度上也是无用的。我知道。

如何避免此类错误。

这似乎是一个非常普遍的错误,但大多数在线资源(Github 问题/SO 问题)似乎都与数据库升级有关。一些人指出对 DynamicRecord 使用的一些常量的更改在升级后会产生数据损坏。

基于此,我猜测以下步骤可以防止此类错误:

  • 备份您的数据。
  • 升级时正确迁移数据。
  • 不要对相同的数据使用不同版本的 neo。

你猜对了 - 这也没什么用,但我希望有聊胜于无。