首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> DB2 資料庫 >> DB2 教學

超級資料庫:極大與極快的演進邏輯

     編輯:DB2 教學

稱某物大或快時,立即面臨問題:「跟什麼比?」小公司所謂「大型」資料庫,面對每年 28 PB 速度增長的國家級儲存庫顯得微不足道;為電商網站處理交易的所謂「快速」資料庫,與執行股市交易、存取時間以毫秒計的資料庫相比不值一提。但即使貴公司無意追求最大或最快資料庫,管理此類資料庫的經驗教訓仍適用於您的環境。可以肯定,此領域趨勢必將流向各種規模的資料庫。

超大的定義演進

隨資料量增長,公共和企業資料庫持續擴張。4 年前 WinterCorp 評定世界最大資料庫超過 100 TB。10 年評選歷史中,Yahoo! 資料庫首個突破 100 TB。如今存儲更多數位資訊,「超大」定義為何?無標準定義,單純大小非唯一判準,只是因素之一。賓大物理學教授、National Scalable Cluster Project 共同創始人 Robert Hollebeek 博士提出可行定義:5 年前 TB 級可稱「超大」,如今必須是 PB 級。「另一定義:若資料庫索引連超級電腦或叢集的 TB 級實體記憶體都無法容納,可稱超大資料庫。」需那麼多索引的資料庫確稱得上超大,效能與管理是大問題。

Hollebeek 說:當儲存資料所需硬體總量成問題時,也可稱超大資料庫:「當您有數千磁碟單元、放平行電腦的機架擺滿整間房時,就難以管理了。」西班牙儲蓄銀行聯合會 (CECA) IBM Information Champion Manuel Gomez BurrIEl 認為易管理性可區分「大型」與超大資料庫:「常規管理任務在規定時間無法完成。恢復損壞資料庫需數小時,但可用時間只有數分鐘。效能受影響,因資料庫太大無法裝入記憶體緩存。僅響應應用請求就帶來難以接受的 CPU 開銷。」

超大資料庫肖像:NDMA 案例

深入研究極大資料庫可得出適用於其他規模的教訓。Hollebeek 擔任 National Digital Mammography Archive (NDMA) 技術主管,NDMA 為容納每年 28 PB 增長資料庫設計的系統。由美國國家衛生研究院資助,建立分散式系統網格儲存醫療記錄與影像。系統儲存乳房攝影、MRI 掃描等組成「病例」的相關檔案,每病例佔 1 GB,數百萬病例。除解決儲存與存取海量資料,NDMA 還必須處理分散不同地理位置系統上的密封式數據問題——全球企業共同難題。為連接四家參與研究醫院,NDMA 每家安裝加密安全線路與「接入點」(加密檔案、用專用網路協議高效發送大塊資料的硬體)。

「我們項目規模極大,不能喪失任何醫療數據。需要穩定、高度可靠、真正快速、可並行的技術,因系統基於構建平行電腦叢集。必須容錯,因索引表崩潰或消失不可容忍。」Hollebeek 說。NDMA 使用 IBM DB2 Parallel Edition 儲存資料庫索引,實際影像資料儲存在平行磁碟矩陣上的平面檔案資料庫,由作業系統(Linux)本地檔案系統管理。

來自 NDMA 的教訓

  • 注意透過網路(Internet 或私有網)發送大量資料的問題。尋找高效發送方法:在收發端安裝接入點,或使用發送大型(多 MB)資料塊的協議
  • 不要改變接收資料格式。無損壓縮雖好,但為省少量空間重新格式化儲存接收資料會導致更多問題。醫療資料若格式變更出錯導致不可用,屬嚴重問題
  • 一旦索引表無法裝入記憶體,資料庫效能直線下降,盡量升級記憶體存放索引表。利用資料中任何並行結構,透過聚類有效增加容量。不行則為索引再建索引

超快的定義演進

與超大同樣,超快定義隨技術確立新極限而改變。「通常以每秒交易量度量速度,也許每秒百萬交易算快。但隨新技術誕生,『交易』定義只是一種普通資料庫存取」,IDC 研究副總裁 Carl Olofson 說,「未來將有其他類型資料庫存取,使資料庫與記憶體差異模糊。Pull 資料可能需要某種重定向記憶體存取,而非真正綁定資料庫啟動交易。顯然那會非常快。」Olofson 從更廣義定義「快」:「任何系統目標都是確保資料庫不拖累應用,以應用執行速度返回資料。」

Gomez 類似定義超快:「快到足以按與客戶協定的服務品質協議 (SLA) 交付資訊。」補充:「最快資料庫能盡可能直接從記憶體存取資訊塊。我們一個支付系統應用使用具 Fast Path Solution 與企業儲存子系統的 IMS,提供每交易 <20ms 回應時間,為獲取客戶端所需資訊最多存取 14 個資料庫。」

一秒延遲已太長

ATM 財務系統雖稱得上快但已落伍。「最近可能需等待一秒左右看帳戶餘額」,Olofson 說,「過去還算好,現在只能算普通。」專家談論高速資料庫交互時,指通訊系統:連接通話時,系統立即查找客戶帳戶、確定服務類型、決定路由與可用特性,在無線環境完成,且任何人帳戶隨時改變。

另一超快應用:金融服務業投資組合驅動的演算法交易。「一家公司可能有數百帳戶,每帳戶略不同投資組合,因此不同規則決定交易」。收到價格時必須在幾毫秒內應用規則,系統能否提供此速度決定管理成敗。

如此超快速度需高度響應後端資料庫,通常需分層系統或資料庫。許多情況下後端實際為大型主機資料庫(如 IBM 基於大型主機的分層 DBMS IMS)。分層方案中有記憶體內資料庫緩存功能作為後端前端。最早投資分層方案的是需要超快系統的客戶。

即將到來的提速技術

  • 記憶體內緩存方案:如 IBM solidDB,將資料庫從較慢硬碟移至較快 RAM,大幅提升響應速度
  • 固態硬碟 (SSD)/快閃記憶體:主存與磁碟間中間層,成本降低時可成主要儲存介質
  • 靈活儲存架構:傳統記錄式儲存(表中列)轉向 columnar 資料庫、索引矩陣指向的資料池,提供更高內部儲存靈活性。從應用角度看像傳統關聯資料庫,但可擴展像物件/XML/多值/多維資料庫運作
  • 流處理:在收集資料過程中即處理分析,而非等資料完全進入資料庫。IBM InfoSphere Streams 採用此法,支援監視同時發生的資料流、提供近即時分析,隨新資料到達持續精化。現實應用見 2009 年 IBM Data Management 第 3 期「更加智能:提高 Galway Bay 的 IQ」

顯然,超大超快資料庫領域客戶需持續推動技術發展。無論儲存檢索多少資料、速度多快,許多公司開發新產品使之可能。如語言、時尚、藝術,今日所謂極限明日將變得平庸。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved