4

我们计划使用 Cassandra 和 Titan/JanusGraph db 的组合作为我们其中一个项目的后端。作为其中的一部分,我有以下要求。

Record/Vertex A 和 Record/Vertex B 应该以原子方式写入后端,即要么两条记录都写入,要么都不写入。本质上,我需要多行原子写入。但是,从下面列出的 Titan 和 Cassandra 的文档中,这就是我发现的。

泰坦数据库

Titan 事务不一定是 ACID。它们可以在 BerkleyDB 上进行如此配置,但在 Cassandra 或 HBase 上通常不会如此,因为底层存储系统不提供可序列化的隔离或多行原子写入,并且模拟这些属性的成本会很高

卡桑德拉 2.0

在 Cassandra 中,写入在分区级别是原子的,这意味着在一行中插入或更新列被视为一次写入操作。

卡桑德拉 3.0

在 Cassandra 中,写入操作在分区级别是原子的,这意味着同一分区中两行或多行的插入或更新被视为一次写入操作。

我有以下问题。

1) 我们将 Titan DB 与 Cassandra 2.1.X 一起使用。如果我想实现多行原子性,我该怎么做?有什么解决方案可以实现这一目标吗?

2) 我看到 Cassandra 批处理操作为多个操作提供了原子性?但我在 Titan DB 中没有看到相应的操作来使用此功能。我在这里遗漏了一些东西还是有什么方法可以使用它?

3)由于 Cassandra 在各种应用程序中大量使用,我很确定人们有需要多行原子操作的用例。人们如何解决这个问题?

4) 我看到 Cassandra 3.0 有这个支持。那么当 JanusGraph 开始支持 Casandra 3.0 时(目前它只支持 2.1.x),我应该期待 JanusGraph 的这种支持吗?

4

0 回答 0