來源:FilecoinNetwork
這篇文章描述了一個簡單的策略,可將大量涌入的索引負荷分散到由索引器節點組成的索引池中。同時,它讓這個索引池具備可擴展性。
索引器擴容的最終目標是10^{15}個索引。這并非存儲數據的字節大小,而是存儲索引的數量。一個索引實際上就是一張描述了CID標識與內容提供者數據之間關系的映射圖。實際的數據規模將會遠大于此。目前,我們可處理約10^{12}個索引,隨著時間的推移,我們會通過一列步驟向最終的擴容目標前進。
目前,大部分的索引負荷是由涌入的索引數據構成的。新增的數據可能超過單一的索引器能夠承受的范圍,它還在極速增加。因此,目前擴容路上最迫切的目標,就是處理增加中的涌入負荷。
方案:處理索引涌入的簡單策略
數據涌入
一個索引器接收到某個發布者傳來的“announce”消息,宣布已經有新的索引數據廣告時,就會發生數據涌入。作為回應,該索引器會從發布者那里檢索所有尚未檢索過的索引數據。隨著發布者數量增加,在某個時候,單一的索引器節點將無法跟上新增索引數據發布的速率,也可能沒有足夠的存儲空間來全部存儲這些數據。
分散涌入負荷
索引器擴容處理擁堵負載,是基于一個簡單策略——將涌入的索引負荷分散到由索引器節點組成的索引池中,這樣就能根據容量需求來增加節點,而不需要將數據到處移動來重新達到均衡。它先是分配不同的內容_發布者_給不同的索引節點,這樣每個節點可以處理涌入負荷的一部分。這是通過使用單獨的輕量服務AssignerService來實現的,后者不屬于關鍵的索引涌入路徑的一部分。
Michael Saylor:正為大企業加入比特幣閃電網絡研究解決方案:金色財經消息,MicroStrategy執行主席Michael Saylor表示,該公司的開發人員正在研究允許大量人員加入閃電網絡(Lightning)的解決方案,包括閃電網絡的企業應用:企業閃電錢包、企業閃電服務器、企業身份驗證。
據悉,閃電協議允許用戶在鏈上結算之前相互打開支付渠道并交換多筆交易,這有助于最大限度地減少費用和確認時間。在比特幣網絡中,交易通常需要 10 分鐘或更長時間才能被確認。(CoinDesk)[2022/9/5 13:09:15]
當一個索引器達到了配置的存儲限制后,它就會停止吸納新增的索引數據,而索引池里的其他索引器會從分配給完整索引器的發布者那里恢復吸納數據。如果存儲容量和涌入負荷分配需求增加,池子里就會增加更多的索引器節點。
這個擴容策略的三個主要組件是:
分配服務:它將發布者分配給索引器。
索引器凍結模式:這種索引器運作模式里,新內容不會被索引。
移交發布者任務:將凍結中的索引器的發布者任務重新分配給活躍的索引器,以在凍結索引器停止運行后恢復索引。
這篇文章會概括描述這些組件。可以在設計文檔和設計展示中獲取更多信息。
擴容策略的優缺點
Coinbase稱已為大型機構執行超10億美元加密貨幣交易:Coinbase在此前向美國證券交易委員會(SEC)提交的S-1表格中披露其已為“世界上一些最大的機構”執行了超過10億美元的加密貨幣交易。此前消息,Coinbase已獲SEC批準,將于納斯達克上市。(The Daily Hodl)[2021/2/27 17:57:54]
優點:
更少的同步工作:不需要讓每一個索引者與每一個發布者同步。
元數據不會重復發送給多個索引器:元數據只會在處理提供者的索引器上存在。
索引器之間不會分享數據。它們各自管理自己的發布者鏈。
不需要只為了檢查提供者而去閱讀廣告,這與提供者分片一樣。
索引器可有不同的存儲容量。
不需要共識機制。
涌入負荷可重新分配,而無需在索引器之間移動數據。
缺點:
不平均的分配:一些發布者可能會比其他發布者索引更多的數據。
查詢請求需要分散和合并:查詢請求會重復發送給所有索引器,而響應會合并成一個發送給客戶。
提供者更改發布者可導致重復索引。
增加索引者不會馬上起效,除非一個現有的索引器達到了存儲容量限制。
全國政協原副主席陳元:深入推進區塊鏈創新發展 積小勝為大勝:金色財經現場報道,2020年8月14日,全球區塊鏈創新發展大會于江西贛州開幕,會上全國政協原副主席、國家開發銀行董事長陳元致辭表示,贛州搶抓區塊鏈技術發展機遇,是一件非常有意義的事情,是前景光明的新方向。目前區塊鏈已經廣泛運用在多個領域,希望贛州和各界持續貫徹區塊鏈發展精神,深入推進區塊鏈創新發展,積小勝為大勝。[2020/8/14]
這方案的整體好處是它的實施方案相對簡單,也能去除擁堵擴容的限制。
分配服務
分配服務負責將發布者分配給在其配置索引器池中的索引者。對一個索引器池來說,它作為單一實例運行在其管理的索引器所在的同一網絡上。一個索引器只能作為一個分配服務的索引器池里的成員。
除了將新的發布者分配給索引器外,分配服務還檢測檢索器節點是否進入了凍結模式,并負責將發布者從凍結索引器重新分配給非凍結的索引器。索引服務還通過gossippubsub渠道重新發布直接的HTTP公告,這樣池中的所有索引器都能接收到這些信息。
基于幾個假設,分配服務是用于單個私有部署中使用:任務可以發給任何索引器,所有索引器的管理API是在私有網絡上運行,而且也沒有建立任何方式或協議讓不同的參與方管理池子中要添加或移除的節點。
將一個發布者分配給一個索引器
聲音 | 韓國分析師KANT:比特幣暴跌不是因為大量拋售:韓國加密貨幣網站BITGOSU分析師KANT認為,今天加密貨幣的暴跌有BCH分叉的原因,但是從obv或者pvt之類的指標來看,并不是因為大量拋售導致的暴跌。他表示,本來行情就非常不活躍,交易量大幅縮小,只要少量的籌碼就可以引起幣價的波動,這一點從多頭的策略中也可以看出來。他指出,和今年2月份的6000美元以及上一次低點5800美元相比,今天創出新低的量比前幾次小,所以KANT認為應該會快速反彈。但同時他表示,比特幣還有下降空間,所以要利用好各個支撐位,出售比特幣。[2018/11/15]
一個索引器接收到某個發布者傳來的“announce”消息,宣布已經有新的索引數據廣告時
分配服務會監聽gossip-sub和直接的HTTP消息——這些消息主要是宣布新廣告可被獲取了。它從每一條消息中讀取發布者信息,并判斷發布者是否已經分配給需要的索引器。如果答案是否定的,該分配服務就會選擇任務量最少的索引器,并將該發布者分配給這個索引器。在分配任務后,索引器會收到來自發布者的公告,并自行處理涌入數據。
索引服務會處理離線的索引器,它所用的方式能避免在索引器池里過度分配任務。索引服務還支持將特定發布者分配給特定索引器的配置選項。
進一步閱讀材料:
非持久化任務狀態(https://github.com/ipni/storetheindex/blob/main/doc/scaling-design-for-indest.md#no-persisted-assignment-state)意味著索引器能在任何時候停止或重啟。
加密貨幣可購買太陽能為大學提供電力:據CCN消息,聯合國開發計劃署在一份聲明中宣布,將與總部位于南非的區塊鏈公司Sun Exchange合作,為摩爾多瓦最大的一所大學提供動力。Sun Exchange可以用加密貨幣購買太陽能電池,為企業或學校提供電力,同時它還推出加密貨幣“SolarCoin”。[2018/5/19]
索引器池(https://github.com/ipni/storetheindex/blob/main/doc/scaling-design-for-indest.md#indexer-pool)在某個單一部署中的索引器節點的集合。
任務復制(https://github.com/ipni/storetheindex/blob/main/doc/scaling-design-for-indest.md#replication)將發布者分配給多個索引器。
索引器凍結模式
索引器存儲使用觸及到配置`FreezeAtPercent(<``https://pkg.go.dev/github.com/ipni/storetheindex/config#Indexer`(https://pkg.go.dev/github.com/ipni/storetheindex/config#Indexer"https://pkg.go.dev/github.com/ipni/storetheindex/config#Indexer")`>)`的限制后,索引器自動進入“凍結”模式。這個運作模式里,索引器不再存儲新增的索引數據,但還是會處理索引數據的更新或刪除。一個凍結的索引器不會接受新的發布者任務。在其內部,該索引器追蹤它已讀的每一個廣告鏈,目的是納入廣告。索引器會持續響應對索引數據的查詢。
索引器也可以通過其管理(admin)API來手動進行凍結。這可以是為了暫時凍結納入數據,直到索引器的存儲容量提升為止。這樣,持續的索引工作可以被其他索引器節點代替。
進一步閱讀材料:
磁盤使用監控(https://github.com/ipni/storetheindex/blob/main/doc/scaling-design-for-indest.md#disk-usage-monitoring)由每一個索引器負責。
凍結的能力不依賴于分配服務(https://github.com/ipni/storetheindex/blob/main/doc/scaling-design-for-indest.md#freeze-independent-of-assigner)。
解除凍結的能力(https://github.com/ipni/storetheindex/blob/main/doc/scaling-design-for-indest.md#unfreeze)可讓索引器恢復索引工作。
發布者移交
分配服務定期統計索引器,要是它發現某個索引器被凍結,它就會將該被凍結的索引器分配的發布者重新移交給其他索引器——活躍的索引器會繼續之前凍結索引器上所做的工作。在移交過程中,活躍的索引器也會從凍結的索引器那取得提供者及其相關的進一步信息。
分配服務決定哪一個索引器將接收發布者的移交工作——這與分配新發布者的邏輯一樣。每一個發布者的移交過程都會單獨進行這一步驟,這樣凍結索引器的任務就會分配給池子里的可用索引器。
進一步閱讀材料:
分配服務可以恢復不完整的移交任務(https://github.com/ipni/storetheindex/blob/main/doc/scaling-design-for-indest.md#resuming-incomplete-handoff)。
發布者數據在凍結和活躍索引器之間分發。(https://github.com/ipni/storetheindex/blob/main/doc/scaling-design-for-indest.md#publisher-data-spread-across-frozen-and-active-indexers)
設立帶有分配服務的索引器池
這里(https://github.com/ipni/storetheindex/blob/main/doc/assigner-deployment.md#setting-up-indexer-pool-with-assigner-service)描述了設立帶有分配服務的索引器池的過程。可概括為以下步驟:
部署索引器(https://github.com/ipni/storetheindex/blob/main/doc/assigner-deployment.md#deploy-indexers)
部署分配服務(https://github.com/ipni/storetheindex/blob/main/doc/assigner-deployment.md#deploy-assigner-service)
按需部署額外的索引器(https://github.com/ipni/storetheindex/blob/main/doc/assigner-deployment.md#example-assigner-service-configuration)
這里還提供了分配服務配置模板文件(https://github.com/ipni/storetheindex/blob/main/doc/assigner-deployment.md#example-assigner-service-configuration)。
整理:西昻翔,ChainCatcher“過去24小時都發生了哪些重要事件”?1、香港眾安銀行將通過持牌交易所提供加密貨幣到法定貨幣的兌換服務據彭博社報道.
1900/1/1 0:00:00DWFLabs管理合伙人AndreiGrachev在社交媒體上再次回應拋售代幣、洗盤交易等質疑.
1900/1/1 0:00:00AvatarDAO宣布參與音樂NFT交易平臺和多合一應用Muverse種子輪融資,并與Muverse建立戰略合作伙伴關系以推動Web3音樂賽道的發展.
1900/1/1 0:00:00整理:西昻翔,ChainCatcher 重要資訊 1、SBF被指向中國政府官員賄賂4000萬美元加密貨幣.
1900/1/1 0:00:00流動性質押協議Lido公布了與用戶提款ETH掛鉤的NFT發行計劃,每個NFT作為取消質押其ETH的請求。這些提款將在下個月以太坊上海升級后啟用.
1900/1/1 0:00:00作者:?Brand3DAO主題:機會與挑戰:Web3世界中的創作者經濟時間:4月3日20:00-22:00直播渠道:ZOOM+視頻號 社區支持: LXDAO/BuidlerDAO/3WW3亞非拉.
1900/1/1 0:00:00