## 1. 赛题简介
官方赛题传送门:
https://code.aliyun.com/dts_test/dts-contest
## 2. 核心优化思路
这次比赛的优化主要是围绕三个方面:
- 针对PMEM这个新介质的属性的优化
- 针对MySql服务器资源利用的优化
- 通过架构设计,以并发的方式进行数据I/O,处理,上传,尽可能最大化利用可用资源。架构设计的核心其实与业界常用的数据ETL架构很类似。
#### 2.1 针对PMEM的属性分析和实践观测
本次比赛由于PMEM提供的方式,很多细节性能特性的优化并不明显,唯一需要注意的是需要并发顺序读写。其中读选择了mmap的方式,8线程并行读。写盘则是通过多线程各自pmem_map_file,写入自己文件。
#### 2.2 使用load data infile批量上传数据
此处也是应用了大数据生产消费链路里常用的数据batching来有效的提供网络和消费方CPU使用率的思路,通过将上传数据合并进行批量上传来提高效率。再有就是通过对数据进行排序来帮助MySql服务器加速。
## 3 架构设计图
#### 3.1 整体链路图
#### 3.2 单源文件处理图
## 4. 核心断点恢复数据结构
## 5. 比赛总结感想
首先非常感谢主办方阿里云和英特尔,很高兴能够在第二届和第三届的比赛都取得不错的成绩。本届比赛一方面有些可惜比赛的重点并不是侧重在新一代pmem的性能探索上,另一方面也很开心能够写一套非常贴近实用案例的完整系统,配合数据上云的大趋势,受益匪浅。最后期待一下第四届数据库比赛。