TitanException:无法从存储中获取新的 ID 块
TitanException: could not acquire new ID block from storage
我正在使用带有 HBase 后端的 Titan 1.0,每天创建数亿个顶点和边。
我反复收到以下错误:
TitanException: Could not acquire new ID from storage
经过一些研究,我能够自己生成顶点 ID,但在添加新的边和顶点属性时,我仍然看到分配错误。
我该怎么做才能克服这个问题?
是否可以使用 here 提供的 UUID 设置 Edge 和 属性 id?
它会以某种方式影响查询性能吗?
谢谢
我遇到了类似的错误,我设法修复它的方法是增加每个事务可以使用的 id 块大小。这对我有用:
TitanGraph titanGraph = TitanFactory.open(config);
graph.configuration().setProperty("ids.block-size", idBlockSize);
参考文档 here 说明了以下关于更改 ids.block-size:
Globally reserve graph element IDs in chunks of this size. Setting this too low will make commits frequently block on slow reservation requests. Setting it too high will result in IDs wasted when a graph instance shuts down with reserved but mostly-unused blocks.
经过一番研究,我得出了一些见解。
在 Titan 1.0 上,为每个 ID 块分配设置超时的配置设置被移动,现在称为 ids.authority.wait-time
。
此外,您不能通过本地 Titan 属性文件设置此选项的值——它必须在您的后端(在我的例子中是 HBase)上进行全局更新。
超时的默认值是 0.3 seconds
- 这解释了我们经常失败的原因。设置值后,错误频率大大降低
我正在使用带有 HBase 后端的 Titan 1.0,每天创建数亿个顶点和边。 我反复收到以下错误:
TitanException: Could not acquire new ID from storage
经过一些研究,我能够自己生成顶点 ID,但在添加新的边和顶点属性时,我仍然看到分配错误。
我该怎么做才能克服这个问题? 是否可以使用 here 提供的 UUID 设置 Edge 和 属性 id? 它会以某种方式影响查询性能吗?
谢谢
我遇到了类似的错误,我设法修复它的方法是增加每个事务可以使用的 id 块大小。这对我有用:
TitanGraph titanGraph = TitanFactory.open(config);
graph.configuration().setProperty("ids.block-size", idBlockSize);
参考文档 here 说明了以下关于更改 ids.block-size:
Globally reserve graph element IDs in chunks of this size. Setting this too low will make commits frequently block on slow reservation requests. Setting it too high will result in IDs wasted when a graph instance shuts down with reserved but mostly-unused blocks.
经过一番研究,我得出了一些见解。
在 Titan 1.0 上,为每个 ID 块分配设置超时的配置设置被移动,现在称为 ids.authority.wait-time
。
此外,您不能通过本地 Titan 属性文件设置此选项的值——它必须在您的后端(在我的例子中是 HBase)上进行全局更新。
超时的默认值是 0.3 seconds
- 这解释了我们经常失败的原因。设置值后,错误频率大大降低