Pika 社區很高興宣佈,我們今天發佈已經過我們生產環境驗證 v3.5.1 版本 https://github.com/OpenAtomFoundation/pika/releases/tag/v3.5.1 。
該版本不僅做了很多優化工作,還引入了多項新功能。這些新功能包括 動態關閉WAL、ReplicationID 檢測是否增量複製、在 K8s 環境上 Pika 服務的自動註冊從而實現集羣的自組織、以及 exporter 檢測集羣指標等等,無疑將會讓用户享受到更為穩定和高效的 NoSQL 使用體驗。
1 新特性
- 1 Slow log 增加隊列等待時間統計,在隊列阻塞的時候方便我們進行問題定位。PR 1997, 作者 wangshao1。
- 2 主從複製使用 ReplicationID 判斷是否進行增量同步,解決原主從同步方式切主後整個數據集會進行全量複製的問題,可以提升 Pika 性能。PR 1951, 作者 Mixficsol。
- 3 WAL 以 'disablewal' 命令方式支持動態關閉,在寫性能遇到瓶頸的時候,可以通過命令關閉 WAL 緩解寫性能下降的問題,關閉 WAL 有機器宕機後丟失數據的風險,用户需要根據自己的使用習慣權衡。PR 2015,作者 Mixficsol。
- 4 flush 線程數和 compaction 線程數合二為一,在 Compaction 性能瓶頸時,可以動態調整線程數,緩解 Comapction 損耗 Pika 性能的問題。PR 2014, 作者 Tianpingan。
- 5 升級了 RocksDB 版本到 v8.3.3。PR 2000, 作者 dingxiaoshuai123。
- 6 新增週期性打印工作隊列的長度功能,在隊列阻塞的時候可以快速定位問題。PR 1978, 作者 Tianpingan。
- 7 新增利用一個
pika_exporter監測整個集羣的指標,實現一個 Pika Exporter 實例監控整個集羣,解決了 3.5.0 版本一個 Pika Exporter 監測一個 Pika 實例消耗資源的問題。PR 1953, 作者 chenbt-hz。 - 8 實現在 K8s 環境上 Pika 服務的自動註冊,在啓動時自動註冊,從而實現集羣的自組織 ,實現了通過命令拉起整個 Pika Cluster 集羣。PR 1931, 作者 machinly。
2 bug 修復
- 1 調整了 Rate_limit 參數,修復了壓測時出現 RPS 為 0 的情況 。PR 2009, 作者 Mixficsol。
- 2 修復了 INFODATA 命令中對於遍歷數據文件時出現空路徑的邏輯判斷。PR 1996, 作者 Mixficsol。
- 3 修復了 Codis 在線上出現大毛刺的問題。PR 2016, 作者 chejinge。
- 4 修復了 macOS 環境下編譯使用 tools 導致編譯不過的問題 。PR 2011, 作者 A2ureStone。
- 5 減少了 exporter 非必要日誌的打印,降低 了資源利用率。PR 1945, 作者 Mixficsol。
3 使用建議
本次新增了幾個配置參數,大家在使用過程中,需要根據使用情況按需調整:
- 1 max-rsync-parallel-num:主從全量複製線程數,需要根據自己機器CPU核數和部署實例個數進行調整,建議最小設置為2。
- 2 rate-limiter-bandwidth: 限制 RocksDB 數據庫讀寫速度,限制數據庫在一定時間內可以讀寫的數據量,默認 2000MiB/s,需要根據自己的機器性能和部署實例做調整。
- max-background-jobs: compaction 和 flushdb 線程數,要根據自己機器 CPU 核數和部署實例個數進行調整,建議最小設置為 4。
- 3 throttle-bytes-per-second: 主從複製傳輸限速參數,默認為 200MiB/s,該參數可以根據機器網卡的配置及部署 pika 實例的個數進行調整。