java - 并发写入 titan DB 以提高性能

标签 java multithreading concurrency cassandra titan

像 Cassandra 那样并发写入 Titan DB 的方式是什么?我使用 Titan 和 Cassandra 作为数据存储。总的来说,我想并行写入数据库,以便提高性能。

我尝试使用 java 多线程执行此操作,但遇到锁定异常。

最佳答案

这个问题是在 Aurelius Graphs 邮件列表中提出的:

https://groups.google.com/d/msg/aureliusgraphs/LbOx0wKhULc/j2wQuBtRqTQJ

当然,欢迎其他答案,但以下是我在该交流中的回答摘要:

您可以使用多线程、多个 JVM 处理等以并行方式写入 Titan。但是,如果您的 Titan 模式使用锁来强制唯一性,那么您将不可避免地遇到锁定异常。有两种方法可以解决这个问题:

  1. 自行删除锁并管理唯一性一致性:http://s3.thinkaurelius.com/docs/titan/0.5.4/eventual-consistency.html
  2. 保持锁定启用状态并将事务重试添加到您的代码中。您还可以考虑较小的提交,以使锁保持打开状态的时间尽可能短,从而防止进一步的锁争用。

关于java - 并发写入 titan DB 以提高性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29384680/

相关文章:

java - 如何在不使用 GPS 的情况下以编程方式检测 android 设备当前所在的国家/地区?

java - B树修订

Java 线程对象

java - 同步(对象) { } 问题

java - Android:手动更改日期DatePicker

java - 如何使用 JiBX 读取 XML 文档?

java ThreadPoolExecutor 无法创建 native 线程

c# - 从另一个线程停止线程

c# - 无法安全锁定 ConcurrentDictionary 的值

concurrency - .race 或 .hyper 何时优于非数据并行化版本?