你知道ES怎麼保證資料在任何情況下都不丟失嗎?

2021-09-11 18:39:28 字數 452 閱讀 6925

即使通過每秒重新整理(refresh)實現了近實時搜尋,我們仍然需要經常進行完整提交來確保能從失敗中恢復。但在兩次提交之間發生變化的文件怎麼辦?我們也不希望丟失掉這些資料。

elasticsearch 增加了乙個 translog ,或者叫事務日誌,在每一次對 elasticsearch 進行操作時均進行了日誌記錄。

乙個文件被索引之後,就會被新增到記憶體緩衝區,並且 追加到了 translog 

每隔一段時間--例如 translog 變得越來越大--索引被重新整理(flush);乙個新的 translog 被建立,並且乙個全量提交被執行(見 圖 24 「在重新整理(flush)之後,段被全量提交,並且事務日誌被清空」):

translog 也被用來提供實時 crud 。當你試著通過id查詢、更新、刪除乙個文件,它會在嘗試從相應的段中檢索之前, 首先檢查 translog 任何最近的變更。這意味著它總是能夠實時地獲取到文件的最新版本。

大資料安全怎麼保證?

當前,我國亟須依據 關於促進大資料發展的行動綱要 綜合採取戰略 政策 法律等多種工具,構建起包括法律 行政 技術 行業 社會等在內的大資料安全保護體系,加大大資料的安全保護力度,營造健康環保的大資料生態運營體系。一是加強基礎保護技術的研發和推廣應用。推廣業務系統防攻擊防入侵通用保護技術的普及和應用,...

MySQL 怎麼保證資料不丟?

mysql怎麼保證資料不丟?redo log 的寫入流程是怎麼樣的,如何保證 redo log 真實地寫入了磁碟 binlog的寫入邏輯 事務執行過程中,先把日誌寫到 binlog cache,事務提交的時候,再把 binlog cache 寫到 binlog 檔案中。乙個事務的binlog是不能被...

epoll怎麼保證資料能夠讀完

epoll中超時時間 select在什麼場景下比epoll要快 1 read write include ssize t read int filedes,void buf,size t nbytes ssize t write int filedes,const void buf,size t n...