国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【Elasticsearch】存在數(shù)據(jù)的分片分配流程梳理

這篇具有很好參考價(jià)值的文章主要介紹了【Elasticsearch】存在數(shù)據(jù)的分片分配流程梳理。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

由于master節(jié)點(diǎn)只保存了cluster級(jí)別和indices級(jí)別的元數(shù)據(jù),但沒(méi)有shard在哪個(gè)node上的元數(shù)據(jù),需要走一遍allocation流程確定每個(gè)shard分配到哪個(gè)節(jié)點(diǎn),allocation使用allocator和deciders進(jìn)行節(jié)點(diǎn)選擇,allocator負(fù)責(zé)整個(gè)流程會(huì)找出哪些節(jié)點(diǎn)可以分配,deciders通過(guò)多個(gè)decider判斷該節(jié)點(diǎn)能否分配,很多分片分配的配置都是通過(guò)decider實(shí)現(xiàn)的,例如primary和replica不能分配在同一個(gè)節(jié)點(diǎn)、磁盤容量大于85%不能分配。

I. Master node

  1. gateway階段結(jié)束后,觸發(fā)reroute分配分片
  2. shuffle 所有未分配的分片。作用是避免一些有問(wèn)題的分片影響其他分片分配。例如,集群分片分配的并發(fā)是1,有一個(gè)分片因?yàn)槲募p壞無(wú)法分配,如果不進(jìn)行shuffle,每次分片分配的都是這個(gè)有問(wèn)題的分片,直到到達(dá)次數(shù)上限
  3. 對(duì)unassigned shard按優(yōu)先級(jí)排序,首先比較index.priority,其次是index create time,最后index name。
    沒(méi)錯(cuò),鑒權(quán)相關(guān)的索引優(yōu)先級(jí)最高,確保集群接口最快可用
  4. 首先使用primaryShardAllocator對(duì)所有primary進(jìn)行分配,根據(jù)每個(gè)shard向所有節(jié)點(diǎn)異步發(fā)起fetchData請(qǐng)求,拉取shard的元數(shù)據(jù)
  5. 由于請(qǐng)求是異步的,當(dāng)前還沒(méi)有元數(shù)據(jù),因此reroute結(jié)束

II. Data node

  1. 從磁盤目錄加載shard元數(shù)據(jù),包含allocationId, boolean primary, discovery node。
  2. 嘗試調(diào)用Lucene從shard目錄打開(kāi)索引,如果遇到異常則加入返回信息中,例如磁盤故障就會(huì)拋出異常
  3. 將allocationId, boolean primary, discovery node,store exception返回給master節(jié)點(diǎn)

III. Master node

  1. 當(dāng)fetchData請(qǐng)求的response返回后,會(huì)保存結(jié)果,觸發(fā)reroute來(lái)繼續(xù)分配分片
  2. 將該分片在所有節(jié)點(diǎn)的返回結(jié)果進(jìn)行排序,排序依次比較no excepiton 和 primary
  3. 使用deciders將節(jié)點(diǎn)分為三組yes(可以分配) no(不能分配) throttled(分配受到并發(fā)限制)
  4. 如果yes不為空,則將shard分配給列表中的第一個(gè)節(jié)點(diǎn)
  5. 如果yes和throttle為空,no不為空,則嘗試是否能夠forceAllocate,forceAllocate會(huì)將no返回為yes,yes和throttle正常返回
  6. 如果結(jié)果為yes則將分片分配給對(duì)應(yīng)節(jié)點(diǎn),更新相關(guān)數(shù)據(jù)結(jié)構(gòu),否則分片標(biāo)記ignore,避免分片走到新建分片分配流程
  7. 遍歷replica shard,使用replicaShardAllocator進(jìn)行allocate
  8. 先通過(guò)deciders判斷一下,是否至少有一個(gè)節(jié)點(diǎn)可以分配shard,如果分配不了就省略后面邏輯
  9. 和primary一樣,拉取分片元數(shù)據(jù),不過(guò)元數(shù)據(jù)不同

IV. Data node

  1. 從內(nèi)存或者磁盤獲取StoreFilesMetadata,其中包含retention lease, MetadataSnapshot(shard Lucene文件元數(shù)據(jù))
  2. 返回StoreFilesMetadata給master

V. Master node

  1. 需要對(duì)返回結(jié)果的node按照replica數(shù)據(jù)的落后程度進(jìn)行排序,優(yōu)先數(shù)據(jù)較全的。最匹配的節(jié)點(diǎn)的排序方式是

    • 無(wú)需回放操作(replica SeqNo(從retention lease獲取) > primary SeqNo或者replica sync flush id = primary https://www.elastic.co/guide/en/elasticsearch/reference/6.0/indices-synced-flush.html) 。順便說(shuō)一句,Elasticsearch 跟蹤每個(gè)分片的索引活動(dòng)。 5 分鐘內(nèi)未收到任何索引操作的分片將自動(dòng)標(biāo)記為非活動(dòng)狀態(tài)。 這為 Elasticsearch 提供了減少分片占用資源并執(zhí)行一種特殊類型的刷新(稱為synced flush)的機(jī)會(huì)。 同步刷新執(zhí)行正常刷新,然后將生成的唯一標(biāo)記(sync_id)添加到所有分片。

      由于sync id標(biāo)記是在沒(méi)有正在進(jìn)行的索引操作時(shí)添加的,因此它可以用作檢查兩個(gè)分片的 lucene 索引是否相同的快速方法。 這種快速sync ID 比較(如果存在)在恢復(fù)或重新啟動(dòng)期間使用,以跳過(guò)該過(guò)程的第一個(gè)也是成本最高的階段。 在這種情況下,不需要復(fù)制段文件,并且可以立即開(kāi)始恢復(fù)的事務(wù)日志重播階段。 請(qǐng)注意,由于sync ID 標(biāo)記與刷新一起應(yīng)用,因此事務(wù)日志很可能為空,從而進(jìn)一步加快恢復(fù)速度。

    • retenton lease的seq No較大(意味著需要回放的操作少)

    • Checksum相同的文件大小較大的

  2. 使用decider對(duì)最匹配的節(jié)點(diǎn)進(jìn)行決策,如果throttle則返回,如果是yes或者no則返回yes

  3. 如果最匹配的節(jié)點(diǎn)都沒(méi)有數(shù)據(jù)則replica shard進(jìn)行延遲分配

  4. reroute完成后構(gòu)建集群新的狀態(tài)。最后master將新的集群狀態(tài)廣播下去文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-786799.html

VI. Data node

  1. 數(shù)據(jù)節(jié)點(diǎn)收到cluster state change后,應(yīng)用變化,創(chuàng)建或更新shard
  2. 節(jié)點(diǎn)上無(wú)該shard時(shí),createshard,進(jìn)行shard recovery,主分片從本地恢復(fù),副本從主分片恢復(fù)

總結(jié)

  1. fetch data過(guò)程會(huì)發(fā)送shard num * node num個(gè)請(qǐng)求,并且會(huì)將結(jié)果保存在內(nèi)存中。當(dāng)集群規(guī)模較大時(shí),master節(jié)點(diǎn)內(nèi)存會(huì)被打滿,150節(jié)點(diǎn) 7w分片 master節(jié)點(diǎn)10GB內(nèi)存時(shí)就出現(xiàn)過(guò)??梢钥紤]將sync allocation id和node的映射保存在cluster state,或者按分片并發(fā)數(shù)進(jìn)行限流
  2. 利用retention lease和synced id加速replica的恢復(fù)過(guò)程,synced id用于快速比較,retention lease減少回放的doc數(shù)。有個(gè)問(wèn)題是為什么不通過(guò)sync allocation id列表來(lái)給replica排序呢

到了這里,關(guān)于【Elasticsearch】存在數(shù)據(jù)的分片分配流程梳理的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 記錄ElasticSearch分片被鎖定導(dǎo)致無(wú)法分配處理過(guò)程

    本篇文章記錄最近ES做節(jié)點(diǎn)替換, 從shard 遷移過(guò)程中被鎖定導(dǎo)致無(wú)法分配, 主shard正常 ,希望可以幫助其它人 failed to create shard,failed to obtain in-memory shard lock,ShardLockObtainFailedException 這次遇到的問(wèn)題比較特殊,嘗試過(guò)以下幾種手段都沒(méi)有恢復(fù): _cluster/reroute手動(dòng)分片shard 由于

    2024年02月05日
    瀏覽(58)
  • Elasticsearch基礎(chǔ)篇(七):分片大小修改和路由分配規(guī)則

    Elasticsearch基礎(chǔ)篇(七):分片大小修改和路由分配規(guī)則

    在Elasticsearch中,分片是對(duì)索引數(shù)據(jù)的水平劃分和分布。索引被分成多個(gè)分片,每個(gè)分片可以在集群的不同節(jié)點(diǎn)上存儲(chǔ)。這種分片的設(shè)計(jì)提供了一種水平擴(kuò)展的能力,允許將大量數(shù)據(jù)分布到多個(gè)節(jié)點(diǎn)上,從而提高性能和可伸縮性。每個(gè)分片就是一個(gè)Lucene的實(shí)例,具有完整的功能

    2024年01月21日
    瀏覽(24)
  • 【Elasticsearch】索引恢復(fù)(recovery)流程梳理之EXISTING_STORE索引數(shù)據(jù)恢復(fù)

    索引recovery是指索引數(shù)據(jù)恢復(fù),包含以下幾種類型 EMPTY_STORE, 索引沒(méi)有數(shù)據(jù),一般是新建索引的情況,不用恢復(fù)數(shù)據(jù) EXISTING_STORE, 從本地存儲(chǔ)的數(shù)據(jù)恢復(fù),例如集群重啟primary shard進(jìn)行數(shù)據(jù)恢復(fù) PEER, 從另一個(gè)節(jié)點(diǎn)恢復(fù)數(shù)據(jù),例如集群重啟replica從primary恢復(fù)數(shù)據(jù);primary進(jìn)行relocat

    2024年01月18日
    瀏覽(31)
  • Elasticsearch:如何使用集群級(jí)別的分片分配過(guò)濾(不包括節(jié)點(diǎn))安全地停用節(jié)點(diǎn)

    Elasticsearch:如何使用集群級(jí)別的分片分配過(guò)濾(不包括節(jié)點(diǎn))安全地停用節(jié)點(diǎn)

    當(dāng)你想停用 Elasticsearch 中的節(jié)點(diǎn)時(shí),通常的過(guò)程不是直接銷毀節(jié)點(diǎn)。 如果你這樣做,那么你就有數(shù)據(jù)丟失的風(fēng)險(xiǎn),這不是你想要對(duì)應(yīng)該是可靠的數(shù)據(jù)庫(kù)做的事情。 這樣做的問(wèn)題是,節(jié)點(diǎn)很可能會(huì)通過(guò) Elasticsearch 處理的恰當(dāng)命名的分片分配分配給它們的分片。 Elasticsearch 中的

    2024年02月07日
    瀏覽(42)
  • ElasticSearch學(xué)習(xí)筆記-第四章 ES分片原理以及讀寫流程詳解

    ElasticSearch學(xué)習(xí)筆記-第四章 ES分片原理以及讀寫流程詳解

    在學(xué)習(xí)ES分片原理以及讀寫流程之前,需要先學(xué)習(xí)一些ES的核心概念以及ES集群環(huán)境的相關(guān)知識(shí) 4.1 ES核心概念 4.1.1 索引 索引(Index)相當(dāng)于MySQL中的數(shù)據(jù)庫(kù),一個(gè)索引就是一個(gè)擁有幾分相似特征的文檔的集合。 4.1.2 類型 類型(Type)相當(dāng)于MySQL中的表,一個(gè)類型就是索引的一個(gè)邏輯上

    2024年02月06日
    瀏覽(54)
  • ElasticSearch 數(shù)據(jù)分片

    ElasticSearch 數(shù)據(jù)分片

    一、ElasticSearch 分片 ElasticSearch集群中有許多個(gè)節(jié)點(diǎn)(Node),每一個(gè)節(jié)點(diǎn)實(shí)例就是一個(gè)實(shí)例;數(shù)據(jù)分布在分片之間。集群的容量和性能主要取決于分片如何在節(jié)點(diǎn)上如何分配。將數(shù)據(jù)分片是為了提高可處理的容量和易于進(jìn)行水平擴(kuò)展,為分片做副本是為了提高集群的穩(wěn)定性和提高

    2024年02月03日
    瀏覽(23)
  • Elasticsearch集群搭建、數(shù)據(jù)分片以及位置坐標(biāo)實(shí)現(xiàn)附近的人搜索

    es使用兩種不同的方式來(lái)發(fā)現(xiàn)對(duì)方: 廣播 單播 也可以同時(shí)使用兩者,但默認(rèn)的廣播,單播需要已知節(jié)點(diǎn)列表來(lái)完成 當(dāng)es實(shí)例啟動(dòng)的時(shí)候,它發(fā)送了廣播的ping請(qǐng)求到地址 224.2.2.4:54328 。而其他的es實(shí)例使用同樣的集群名稱響應(yīng)了這個(gè)請(qǐng)求。 一般這個(gè)默認(rèn)的集群名稱就是上面的

    2024年02月06日
    瀏覽(25)
  • ElasticSearch數(shù)據(jù)庫(kù)修改分片數(shù)、副本數(shù)及修改mapping字段

    ElasticSearch數(shù)據(jù)庫(kù)修改分片數(shù)、副本數(shù)及修改mapping字段

    ????????對(duì)于已經(jīng)存在的索引,副本數(shù)可以隨時(shí)修改。 示例演示如下: ????????ElasticSearch中的數(shù)據(jù)會(huì)被分別存儲(chǔ)在不同的分片上,索引庫(kù)的分片數(shù)量是在索引庫(kù)創(chuàng)建的時(shí)候通過(guò)settings去設(shè)置的,如果不設(shè)置,分片數(shù)默認(rèn)是5,分片數(shù)一旦確定就不能改變。分片數(shù)量的設(shè)

    2024年02月02日
    瀏覽(19)
  • Elasticsearch的集群負(fù)載均衡與分片分片

    Elasticsearch是一個(gè)分布式、實(shí)時(shí)的搜索和分析引擎,它可以處理大量數(shù)據(jù)并提供快速、準(zhǔn)確的搜索結(jié)果。在大規(guī)模應(yīng)用中,Elasticsearch的性能和可用性是關(guān)鍵因素。為了確保高性能和高可用性,Elasticsearch需要實(shí)現(xiàn)集群負(fù)載均衡和分片分片。 在本文中,我們將深入探討Elasticsear

    2024年04月25日
    瀏覽(32)
  • Elasticsearch 分片策略

    和數(shù)據(jù)庫(kù)中的表空間類似,不過(guò)分片是為每個(gè)索引設(shè)置,一個(gè)索引可以有多個(gè)分片,分片分為主分片和副本分片,主分片和副本分片類似于數(shù)據(jù)庫(kù)中的主庫(kù)和備庫(kù)。 主分片(shards):可以有一個(gè)或多個(gè),但至少會(huì)有一個(gè),默認(rèn)為1。多個(gè)主分片類似于分表,可以提高大量數(shù)據(jù)

    2024年02月05日
    瀏覽(28)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包