【问题标题】:In HBase, when max version parameter set, what does it do exactly?在 HBase 中,当设置 max version 参数时,它究竟做了什么?
【发布时间】:2016-01-12 15:58:07
【问题描述】:

我正在研究内存中的模拟 HTable。我将我的 HTable 与一个小型集群的 HTable 进行了比较。 Mini-cluster 是用于 HBase 应用程序测试的东西,我在这里使用它来获得一些标准结果。在迷你集群中,有一个

HBaseTestingUtility.createTable(byte[] tableName, byte[] family, int numVersions)

API。当设置 numVersions 时,

HTable.get(Get)

将返回最多 numVersions 个版本的结果,即使 Get 中的 maxVersion 参数设置为大于 numVersions。如果不设置参数,默认值为1。但是在其他一些测试中,我发现实际上numVersions为1时保存了很多版本。所以我想知道当numVersions设置正确时会发生什么。

【问题讨论】:

    标签: hbase hbasetestingutility


    【解决方案1】:

    'numVersions' 设置主要压缩后最大保留的行数。换句话说,可能会保存更多版本的行,但这些版本会被安排进行清理。这些行仍然存在,但可能不会被读取,因为这会产生不可靠的行为。

    【讨论】:

    • 感谢您的回答。我从来没有使用过与压缩相关的 API,所以还有一个问题:是否意味着如果涉及到一些压缩操作,“numVersions”之外的版本会被清理,如果没有,当这些新版本被删除时,外部的版本可以进入内部?
    • 这是一个很好的问题,我目前还没有答案。你能把它作为一个单独的问题来问吗?然后让我知道我可能会挖掘 hbase 代码来找出答案。我怀疑如果以后其他版本被删除,压缩版本可以在外部和内部返回,但可以肯定的是需要深入的知识,我不拥有或挖掘我可能会花时间。
    • 顺便说一下,没有必要使用压缩api。这是 hbase 定期自动执行的操作。稍微了解一下就好了。
    猜你喜欢
    • 1970-01-01
    • 2021-04-26
    • 2020-05-29
    • 2011-09-17
    • 2016-08-10
    • 2011-06-18
    • 2012-07-23
    • 2016-09-10
    • 2023-03-15
    相关资源
    最近更新 更多