cassandra中的ACID,与RDBMS中的事务有何不同?
Cassandra中的ACID标准
Apache Cassandra不遵循具有回滚或锁定机制的ACID(原子性,一致性,隔离性,持久性)事务,而是提供原子,隔离和持久的事务,并具有最终和可调的一致性,使用户可以决定他们希望每个交易的一致性有多强或最终。
作为非关系数据库,Cassandra 不支持联接或外键,因此不提供ACID的一致性。例如,将钱从帐户A转移到B时,帐户中的总数不变。Cassandra在行级别支持原子性和隔离性,但是为了获得高可用性和快速的写入性能而交易事务性隔离性和原子性。
原子性
在Cassandra数据库中,写操作在分区级别上是原子的,这意味着在同一分区中插入或更新两行或更多行被视为一个写操作。在分区级别,删除操作也是原子的。
例如,如果使用复制因子为3的QUORUM写入一致性级别,则数据库会将写入复制到集群中的所有节点,并等待来自两个节点的确认。如果写入在一个节点上失败,但在另一个节点上成功,则Cassandra报告在该节点上复制该写入失败,但是在另一节点上成功复制的写入不会自动回滚。
Cassandra使用客户端时间戳确定对列的最新更新。当请求数据时,最新的时间戳总是胜出,因此,如果多个客户端会话同时更新一行中的同一列,则最新的更新将会被看到。
注意:所有写入的时间戳均为UTC(世界标准时间)。
隔离性
Cassandra的写入和删除操作以完全的行级隔离执行。这意味着对单个节点上单个分区内的行的写操作仅对执行该操作的客户端可见。操作仅限于此范围,直到完成为止。批处理操作中属于给定分区键的所有更新都具有相同的限制。但是,如果批处理操作包含对多个分区的更改,则不会隔离该批处理操作。
持久性
在Cassandra数据库中的写入是持久的。在确认成功之前,所有对副本节点的写操作都会记录在内存和磁盘上的提交日志中。如果在将内存表刷新到磁盘之前发生崩溃或服务器故障,则会在重新启动时重播提交日志,以恢复丢失的所有写操作。除了本地持久性(将数据立即写入磁盘)之外,在其他节点上复制数据也增强了持久性。
您可以管理本地的耐用性,以满足您的使用需求的一致性commitlog_sync在 cassandra.yaml文件。将选项设置为 周期或批处理。
参考
https://docs.datastax.com/en/ddac/doc/datastax_enterprise/dbInternals/dbIntTransactionsDiffer.html
cassandra中的ACID,与RDBMS中的事务有何不同?的更多相关文章
- Redis 中的事务分析,Redis 中的事务可以满足ACID属性吗?
Redis 中的事务 什么是事务 1.原子性(Atomicity) 2.一致性(Consistency) 3.隔离性(Isolation) 4.持久性(Durability) 分析下 Redis 中的 ...
- 地图四叉树一般用在GIS中,在游戏寻路中2D游戏中一般用2维数组就够了
地图四叉树一般用在GIS中,在游戏寻路中2D游戏中一般用2维数组就够了 四叉树对于区域查询,效率比较高. 原理图
- sqlserver 中数据导入到mysql中的方法以及注意事项
数据导入从sql server 到mysql (将数据以文本格式从sqlserver中导出,注意编码格式,再将文本文件导入mysql中): 1.若从slqserver中导出的表中不包含中文采用: bc ...
- 在Myeclipse中提交代码到GitHub中
这需要借助插件Egit,首先就是先下载该插件了,可以再eclipse中下载,也可以在外面下载,下载就不说了.下载地址git://github.com/houyongchao/plugin-Egit.g ...
- SpringMVC 实现POI读取Excle文件中数据导入数据库(上传)、导出数据库中数据到Excle文件中(下载)
读取Excale表返回一个集合: package com.shiliu.game.utils; import java.io.File; import java.io.FileInputStream; ...
- ASP.NET MVC搭建项目后台UI框架—8、将View中选择的数据行中的部分数据传入到Controller中
目录 ASP.NET MVC搭建项目后台UI框架—1.后台主框架 ASP.NET MVC搭建项目后台UI框架—2.菜单特效 ASP.NET MVC搭建项目后台UI框架—3.面板折叠和展开 ASP.NE ...
- 【转】Java中try catch finally语句中含有return语句的执行情况(总结版)
Java中try catch finally语句中含有return语句的执行情况(总结版) 有一点可以肯定,finally块中的内容会先于try中的return语句执行,如果finall语句块中也有r ...
- JVM中,对象在内存中的布局
在hotSpot虚拟机中,对象在内存中的布局可以分成对象头.实例数据.对齐填充三部分. 对象头:主要包括: 1.对象自身的运行行元数据,比如哈希码.GC分代年龄.锁状态标志等,这部分长度在32位虚拟机 ...
- 041. asp.net中内容页访问母版页中的控件
母版页运行机制: 用户通过输入内容也的URL来请求某个页面, 获取该页面后, 读取@Page指令, 如果该指令引用了一个母版页, 则也读取该母版页, 如果也是第一次请求这两个页面, 则母版页和被请求的 ...
随机推荐
- CODE FESTIVAL 2017 qual B D 101 to 010(dp)
除非人品好,能碰巧想到思路,否则基本是做不出来dp的,除了那几个经典的dp模型.. 看了几个前几名的代码,还是t神的代码比较清晰.膜tourist 代码的思路和题解思路基本一致..... #inclu ...
- BERT-Pytorch demo初探
https://zhuanlan.zhihu.com/p/50773178 概述 本文基于 pytorch-pretrained-BERT(huggingface)版本的复现,探究如下几个问题: py ...
- 【DCN】端口与地址绑定技术
端口与地址绑定技术 与AM技术不同之处在于,AM端口下绑定的MAC或IP能够通信,不限制绑定的MAC在其它接口下通信. 开启MAC-CPU学习模式 mac-address-learning c ...
- jq常用动画fade slide
https://www.cnblogs.com/sandraryan/ hide(); <div class="box">big box</div> $(' ...
- pytorch lstm crf 代码理解 重点
好久没有写博客了,这一次就将最近看的pytorch 教程中的lstm+crf的一些心得与困惑记录下来. 原文 PyTorch Tutorials 参考了很多其他大神的博客,https://blog.c ...
- UVa 12325 - Zombie's Treasure Chest-[分类枚举]
12325 Zombie’s Treasure Chest Some brave warriors come to a lost village. They are very lucky and fi ...
- navicat for mysql (10038)如何解决
1.授权(youpassword修改为你的密码) #本机登陆mysql: $:mysql -u root -p #改变数据库: mysql>use mysql; #从所有主机: mysql> ...
- 2018-8-10-win10-uwp-win2d-离屏渲染
title author date CreateTime categories win10 uwp win2d 离屏渲染 lindexi 2018-08-10 19:17:19 +0800 2018- ...
- 2018-8-10-C#-写系统日志
title author date CreateTime categories C# 写系统日志 lindexi 2018-08-10 19:16:53 +0800 2018-2-13 17:23:3 ...
- HDU 6662 Acesrc and Travel (换根dp)
Problem Description Acesrc is a famous tourist at Nanjing University second to none. During this sum ...