在比较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
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。