Upload
topgeek
View
1.328
Download
2
Embed Size (px)
DESCRIPTION
腾讯大讲堂45 解剖ttc
Citation preview
腾 讯 大 讲 堂
第四十五期
研发管理部
大讲堂主页: http://km.oa.com/class 与讲师互动: http://km.oa.com/group/class
Tencent Table Cache
互联网业务系统平台架构组
分享主题
背景
功能特点
架构原理
内存管理
未来…
QA
背景
互联网应用的数据访问特点 海量 并发 热点
存储系统的性能瓶颈
Tencent Table Cache TTC 是提供高速数据访问服务的通用 cache server 。特点是采用
epoll 和异步状态机模式提高并发能力。
功能特点
更加安全的数据操作
更为紧凑的内存存储
更加高效的数据访问(批量)
强大的异步处理机制
支持多种数据源离散存储
高效的网络接入能力
架构原理 1
Inco
min
g
Cach
e
DataS
ource
ttcd
Cach
e
HelperHelper
HelperHelper
HelperHelper
helperd
task unix socket tcp
架构原理 2
处理单元TimerTimeNotify
InputNotify OutputNotify
处理单元
InputNotify OutputNotify
task
架构原理 3
处理路径的抽象允许随时 attach 新的处理单元,扩展程序功能
Cache 系统和数据访问 helper 分离,使得系统支持多种数据源
datasource 分发允许后端数据离散分布
内存管理 1 设计思路
不固化存储结构,允许内存块大小可变,位置可移动
不固定索引节点属性,随时允许动态增加
内存管理 2 特性
Hash Bucket Node Index Node Group Virtual Node LRU List
内存管理 3 特性抽象
众多的实现特性如何去管理?
Feature-descriptor 对外提供统一接口
内存管理 4 属性聚合
属性聚合使得紧密存储成为可能,能大幅提高内存利用率
属性聚合方便动态增加新属性
Node 聚合
属性集1
2
3
Node
属性集1
2
3
1
1
2
2
3
3
Node
1
2
3
1 类属性
重组
内存管理 5 多级索引
Key
DataType
RowCount
Root
HND1,0 HND1,1 HND1,2 HND1,.. HND1,nLeft Right
IDX1,2
DataType
RowCount
Root
HND1,0 HND1,1 HND1,2 HND1,.. HND1,nLeft Right HND1,0 HND1,1 HND1,2 HND1,.. HND1,nLeft Right
HND2,0 HND2,1 HND2,2 HND2,.. HND2,nLeft Right
HND2,0 HND2,1 HND2,2 HND2,.. HND2,nLeft Right HND2,0 HND2,1 HND2,2 HND2,.. HND2,nLeft Right
IDX2,1
DataType
RowCount
Root
IDX2,1
DataSize
RowCount
Row0
DataType
Row1
CRootData
CRawFormat
CTtreeNode
CRootData
内存管理 6 变长分配器
摈弃老的定长数据chunk 概念,不再采用定长存储结构,转而采用变长分配机制
变长分配采用类似ptmalloc 的 bins 分配策略,使得内存分配、释放非常高效
16 24 32 ... 512 576 640 ...
Small Bins Large Bins
Sorted Bins
2 64index
size
chunks
12765
Pre_size
size P
FrontChunk
BackChunk
size
User data
P
Free Chunk
Used Chunk
Head Info
Sorted Bins
Fast Bins
Unsorted Bins
Free Mem
Allocated Mem
Bottom
Top
内存管理 7 总体视图
Cache_Info
Feature_Info
…
Mem_Info
Extend_Info
…
Hash Bucket
NG_Info
System NG
Node Group
Node Group
Next Group
…
Attribute1[N]
Attribute2[N]
AttributeM[N]
F_id F_attr F_handler
F_id F_attr F_handler
F_id F_attr F_handler
F_id F_attr F_handler
Hash
Node Group
Node_Index
Table_Info
Node Group
…
内存管理 8 位图存储结构
未来…
集中部署、统一运营
备份、容灾
跨 IDC 分布
…
Q&A
THE END