java - Cassandra - 事务支持

标签 java database nosql cassandra

我正在使用 apache cassandra 并处理示例数据插入、检索等工作。

文档非常有限。

我有兴趣了解

  • 我们可以用 cassandra 完全替换 mysql/oracle 之类的关系数据库吗?
  • cassandra 是否支持回滚/提交?
  • cassandra 客户端(thrift/hector)是否支持获取关联对象(我们将一个 super 列的键保存在另一个 super 列族中的对象)?

这对我继续前进有很大帮助。

提前谢谢你。

最佳答案

简短回答:不。

根据设计,Cassandra 重视可用性和分区容错性而不是一致性 1 .基本上,在保持所有三个品质的同时获得可接受的延迟是不可能的:必须牺牲一个品质。这称为 CAP 定理。

在 Cassandra 中可以使用一致性级别配置一致性的数量,但不存在任何回滚语义。即使第一次写入成功,也无法保证您能够回滚更改。

如果你想在 Cassandra 上构建带有事务或锁的应用程序,你可能想看看 Zookeeper,它可以用来提供分布式同步。

您可能已经猜到了,但 Cassandra 没有外键或类似的东西。这必须手动处理。我对 Hector 不是很熟悉,但是更高级别的客户端可以半自动地做到这一点。

您是否可以使用 Cassandra 轻松替换 RDBMS 取决于您的特定用例。在您的用例中(根据您的问题),这样做可能很难。

关于java - Cassandra - 事务支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2976932/

相关文章:

SQL 表性能 - 大表

database - PL/SQL模拟表单POST

MongoDB 嵌套数组查询

Java - 从字符串生成条件

具有 OutOfMemoryError 的 Java Docker 容器

java - 在 servlet 中启动一个新线程

amazon-web-services - DynamoDb 表设计 : Single table or multiple tables

java - Java 中 JSONArray 迭代中的数组

php - mysqldump-git hook-它允许什么?

cassandra - 在运行的集群节点中删除 cassandra-topology.properties 文件的最佳方法