LevelDB到GeminiDB Redis的遷移
更新時間 2024-07-04 11:23:17
最近更新時間: 2024-07-04 11:23:17
分享文章
本節主要介紹LevelDB到GeminiDB Redis的遷移方案。
LevelDB是一個開源的持久化KV單機數據庫引擎,具有很高的隨機寫,順序讀/寫性能,適合應用在寫多讀少的場景。其內部沒有設計成C/S網絡結構,使用時必須和服務部署在同一臺服務器,對于服務的部署、使用有較大的限制。相比于在LevelDB基礎上開發的RocksDB, ?LevelDB存在較多缺點,如無法很好的使用多核服務器的計算性能,無法支撐TB級數據存儲,不支持從HDFS讀取數據等。
GeminiDB Redis采用RocksDB作為存儲引擎,兼容Redis協議,具有豐富的數據類型,可以滿足LevelDB的使用需求。同時GeminiDB Redis對RocksDB進行深度定制,實現秒級分裂彈性擴容,擴縮容無需搬遷數據,快速而平滑,為LevelDB業務轉到Redis生態提供了便利。
遷移原理
- 使用自研遷移工具leveldb-port,和LevelDB部署在相同機器上,準備好配置文件,啟動遷移即可自動完成全量與增量的遷移。
- 全量遷移對LevelDB數據進行快照,然后掃描整個數據庫,將數據打包成GeminiDB Redis識別的格式,發送到GeminiDB Redis ,具有很高的遷移效率。
- 增量遷移解析LevelDB的wal文件,將LevelDB的操作解析出來,然后對其中的key進行分片,多線程進行發送。
使用須知
- 遷移工具需要部署在源端,對性能有一定消耗,可通過修改配置文件進行一定的控制。
- 遷移過程讀取LevelDB的源數據文件,只讀操作,理論上不會有數據受損風險。
- 遷移過程不需要停服。
- 若遷移過程出現故障,需要清理GeminiDB Redis實例,重新啟動遷移。
操作步驟
如需進行Redis到GeminiDB Redis的遷移,您可以在管理控制臺右上角,選擇“工單 > 新建工單”,聯系技術支持進行處理。
遷移性能參考
- 環境:源端LevelDB和leveldb-port部署在4U16GB的彈性云服務器上,目標端為2U8GB,3節點的GeminiDB Redis實例。
- 全量遷移:預置10GB數據,遷移速度約8MB/s。
- 增量遷移:設置value值大小為1KB,遷移速度約為7000qps。