海量实时记录的索引方法.pptx

上传人:小小飞 文档编号:3676352 上传时间:2019-09-20 格式:PPTX 页数:16 大小:936.85KB
返回 下载 相关 举报
海量实时记录的索引方法.pptx_第1页
第1页 / 共16页
海量实时记录的索引方法.pptx_第2页
第2页 / 共16页
海量实时记录的索引方法.pptx_第3页
第3页 / 共16页
海量实时记录的索引方法.pptx_第4页
第4页 / 共16页
海量实时记录的索引方法.pptx_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《海量实时记录的索引方法.pptx》由会员分享,可在线阅读,更多相关《海量实时记录的索引方法.pptx(16页珍藏版)》请在三一文库上搜索。

1、揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力! 海量实时记录的索引方法 钱善海 技术主管 从兴技术有限公司 揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力! 摘要 案例简介 需求分析 快速索引算法 系统实现要点 案例ROI分析 海量实时记录的索引方法 揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力! 案例简介 BOSS计费系统 快速索引系统 交换机 打电话 发短信 上网流量 营业 厅 网站 自助终端 移动终 端 生成记录处理记录查询记录 海量实时记录的索引方法 揭示研

2、发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力! 案例简介 上线前上线后 CPU : 95% 以上 内存: 100% 文件IO: 50100M/s 存储: 30T 查询: 6秒以上到十几分 钟 使用 Oracle 存放部分索引 CPU : 5% 以下 内存: 100% 文件IO: 25M/s 存储: 不变 查询: 小于1秒 不使用 Oracle 海量实时记录的索引方法 揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力! 需求分析 总用户数1亿, 每天活跃用户5000万 每天记录数 40 亿, 高峰期达 100万条/秒

3、每天数据量达 600G 用户基本按月或天进行查询 用户可查10个月的历史数据 用户一天之内就有千万条记录 每天的查询量超过1000万人次 海量实时记录的索引方法 大量的延迟记录, 不仅是今天有昨天的, 今天还有前几个月 的 揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力! 使用快速合并算法 每一条记录只需进行下面的操作, 即能完成最终的索引: 读 1 次 压缩 2 次 (gzip 算法) 解压缩 1 次 写 1 次 读取120G数据 写到内存, 同时进行压缩 文件系统 解压 输出 海量实时记录的索引方法 揭示研发管理白金定律,分享那些激动人心的创新与变

4、革,使得团队获得过多源动力与更大的推动力! 把一天的数据放到内存中 使用多块内存 每个内存有多个页(page) 每个 page 有多个溢出页 记录 (key, value) 放到 第 crc32(key) % mem_total 个内存中的 第 reverse_crc32(key) % page_total 个块中 使用 30 个内存 每个内存4G, 每个page 约 64K page1page2pageH 内存 溢出页 海量实时记录的索引方法 揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力! 使用分块压缩 每一个 page 的结构: C1 C2 C3

5、 Cn R1 R1 R2 R1 R2 Rq C1R1 C1 R1R2 R3 Rk C1C2R1 page1page2pageH 内存 溢出页 海量实时记录的索引方法 揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力! 快速索引算法 内存1内存2内存n 文件1文件2文件n file_data file_index 偏移量 海量实时记录的索引方法 揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力! 快速索引算法 file_data file_indexr1r2rH 偏移量 Key: 整数 0 H-1 Value: 偏移

6、量, 长度 使用 30 个内存 每个内存4G, 每个page 约 64K page1page2pageH 内存 溢出页 海量实时记录的索引方法 揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力! 快速索引算法 page1page2pageH 内存 溢出页 d1d2d3difile_data pagei S1S2S3Sk 1. 若记录数超过 1/k, 则该 Key 单独占用一个 Si 2. 其它的记录按照该 key 均匀分到剩下的 Si 中 海量实时记录的索引方法 揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!

7、快速索引算法 file_data file_indexr1r2rH Key: 整数 0 H-1 Value: struct file_index_value char index5; lenk; /* 每个 leni 占 3 byte */ char flag; int crc32k; ; sizeof = 55 byte 或约 60 byte H = 60000, K = 7 每个 file_index 大小: H * 30(内存个数) * 60 = 103M 所有 file_index 大小: 103M * 31 = 3G 每天每个号码只占索引 : 103M / 5000万(活跃用户) =

8、 2byte 海量实时记录的索引方法 揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力! 效率 读 1 次 压缩 2 次 (Gzip算 法) 解压缩 1 次 写 1 次 海量实时记录的索引方法 从内存解压输出到文件 只需 30分钟, 使用 读取内存:最多遍历 10 个 page 读取文件: 只需读取一个文件中的 约 31 个 =10K 块 CPU: 5% 文件IO: 2 5M/s 查询 1000 条记录: = 0.05秒 查询 5000 条记录: = 0.5 秒 查询 10000条记录: = 0.5 秒 步骤1 步骤2 结果 建立索引的效率 查询效率 处理 每天输出 系统资源 揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力! 系统实现要点 只有两个模块:索引模块和查询模块 不能也无需使用排序 使用快速的合并算法 系统崩溃如何快速恢复内存 注意延迟单的处理 海量实时记录的索引方法 揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力! 案例ROI分析 开发人力 40人月 开发成本: 50万 利润: 150万 海量实时记录的索引方法 揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/环境 > 装饰装潢


经营许可证编号:宁ICP备18001539号-1