---
# System prepended metadata

title: W1 明細帳務巨量資料寫入測試與精進方案
tags: [W1]

---

# W1 明細帳務巨量資料寫入測試與精進方案
###### tags: `W1`

### 1. RSG API 特規功能重新調整
##### 1.1 老虎機注單明細(1)
- [ ] API接入
- [ ] 排程功能調整
- [ ] 分頁功能
- [ ] 資料表內容確認(資料欄位與分區)
- [ ] 5分鐘彙總帳
- [ ] 補注單功能
##### 1.2 捕魚機注單1分鐘彙總(2)
- [ ] API接入
- [ ] 排程功能調整
- [ ] 5分鐘彙總帳
- [ ] 補注單功能

### 2. 相同程式架構測試
#### 2.1 程式版本與系統資源相同測試(2)
:::info
Schedule AP :  0.3 Core CPU , 256MB memory
Master DB : 4 Core CPU , 8GB memory
Slave DB : 4 Core CPU , 8GB memory
:::
- [ ] 1小時拉帳測試
- [ ] log每分鐘寫入15萬筆明細實際執行時間
- [ ] 找出實際執行瓶頸並調整後測試
- [ ] 寫滿24小時2億筆資料後執行取資料效能測試
#### 2.2 程式版本相同提高系統資源測試
:::info
Schedule AP :  2 Core CPU , 512MB memory
Master DB : 8 Core CPU , 12GB memory
Slave DB : 8 Core CPU , 12GB memory
:::
- [ ] 1小時拉帳測試
- [ ] log每分鐘寫入15萬筆明細實際執行時間
- [ ] 找出實際執行瓶頸並調整後測試
- [ ] 寫滿24小時2億筆資料後執行取資料效能測試

#### 2.3 ~~現有架構進行程式優化測試~~
:::warning
直接改成拉帳寫帳分離方式，效能測試與優化移到第4項進行
~~Schedule AP :  2 Core CPU , 512MB memory
Master DB : 8 Core CPU , 12GB memory
Slave DB : 8 Core CPU , 12GB memory~~
:::
- [ ] 5分鐘匯總帳更新不lock
- [ ] 遊戲明細bulk Insert
- [ ] 找出實際執行瓶頸並調整後測試
- [ ] API取得明細效能優化
- [ ] DB 分區或分庫調整

### 3. 排程建立工作佇列
:::info
因應遊戲館增多並且不容易有效快速水平拓展worker
將目前排程調整成不指定執行實體的工作佇列
由有空閒的worker執行, 若worker不足時可以直接增加
:::
#### 3.1 建立Redis工作佇列(2)
- [ ] 定義task key包含工作項目與執行內容
- [ ] 實作Redis List 達到工作先進先出
- [ ] 工作失敗需要重新回寫到Queue
- [ ] 分散鎖確認工作不重複執行
#### 3.2 工作排程實作內容調整(3)
- [ ] 重新定義排程類別
- [ ] 工作排程執行方式調整

### 4. 拉帳與帳務寫入分離
:::info
拉帳後先不寫入RDBMS 改寫入Queue or NoSQL
再由其他工作排程分散式寫入到RDBMS
:::
#### 4.1 Kafuka實驗(5)
- [ ] 確認資料Durability(持久性)
- [ ] 保留資料索引表7days 35億筆index參考
- [ ] 確認資料容量與寫入效能測試
- [ ] 確認相關費用
- [ ] 製作成.net service
- [ ] 取資料寫入RDBMS效能測試
#### 4.2 Pulsar實驗(5)
- [ ] 確認資料Durability(持久性)
- [ ] 保留資料索引表7days 35億筆index參考
- [ ] 確認資料容量與寫入效能測試
- [ ] 確認相關費用
- [ ] 製作成.net service
- [ ] 取資料寫入RDBMS效能測試
#### 4.3 MangoDB實驗(5)
- [ ] 確認資料Durability(持久性)
- [ ] 保留資料索引表7days 35億筆index參考
- [ ] 確認資料容量與寫入效能測試
- [ ] 確認相關費用
- [ ] 製作成.net service
- [ ] 取資料寫入RDBMS效能測試

### 5. 分散式SQL資料庫(5)
:::info
CockroachDB測試
:::
- [ ] ACID測試
- [ ] 資料寫入效能測試
- [ ] 資料同步速度測試
- [ ] 資料讀取速度測試
- [ ] 節點死機測試

### 6. 系統整合(2)
:::info
將實驗內容確定方案整合到W1系統並更新到DEV/UAT環境
:::
