《专场20.1-百度智能云高性能KV数据库设计与实践-刘东辉.pdf》由会员分享,可在线阅读,更多相关《专场20.1-百度智能云高性能KV数据库设计与实践-刘东辉.pdf(31页珍藏版)》请在三个皮匠报告上搜索。
1、百度智能云高性能KV数据库设计与实践刘东辉百度资深研发工程师关于我2013年毕业于南开大学,毕业后加入微博基础架构组,先后负责微博Redis、CounterService、CacheService、Redrocks等基础组件的设计与开发工作。2020年加入百度基础架构部,担任Redis方向内核技术负责人,主要负责Redis和KV数据库PegaDB的设计与开发工作Apache Kvrocks(incubating)PMC Member目录 百度智能云高性能KV数据库概述 百度智能云高性能KV数据库设计与实践 开源社区协作 未来规划目录 百度智能云高性能KV数据库概述 百度智能云高性能KV数据库设
2、计与实践 开源社区协作 未来规划百度智能云高性能KV数据库简介6PegaDB:完全:完全兼容兼容Redis协议大容量、低成本、高性能分布式协议大容量、低成本、高性能分布式KV数据库数据库特点特点 全面兼容Redis,支持业务平滑迁移 支持水平扩展,单集群PB级存储 基于SSD构建,单GB成本相比Redis降低80%支持毫秒级在线数据处理 支持异地多活架构,提供多地域容灾能力 支持可调一致性、冷热分离、Json数据模型等增强特性PegaDB应用场景7典型应用场景典型应用场景 大数据量场景,Redis存储成本高 开源KV数据库,无法完全满足需求 典型冷热分离场景,传统Cache+DB架构,业务开发
3、复杂度高目录 百度智能云高性能KV数据库概述 百度智能云高性能KV数据库设计与实践 开源社区协作 未来规划PegaDB设计与实践|背景Redis容量有限(4TB),无法支撑大数据量存储存储成本容量Redis内存存储,开启持久化需要预留内存,存储成本高迁移成本集团其它KV数据库存在兼容性、通用性、易用性问题大容量低成本兼容Redis、通用KV存储高性能、可扩展、高可用业务痛点业务痛点需求需求SsdbPikaArdbKvrocksMeitu TitanTedisRedis On FlashRedrocksDisk Based基于单机KV存储引擎Disk Based基于分布式KV引擎Mem+Disk
4、Redis+单机KV存储引擎PegaDB设计与实践|业界方案扩展性问题性能问题不支持多活架构通用性问题性能问题不支持多活架构兼容性问题性能问题不支持多活架构PegaDB设计与实践|设计选型二次开发还是从0开始?二次开发项目选型(Ardb、Pika、Kvrocks)?选型考量选型考量人力、交付时间代码简洁,方便二次开发设计思路及发展规划相似Kvrocks二次开发深度参与开源社区建设PegaDB设计与实践|Kvrocks介绍设计实现设计实现 基于RocksDB存储引擎封装Redis数据类型 Hash等复杂数据类型拆分为多条KV数据 多Worker线程的处理模型 支持主从复制,增量复制基于WAL的“
5、物理复制”Compaction Filter 实现过期数据删除 通过 Version 实现大 Key 秒删Kvrocks 是美图公司开发的一款分布式 KV 数据库,并于2019年正式开源。使用 RocksDB作为底层存储引擎并兼容 Redis 协议,旨在解决 Redis 内存成本高以及容量有限的问题Protocol ParseWoker ThreadNetworkBackground ThreadSring|List Hash|Set|Zset Encode|DecodeKV Storage EngineReplicationClusterMigrationTaskRunnerCommand
6、ProcessWoker ThreadCronPegaDB设计与实践|Kvrocks不足扩展性不支持集群性能大Value场景、冷热明显场景存在性能问题数据一致性异步复制模型,无法满足较高一致性需求高可用不支持多活架构,无法满足地域级容灾需求功能不支持Redis4.0以上版本命令、事务、Lua、多DB特性PegaDB设计与实践|集群方案数据分布策略数据分布策略同Redis-Cluster,预分固定数量Slot中心化架构中心化架构 MetaServer管理集群元信息集群架构不强依赖代理层集群架构不强依赖代理层 MetaServer向PegaDB下发拓扑 完全兼容redis-cluster SDKP