开发者社区 > 数据库 > NoSQL数据库 > 正文

使用spring-data-neo4j加GDB,批量新增关系的时候报错

已解决

报错信息:

LambdaMapStep(lambda)]|errorCode:GRAPHSTORE_ADD_VERTEX_PROPERTY_ERROR|errorMsg:<position - com.alibaba.graphdb.property.GraphStoreTxn.addVertexProperties(Native Method) reason - com.alibaba.graphdb.property.GraphStoreException: Operation timed out: Timeout waiting to lock key 环境:spring-data-neo4j,版本5.2.1 GDB是阿里云的,16G内存的

异步多线程插入关系,关系包含A节点和B节点,可能其他关系插入的时候也用了B节点,那是不是因为GDB在插入关系的时候给节点上锁了呢?那这种异步多线程怎么解决这个锁的问题呢?

展开
收起
游客tcuhwpbyl2u72 2022-06-28 16:04:31 1143 0
1 条回答
写回答
取消 提交回答
  • 采纳回答

    根本原因是因为spring-data的saveAll方法会在插入边的时候更新点,因为neo4j-spring是基于vertex和edge的entity面向对象编程的,但是saveAll时候,框架区分不了哪些本次save变动过,所以一股脑全丢给server了,所以调用saveAll的时候点在更新就触发了锁超时

    2022-06-28 17:57:33
    赞同 展开评论 打赏
问答分类:

相关电子书

更多
云栖社区特邀专家徐雷Java Spring Boot开发实战系列课程(第20讲):经典面试题与阿里等名企内部招聘求职面试技巧 立即下载
微服务架构模式与原理Spring Cloud开发实战 立即下载
阿里特邀专家徐雷Java Spring Boot开发实战系列课程(第18讲):制作Java Docker镜像与推送到DockerHub和阿里云Docker仓库 立即下载