首页 > 编程知识 正文

深入理解MVC,shardul

时间:2023-05-04 13:00:13 阅读:152309 作者:1304

对于索引存储,划分为shard,从而提高读写性能并实现负载平衡。

索引不变性索引一旦创建,就不能更改。

动态索引如何更新倒排索引,同时保留不可变的好处(顺序写入、内存缓存)。 添加额外的索引以反映最近的变化,而不是重写整个转置索引。

电子搜索索索引配置

索引结构. png

Lucene引入了家长级搜索。 每个segment都是一个转置索引,但Elasticsearch下是一个segment集合,当Elasticsearch检索到该索引时,它会向该索引下的所有shard发送查询请求,并过滤这些结果

编制索引

内存缓冲区包含用于提交文档的Lucene索引. png

提交后,新段将添加到提交点中,缓存将为空。 png

新文档首先写入内存空间的索引缓存中。 过了一会儿,buffer提交了。 新的segment (新的反向索引)将写入磁盘,新的提交点(commit point )将写入磁盘。 磁盘fsync,等待内核文件系统中的所有数据写入磁盘,以确保物理写入。 打开一个新的segment,您可以在其中为包含的文档创建索引。 的缓存被清除,等待接受新文档。 几乎实时的上面没有刷新的情况下,加入刷新的情况(默认1秒)如下所示。

缓存内容已写入段,但. png未在内存中编制索引的文档将写入新的segment。 但是,首先将segment写入内核的文件系统缓存。 这个过程很轻量,刷新到磁盘需要很长时间。 但是,如果segment文件位于内核缓存中,则可以将其打开进行读取。

防止丢失

Translog.png在写入缓存的同时写入translog。合并segment合并segment以提高查询性能

合并segment.png

elaticsearch自动在后台完成segment的合并,新的segment闪存到硬盘,写入新的提交点,删除旧的段。 然后,新段将打开进行检索,旧段将被删除。 也可以通过优化API完成segment的集成。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。