ElasticSearch分片互動過程(建立索引、刪除索引、查詢索引)
資料來自於ElasticSearch官方文件。
ElasticSearch分片互動過程(建立索引、刪除索引、查詢索引)
1 建立索引
首先:傳送一個索引或者刪除的請求給node1
其次:node1接到請求之後,會根據請求中攜帶的引數“文件id”判斷出該文件應該儲存在具體哪一個shard中
shard = hash(routing) % numberofprimary_shards
,比如shard0;其次就是node1通過後設資料資訊可以知道shard0在具體哪一個節點,於是node1會把請求轉發給node3
最後:node3接收到請求之後會將請求並行的分發給shard0的所有replica shard之上,也就是存在於node 1和node 2中的replica shard;如果所有的replica shard都成功地執行了請求,那麼將會向node 3回覆一個成功確認,當node 3收到了所有replica shard的確認資訊後,則最後向使用者返回一個Success的訊息。
2 刪除索引
該過程可以分為四個階段來描述:
階段1:客戶端向node 1傳送一個文件刪除的請求。
階段2:同樣的node 1通過請求中文件的 _id 值判斷出該文件應該被儲存在shard 0 這個分片中,並且node 1知道shard 0的primary shard位於node 3這個節點上。因此node 1會把這個請求轉發到node 3。
階段3:node 3接收到請求後,在主分片上面執行刪除請求
階段4:如果node 3成功地刪除了文件,node 3將會請求並行地發給其餘所有的replica shard所在node中。這些node也同樣操作刪除,執行後則向node 3確認成功,當node 3接收到所有的成功確認之後,再向客戶端傳送一個刪除成功的資訊。
3 查詢索引
檢索文件的時候,我們並不知道文件在叢集中的哪個位置,所以一般情況下不得不去詢問index中的每一個shard,然後將結果拼接成一個大的已排好序的彙總結果列表;
(1):客戶端傳送一個檢索請求給node3,此時node3會建立一個空的優先順序佇列並且配置好分頁引數from與size。
(2):node3將檢所請求傳送給index中的每一個shard(primary 和 replica),每一個在本地執行檢索,並將結果新增到本地的優先順序佇列中;
(3):每個shard返回本地優先順序序列中所記錄的_id與**score值**,併傳送node3。Node3將這些值合併到自己的本地的優先順序佇列中,並做全域性的排序(node 3將它們合併成一條彙總的結果),返回給客戶端。
相關文章
- elasticsearch(三)----索引建立與刪除Elasticsearch索引
- mongodb建立索引和刪除索引和背景索引backgroundMongoDB索引
- elasticsearch之多索引查詢Elasticsearch索引
- Elasticsearch(三):索引查詢Elasticsearch索引
- MySQ索引操作命令總結(建立、重建、查詢和刪除索引命令詳解)索引
- MySQL建立索引、修改索引、刪除索引的命令語句MySql索引
- ElasticSearch建立索引Elasticsearch索引
- 【Mongo】MongoDB索引管理-索引的建立、檢視、刪除MongoDB索引
- Mysql索引的建立與刪除MySql索引
- mysql刪除主鍵索引,刪除索引語法MySql索引
- elasticsearch按照日期定時批量刪除索引Elasticsearch索引
- Lucene中建立索引的效率和刪除索引的實現索引
- 【索引】Oracle查詢指定索引提高查詢效率索引Oracle
- 索引監控-查詢從未被使用過的索引索引
- 理解索引(中):MySQL查詢過程和高階查詢索引MySql
- mysql 建立和刪除聯合索引MySql索引
- ElasticSearch 索引 VS MySQL 索引Elasticsearch索引MySql
- 61_索引管理_快速上機動手實戰建立、修改以及刪除索引索引
- Sqlserver自動查詢缺失索引及拼出建立索引的語句的指令碼SQLServer索引指令碼
- 【索引】反向索引--條件 範圍查詢索引
- lucene(二) 索引的建立、增刪改查索引
- Elasticsearch索引。Elasticsearch索引
- 【索引】oracle查詢使用索引和不使用索引的比較索引Oracle
- 使用Elasticsearch的動態索引和索引優化Elasticsearch索引優化
- indexedDB 通過索引查詢資料Index索引
- oracle資料庫建立、刪除索引等操作Oracle資料庫索引
- 資料庫 - 索引、基本表建立與刪除資料庫索引
- 【索引】反向索引--條件 範圍查詢(二)索引
- Elasticsearch5.x建立索引(Java)ElasticsearchH5索引Java
- 【Elasticsearch】Elasticsearch 索引模板Elasticsearch索引
- 查詢索引 常用SQL索引SQL
- 查詢相似的索引索引
- DataFrame刪除複合索引索引
- rhel4 mysql5.1 索引index_約束constraint建立_刪除_查詢MySql索引IndexAI
- elasticsearch索引原理Elasticsearch索引
- 筆記 mongo查詢慢日誌,建立索引筆記Go索引
- oracle索引核心過程Oracle索引
- 移動索引的儲存過程索引儲存過程