【问题标题】:Confused about Apache HBase basics?对 Apache HBase 基础知识感到困惑?
【发布时间】:2020-10-02 07:41:24
【问题描述】:

我目前正在阅读七周内的七个数据库,我遇到了这个声明。

HBase 还提供强一致性保证,使其更容易 从关系数据库过渡到某些用例。最后, HBase 保证行级别的原子性,这意味着您可以 在 HBase 数据的关键级别上具有强大的一致性保证 型号。

我有点理解它。

我浅浅的理解是Apache HBase是一个分布式数据库,所以它就像一个Master-Slave之类的东西?

所以,当你进行写操作时,你首先在主服务器上进行,然后主服务器将写操作复制到从服务器。一致性保证是所有从站的记录都具有相同的相同值吗?因此,高一致性保证意味着它们都将具有相同的值,而低一致性保证意味着主控可能已经将更改写入某些从属,但不是全部(因此,如果您正在从其中一个读取值奴隶,你可能会根据你从哪个奴隶读取不同的结果)?

到目前为止这是正确的吗?

那么,使用 HBase...“保证行级别的原子性”意味着只有当主服务器写入所有从服务器时,事务才会完成?这提供了高一致性?

我是否走在正确的轨道上?如果不是,我非常感谢您能澄清一下该段的含义。

非常感谢!

【问题讨论】:

    标签: database hbase google-cloud-bigtable bigtable


    【解决方案1】:

    如果“主”是指区域/分片/分区主控,那么您就在正确的轨道上。每个行键都与一个区域(分片的 HBase 术语)相关联,并且每个区域都在多个服务器/磁盘/机架/任何东西上复制。根据每个行键,客户端只与一个主要区域服务器(或“主服务器”)通信。

    那么,使用 HBase...“保证行级别的原子性”意味着只有当主服务器写入所有从服务器时,事务才会完成?这提供了高一致性?

    不,一致性和原子性是两个不同的东西。 HBase 在行级别提供原子性,这意味着当您写入行时,整个写入操作已完全完成或没有更改任何内容 - 中间没有(部分更新)。当您在一个命令中写入多行时,不是的情况 - 有些可能会更改,有些可能不会,但不会部分更新或更改任何行。 一致性(在此上下文中)意味着更新必须首先由远程副本确认,然后客户端才能正常。这主要通过基于 HDFS 的事务日志文件完成。您可以阅读 HBase WAL 了解更多详细信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-10-03
      • 1970-01-01
      • 2011-01-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-14
      • 2019-09-13
      相关资源
      最近更新 更多