概述
ETCD数据模型
etcd支持可靠的键值对存储并且提供了可靠的Watcher机制,其中的键值对支持多版本,并且具备能够“Watch”历史事件的功能。
随着应用不断运行,键值对不断修改,每个Key都在etcd中保存了多个版本,数据量也会越来越大。为了缓解压力,etcd会定期进行压缩,清理过旧的数据。
ETCD采用B树索引加速查询,其存储中会一个字段序的B树索引。在B树索引的每个索引项中,都存储了一个Key值,这样可以快速定位指定的Key或是进行范围查询。而每个Key值对应了多个版本号,etcd中维护了一个全局自增的版本号,为每次事务分配一个全局唯一的版本号(main revision),事务中的每个操作也有唯一的编号(sub revision),通过这两部分可以确定一个唯一的Value值。
每个Key会对应多个generation。
在查询时,先在内存索引中通过用户指定的Key值,查找到该Key值对应的全部版本号,然后根据用户指定的版本号,从底层存储中查找到具体的Value值。
在etcd v3版本中,底层存储使用的是BoltDB,其中的Key是版本信息(main revision+subrevision)。这样,在查询时先通过上述B树索引查询到对应的版本信息,然后在BoltDB中通过版本信息查找相应的Value值。
最后
以上就是激动酒窝为你收集整理的【汇智学堂】ETCD数据模型的全部内容,希望文章能够帮你解决【汇智学堂】ETCD数据模型所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复