摘要:七届中国国内“互联网+”大学生翻新守业大赛炽热报名中,为了帮忙参赛者更好理解赛题设计思路和命题方向,华为云产业命题赛道举办了线上直播解读,华为云数据库资深架构师苏斌在直播间具体解读了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命题解读直播回顾:回顾链接。
点击关注,第一工夫理解华为云陈腐技术~