加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 电商 > 正文

专家观察 | 林尚泉:“小米结构化存储系统及融合云平台的设计与

发布时间:2021-01-19 14:51:19 所属栏目:电商 来源:网络整理
导读:《专家观察 | 林尚泉:“小米结构化存储系统及融合云平台的设计与实践”》要点: 本文介绍了专家观察 | 林尚泉:“小米结构化存储系统及融合云平台的设计与实践”,希望对您有用。如果有疑问,可以联系我们。 由工业和信息化部指导,中国信息通信研究院主办,

专家观察 | 林尚泉:“小米结构化存储系统及融合云平台的设计与实践”

我们是通过HBase Coprocessor来实现了indexObserver,也就是客户发送Put或Delete请求后我们会拦截这个操作,然后再计算要上出来索引,再把它放到原来的数据里,最后再同一台机器上一起落地,就可以保证原数据和索引数据的原子性.

还支持了多种类型的局部二级索引,其中包括EAGER类型,也就是更新删除时同时删除失效索引,是适合写少读多的场景,而LAZY索引是读取判断索引有效性,更新时不做额外操作,适合写多读少,还有IMMUTABLE是需要用户保证数据的只读性,就适合以只读数据的一次性写入,读写都不需要做额外的判断,这种比较高效.

还支持了全局二级索引,和局部二级索引不一样的地方是它的索引数据是单独的存在一个HBase表里,我们采用了谷歌的percolator方案实现的,我们在hbase上实现了这套算法叫Themis,这个已经开源,这个算法可以保证跨表更新的原子性,Chronos为全局单调递增时间戳.

全局二级索引数据对应的HBase的KeyValue跟局部二级索引不大一样,是以索引键排在最前面,再到实体组键和主键,我们对局部二级索引和全局二级索引做了一下性能对比.这个图是对某一张表建立了一个全局二级索引和局部二级索引,然后再写,红色是局部二级索引,蓝色是全局二级索引

可以看到因为全局二级索引会涉及到分布式的事务,可以看到性能损耗比较大,局部二级索引比它有好个四倍左右,而读的话同样局部二级索引好个两倍.

另外我们实现了stream功能,如果开了这个功能,用户对表的修改除了在原来的数据CF上写,还会封装成一条消息在另一个CF里再写一份,另外起一个MR job定期扫那个额外的CF,再把那个消息打到流式消息队列里,用户就会拿到流式消息队列来消费这些数据.

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读