像 Cassandra 那样并发写入 Titan DB 的方式是什么?我使用 Titan 和 Cassandra 作为数据存储。总的来说,我想并行写入数据库,以便提高性能。
我尝试使用 java 多线程执行此操作,但遇到锁定异常。
最佳答案
这个问题是在 Aurelius Graphs 邮件列表中提出的:
https://groups.google.com/d/msg/aureliusgraphs/LbOx0wKhULc/j2wQuBtRqTQJ
当然,欢迎其他答案,但以下是我在该交流中的回答摘要:
您可以使用多线程、多个 JVM 处理等以并行方式写入 Titan。但是,如果您的 Titan 模式使用锁来强制唯一性,那么您将不可避免地遇到锁定异常。有两种方法可以解决这个问题:
- 自行删除锁并管理唯一性一致性:http://s3.thinkaurelius.com/docs/titan/0.5.4/eventual-consistency.html或
- 保持锁定启用状态并将事务重试添加到您的代码中。您还可以考虑较小的提交,以使锁保持打开状态的时间尽可能短,从而防止进一步的锁争用。
关于java - 并发写入 titan DB 以提高性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29384680/