一、Fusion是什么
大家都知道,NoSQL 泛指非关系型的数据库, 强调Key-Value Stores和文档数据库的优点。那么Fusion就是滴滴自研分布式NoSQL的技术实践,完全具备对海量数据处理的高扩展能力和高吞吐能力。可以支持滴滴各业务线大规模数据量级。
二、Fusion主要特性
Fusion是用C++自研的分布式NoSQL数据库,可以支持Redis协议,数据通过RocketsDB落盘。相对于redis,有很多优秀的特性。最重要的Redis对内存要求比较高,但是Fusion数据会存在SSD中,所以扩容等操作比较容易。
下面总结下Fusion的五大特色。包括数据流通、降级容灾、极致效率、安全保障、可视化管理等。
- 数据流通
Fusion作为自研成熟的存储系统,具备数据流通能力。可以具备支持其他存储系统、离线计算、中间件等平台的打通能力。比如Hive数据导入Fusion,可以采用FastLoad打通。这样可以支持快速从离线更新TB级别的数据到在线。完美支持业务数据流转。
FastLoad是离在线数据迁移的一站式解决方案。高效且便捷。开箱即用。有接入简单,用户0感知底层细节,提供2种方式:全量滚动和增量插入。架构图如下:
- 降级容灾
fusion有两种降级
1、主库降级,业务流量高峰,proxy上可以实现读写分离能力,读流量路由切换从库,缓解主库压力,短暂存在数据不一致问题。
2、集群容灾, Fusion 底层实现了两个集群间的数据自动同步。
- 极致效率
前面介绍了Fusion数据通过RocketsDB落盘,所以我们对RocksDB进行优化, 第一个我们实现了 key 粒度且具有热点预测功能的 cache,
第二个是实现了 compact 的24小时调度,磁盘能节约25%,延迟和毛刺均有大幅度降低。
- 安全保障
1、数据备份,常规升级时,备份文件。
2、提供用户级别快照。秒级快照。
3、数据多版本存放,FastLoad场景中保留多版本数据。便于快速回退、版本切换等。
- 可视化管理
Fusion 提供了控制台管理,运维和开发无需编写脚本就可以操作变更。包括用户系统、运维系统、FastLoad平台、监控平台、一键切流平台等控制界面和可视化看板。
三、Fusion架构
Fusion 支持的数据结构string、hash、zset、list、set、BitMap等,Fusion存储架构如下:
四、其他分布式NoSQL
阿里、字节等大厂都在自研NoSQL的技术投入。比如阿里Tair、腾讯KeeWiDB、字节ByteGraph等NoSQL。
随着海量数据和业务复杂化,NoSQL越来越重要。当然以MySQL为首的关系型数据库支持事务的特性也不容忽略。两者结合才是趋势。