如何管理高度可擴(kuò)展系統(tǒng)中的元數(shù)據(jù)?
譯文譯者 | 布加迪
審校 | 孫淑娟
元數(shù)據(jù)過去對數(shù)據(jù)中心架構(gòu)的影響很小。元數(shù)據(jù)是有關(guān)數(shù)據(jù)的數(shù)據(jù),隱藏在某個地方以便檢索和分析,對業(yè)務(wù)運(yùn)營幾乎沒什么影響。隨著大數(shù)據(jù)、人工智能、物聯(lián)網(wǎng)和5G等應(yīng)用系統(tǒng)規(guī)模擴(kuò)大,它們積累了眾多元數(shù)據(jù),現(xiàn)在數(shù)據(jù)和元數(shù)據(jù)之間的傳統(tǒng)關(guān)系已被顛覆。
十年前,數(shù)據(jù)和元數(shù)據(jù)的典型比率是1000:1。比如說,大小為32K的數(shù)據(jù)單元(文件、塊或?qū)ο螅⒂写蠹s32個字節(jié)的元數(shù)據(jù)?,F(xiàn)有的數(shù)據(jù)引擎能夠非常有效地處理這些數(shù)量的數(shù)據(jù)。如今,對象很小時(shí),這個比率通常更像是1:10。許多組織現(xiàn)在發(fā)現(xiàn)元數(shù)據(jù)超過了所存儲的數(shù)據(jù)量;隨著非結(jié)構(gòu)化數(shù)據(jù)的數(shù)量持續(xù)猛增,情形只會變得更糟。
元數(shù)據(jù)激增的這種狀況引發(fā)了這些方面的問題:將元數(shù)據(jù)存儲在何處、如何有效管理,最重要的是如何擴(kuò)展底層架構(gòu)以支持快速增長的元數(shù)據(jù)量和快速擴(kuò)展的系統(tǒng)。除非元數(shù)據(jù)擴(kuò)展問題得到了充分解決,否則保存元數(shù)據(jù)的系統(tǒng)最終會遇到可能影響業(yè)務(wù)運(yùn)營和性能的問題。
擴(kuò)展元數(shù)據(jù)的四個解決之道
處理元數(shù)據(jù)時(shí),無法有效地運(yùn)用這種傳統(tǒng)做法:添加更多的計(jì)算資源及/或?qū)嵤└鞣N解決方案來監(jiān)控和優(yōu)化IT堆棧的不同層,從而解決可擴(kuò)展性和性能問題。
組織通常使用RocksDB之類的鍵值存儲(KVS)系統(tǒng)來管理元數(shù)據(jù),KVS系統(tǒng)依賴存儲引擎(又叫數(shù)據(jù)引擎),是對數(shù)據(jù)進(jìn)行排序和索引的軟件堆棧的一部分。
然而現(xiàn)有的數(shù)據(jù)引擎存在容量有限、CPU利用率高和內(nèi)存消耗大等先天不足,這些都是無法通過單單添加計(jì)算能力就能解決的。通常,一系列運(yùn)營任務(wù)在此時(shí)開始,其中很少有有效的長期解決方案。
1. 分片——該過程將數(shù)據(jù)集拆分為邏輯片段,并同時(shí)運(yùn)行多個數(shù)據(jù)集。這是處理高度可擴(kuò)展系統(tǒng)生成的元數(shù)據(jù)的一種方法——至少在短期內(nèi)如此。然而,隨著越來越多的數(shù)據(jù)流入系統(tǒng),最初的分片方案常常出問題,在開發(fā)人員必須不斷重新分片的情況下開始暴露出來,本身成為一項(xiàng)活動。
2. 數(shù)據(jù)庫調(diào)優(yōu)——即便使用靈活高效的NoSQL數(shù)據(jù)庫,開發(fā)人員也常常難以為遇到需要調(diào)優(yōu)的性能問題的應(yīng)用程序?qū)iT創(chuàng)建不尋常的配置。如果工作負(fù)載或底層系統(tǒng)發(fā)生變化,這些實(shí)例就會遇到額外的、更大的性能問題。隨著應(yīng)用系統(tǒng)越來越龐大、越來越復(fù)雜,這可能會帶來看似無窮無盡的進(jìn)一步重新調(diào)優(yōu)的循環(huán),結(jié)果耗費(fèi)開發(fā)人員的時(shí)間。
3. 數(shù)據(jù)引擎調(diào)優(yōu)——存儲管理的基本操作通常由數(shù)據(jù)引擎(即存儲引擎)執(zhí)行。數(shù)據(jù)引擎作為應(yīng)用程序和存儲層之間的軟件層加以安裝,這是一種嵌入式鍵值存儲(KVS),用于對數(shù)據(jù)進(jìn)行排序和索引。此外,KVS日益作為應(yīng)用程序內(nèi)部的軟件層加以實(shí)施,以便在傳輸過程中對實(shí)時(shí)數(shù)據(jù)執(zhí)行不同的動態(tài)活動。這種類型的部署常常旨在管理元數(shù)據(jù)密集型工作負(fù)載,并防止可能導(dǎo)致性能問題的元數(shù)據(jù)訪問瓶頸。
數(shù)據(jù)引擎是復(fù)雜的構(gòu)件,組織常常發(fā)現(xiàn)在根據(jù)特定的性能和可擴(kuò)展性要求,調(diào)整和配置應(yīng)用程序底部的數(shù)據(jù)引擎方面存在技能方面的缺口。就連熟練的開發(fā)人員也難以克服這一點(diǎn)。
4. 添加資源——解決任何性能問題的傳統(tǒng)方法案都是添加額外的存儲資源以解決問題。這常常是一種權(quán)宜之計(jì),成本無以為繼。
新的方法
當(dāng)前的數(shù)據(jù)架構(gòu)再也不能支持現(xiàn)代企業(yè)的需求,這促使企業(yè)需要從頭開始設(shè)計(jì)新數(shù)據(jù)引擎,以跟上元數(shù)據(jù)增長的步伐。但隨著開發(fā)人員開始深入數(shù)據(jù)引擎的底層,他們面臨這一挑戰(zhàn):在不影響存儲性能、敏捷性和成本效益的情況下,實(shí)現(xiàn)更大的規(guī)模。這就需要一種新的架構(gòu)來支持新一代數(shù)據(jù)引擎,該引擎可以有效地處理海量元數(shù)據(jù),仍能確保應(yīng)用程序可以快速訪問元數(shù)據(jù)。
下一代數(shù)據(jù)引擎可能是新興用例的關(guān)鍵賦能因素,這些用例的特點(diǎn)是數(shù)據(jù)密集型工作負(fù)載需要前所未有的規(guī)模和性能。比如說,實(shí)施適當(dāng)?shù)臄?shù)據(jù)基礎(chǔ)設(shè)施來存儲和管理物聯(lián)網(wǎng)數(shù)據(jù)對于智慧城市項(xiàng)目的成功至關(guān)重要。該基礎(chǔ)設(shè)施必須有足夠的可擴(kuò)展性,以便在不犧牲性能的情況下,處理來自交通管理、安全、智能照明、廢物管理及許多其他系統(tǒng)的不斷增多的元數(shù)據(jù)。這對響應(yīng)時(shí)間和延遲高度敏感的應(yīng)用程序而言尤為重要,比如交通優(yōu)化和智能泊車。
元數(shù)據(jù)增長將繼續(xù)是數(shù)據(jù)中心面臨的問題,涉及越來越多的各種數(shù)據(jù)密集型用例。最近加大數(shù)據(jù)引擎創(chuàng)新力度的舉措為致力于使應(yīng)用程序能夠擴(kuò)展和增長的團(tuán)隊(duì)提供了選擇。
原文標(biāo)題:??How to Manage Metadata in a Highly Scalable System???,作者:Adi Gelvan