Hash-based partitioning in OpenStack Telemetry

偶然看到Redhet Principal Engineer的一篇slides,內(nèi)容是關(guān)于Telemetry Central Agent Partitioning的。 比較感興趣,先簡單翻譯下從宏觀上了解下。

Background

  • 在Ironic conductors中,使用連續(xù)哈希環(huán)(consistent hash-ring)來分配節(jié)點。受此方法啟發(fā)。

  • 主要想法是當共享最小信息時,允許central agents來自我組織。

  • BP spec中的關(guān)鍵步驟是blissful ignorance。

How does it work?

  • 啟動多個central agents。

  • tooz group membership允許每個agent知道其他agents的存在。

  • 每個agent載入相同的discovery extensions。

  • 每個discoverer都嘗試來discover所有的resources。

  • 但是只poll被分配的resources的子集。

How does the agent know which resources it's been assigned?

  • 每個discovered resource都有一個resource ID(UUID, IP addr, etc)。

  • 每個獨立的agent使用agent pool的基數(shù)來運算一個list清單做哈希。

  • 我們依賴哈希算法的均勻分布特性。

  • 所以每個agent能分辨:我是不是該為這個事情負責。

What happens when an agent dies or a fresh agent is started?

  • 每個agent注冊一個tooz group membership callback,所以一旦pool中l(wèi)ive agents發(fā)生了變化,所有注冊了的agent都會被通知到。

  • 一旦發(fā)生agent join或者leave,hash清單會改變大小。

  • 在下一次polling cycle中,每個agent劃分不同的不連續(xù)的子集來決定做哪些resources的discover。

  • 總之,我們覆蓋到所有的resources,以一個single polling cycle為模。

What are the keys win for this approach?

  • light
  • fast
  • simple
  • ignorant
  • thrifty

Reference

Eoghan Glynn http://www.slideshare.net/EoghanGlynn/hash-based-central-agent-workload-partitioning-37760440

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

  • 酒是中國人日常用品,男人都要喝酒。有的喜歡豪飲萬丈,有的喜歡小口品笳。我是兩種喝法都嘗過,不管是哪種喝法,烈酒下肚...
    犇壵森淼閱讀 332評論 0 1
  • 周末去看了期待已久的電影《路邊野餐》,這部低成本的獨立電影只上映十天,因為排片太少,我在炎熱的夏日里往返四十公里才...
    渡遠行舟閱讀 807評論 0 2
  • 看到有個朋友寫了7年來的生活,大概寫了幾個問題: 第一,在家與老公共同做外貿(mào),錢有了,卻感覺自己與社會脫節(jié)了。 第...
    陶子_演說教練閱讀 201評論 1 0

友情鏈接更多精彩內(nèi)容