淘宝实时计算平台实践


淘宝实时计算平台实践 离哲@淘宝网 @flyinweb 1.简介 2.现状 3.历叱变迁 4.架构总览 5.关键特性 6.应用案例 7.未来展望 海量 数据 ? 无 规则 轻 结构 时间 实时计算定义: 针对历叱 数据进行即时数据的获取和计算 相关: RTOLAP(Realtime OLAP) Grid Computing In-memory database 一些数字:  已接入: 搜索成交信息 > 5 亿 / 天 活跃用户信息 > 1 亿  即将接入: 用户类目偏好信息 > 10 亿 用户品牌偏好信息 > 20 亿 >>>>>>>>>>>>>>> 性能: QPS > 300 AVG Query Scan Row > 300 万 AVG Query Compute Column > 50 cool.taobao.com jianghu.taobao.com • 海量数据 •无法预算 •低延时 •计算精确 • 高并发 •高可用 • SQL •Schema Free 分布式/全索引/内存/数据库 Redis集群 Tokyo Cabinet集群 Prom Service 冗余ID 列表 明细数据 分片统计结果 1.冗余度 2.明细数据慢 3.规则变复杂 Hbase集群 冗余ID 列表 明细数据 Redis集群 分片统计结果 Prom Service 1.冗余度 2.网络带宽 3.定制性 1.倒排索引 2.本地计算(Hbase) 3.自动扩容(Hbase) MN-1 (合并节点) CCN 配置中心 LCN-1 (本地计算节点) LCN-… (本地计算节点) CN-1 (缓存节点) CN-… (缓存节点) MN-.. (合并节点) 云梯1/云梯2(数据源) 盘古集群(集中存储) ITier ITier WEB ISV 中间层 请求 Garuda 数据源&存储 MCN 管理中心 REST MYSQL JDBC ZK ZK REST PANGU/HDFS JDBC Fixed/Free Schema(列存储) Partition/TableGroup 全索引 本地计算 大表Join 缓存 资源管理调度 可用性 全部导入/局部导入 列存储 Table对象 TableSchema对象 总记录计数器 Int二维数组 Short二维数组 TableSchema对象 ColumnSchema 数组 版本信息 …. ColumnSchema对象 列名 列类型 类型下标 默认值 定位数据列 同一条记录在所 有数组顺序一致 查询/计算 性能无损  Partition • Interval • Range • Hash  TableGroup • Join • PartitionGroup Garuda DBx TableGroupx Table Partition  计算列/索引列(倒置) • 计算列 @ memory • 索引列 @ disk  索引 • Hash • B+Tree • Skiplist • Bitmap  倒排  压缩 • String? • PForDelta(7%) Index array(abstract) tree SSD skiplist SSD hashmap SSD unique memory 数据结构 数据集大 小(亿条) 每次参与运算 数据量(条) 线程数 每请求耗时 (ms) 总耗时 (ms) 每秒处理记 录数 Array 5 200,000 100 10 177 112994350 5 200,000 1000 5 772 259067358 Hashmap 5 200,000 100 653 1143 17497813 5 200,000 1000 533 10838 18453589 SkipList 5 200,000 100 28959 41853 477863 5 200,000 1000 47439 36179 5 552799 B+ tree 5 200,000 100 3922 6112 3272251 5 200,000 1000 4261 58458 3421260 特别说明:此为单台 16core E5620 @2.40GHZ,24GB内存的测试结果。 Master:  SQL解析  路由分发  结果缓存合并 Localnode  SQL解析  索引查找  计算 带宽? 结果(master) Lcn1 Lcn3 Lcn2 Lcn4 Lcn5 特殊:  跨TableGroup 大表+小表(batch)  虚拟列 group by partition_key  AVG sum/count  Limit 全局limit * 阈值  Order by rand() limit n rand(cardinality*limit+2)  Distinct 全局 Bitset+Bloom Filter  TableGroup: 分区Join  附属表(支持M:N): 存储:主表内存位置+ 自身内存位置 加载:主表增加虚拟列  附加索引(支持M:N): 存储:主表内存位置 只能用来定位和count -------------------------------------- WHERE keyword contains (‘iphone’,‘智能') ------------------------- WHERE cpv in (‘x1',‘x2') 主表 附加索引2 附加索引3 附加索引1 存储主表 内存位 本地节点缓存:  LIRS  Evicted Factor:  Object Type/Object Size  Object Domain Memory SSD DISK 数据 主键索引 高频小 索引 低频大 索引 高频索引缓存区 资 源 层 Master节点缓存: LIRS SQL cardinality Partition result 06/01 06/02 06/03 06/04 06/05 06/07 06/08 Day 1: Query 1 06/02 06/03 06/04 06/05 06/07 06/08 06/09 Day 2: Query 2 劢态规划算法 Monitor 服务器分布式锁(主/备) 参数: – 可用内存、可用磁盘(Buffer阈值) – 每个表占用的内存、磁盘 – 最小可用实例数 – 最小Failover机器数 – 每个分区最小可用份数(在线上集群) – 每个表最多保留分区数(Rotate) – 超时设置(上线/下线/导入 超时) – 表组信息 – 虚拟机组 –….  Failover Rotate  资源虚拟化(T4)  Heartbeat  双机房  任务分布式锁  任务持久化  任务跟踪JobID  执行时间监控 集群 FailOver 导入 下线 OLD Materiality formless 持久化 盘古 上线  交易信息+搜索信息 > 5亿条 * 7 天 (即将接入30天)  附加索引 3个  表4张  QPS > 300  平均响应时间<2s SNS:Jianghu.taobao.com  用户信息>100,000,000  表 1 张  QPS > 600  平均响应时间 < 90ms 实时数据源(MVCC) 迭代计算 资源隔离(DB/USER/表) 索引离线计算(hadoop) 存储结构优化 SSD优化 谢谢! Q&A
还剩25页未读

继续阅读

下载pdf到电脑,查找使用更方便

pdf的实际排版效果,会与网站的显示效果略有不同!!

需要 8 金币 [ 分享pdf获得金币 ] 0 人已下载

下载pdf

pdf贡献者

hf_rabbit

贡献于2013-02-18

下载需要 8 金币 [金币充值 ]
亲,您也可以通过 分享原创pdf 来获得金币奖励!
下载pdf