首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >BigTable checkAndMutate原子性

BigTable checkAndMutate原子性
EN

Stack Overflow用户
提问于 2018-01-30 04:46:11
回答 1查看 511关注 0票数 1

https://hbase.apache.org/devapidocs/org/apache/hadoop/hbase/client/Table.html#checkAndMutate-byte:A-byte:A-函数的行为是什么?假设我需要在应用checkAndMutate之前获得行内容。是否有机会从BigTable检索陈旧的数据?如果没有机会检索陈旧的数据,我的想法是好的吗:

  1. 按键获取行内容,
  2. 修改应用程序中的行内容,
  3. 在行上应用checkAndMutate函数。
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-30 06:08:05

CheckAndMutate是原子的。下面是API的定义。您的checkAndMutate应该确保您所关心的单元格的时间戳与#3相同,以确保您正在更新所读取的相同数据。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48521853

复制
相关文章
bigtable是什么_BigTable
Bigtable 是一个用来管理结构化数据的分布式存储系统,具有很好的伸缩性,能够在几千台应用服务器上处理PB数量级数据。谷歌有许多项目都把数据存储在Bigtable中,包括web indexing,Google Earth, and Google Finance. 这些应用对Bigtable的侧重点不同,但是他们都是海量数据和实时性的应用。尽管需求变化多端,Bigtable很好的提供了一个灵活多变,高性能额解决方案。
全栈程序员站长
2022/09/20
1.2K0
bigtable是什么_BigTable
并发编程-原子性
前面我们说了有关stateless的内容,那么如果我们在一个stateless的object中添加一个状态元素会发生什么呢?现在假设我们想要添加一个命中计数器(hit counter),其实就是用来记录处理请求的次数。那么你也许想到了,比较明显的做法就是给这个servlet添加一个long类型的field,然后每次请求都会自动的加1,就像程序清单2.2的UnsafeCountingFactorizer类那样。 强势插入上一期:并发编程-什么是线程安全? 不幸的的是,UnsafeCountingFactori
ImportSource
2018/04/03
1.3K0
并发编程-原子性
java并发-原子性
java.util.concurrent.atomic 包中提供了很多高级的指令,来保证操作的原子性 Atomiclnteger 类提供了方法 incrementAndGet 用来自增
用户2436820
2018/09/05
8530
AtomicReference原子性引用
AtomicReference AtomicReference类提供了一个可以原子读写的对象引用变量。 原子意味着尝试更改相同AtomicReference的多个线程(例如,使用比较和交换操作)不会使AtomicReference最终达到不一致的状态。 AtomicReference甚至有一个先进的compareAndSet()方法,它可以将引用与预期值(引用)进行比较,如果它们相等,则在AtomicReference对象内设置一个新的引用。 AtomicStampReference 安全的修改一个变量的值
开源日记
2021/01/10
1.7K0
go的原子性使用
package main import ( "fmt" "runtime" "sync/atomic" "time" ) func main() { //定义一个整数 var ops uint64 = 0 //使用50个协程给ops累加数值 for i := 0; i < 50; i++ { go func() { //这里是循环多少次未知 for { atomic.AddUint64(&ops, 1) //这个函数用于时间片切换,可以理解为高级版的time.Sleep(),避免前面的for循环将CPU时间片都卡在一个线程里,使得其它线程没有执行机会 //runtime.Gosched()表示让CPU把时间片让给别人,下次某个时候继续恢复执行该goroutine,自己一般是阻塞了,这是一个很高级的sleep,我们经常会遇到要sleep多久的问题,这里不用考虑了,别人完成后,自然会通知你。 runtime.Gosched() } }() } //停一秒,上面50个线程有1秒的执行时间 time.Sleep(time.Second) // 获取结果 opsFinal := atomic.LoadUint64(&ops) fmt.Println("ops:", opsFinal) // var tmpOps int64 = 0 t1 := time.Now().UnixNano() //执行n个线程执行原子操作 for tmpOps < 10000000 { go func() { atomic.AddInt64(&tmpOps, 1) }() } t2 := time.Now().UnixNano() t := t2 - t1 fmt.Println(t) fmt.Println(tmpOps) }
公众号-利志分享
2022/04/25
6150
并发原子性之Atomic
Atomic原子操作类提供了一种用法简单, 性能高效, 线程安全的变量更新方式. 今天就以AtomicInteger为例,看看它是如何做到的. 在AtomicInteger中int值的封装是用vola
一个架构师
2022/06/20
5610
原子性、可见性以及有序性
虚拟机 何为虚拟机呢?虚拟机是模拟执行某种指令集体系结构(ISA)的软件,是对操作系统和硬件的一种抽象。其软件模型如下图所示: 计算机系统的这种抽象类似于面向对象编程(OOP)中的针对接口编程泛型(
xiangzhihong
2018/01/26
1.4K0
Java并发编程-原子性变量
AtomicBoolean 类为我们提供了一个可以用原子方式进行读和写的布尔值,它还拥有一些先进的原子性操作,比如 compareAndSet()。AtomicBoolean 类位于 java.util.concurrent.atomic 包,完整类名是为 java.util.concurrent.atomic.AtomicBoolean。本小节描述的 AtomicBoolean 是 Java 8 版本里的,而不是它第一次被引入的 Java 5 版本。
高广超
2018/12/12
2.5K0
ZooKeeper如何保证事务原子性?
先解答疑惑,题主对ZAB理解是正确的。为了便于描述,本文将事务理解为具有ACID的一组操作,一个ZooKeeper请求(例如:create)称之为提案。
并发笔记
2022/11/21
1K0
ZooKeeper如何保证事务原子性?
操作的原子性与线程安全
本案例来源于java zone社区,由于源代码里面存在一些自己开发的注解,我暂时没找到相关的文档,所以我做了一些修改。用的都是java SDK的API。
FunTester
2019/07/27
1.3K0
linux 系统调用 write 的原子性
开始阅读 nginx 源码的时候就一直伴随着一个问题,那就是多进程的 nginx 模型是怎么保证多个进程同时写入一个文件不发生数据交错呢? 猜想中,主要有以下几种解决方案: 1. 最传统的,正在写文件的进程加锁,其他进程等待,但是这样的情况是绝对不允许的,效率太过低下 2. 写 log 前测试锁状态,如果已经锁定,则写入进程自己的缓冲区中,等待下次调用时同步缓冲区,这样做的好处是无需阻塞,提高了效率,但是就无法做到 log 的实时了,这样做工程中也是绝对无法接受的,一旦发生问题,将无法保证 log 是否已经被写入,因此很难定位 3. 一个进程专门负责写 log,其他进程通过域套接字或者管道将 log 内容发送给他,他持续阻塞在 epoll_wait 上,直到收到信息,立即写入,但是众所周知,nginx 是调用同一个函数启动所有进程的,并没有专门调用函数启动所谓的 log 进程,除了 master 和 worker,nginx 也确实没有 log 进程存在 4. 那么就是进程启动后,全部去竞争某个锁,竞争到该锁的 worker 执行 log worker 的代码,其余的 worker 继续运行相应程序,这个方案看上去是一个不错的方案,如果是单 worker 的话,那么就无需去使用该锁即可
用户3147702
2022/06/27
1.7K0
快速理解HBase和BigTable
有关系行数据库经验的人(比如我),在最初接触HBase这样的数据库时,对数据结构的理解容易遇到障碍。会不自觉的将HBase的行、列等概念映射成关系型数据库的行、列。为了加速理解HBase的一些概念,翻译了这篇文章《Understanding HBase and BigTable》(HBase官方文档推荐阅读文章)。
普通程序员
2019/10/23
1.2K0
快速理解HBase和BigTable
java并发之原子性、可见性、有序性
原子性:即一个操作或者多个操作 要么全部执行并且执行的过程不会被任何因素打断,要么就都不执行。
王念博客
2019/07/24
1.1K0
如何解决可见性,有序性,原子性
上一次我们说到了可见性,原子性,有序性,今天我们看看如何解决这个问题,今天我们先看看可见性和有序性,因此我们先要知道java内存模型
小土豆Yuki
2020/11/03
6320
volatile为什么不能保证原子性
首先要了解的是,volatile可以保证可见性和顺序性,这些都很好理解,那么它为什么不能保证原子性呢?
全栈程序员站长
2022/09/18
1K0
MySQL的原子性和持久性如何保证?
事务是数据库的逻辑工作单位,而且是必须是原子工作单位,对于其数据修改,要么全部执行,要么全部失败回滚。
Vincent-yuan
2022/05/06
4780
Java 并发篇03 -序性、可见性、原子性。
这篇文章,我们将给大家来讲解引起我们并发问题的三大因素--— 有序性、可见性、原子性。这三个问题是属于并发领域的所以并不涉及语言。
haoming1100
2019/07/30
4990
Java 并发篇03 -序性、可见性、原子性。
JAVA的原子性、可见性与有序性?
原子性(Atomicity):一个操作或者多个操作,要么全部执行并且执行的过程不会被任何因素打断,要么就都不执行。
互扯程序
2020/04/21
1.5K0
哪些Python操作是原子性的?
与同事的一次对话使我意识到一个事实,那就是Python中相当大一部分操作都是原子的,即使像字典和类成员赋值这样的操作也是原子的。 为了完成像哈希表插入这样的操作,需要执行很多条机器语言指令,我很难想象这个操作居然是原子的。 为什么会这样? Python FAQ提供了解释以及原子操作的完整列表,但简短的答案是: Python字节码解释器只有在一个机器指令完成后,另一个机器指令没开始前,才会进行线程切换。 全局解释器锁(GIL)只允许一次执行一个线程。 很多操作都被转换为单个字节码指令。 使用dis包可以很容易
企鹅号小编
2018/01/11
3.4K0
Google's BigTable 原理 (翻译)
题记:google 的成功除了一个个出色的创意外,还因为有 Jeff Dean 这样的软件架构天才。
田春峰-JCJC错别字检测
2022/05/07
4250

相似问题

将BigTable中的checkAndMutate (条件写入)与Apache Beam结合使用

145

HBase CheckAndMutate是原子的,它也是一致的吗?

23

原子如何保证原子的原子性

10

mkdir原子性

14

HBase批量操作checkAndMutate

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文