当前位置: 首页 > news >正文

Hbase中checkAndPut操作

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

Hbase中Insert和Update操作没有明显的差别。 
如果误操作,是否可以恢复数据? 
方法:通过timeStamp找回数据。

但是,如果我们可以在源头实现,是否更好呢? 
问题: 
客户端1: 
row1: family 1 : qulifier1(1) qulifier2(2) 
客户端2: 
row1: family 1 : qulifier1(-1) qulifier2(-2)

我们想要的结果是:要么是客户端2的结果,要么是客户端1的结果。 
如果在高并发的情况下,会出现中间态,qulifier(1) qulifier(-2) 或者 qulifier(-1) qulifier(2) 
HBase中有个CAS(compare-and-set)操作用来解决这个问题(数据一致性),简单的说CAS操作可以让你在put数据之前先经过某些条件的验证,只有满足条件的put才会入库。

API接口为: 
checkAndPut(byte.md row, byte.md family, byte.md qualifier, byte.md value, Put put) 
其中,put方法的最后一个参数是你需要录入的数据的put对象; 
value是与服务端check的预期值,只有服务器端对应rowkey的数据与你预期的值相同时,你的put操作才能被提交的服务端。

转载于:https://my.oschina.net/sniperLi/blog/915231

相关文章:

  • Cognos11第三方权限认证之OpenDJ
  • Django级联删除的选项
  • QQ浏览器x5内核的兼容性问题
  • 部分保守派呼吁抵制 Mozilla
  • Java(第十一章 )
  • linux经常使用命令
  • 基于maven+dubbo+spring+zookeeper的简单项目搭建
  • C++组合通信
  • 阿里数据库内核月报:2017年02月
  • Facebook 首席安全官建议对 Flash 设定死亡日期
  • 项目期复习:JS操作符,弹窗与调试,凝视,数据类型转换
  • 关于HEXO安装失败的解决方法
  • my sql(二)
  • pip install mysql-connector 安装出错
  • Navicat如何进行搜索筛选
  • C++入门教程(10):for 语句
  • GraphQL学习过程应该是这样的
  • Javascripit类型转换比较那点事儿,双等号(==)
  • JavaScript标准库系列——Math对象和Date对象(二)
  • Python - 闭包Closure
  • spring security oauth2 password授权模式
  • SpringCloud集成分布式事务LCN (一)
  • Transformer-XL: Unleashing the Potential of Attention Models
  • underscore源码剖析之整体架构
  • Webpack 4x 之路 ( 四 )
  • 构建工具 - 收藏集 - 掘金
  • 可能是历史上最全的CC0版权可以免费商用的图片网站
  • 容器服务kubernetes弹性伸缩高级用法
  • 试着探索高并发下的系统架构面貌
  • 学习笔记DL002:AI、机器学习、表示学习、深度学习,第一次大衰退
  • 异步
  • 【干货分享】dos命令大全
  • ​configparser --- 配置文件解析器​
  • ​插件化DPI在商用WIFI中的价值
  • ###C语言程序设计-----C语言学习(3)#
  • #mysql 8.0 踩坑日记
  • (机器学习-深度学习快速入门)第三章机器学习-第二节:机器学习模型之线性回归
  • (南京观海微电子)——COF介绍
  • (七)Java对象在Hibernate持久化层的状态
  • (三)docker:Dockerfile构建容器运行jar包
  • (深入.Net平台的软件系统分层开发).第一章.上机练习.20170424
  • (原)记一次CentOS7 磁盘空间大小异常的解决过程
  • .NET 8 编写 LiteDB vs SQLite 数据库 CRUD 接口性能测试(准备篇)
  • .NET MVC第三章、三种传值方式
  • .NET MVC第五章、模型绑定获取表单数据
  • .Net mvc总结
  • .net 写了一个支持重试、熔断和超时策略的 HttpClient 实例池
  • .NET 中各种混淆(Obfuscation)的含义、原理、实际效果和不同级别的差异(使用 SmartAssembly)
  • .net 重复调用webservice_Java RMI 远程调用详解,优劣势说明
  • .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args
  • .net和jar包windows服务部署
  • .vue文件怎么使用_vue调试工具vue-devtools的安装
  • /proc/vmstat 详解
  • @RequestMapping 的作用是什么?
  • [ C++ ] template 模板进阶 (特化,分离编译)