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

当数据库碰着漫衍式,你会怎么做?

发布时间:2020-03-08 03:46:43 所属栏目:编程 来源:站长网
导读:副问题#e# 数据库凡是有着完美的事宜支持,可是范围于单机的存储和机能,于是就呈现了各类漫衍式办理方案。最近读了《Designing Data-Intensive Applications》这本书,以是做一个总结,供各人做个参考,有什么差池的请各人指正,一路接头。 数据模子 数据

当地索引 文档分区以是,在这种索引要领中,每个分区是完全独立的,每个分区维护本身的二级索引,仅包围该分区中的文档。当数据写入时(添加、删除、更新),只必要处理赏罚分区内数据的索引更新。数据查询时,则必要将查询发送到全部的分区,并归并全部返回的功效。

这种查询分区数据库的要领偶然被称为分手/聚积(scatter/gather),而且也许会是二级索引上的读取查询相等昂贵。纵然并行查询分区,已轻易导致尾部耽误放大。MongoDB、Cassandra、ElasticSearch、SolrCloud都是行使这种文档分区二级索引。

当数据库碰着漫衍式,你会怎么做?

全局索引 要害词分区,这种索引要领跟主键分区的方法是一样的。相对付文档分区索引,读取更有服从,不必要分手/聚积全部分区,客户端只必要向包括要害词的分区发出哀求。弱点在于写入速率较慢且较为伟大,由于写入单个文档也许会影响索引的多个分区。

抱负环境下,索引老是最新的。写入数据库的每个文档城市当即反应在索引中。在基于要害词的全局索引中,这必要跨分区的漫衍式事宜,并不是全部的数据库都支持。在实践中,对全局二级索引的更新凡是是异步的。

分区再均衡

跟着数据集巨细增进、查询吞吐量的增进,必要更多的呆板来处理赏罚。这些都必要数据和哀求从一个节点移动到另一个节点,这一进程称为再均衡(reblancing)。

再均衡凡是要满意以下几点要求:

再均衡之后,负载(数据存储、读取和写入哀求)应该在集群中的节点之间公正地共享

再均衡产生时,数据库应该继承接管读取和写入

节点之间只移动必需的数据,以便快速再均衡,并镌汰收集和磁盘I/O负载

均衡计策可以分为几种:牢靠命量的分区、动态数目的分区和按节点比例分区

牢靠命量的分区 建设比节点更多的分区,并为每个节点分派多个分区。假如一个节点被添加到集群中,新节点可以从当前每个节点中窃取一些分区,直到分区再次公等分派。ElasticSearch行使这种方法分区计策。

只有分区在节点间移动,分区的数目不会改变,键所对应的分区也不会改变,独一改变的是分区地址的节点。这种改观不是及时的(收集上传输数据必要时刻),传输进程中,原有分区如故会接办读写哀求。

(编辑:湖南网)

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

热点阅读