六月婷婷AV,国产偷窥猎奇福利二区,日韩三级片。,好吊色网站,日韩成人中文在线视频,国产亚洲午夜啪啪,亚洲欧美另类国产精品,国产成人av1,任你艹在线观看

提升企業(yè)級數(shù)據(jù)處理效率!3.0 系列版本的四個集群優(yōu)化點詳解

為了幫助企業(yè)更好地進行大數(shù)據(jù)處理,我們在此前 TDengine 3.x 系列版本中進行了幾項與集群相關的優(yōu)化和新功能開發(fā),以提升集群的穩(wěn)定性和在異常情況下的恢復能力。這些優(yōu)化包括 clusterID 隔離、leader rebalance、raft learner 和 restore dnode。本文將對這幾項重要優(yōu)化進行詳細闡述,以解答企業(yè)在此領域的疑問,并幫助大家更好地應對相關挑戰(zhàn)。

clusterID 隔離

  1. 問題
    • firstEp 節(jié)點掛掉后,磁盤掛載錯誤,掛載了一個空白磁盤啟動,或者 firstEp 數(shù)據(jù)被意外刪除;
    • firstEp 再次重啟。嚴重點是這個出錯的節(jié)點,導致其他節(jié)點也無法工作,整個集群都掛掉,集群失去了高可用特性。
  2. 造成的后果

firstEp 節(jié)點在無數(shù)據(jù)的情況下重新啟動,相當于新創(chuàng)建了一個集群,它重新初始化為一個新集群(重新生成了 clusterid),但此時原集群(舊的 clusterId)中的其它 N-1 個節(jié)點仍然向它們所保存的 firstEp 發(fā)送心跳,而收到心跳消息的 firstEp 已經(jīng)是一個新的集群了,所以會拒絕心跳消息,返回節(jié)點不存在,要求心跳發(fā)送方下線,這些節(jié)點收到下線通知后會主動下線,直接導致原集群中的所有節(jié)點都不可用。

  1. 解決辦法

為節(jié)點心跳、raft 心跳增加對 clusterid 的判斷,即對 clusterid 進行隔離,讓具有不同 clusterid 的節(jié)點可以獨立運行。這種解決辦法可以應對節(jié)點已經(jīng)在空白數(shù)據(jù)上重啟的情況。

  1. 解決后的效果

在出現(xiàn)磁盤故障后,firstEp 節(jié)點啟動后,會形成兩個集群,一個是 firstEp 節(jié)點形成的單節(jié)點新集群,另一個是所有其他節(jié)點保持舊 clusterid 的舊集群。兩個集群可以獨立且互不干擾的正常運行。

RAFT Leader Rebalance(TDengine Enterprise 企業(yè)版)

  1. 問題

比較常見的使用場景,在滾動升級后,所有的 leader 都被趕到一個節(jié)點上,整個集群嚴重失衡

  1. 解決辦法

增加 balance vgroup leader; 的 SQL 命令,由 DBA 人工觸發(fā)集群再平衡,該命令會依次順序對每個 vgroup 強制重新選舉 RAFT leader。因為選舉是隨機的,所以我們可以通過選舉讓 leader 遷移到其他的節(jié)點上。

  1. 解決后的效果

選舉理論上隨機選出 leader,導致 leader 散開的結果。理論上會均勻,實際上不會絕對均勻。

Raft Learner

  1. 問題

在副本變更時(create mnode, alter db replia),如果存量數(shù)據(jù)(元數(shù)據(jù)或時序數(shù)據(jù))量比較大時,相應操作會執(zhí)行很長時間,要等待存量數(shù)據(jù)同步完成后命令才能執(zhí)行完成,并且在此期間會阻塞數(shù)據(jù)寫入。

  1. 解決辦法

在 Leader/Follower/Candidate 之外引入第四種 Raft 角色——Raft learner。Raft Learner 只同步數(shù)據(jù)不參與選主,也不參與數(shù)據(jù)寫入時的一致性協(xié)議。當 Raft Learner 的數(shù)據(jù)同步進度被追上后才會變身為 Follower,成為 Raft 集群的一部分。這樣命令雖然執(zhí)行很長時間,但不會阻塞寫入。

  1. 受影響的命令
Create mnode on dnode id;

ALTER DATABASE power replica 3;
  1. 解決后的效果

副本變更時,不會再阻塞寫入。相應的命令執(zhí)行可以很快返回。

Restore dnode(TDengine Enterprise 企業(yè)版)

  1. 問題

數(shù)據(jù)盤出現(xiàn)問題,重新掛載新數(shù)據(jù)盤,這個節(jié)點上所有數(shù)據(jù)目錄都丟失。

  1. 解決辦法

增加命令:

restore dnode <dnode_id>;# 恢復dnode上的mnode,所有vnode和qnode

restore mnode on dnode <dnode_id>;# 恢復dnode上的mnode

restore vnode on dnode <dnode_id> ;# 恢復dnode上的所有vnode

restore qnode on dnode <dnode_id>;# 恢復dnode上的qnode

該命令,從 mnode 讀取節(jié)點中關于 mndoe、vnode、qnode 的信息,按照這些在節(jié)點重建 mnode、vnode、qnode,在重建結束后,會開始從其他副本復制數(shù)據(jù)。

  1. 解決后的效果

按照原有的 taos.cfg 的配置啟動 taosd,該節(jié)點會自動加入群,并且 dnode 顯示為 ready,即 online 狀態(tài)。在節(jié)點變?yōu)?online 后,通過命令可恢復全部 mnode、vnode、qnode,也可以分別恢復。

  1. 功能限制

該功能是基于已有的復制功能的恢復,不是災難恢復或者備份恢復,所以對于 mnode 和 vnode 來說,使用該命令一定是還存在其他 mnode 和 vnode 的其他副本。該命令不能修復數(shù)據(jù)目錄中個別文件的損壞或者丟失,是整體的恢復一個 mnode 或者 vnode。

寫在最后

通過本文,相信大家已經(jīng)初步了解了上述幾項功能優(yōu)化。如果你對這些功能有進一步的了解需求,或者希望進一步討論在應用中遇到的問題,歡迎添加小T vx:tdengine,與我們專業(yè)的解決方案架構師直接溝通。