`

Elasticsearch refresh vs. flush

阅读更多

refresh操作有效地对Lucene index reader调用了reopen,使得在数据的那个时间快照进行了更新。这是Lucene拥有的近实时搜索api的特性。

ES refresh让文档可以搜索到,但是不保证这些信息被写入disk进入一个永久的存储状态,因为它并没有调用fsync,这就不能保证持久性了。让你数据获得持久性的是Lucene commit,这个操作代价比较大。

当你可以每秒都调用lucene reopen时,你不能这样使用lucene的commit。

借助lucene你可以尽可能频繁地调用reopen以使新的文档可以被搜索到,但是你仍然需要调用commit来确保数据写入disk并且fsynced,这样会安全。

ES通过增加了一个在每个shard(一个lucene的索引)上的事务解决这个问题,还未被commit的写操作会被存起来。事务log被fsynced,已经安全了,所以你每时每刻都获得了持久性,甚至对于那些没有被commit的文档,都是这样。因为refresh每秒自动地发生,所以你可以近实时地搜索文档,并且如果有不好的事件发生,事务log可以被替代从而恢复那些丢失的文档。事务log的优越性是它可以被用来做其他的事情,例如提供实时的get_by_id

elasticsearch flush高效地触发lucene commit,并同时清空事务log,因为一旦数据在lucene层面提交,持久性将会由lucene保证。Flush同样是一个api,也可以进行微调,虽然通常没有必要这样。Flush自动发生取决于事务log增加了多少操作、它们有多大、最后一次flush何时发生。

 

http://www.jianshu.com/p/0e9f6346f1fe

分享到:
评论

相关推荐

    Elasticsearch相关面试问题.docx

    Elasticsearch 相关面试问题 Elasticsearch 是一个基于 Lucene 的搜索引擎,提供了强大的搜索和数据处理功能。本文档总结了 Elasticsearch 相关的面试问题,涵盖了集群管理、索引文档、搜索过程、聚合实现等多方面...

    Elasticsearch 存储方式和管理优化细节1

    对于translog,Elasticsearch提供了`refresh=wait_for`参数,允许在写入数据后等待刷新完成再返回结果,适用于非实时需求的场景。此外,可以通过调整`refresh_interval`参数控制刷新频率,如日志记录可设置为每10秒...

    龙果学院 elasticsearch 72讲笔记

    2、es非常重要的一个api,是它的restful api,你自己思考一下,掌握这个es的restful api,可以让你执行一些核心的运维管理的操作,比如说创建索引,维护索引,执行各种refresh、flush、optimize操作,查看集群的健康...

    Elasticsearch最新面试题2021年,常见面试题及答案汇总.md

    ### Elasticsearch 最新面试题2023年,常见面试题及答案汇总 #### 1、在Elasticsearch中执行搜索的多种方式 Elasticsearch提供了几种执行搜索的方式,包括: - **基于DSL检索(最常用)**:这是通过Elasticsearch...

    掌控数据流:如何管理 Elasticsearch 的副本

    ### 掌控数据流:如何管理 Elasticsearch 的副本 Elasticsearch 是一款强大的开源搜索与分析引擎,基于 Lucene 开发,适用于大规模数据处理场景。它以其分布式架构、实时搜索能力、高度可扩展性以及丰富的功能集...

    ES优化1

    Elasticsearch(ES) 是一款高性能的全文搜索引擎,广泛应用于数据分析和实时检索场景。在构建生产级别的ES集群时,优化配置至关重要,以确保系统的稳定性和高效性。以下是一些关键的ES集群配置优化要点: 1. **主机...

    【朝夕教育】2021春招ElasticSearch高频面试题1

    Elasticsearch 是一个分布式、开源的搜索引擎,广泛应用于日志分析、实时数据分析和全文检索等场景。在面试中,理解其核心概念和技术细节是非常重要的。下面将针对提供的面试题进行详细解答。 1. **Elasticsearch ...

    面试指南-Lucene:ES篇.md

    ### Lucene与Elasticsearch核心知识点详解 #### 一、倒排索引深入骨髓 **1. 倒排索引的原理及其应用场景** 倒排索引是一种用于快速检索文档的技术,它改变了传统索引从文档指向关键词的方式,转而以关键词指向...

    Elastice search 的使用1

    Elasticsearch 是一个分布式、实时的搜索和分析引擎,常用于海量数据的处理和分析,尤其是在日志聚合和实时检索方面表现出色。本篇主要讨论如何有效地使用 Elasticsearch 处理大规模数据,包括硬件配置、数据接入、...

    搜索引擎的搭建(21页).pdf

    丰富的插件和活跃的社区支持,使其生态繁荣,ELK(Elasticsearch、Logstash、Kibana)组合在日志分析领域尤为流行。然而,需要注意的是,Elasticsearch的X-Pack功能虽强大,但部分是收费的。 构建搜索引擎时,我们...

    6-5+搜索引擎的搭建.pdf

    在本案例中,提到了几种不同的搜索引擎选项,包括Elasticsearch、Sphinx、Lucene/Solr、Redisearch、Bleve/Groonga以及PostgreSQL的全文搜索功能。这些引擎各有特点,例如Elasticsearch因其分布式、高可用性、丰富的...

    BIos原代码《陈文钦》

    extrn flush_all_cache:near extrn power_on_init:near public power_on_init_end extrn hreset_clear:near public hreset_clear_end extrn sreset_clear:near public sreset_clear_end extern ...

Global site tag (gtag.js) - Google Analytics