天天看點

第三屆資料庫大賽攻略 - 啥情況007

## 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 整體鍊路圖

第三屆資料庫大賽攻略 - 啥情況007

#### 3.2 單源檔案處理圖

第三屆資料庫大賽攻略 - 啥情況007

## 4. 核心斷點恢複資料結構

第三屆資料庫大賽攻略 - 啥情況007

## 5. 比賽總結感想

首先非常感謝主辦方阿裡雲和英特爾,很高興能夠在第二屆和第三屆的比賽都取得不錯的成績。本屆比賽一方面有些可惜比賽的重點并不是側重在新一代pmem的性能探索上,另一方面也很開心能夠寫一套非常貼近實用案例的完整系統,配合資料上雲的大趨勢,受益匪淺。最後期待一下第四屆資料庫比賽。