【“互聯網+”大賽華為雲賽道】GaussDB命題攻略:支持三種開發語言,輕松完成數據庫緩沖池


摘要:七屆中國國際“互聯網+”大學生創新創業大賽火熱報名中,為了幫助參賽者更好了解賽題設計思路和命題方向,華為雲產業命題賽道舉行了線上直播解讀,華為雲數據庫資深架構師蘇斌在直播間詳細解讀了GaussDB命題賽道攻略,通過剖析數據庫關鍵技術和賽題考點,助力參賽選手輕松拿高分。

目前,第七屆中國國際“互聯網+”大學生創新創業大賽火熱報名中,為了幫助參賽者更好了解賽題設計思路和命題方向,華為雲產業命題賽道舉行了線上直播解讀,華為雲數據庫資深架構師蘇斌在直播間詳細解讀了GaussDB命題賽道攻略,通過剖析數據庫關鍵技術和賽題考點,助力參賽選手輕松拿高分。

數據庫是什么?

談及數據庫,可能有很多小伙伴不太了解,簡單來說,數據庫是存取和管理數據的軟件(在生活中可以形象的類比為“大倉庫”、“電子文件櫃”等等)。當今世界是一個信息爆炸的時代,充斥着大量數據,我們的衣食住行,生活的方方面面都與數據有了不可分割的關系。

為了滿足各種類型的數據特點與爆炸式的數據增長與存儲管理壓力,社會催生了多種類型數據庫的蓬勃發展,很多關鍵的數據庫新技術,例如分布式、雲原生等也應運而生。這類數據庫相比傳統數據庫性能更強,可靠性更強,擴展性更強,容量更大,有了這類數據庫,數據讀取/存儲速度更快了,時延更低了,應對故障場景更從容了,面對大流量洪峰再也不怕了……

說到雲原生分布式數據庫的典型代表,華為雲GaussDB(for MySQL)必須榜上有名。作為華為雲GaussDB數據庫的當家花旦,GaussDB(for MySQL) 100%兼容MySQL語法,是華為最新一代高性能企業級分布式關系型數據庫。它基於華為最新一代DFV分布式存儲,采用計算存儲分離架構,最高支持128TB的海量存儲,可實現超百萬級QPS吞吐,支持跨AZ部署,數據0丟失,既擁有商業數據庫的性能和可靠性,又具備開源數據庫的靈活性。

為了讓開發者深入了解數據庫技術,並用相關技術解決企業實際業務問題,本屆“互聯網+”大賽的產業命題賽道·華為雲GaussDB命題推出了相關題目:基於GaussDB(for MySQL)實現高性能、高擴展性的bufferpool(緩沖池)。

賽題解讀:搶先掌握bufferpool(緩沖池)原理及技術,應戰更從容

數據庫系統一般都會有一個Buffer Pool(緩沖池),用於將一些頻繁訪問的熱點數據從磁盤讀到緩存中,避免我們在數據庫中讀取或者寫入數據時對慢速磁盤設備進行頻繁訪問,從而加快數據的訪問速度,提升數據庫的性能。

本賽道賽題就是希望選手能借鑒並參考GaussDB(for MySQL)的設計理念和思路,實現一個高性能、高擴展性的Buffer Pool。比賽分為三個階段,1)實現一個基本功能的Buffer Pool, 能夠緩存固定大小(16K)的一些熱點數據,需要保證從緩存中讀取和寫入數據的正確性。2)在保證正確性的前提下,使用LRU、LFU和LRU-K等淘汰算法及其變種,提升Buffer Pool 的命中率,從而提高熱點數據訪問速度。3)在雲化場景下,為了提高資源利用率,會多種數據庫共用同一存儲資源池,每種數據庫有不同的page size(頁面大小), Buffer Pool需要有高擴展性,能夠支持同時緩存各種page size(page size 固定為8KB、16KB、32KB和2MB)的數據。

這里科普下賽題中的相關概念:

  • Page:Page是數據庫中磁盤和內存交換的基本單位,也是數據庫管理磁盤空間的基本單位。比如MySQL中默認的page大小為16K,PostgreSQL page為8K。
  • Data manager:數據管理器,用於管理數據的讀取和寫入。
  • Meta manager:元數據管理器,用於管理page在內存中的信息。

答題指南

8月31日報名結束后(在互聯網+大賽官網華為雲平台均需報名),提交作品入口正式對外開放,請參考賽事組提供的DEMO,該DEMO包含評測程序及簡單Buffer Pool實現,請在此基礎上完成Buffer Pool的代碼編寫與編譯,並在平台上傳參賽作品,獲取評測分數與結果。賽題組針對C++語言提供了log4cxx日志組件,詳情參見賽題組DEMO,Java/Python等語言請使用常用的日志組件。作品運行反饋界面同時也提供日志下載,同時請避免打印過多的日志。

為了充分保證比賽的公平性,參賽選手不得使用第三方存儲引擎庫(如RocksDB、LevelDB、LMDB等),在其之上封裝接口用來參賽;不得依賴第三方動態庫,以免導致程序在評測環境不能運行;參賽程序初始化需在3分鍾內完成,關閉需在10分鍾內完成,測試需在30分鍾內完成。

什么樣的作品容易拿高分?

如果想完成高質量作品在大賽中“一騎絕塵”,那么你可能還需要了解比賽的評分邏輯,每個作品的測評分為兩個階段,包括正確性評測和性能評測。

正確性評測階段,評測程序會進行純讀和讀寫混合測試。測試系統會隨機對所有數據頁面進行訪問,訪問包括讀和寫。

a. 對讀取的頁面,會對該頁面進行正確性驗證,頁面驗證不通過測試將結束,且測試不得分。

b. 對寫入的頁面,該頁面可能在后續被再次訪問,並進行正確性驗證;同時當評測程序完成運行測試后,將發送信號關閉參賽程序,參賽程序需持久化尚未持久化的頁面數據,評測程序將進行頁面正確性驗證。如果驗證不通過,測試將結束,且測試不得分。

只有通過正確性評測階段,才會進入性能評測階段。性能評測的評測模型會有多種,評測參數參考如下:

在正確性驗證通過的情況下,對每個不同評測模型的測試階段整體計時,如果該階段的正確檢測全部通過,則成績有效,根據總用時從低到高進行排名(用時越短排名越靠前)。評測程序將根據評測模型對參賽程序進行測試,計時從發送第一個請求開始,最后一個請求完成結束,最終計時為各項測試模型的測試階段耗時之和。

最后再次提醒大家,本次“互聯網+”大賽GaussDB賽道的時間安排:報名和時間截止到8月31日,初/復賽截止9月30日,預計10月中下旬舉行全國總決賽。點擊鏈接進入大賽頁面報名:戳它報名。想要了解更多賽題詳解,歡迎觀看GaussDB命題解讀直播回顧:回顧鏈接

 

點擊關注,第一時間了解華為雲新鮮技術~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM