小T发福利,快来领GPU啦! 查看详情
首页 > 天池大赛 > 第一届POLARDB数据性能大赛
  • 状态 举办方 第 1 赛季截止日期 总奖池 参赛队

    第一届POLARDB数据性能大赛

    进行中 2018/11/19 ¥500000 1671

    报名参赛

赛题背景

POLARDB作为软硬件结合的代表, 充分使用新硬件, 榨干硬件的红利来为用户获取极致的数据性能, 其中在PPOLARDB 的设计中, 我们使用 Optane SSD作为所有热数据的写入缓冲区, 通过kernel bypass的方式, 实现了极致的性能。所以本次比赛就以Optane SSD为背景,参赛者在其基础之上探索实现一种高效的kv存储引擎。



赛题描述

一、赛题详细描述(持续更新):https://code.aliyun.com/polar_race2018/competition_rules

二、概况描述如下:

1.    初赛赛题

实现一个简化、高效的kv存储引擎,支持Write、Read接口。

程序评测逻辑
评测程序分为2个阶段:
1)Recover正确性评测

此阶段评测程序会并发写入特定数据(key 8B、value 4KB)同时进行任意次kill -9来模拟进程意外退出(参赛引擎需要保证进程意外退出时数据持久化不丢失),接着重新打开DB,调用Read接口来进行正确性校验

2)性能评测
-  随机写入:64个线程并发随机写入,每个线程使用Write各写100万次随机数据(key 8B、value 4KB)
-  随机读取:64个线程并发随机读取,每个线程各使用Read读取100万次随机数据
注:2.2阶段会对所有读取的kv校验是否匹配,如不通过则终止,评测失败


2.    复赛赛题
在初赛题目基础上,还需要额外实现一个Range接口。

程序评测逻辑
评测程序分为2个阶段:
1)Recover正确性评测:
此阶段评测程序会并发写入特定数据(key 8B、value 4KB)同时进行任意次kill -9来模拟进程意外退出(参赛引擎需要保证进程意外退出时数据持久化不丢失),接着重新打开DB,调用Read、Range接口来进行正确性校验

2)性能评测

-  随机写入:64个线程并发随机写入,每个线程使用Write各写100万次随机数据(key 8B、value 4KB)
-  随机读取:64个线程并发随机读取,每个线程各使用Read读取100万次随机数据
-  顺序读取:64个线程并发顺序读取,每个线程各使用Range有序(增序)遍历全量数据2次
注:
2.2阶段会对所有读取的kv校验是否匹配,如不通过则终止,评测失败;

2.3阶段除了对迭代出来每条的kv校验是否匹配外,还会额外校验是否严格递增,如不通过则终止,评测失败。




赛题规则


1.    语言限定
C++ & JAVA
注:C++和JAVA一起排名

2.    程序目标

C++:请仔细阅读engine/include/engine.h代码了解基类Engine定义,我们已为大家定义了比赛专用的子类EngineRace(在engine/engine_race目录下),参赛者通过编写代码,完善EngineRace来实现自己的kv存储引擎;
Java:请仔细阅读engine/engine_java/src/main/java/com/alibabacloud/polar_race/engine/common/AbstractEngine.java了解基类AbstractEngine定义,我们已为大家定义了比赛专用的子类EngineRace(在engine/engine_java/src/main/java/com/alibabacloud/polar_race/engine/common/EngineRace.java文件中),参赛者通过编写代码,完善EngineRace来实现自己的kv存储引擎

3.    参赛方法说明

1)在天池平台完成报名流程;
2)在code.aliyun.com注册一个账号,fork本仓库的代码(将polar_race2018添加为Reporter,否则测试程序没有权限拉取代码),重写EngineRace类中相关函数的实现;
3)在天池提交成绩的入口,提交自己fork的仓库git地址(提交时在“镜像路径”一栏填写自己的开发语言,CPP或者JAVA,大小写不限)
4)等待评测结果
注:首次提交代码时,首先在天池页面点击“提交结果”->“修改地址”,在弹出的窗口中“git路径”一栏不需要填写“git@code.aliyun.com:”,只需填写自己仓库名即可,即:“USERNAME/engine.git”

4.    排名规则

在Recover正确性验证通过的情况下,对性能评测阶段整体计时,如果该阶段的正确检测全部通过,则成绩有效,根据总用时从低到高进行排名(用时越短排名越靠前)

5.    作弊说明

如果发现有作弊行为,比如通过hack评测程序,绕过了必须的评测逻辑等行为,则程序无效,且取消参赛资格。