1 / 20
文档名称:

轻量级分布式key-value存储系统在360的应用.pdf

格式:pdf   页数:20
下载后只包含 1 个 PDF 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

轻量级分布式key-value存储系统在360的应用.pdf

上传人:紫岑旖旎 2012/8/21 文件大小:0 KB

下载得到文件列表

轻量级分布式key-value存储系统在360的应用.pdf

文档介绍

文档介绍:轻量级分布式key/value
存储系统在360的应用
杨康
yangkang@
2012/07/06
议程
•背景介绍
•发展历程
•单机方案
•分布式方案
•多集群方案
•经验心得
Page 2
背景介绍–应用场合
•主要应用场合
–数据离线流式生产(写)、海量在线检索(读
)
•木马/恶意网址云查杀
•推荐系统
Page 3
背景介绍–系统需求
•系统需求
– key/value的数据存储,平均value长度小于1K
–低延迟
– 7*24小时在线
–性能要求高
–一致性要求
•无节点失效时:强一致性
•节点失效后:可以暂时停止写操作
Page 4
发展历程– KVDB 0. 1
• 09年初– 10年底
• 10亿数量item
Page 5
发展历程– KVDB 0. 1
•单机内存哈希表存储引擎
–在Memcached基础上做二次开发
•内存利用率(将LRU特性做成可选:item结构中的
time、exptime等成员)
•比较多个关联容器实现:std::map、ext/hash_map
、stlport::hash_map、google sparse_hash
• hash_map的rehash问题
•协议扩展:dump、load支持
•大量只存储有无标识item:使用布隆过滤器支持,
写时拷贝
Page 6
发展历程– KVDB 1. 0
• 10年12月– 11年9月
•超过30亿数量item
•分布式内存哈希表存储引擎
–考虑Membase
Page 7
发展历程– KVDB 1. 0
•分布式内存哈希表存储引擎
–考虑Membase
•问题:
–存储引擎满足丌了要求( SQLite)
» 改进:存储引擎可定制化
– Memcached Proxy(Moxi)
» 问题1:对下游存储节点的超时处理过于暴力
» 问题2:没有短暂屏蔽失效节点的功能,下游存储节
点故障会阻塞client
Page 8
分布式Key/Value存储–性能
• 5台机器
• key长度32bytes,value长度为32bytes。
随机选取key,测试单机的情况:
–单次读:get 45000
–批量读(每笔100个key):gets 400000
–写:set 42000
•访问延迟:1万次查询(每笔100个key)
,
Page 9
分布式Key/Value存储–单集群
架构
•单集群架构
Page 10