元資料的管理目前常用的幾種解決方案
元數據定義為:描述數據的數據,對數據及資訊資源的描述性資訊。
元資料(Metadata)是描述其它資料的資料(data about other data),或者說是用於提供某種資源的有關資訊的結構資料(structured data)。元資料是描述資訊資源或資料等物件的數據,其使用目的在於:識別資源;評估資源;追蹤資源在使用過程中的變化;實現簡單且有效率地管理大量網路化資料;實現資訊資源的有效發現、尋找、一體化組織和使用資源的有效管理。
對於元資料的管理目前有幾種常用的解決方案:中心節點管理元數據,分散式管理元數據,無元資料設計;本文談談三種方案的特點:
1、中心節點管理元資料
在設計分散式(儲存)系統時,使用中心節點是非常簡潔、清晰地一種方案,中心節點通常兼具元資料儲存與查詢、叢集節點狀態管理、決策與任務下發等功能;
優點:
A.由於其元資料集中式管理的特點,可以方便的處理群集維運管理的統計分析類需求;
B. 中心節點記錄了用戶資料的狀態資訊(即元資料),在擴容時,可以選擇不做rebalance操作(rebalance引起的數據遷移可能帶來巨大的效能開銷),且仍能正常尋址;
缺點及解決方案:
a.單點故障是設計分散式系統最忌諱的問題之一,中心節點簡潔的設計也帶來了這個問題,如何實現HA呢? ;解決方案:(1)使用主備模型,主備之間使用同步或非同步的方式進行增量或全量的資料同步(如TFS,mfs,HDFS2.0等),或主備之間使用遠端共享儲存(如HDFS2.0,遠端儲存需要高可用);
b.存在效能與容量擴充上限,集中式中心節點本身硬體設施存在擴充(scale up)上限及查詢式尋址方式,導致此問題;即使client緩存元資料或使用快取集群,也不能在根本上消除上限,在某些場景下(如海量小檔案),此問題仍然存在;解決方案:(1)優化升級硬體,如使用SSD,大記憶體等機器;(2)當面臨此問題時,考慮使用分散式管理元資料方案。
2、分散式管理元資料
和中心節點的方案相似,只是將元資料分片並使用分散式節點管理存儲,在保有中心節點方案優點的同時,解決了效能和容量擴展上限的問題,同時,多個節點同時提供元資料查詢服務,系統效能得到提升;
#缺點
此類系統較為少見,系統本身結構複雜,實作也有一定難度;
a.系統包含兩種相對獨立的分散式節點:元資料節點,資料節點,它們都是帶狀態節點,每種節點組成的分散式模組都要面對分佈式CAP原則的取捨,都要做到可擴展,尤其是元資料對一致性有更高要求;
b.元資料節點需要共同維護資料節點的狀態,並在狀態變更時作出一致性的決策;這些都對系統的設計和實現構成了很大挑戰;
c.另外,大量元資料所需的儲存設備也是一筆不可忽略的成本開銷;
上面兩種方案有著共同想法:記錄並維護資料的狀態(即元資料),資料尋址時先向元資料伺服器查詢,再存取實際資料;
3、無元資料設計
主要以ceph為例,有別於上述二者的思想,此類系統的主要思想:使用演算法計算尋址,尋址演算法的輸入參數之一為集群狀態(如資料節點分佈拓撲,權重,進程狀態等)的某種形式描述,此類常見演算法有consistent hashing,Ceph RADOS系統的CRUSH演算法,這類演算法通常不直接管理使用者數據,而是引入中間一層邏輯分片結構(如consistent hashing的環片段,ceph的placement group),其粒度更大,其數量有限且相對固定,用戶訪問的數據隸屬於其中唯一一個分片中,系統通過管理維護這些分片進而管理維護使用者資料;此類系統有的也有中心配置管理節點(如ceph rados的monitor),只提供叢集和分片等重要狀態的管理維護,不提供元資料的儲存查詢;
優點:
A.如前所述,系統只需管理維護邏輯分片與集群狀態等信息,不存儲管理用戶數據的元數據,系統的可擴展性大大增強,這在大量元數據場景時尤為明顯;
B.尋址演算法所需的參數資料量小且相對固定,client可以透過快取的方式,達到若干client並行尋址的目的,避免了尋址性能瓶頸;
缺點分析:
a.叢集擴容時(甚至權重改變時),需要做rebalance,尤其是資料規模很大(PB級以上)的集群,由此帶來的大量資料遷移使叢集一直處於高負載的狀態,進而使得正常業務請求的延時、iops等效能指標下降;但有些場景做叢集擴容時,並不希望做rebalance(如叢集容量不足);對此,常見策略是每個叢集預先做好效能、容量評估,需要擴容時,直接新建叢集;如果單一叢集必須做rebalance,透過人工幹預限流降低叢集負載;至於需要做rebalance的根本原因,本人認為擴容導致叢集狀態改變,進而導致尋址演算法結果改變,最終資料分佈也需隨之改變;
b.資料的副本分佈位置透過尋址演算法計算得出,位置相對固定,幾乎不可人為調整;但通常可以透過改變權重的方式改變資料總體分佈情況;
c.中心配置管理節點只管理分片信息,不知道單個用戶數據的信息,統計分析類的需求需要通過定期地收集數據節點信息等方式實現,並存儲維護。
總結:透過上述比較分析,三類系統的尋址策略,使系統本身均有自己相應的優缺點,它們都不是完美的,但都有其適宜的場景和業務,在系統設計與選型時,需要做全面的考量。

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

Win11是微軟推出的最新作業系統,相較於先前的版本,Win11在介面設計和使用者體驗上有了很大的提升。然而,一些用戶反映他們在安裝Win11後遇到了無法安裝中文語言套件的問題,這就給他們在系統中使用中文帶來了困擾。本文將針對Win11無法安裝中文語言套件的問題提供一些解決方案,幫助使用者順利使用中文。首先,我們要明白為什麼無法安裝中文語言包。一般來說,Win11

scipy庫安裝失敗的原因及解決方案,需要具體程式碼範例在進行Python科學計算時,scipy是一個非常常用的函式庫,它提供了許多用於數值計算、最佳化、統計和訊號處理的功能。然而,在安裝scipy庫時,有時會遇到一些問題,導致安裝失敗。本文將探討scipy庫安裝失敗的主要原因,並提供對應的解決方案。安裝依賴套件失敗scipy庫依賴一些其他的Python庫,例如nu

標題:解決Oracle字元集修改造成亂碼問題的有效方案在Oracle資料庫中,當字元集被修改後,往往會因為資料中存在不相容的字元而導致亂碼問題的出現。為了解決這個問題,我們需要採取一些有效的方案來處理。本文將介紹一些解決Oracle字元集修改引起亂碼問題的具體方案和程式碼範例。一、匯出資料並重新設定字元集首先,我們可以透過使用expdp指令將資料庫中的資料匯出

OracleNVL函數常見問題及解決方案Oracle資料庫是廣泛使用的關係型資料庫系統,在資料處理過程中經常需要處理空值的情況。為了因應空值所帶來的問題,Oracle提供了NVL函數來處理空值。本文將介紹NVL函數的常見問題及解決方案,並提供具體的程式碼範例。問題一:NVL函式用法不當NVL函式的基本語法為:NVL(expr1,default_value)其

C++中機器學習演算法面臨的常見挑戰包括記憶體管理、多執行緒、效能最佳化和可維護性。解決方案包括使用智慧指標、現代線程庫、SIMD指令和第三方庫,並遵循程式碼風格指南和使用自動化工具。實作案例展示如何利用Eigen函式庫實現線性迴歸演算法,有效地管理記憶體和使用高效能矩陣操作。

PyCharm是一款功能強大的Python整合開發環境,廣受開發者喜愛。然而,有時候我們在使用PyCharm時可能會遇到金鑰失效的問題,導致無法正常使用軟體。本文將為大家揭秘PyCharm密鑰失效的解決方案,並提供具體的程式碼範例,幫助讀者快速解決這個問題。在開始解決問題之前,我們首先要了解密鑰失效的原因。 PyCharm的金鑰失效通常是由於網路問題或軟體本身

MySQL安裝中文亂碼的常見原因及解決方案MySQL是一種常用的關係型資料庫管理系統,但在使用過程中可能會遇到中文亂碼的問題,這給開發者和系統管理員帶來了困擾。中文亂碼問題的出現主要是因為字元集設定不正確、資料庫伺服器和客戶端字元集不一致等原因導致的。本文將詳細介紹MySQL安裝中文亂碼的常見原因及解決方案,幫助大家更能解決這個問題。一、常見原因:字元集設

Java框架安全漏洞分析顯示,XSS、SQL注入和SSRF是常見漏洞。解決方案包括:使用安全框架版本、輸入驗證、輸出編碼、防止SQL注入、使用CSRF保護、停用不必要的功能、設定安全標頭。在實戰案例中,ApacheStruts2OGNL注入漏洞可以透過更新框架版本和使用OGNL表達式檢查工具來解決。