## 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的性能探索上,另一方面也很開心能夠寫一套非常貼近實用案例的完整系統,配合資料上雲的大趨勢,受益匪淺。最後期待一下第四屆資料庫比賽。