腾讯大讲堂45 解剖ttc

18
腾讯 第四十五期 管理部 堂主 http://km.oa.com/class 讲师 http://km.oa.com/group/class

Transcript of 腾讯大讲堂45 解剖ttc

Page 1: 腾讯大讲堂45 解剖ttc

大 堂腾 讯 讲

第四十五期

研 管理部发

大 堂主 :讲 页 http://km.oa.com/class与 互 : 讲师 动 http://km.oa.com/group/class

Page 2: 腾讯大讲堂45 解剖ttc

Tencent Table Cache

互联网业务系统平台架构组

Page 3: 腾讯大讲堂45 解剖ttc

分享主题

背景 功能特点 架构原理 内存管理 未来… QA

Page 4: 腾讯大讲堂45 解剖ttc

背景 互联网应用的数据访问特点

海量 并发 热点

存储系统的性能瓶颈

Tencent Table Cache TTC 是提供高速数据访问服务的通用 cache server 。特点是采用

epoll 和异步状态机模式提高并发能力。

Page 5: 腾讯大讲堂45 解剖ttc

功能特点 更加安全的数据操作 更为紧凑的内存存储 更加高效的数据访问(批量) 强大的异步处理机制 支持多种数据源离散存储 高效的网络接入能力

Page 6: 腾讯大讲堂45 解剖ttc

架构原理 1

Inco

min

g

Cach

e

DataS

ource

ttcd

Cach

e

HelperHelper

HelperHelper

HelperHelper

helperd

task unix socket tcp

Page 7: 腾讯大讲堂45 解剖ttc

架构原理 2

处理单元TimerTimeNotify

InputNotify OutputNotify

处理单元

InputNotify OutputNotify

task

Page 8: 腾讯大讲堂45 解剖ttc

架构原理 3

处理路径的抽象允许随时 attach新的处理单元,扩展程序功能

Cache系统和数据访问 helper分离,使得系统支持多种数据源

datasource分发允许后端数据离散分布

Page 9: 腾讯大讲堂45 解剖ttc

内存管理 1 设计思路

不固化存储结构,允许内存块大小可变,位置可移动

不固定索引节点属性,随时允许动态增加

Page 10: 腾讯大讲堂45 解剖ttc

内存管理 2 特性

Hash Bucket Node Index Node Group Virtual Node LRU List

Page 11: 腾讯大讲堂45 解剖ttc

内存管理 3 特性抽象

众多的实现特性如何去管理?

Feature-descriptor对外提供统一接口

Page 12: 腾讯大讲堂45 解剖ttc

内存管理 4 属性聚合

属性聚合使得紧密存储成为可能,能大幅提高内存利用率

属性聚合方便动态增加新属性

Page 13: 腾讯大讲堂45 解剖ttc

内存管理 5 多级索引

Page 14: 腾讯大讲堂45 解剖ttc

内存管理 6 变长分配器

摈弃老的定长数据chunk概念,不再采用定长存储结构,转而采用变长分配机制

变长分配采用类似ptmalloc的 bins分配策略,使得内存分配、释放非常高效

Page 15: 腾讯大讲堂45 解剖ttc

内存管理 7 总体视图

Page 16: 腾讯大讲堂45 解剖ttc

内存管理 8 位图存储结构

Page 17: 腾讯大讲堂45 解剖ttc

未来… 集中部署、统一运营 备份、容灾 跨 IDC 分布 …

Page 18: 腾讯大讲堂45 解剖ttc

Q&A

THE END