【Elasticsearch】`_refresh`和`_flush`的區別

在Elasticsearch中,`_refresh`和`_flush`操作雖然看似都與“刷新”有關,但它們的功能和作用范圍有顯著區別:

?

`_refresh`操作

- 目的:使索引操作(如新增、更新、刪除文檔)后的更改能夠立即被搜索到。

- 工作原理:將內存緩沖區(in-memory buffer)中的數據寫入到一個新的Lucene segment中,并將其加載到文件系統緩存(OS cache)中,此時文檔可以被搜索到,但數據尚未寫入磁盤。

- 觸發方式:

? - 默認情況下,Elasticsearch每秒自動執行一次`_refresh`操作,但僅在最近30秒內有搜索請求的索引上執行。

? - 可以通過設置`index.refresh_interval`來調整刷新間隔,或者在索引操作時通過`?refresh=true`參數強制觸發。

? - 當內存緩沖區達到一定大小(默認為節點堆內存的10%)時,也會觸發`_refresh`。

- 特點:`_refresh`操作是同步的,會在操作完成前阻塞請求。

?

`_flush`操作

- 目的:將內存中的數據和事務日志(translog)中的操作永久寫入磁盤,確保數據的持久性。

- 工作原理:

? - `_flush`操作會先執行`_refresh`,將內存緩沖區中的數據寫入新的Lucene segment并加載到文件系統緩存中。

? - 然后,將這些segment從文件系統緩存強制刷入磁盤(通過`fsync`操作),并清空事務日志。

- 觸發方式:

? - 默認情況下,Elasticsearch會在以下情況下自動觸發`_flush`操作:

? ? - 每30分鐘定時觸發。

? ? - 當事務日志大小超過512MB時。

? ? - 在每次索引、批量、刪除或更新操作完成后。

? - 也可以通過API手動觸發`_flush`操作。

- 特點:`_flush`操作是異步的,不會阻塞請求。

?

主要區別

- 數據可見性:`_refresh`使數據在搜索中可見,而`_flush`主要用于數據的持久化,不影響數據的搜索可見性。

- 操作范圍:`_refresh`操作主要涉及內存緩沖區和文件系統緩存,而`_flush`操作會將數據寫入磁盤并清空事務日志。

- 性能影響:`_refresh`操作的開銷相對較小,但頻繁的`_refresh`可能會影響寫入性能;`_flush`操作的開銷較大,但可以通過調整參數優化性能。

?

總結來說,`_refresh`用于使新文檔能夠被搜索到,而`_flush`用于確保數據持久化到磁盤,兩者在Elasticsearch的索引管理中各自扮演著重要的角色。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/82610.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/82610.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/82610.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Java核心數據類型:String深度解析(JDK 8+)

🔥「炎碼工坊」技術彈藥已裝填! 點擊關注 → 解鎖工業級干貨【工具實測|項目避坑|源碼燃燒指南】 問題驅動:從用戶注冊場景說起 場景描述:開發一個用戶注冊功能時,需要處理用戶名的校驗、格式化和存儲。你可能會遇到…

人員睡崗檢測算法AI智能分析網關V4打造工業/安防/交通等多場景應用方案

一、引言? 在工業生產、安防監控等多領域,眾多崗位需員工長時間值守,如流水線工人、監控值班員等。但高強度工作易引發睡崗問題,導致生產效率下降,甚至造成安全事故與財產損失。傳統人工巡檢響應慢、成本高,難以滿足…

自動生成提示技術突破:AUTOPROMPT重塑語言模型應用

AUTOPROMPT 預訓練語言模型的顯著成功促使人們研究這些模型在預訓練期間學習了哪些類型的知識。將任務重新表述為填空題(例如,完形填空測試)是衡量此類知識的自然方法 但是,它的使用受到編寫合適提示所需的手動工作和猜測的限制。為了解決這個問題,我們開發了 AUTOPROMP…

6個月Python學習計劃 Day 7 - 復盤 + 測試日

第一周 Day 1 - Python 基礎入門 & 開發環境搭建 Day 2 - 條件判斷、用戶輸入、格式化輸出 Day 3 - 循環語句 range 函數 Day 4 - 列表 & 元組基礎 Day 5 - 字典(dict)與集合(set) Day 6 - 綜合實戰:學生信息…

Pycharm and Flask 的學習心得(9)

request對象: 1. request包含前端發送過來的所有請求數據 將from表單里的內容CV到request里面,可以添加if語句來做判斷出請求類型后的操作 在網頁上的表單上input的數據,后端如何獲取呢? request對象獲取前端發送來的數據 // …

設計模式-依賴倒轉原則

依賴倒轉原則 依賴倒轉原則 (Dependency Inversion Principle, DIP) 是面向對象設計中 SOLID 原則的第五個原則。 它包含兩條核心思想: 高層模塊不應該依賴于低層模塊。兩者都應該依賴于抽象。 高層模塊 (High-level modules): 通常包含復雜的業務邏輯和策略&…

AI賦能引爆短劇全球化風潮,騰訊云媒體處理助力短劇平臺出海吸金

2023年,中國短劇市場以全平臺8000萬日投放、近500億規模的爆發式增長震驚行業。緊湊的內容、爽快的劇情令國內觀眾迅速愛上了幾分鐘一集的微短劇。然而在平臺內卷、監管收緊、巨頭入場等因素的沖擊下,不到兩年時間,這條賽道就已陷入紅海。但與…

開源第三方庫發展現狀

摘要:當前,開源第三方庫生態正呈現爆發式增長趨勢。GitHub 目前已托管超過 4.2 億個代碼倉庫,遠超早期統計的 1 億規模,顯示出開發者社區的活躍度持續攀升。同時,37 個主流包管理器所維護的開源組件數量可能已達到數千…

服務器開機自啟動服務

前言: 將服務器中腳本開啟自啟動執行 步驟: 1.創建一個 systemd 服務文件: /etc/systemd/system/ 目錄下創建一個新的服務文件。例如,命名為 myapp.service: sudo nano /etc/systemd/system/myapp.service2.編寫 [Unit] Descri…

采用Bright Data+n8n+AI打造自動化新聞助手:每天5分鐘實現內容日更

一、引言 在信息爆炸的時代,作為科技領域的內容創作者,我每天都要花費2-3小時手動收集行業新聞、撰寫摘要并發布到各個社群。直到我發現Bright Datan8nAI這套"黃金組合",才真正實現了從"人工搬運"到"智能自動化&qu…

ROS云課三分鐘-3D性能測試supertuxkart和游戲推薦等-國際象棋

ROS云課三分鐘-破壁篇GCompris-一小部分支持Edu應用列表-2025-CSDN博客 很多時候,有一種思維定勢,將人鎖住,人口就是囚。 口人囚~口加人等于囚-CSDN博客 如果突破,跳出問題,再看問題。 這門課程,或者這個平…

學習率及相關優化參數詳解:驅動模型高效訓練

一、引言 在模型微調的核心參數體系中,優化相關參數是決定訓練效率與模型性能的關鍵變量。它們如同精密機械的齒輪,彼此聯動、相互影響,共同調控著模型在參數空間中的搜索路徑。本文將圍繞學習率、訓練輪數、批處理大小、梯度累積和學習率調…

golang 柯里化(Currying)

使用場景:參數在語義上屬于不同組,Go 語法無法在單次調用中聲明多組可變參數,通過柯里化可以實現分步接收參數。 有的參數是在不同時間段產生,使用Currying可以讓函數記住(緩存)參數,避免應用代…

電腦革命家測試版:硬件檢測,6MB 輕量無廣告 清理垃圾 + 禁用系統更新

各位電腦小白和大神們,我跟你們說啊!有個超牛的東西叫電腦革命家測試版,這是吾愛破解論壇的開發者搞出來的免費無廣告系統工具集合,主打硬件檢測和系統優化,就像是魯大師這些軟件的平替。下面我給你們嘮嘮它的核心功能…

R 語言科研繪圖第 52 期 --- 網絡圖-分組

在發表科研論文的過程中,科研繪圖是必不可少的,一張好看的圖形會是文章很大的加分項。 為了便于使用,本系列文章介紹的所有繪圖都已收錄到了 sciRplot 項目中,獲取方式: R 語言科研繪圖模板 --- sciRplothttps://mp.…

EfficientLLM: Efficiency in Large Language Models 高效大模型

目錄 第1章:引言第2章:觀察與見解2.1 總體觀察(Overall Observations)2.2 從EfficientLLM基準中得出的新見解 第3章:背景3.1 大語言模型(LLMs)3.2 提升LLMs效率的方法3.2.1 硬件創新3.2.2 軟件優…

SFTP工具類實現文件上傳下載_

import com.jcraft.jsch.*; import com.jcraft.jsch.ChannelSftp.LsEntry;import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.util.*;/*** SFTP工具類*/ public class SftpFile {static Sessio…

RuoYi前后端分離框架將前端dist資源集成到Jar包中獨立部署

一、背景 .NET體系下通常采用服務端渲染(如Razor Pages)或直接包含前端資源,而Java Spring Boot項目雖支持靜態資源打包,但Vue CLI工程需要獨立的構建流程。主管要求將編譯后的Vue工程直接嵌入JAR包中方便維護,本人不推薦這樣,原因有三: 第一、Vue CLI需要npm run buil…

基于 Flink+Paimon+Hologres 搭建淘天集團湖倉一體數據鏈路

摘要:本文整理自淘天集團高級數據開發工程師朱奧老師在 Flink Forward Asia 2024 流式湖倉論壇的分享。內容主要為以下五部分: 1、項目背景 2、核心策略 3、解決方案 4、項目價值 5、未來計劃 01、項目背景 1.1 當前實時數倉架構 當前的淘天實時架構是從…

SIGCHLD信號--補充

進程一章講過用wait和waitpid函數清理僵尸進程,父進程可以阻塞等待子進程結束,也可以非阻 塞地查詢是否有子進程結束等待清理(也就是輪詢的方式)。采用第一種方式,父進程阻塞了就不 能處理自己的工作了;采用第二種方式,父進程在處理自己的工作的同時還要記得時不時地輪詢一 下,…