HBase的ACID http://hbase.apache.org/acid-semantics.html
来源:互联网 发布:尤克里里 调音软件 编辑:程序博客网 时间:2024/06/07 17:46
HBase的ACID
HBase不是一个ACID完整的数据库,然而HBase还是保证很多ACID的特性
1.ACID的定义:
原子性,一个操作是原子的则这个操作或者全部完成,或者不完成。
一致性,所有对表的操作都会使表从一个状态变成另一个状态。
隔离性,并发操作都是互不影响的。
持久性,任何在客户端显示‘操作成功’的操作说明数据肯定不会丢失。
另外HBase还有一个特性就是,如果一个更新操作被提交了,那么所有后续的读操作都是看到这个更新操作的影响。
2.HBase对ACID的支持:
2.1对原子性的支持
所有的改变的操作在一个行级内生效,所有的put操作会整个成功或者整个不成功。如果一次对多行进行操作,那么HBase将会返回一个各个行执行结果的列表。另外,对于一行来说,比如一个操作是“a=1,b=1,c=1”,另一个操作是“a=2,b=2,c=2”,那么这行的结果会是“a=1,b=1,c=1”或是“a=2,b=2,c=2”而绝对不会是像“a=1,b=2,c=1”这样的结果。
2.2对一致性和隔离性的支持
对一个整行的操作1、2、3、4、5,这个操作的结果只会是操作1到操作5之间的一个。
对于scan操作,一个scan操作总会反映这个scan操作开始的时候的时间点的数据展示,
例如,一个客户端A写数据X,任何客户端B的scan操作都会展示X,一个scan操作必须反映所有优先于这个scan操作的commit,也就是和关系数据库的read committed隔离级别一样。
2.3对持久性的支持
所有可见的数据都是持久化的数据,也就是说,一个读操作永远不会返回没有在持久在硬盘的数据。所有返回‘操作成功’的操作都是会将数据持久化的,所有返回‘操作失败’的操作都不会让数据持久化。
2.4其他特性
当一个客户端收到‘操作成功’的信号时,这个成功的状态也会被其他客户端知晓。如果一系列的对一行的操作发生时,任何并发的读操作会返回这一系列操作之一的状态。
- HBase的ACID http://hbase.apache.org/acid-semantics.html
- HBase内部的ACID
- HBase架构 http://hbase.apache.org/book.html#_architecture
- ACID
- ACID
- ACID
- ACID
- acid
- ACID
- ACID
- ACID
- ACID
- ACID
- ACID
- ACID
- ACID
- 【HBase】org.apache.hadoop.hbase包及其类的说明
- hbase org.apache.hadoop.hbase.ClockOutOfSyncException
- EI Capitan下Sequel Pro无法通过SSH连接MySQL的解决方法
- raytrace 算法理论与实践
- Matlab中的括号 () [] {}
- Android 增量更新APK
- 我所记录的git命令(非常实用)
- HBase的ACID http://hbase.apache.org/acid-semantics.html
- Java中数组和集合容器的剖析
- 指针与数组
- 【IOS 开发学习总结-OC-8.1】★★ objective-c面向对象之——类和对象(上)
- Linux signal() 信号处理函数
- Hebb假设
- 正则表达式的继续学习
- 在 Zend Studio 12.5 里下断点调试运行 PHP 源代码
- getParent()的妙用:cocos中层级的编辑