首页 > 代码库 > ?Tair 原理架构与案例分析
?Tair 原理架构与案例分析
1、Tair是什么
Tair 是一个类似于map的key/value结构存储系统(也就是缓存系统),具备标准的特性是:高性能、高扩展、高可靠,也就是传说中的三高产品,支持分布式集群部署。官网说目前支持java和c这两个版本。
具体的是:高速缓存,并且支持内存存储和持久化存储。
2、Tair 集群现状
2000个应用用户;
Cache 服务器
650台
千万级别的qps
20T内存
存储服务器
150台
百万级别的qps
100T
3、一些特性
? Namespace 支持缓存命名空间
? Expire 支持自动缓存和终止缓存
? Prefix 支持缓存前缀
? List,zset,hashmap,set ? LocalCache 支持各种集合缓存
? FlowControl 支持缓存流控制
4、Tari 概述
5、数据分布
6、mdb概述
? 类memcached,page/slab管理内存
? 共享内存,重启数据不丢
? area逻辑管理
– area维度的quota与lru evict控制 – 清理某个area数据
? 数据过期
? 优化内存使用率,均衡slab ? 详细statistics监控
mdb存储
Redis流程(存储)
7、 Rdb流程
rdb概述
? 支持Redis所有数据结构 ? 设置限制
– 内存quota ? logiclock
– lazy 清理db数据
? 轻量化
– 去除aof/vm
– 精简数据结构
? Restful协议
? 持久化
– 使用ldb作为rdb的持久化(TODO)
?
8、ldb流程
9、LevelDB流程
10、ldb概述配置使用
? 多实例配置使用,充分利用IO
? 内嵌mdb作为KV级别cache
? 配置灵活化,参数调优
– 适合大数据量的参数配置 (mmt/sst size,mmap限制,etc.)
– 特定排序算法 (字节,数字,etc.)
新功能
? 嵌入datafilter逻辑 – expiretime
– 异步清理
主动触发compact
– Level-n => Level-n compact,清理垃圾数据 – 高Level compact,加速range合并 (TODO)
? 使用binlog做异步跨集群数据同步
优化
? ? 主动限制compact
– 限制写入放大
– 禁掉seek触发的compact
? 优化compact锁粒度
– 减弱数据量增长对读写的性能影响
? 大数据量导入FastDump
– 数据预排序,按桶分memtable
?
?11、应用案例
案例1
案例2
案例3
案例4
案例5
12、线上案例
? 秒杀/捉猫猫/抢红包
? 瞬时访问量大
? 天猫实时推荐
? 数据量大,允许丢失
? 20000 read / 20000 write
? 计数器
? 读写比相当
13、总结
Tair 本身是一个非常轻量级的缓存应用。并且支持高并发,是一个性能的缓存框架,比开源的缓存框架要好一些的。
关于Tair另一篇文章是详细的说明Tair
[分享]Tair缓存系统学习 (数据结构存储系统) http://blog.csdn.net/wendeliang06/article/details/20483127
?Tair 原理架构与案例分析
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。