您的位置:首页 > 其它

ElasticSearch-深入理解系列7-分布式增删查改

2017-08-20 22:28 239 查看
1 文档放在哪个分片?
根据如下算法计算出存储的分片

shard = hash(routing) % number_of_primary_shards
routing字符串,默认是(_id)。根据这个算法能我们知道为什么分片被确定后就不能再被修改了

2 主分片和复制分片如何交互。

假设有3个节点,索引有2主分片,每个分片有2个复制分片,所以总共会有6个分片。



2.1 写操作:(新建、更新、删除)必须先在主分片完成后再复制到其他分片。



即,相关于写操作,要在该数据设计到的所有分片上完成之后,才会返回给客户端。这个可以通过replication来设置,默认(sync)。可以设置为async,主分片完成之后就返回。

2.2 局部更新操作:



2.3 读操作:检索文档。



可以从主分片或者任意复制分片操作。



3 数据存储

es建索引写入数据,数据最先是存在内存buffer里的,然后再刷入到lucene的底层文件segment中;写入segment完毕后再执行refresh操作,refresh操作后,数据将commit到磁盘中。数据刷入到了磁盘,就可以执行查询操作了。

       过程简单描述如下:内存buffer-->segment(系统缓存、可被搜索)-->refresh-->磁盘
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  分布式 elasticsearch