开发者社区> 问答> 正文

HBase如何比较KeyValue的大小顺序?

HBase如何比较KeyValue的大小顺序?

展开
收起
令人无语的八阿哥 2021-10-22 15:40:02 566 0
来自:华章出版社
1 条回答
写回答
取消 提交回答
  • 在比较KeyValue的大小顺序时,HBase按照如下方式(伪代码)来确定大小关系:

    int compare(KeyValue a, KeyValue b){

    int ret = Bytes.compare(a.rowKeyBytes, b.rowKeyBytes);

    if(ret != 0) return ret;

    ret = Bytes.compare(a.familyBytes, b.familyBytes);

    if(ret != 0) return ret;

    ret = Bytes.compare(a.qualif ierBytes, b.qualif ierBytes);

    if(ret != 0) return ret;

    // 注意:timestamp越大,排序越靠前

    ret = b.timestamp - a.timestamp;

    if(ret != 0) return ret;

    ret = a.type - b.type;

    return ret;

    }

    注意,在HBase中,timestamp越大的KeyValue,排序越靠前。因为用户期望优先读取到那些版本号更新的数据。

    资料来源:《HBase原理与实践》,文章链接:https://developer.aliyun.com/article/724670

    2021-10-22 16:01:49
    赞同 展开评论 打赏
来源圈子
更多
收录在圈子:
+ 订阅
问答排行榜
最热
最新

相关电子书

更多
大数据时代的存储 ——HBase的实践与探索 立即下载
Hbase在滴滴出行的应用场景和最佳实践 立即下载
阿里云HBase主备双活 立即下载