版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、热度衰减模型设计 1.引言 1.1. 项目概要 1.1.1. 背景 1.1.2. 需求 1.2. 术语 2. 总体设计 2.1. 总体方案 2.2. 热点分析策略 2.3. SSD支持 2.4. 安全限制 2.5. 运行机制 3. 关键流程分析 4. 外部接口说明 4.1. 配置文件 4.2. 与Storage API的交互 5. 内部接口 6. 重要数据结构1.引言1.1. 项目概要1.1.1. 背景热点分析模块根据url历史访问信息,根据一定策略判断出哪些url属于热点url,并将其发送给storage_api定义的url热点接口进行置热点操作。热度衰减模型基于热点分析多用户支持架构,改进
2、了计算url热度的方式。1.1.2. 需求 增加url热度区分度 优化性能1.2. 术语Hot analysis: 热点分析Mem: memory,即内存,cache系统的最上层存储SSD: 固态硬盘,Mem层的下层缓存unit_time_range: 每次读取的url访问信息的时间范围(从当前时间往前计算)stats_max_times: 热点分析模块内部储存统计信息的最大次数mem_lower_threshold: 针对Memcache的低阈值,如果url针对Memcache的热度低于此阈值则将其信息从内部存储中清楚ssd_lower_threshold: 意义同上,针对SSDcache的
3、低阈值mem_upper_threshold: 针对Memcache的高阈值,如果url针对Memcache的热度高于此阈值则将其发送到storageAPI置热到Memcachessd_upper_threshold: 意义同上,针对SSDcache的高阈值mem_max_history_urls: 热点分析模块内部针对Memcache存储的url信息条数上限ssd_max_history_urls:热点分析模块内部针对SSDcache存储的url信息条数上限2. 总体设计2.1. 总体方案见流程图:(每unit_time_range秒运行一次)2.2. 热点分析策略现有策略基于阈值。对于某层
4、Cache(Memcache或SSDcache),热点分析程序对于最近unit_time_range秒时间内曾经miss该Cache的url在内部存储中读取其热度值,如果热度值高于设定的高阈值则判定其为热点url,将其发送到storageAPI置热到该Cache中。每次热点分析程序运行时会衰减内部存储中所有url的热度值(乘以衰减系数),再将最近unit_time_range秒内url miss Cache次数作为热度值加入内部存储中。2.3. SSD支持SSD存储是Mem存储的下层缓存。热点分析模块计算出最热url以及次热url,分别放入Mem以及SSD储存。在阈值策略下,这一功能通过两个高
5、阈值(mem_upper_threshold, ssd_upper_threshold)的设置实现。设置mem_upper_threshold高于ssd_upper_threshold,每次热点分析程序运行时对于最近unit_time_range时间内曾经miss SSDcache的url在内部存储中读取其热度值,如果热度值高于ssd_upper_threshold且低于mem_upper_threshold则判定其为次热url,将其发送到storageAPI置热到SSD。2.4. 安全限制模块引入url置热点条数安全限制机制。在配置文件中可以对每个用户配置每次热点分析程序向storageAP
6、I发送的置热到Memcache以及SSDcache的url条数上限。如果在当前阈值设定下符合条件的url条数大于上限,程序会对符合条件的url按热度排序,发送最热的上限条数。另外,如果符合置热到Memcache条件的url条数大于上限,程序会优先向SSDcache置热剩余的未置热到Memcache的url,再发送依据阈值判断符合置热到SSDcache条件的url。2.5. 运行机制程序为单一进程后台运行。通过动态计算sleep时间尽量保证每unit_time_range秒程序运行一次,每次运行读取存储日志中最近unit_time_range秒的url访问信息。3. 关键流程分析读取配置文件后,
7、每个hotUrlByUser类里对于Memcache和SSDcache各有一个储存url热度的hashtable。urlPasser读取最近unit_time_range的url访问信息,并根据url对应用户将其分发给不同的hotUrlByUser类,每个hotUrlByUser类将刚收到的url以及miss Cache次数存入单独的hashtable中。之后每个hotUrlByUser类首先衰减所有内部存储url的热度,再将刚收到的url热度融合进内部存储中。最终,每个hotUrlByUser类从刚收到的url里依据热度计算出热点url发送给storageAPI进行置热。4. 外部接口说明4
8、.1. 配置文件配置文件中的几个section:init包含脚本运行时间信息,是否使用Mem及SSD,以及路径信息;log脚本运行日志路径,以及log_level;users此section包含用户个数信息;user(n)对应users section指明的用户个数,每个用户都有一个对应的section,包含用户名,用户url,热点分析策略信息等;user(n).filter对应users section指明的用户个数,每个用户都有一个对应的section,包含该用户url过滤信息;default默认的热点分析策略信息;default.filter默认的url过滤信息。例:initunit_t
9、ime_range = 60 # 由于使用crontab运行,此项最小为60s,且为60倍数real_time_log_file_path = /data/proclog/log/storage/storage_api/storage_get_access.log # 模块读取的url访问日志路径use_mem = 1 # 是否启用memoryuse_ssd = 1 # 是否启用SSDdb_dir_path =/usr/local/storage/hot_analysis/db/ # 模块内部leveldb路径stats_max_times = 60 # 数据库储存基本运行信息(以及置热信息)
10、的最大次数loglog_file_path =/data/proclog/log/storage/hot_analysis/hotpoint.log # 脚本运行日志路径log_level = 20 # python logging参数,20即可usersnum_users = 1 # 除默认用户以外用户个数user0name = sina # 用户名称url_list = # 用户对应域名,以空格隔开method = hotness_decay # 热点分析策略,目前只支持hotness_decaydecay_constant = 0.9 # 衰减系数mem_lower_threshold
11、= 0.002 # memory 低阈值ssd_lower_threshold = 0.002 # SSD 低阈值mem_upper_threshold = 1.1 # memory 高阈值ssd_upper_threshold = 1 # SSD 高阈值mem_max_hot_unit_bulk = 1000 # 脚本每次调用storage_api批量热点接口发送memory热点url条数上限mem_max_hot_total = 2000 # 每次脚本运行发送的memory热点url总条数上限ssd_max_hot_unit_bulk = 1000 # 脚本每次调用storage_api批
12、量热点接口发送SSD热点url条数上限ssd_max_hot_total = 6000 # 每次脚本运行发送的SSD热点url总条数上限stat_tool_switch = 1 # stat_tool开关,如打开则会为该用户储存每次的置热信息,以及将内部存储所有url热度值写入leveldb,供stat-tool使用mem_max_history_urls = 500000 # 内部存储针对Memcache的url热度信息条数上限ssd_max_history_urls = 300000 # 内部存储针对SSDcache的url热度信息条数上限user0.filterurl_max_size
13、= 1000000 # url对应内容大小上限,超过此值的url会被过滤掉不被热点分析考虑defaultmethod = hotness_decaydecay_constant = 0.9mem_lower_threshold = 0.002ssd_lower_threshold = 0.002mem_upper_threshold = 1.1ssd_upper_threshold = 1mem_max_hot_unit_bulk = 1000mem_max_hot_total = 2000ssd_max_hot_unit_bulk = 1000ssd_max_hot_total = 6000
14、stat_tool_switch = 1mem_max_history_urls = 100000ssd_max_history_urls = 50000default.filterurl_max_size = 10000004.2. 与Storage API的交互热点分析模块计算出热点url后,将其发送给storageAPI定义的热点api。具体方法如下: 与:770建立HTTP连接 按照storageAPI定义的格式发送POST请求,批量发送热点url 断开HTTP连接5. 内部接口6. 重要数据结构hotUrlByUser类内部数据结构:_new_url_record_
15、dict: 每次抓取unit_time_range的url访问信息后,将其中该用户的url及miss memory, ssd次数放入此字典_url_mem_hotness_dict: 储存了热点分析所用到的,针对Memcache的所有(url,热度值)键值对的数据结构。_url_ssd_hotness_dict: 储存了热点分析所用到的,针对SSDcache的所有(url,热度值)键值对的数据结构。leveldb数据库目录(./hot_analysis/db/ 下):user_mem/ssd_miss_total:(当该user的stat_tool_switch=1时存在) 储存某用户(可能为default)的所有url以及热度值use
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 施工应急预案承诺(3篇)
- 恢复挡墙施工方案(3篇)
- UPS起火应急预案(3篇)
- 中专毕业活动方案策划(3篇)
- 2026年马鞍山职业技术学院单招职业技能测试题库附参考答案详解(a卷)
- 2026年陕西铁路工程职业技术学院单招职业倾向性测试题库附参考答案详解(考试直接用)
- 2026年顺德职业技术学院单招职业倾向性测试题库及一套答案详解
- 2026年黎明职业大学单招职业适应性测试题库含答案详解(考试直接用)
- 2026年陕西省商洛地区单招职业适应性考试题库附答案详解(满分必刷)
- 2026年陕西青年职业学院单招职业适应性测试题库附答案详解(培优a卷)
- 2026春教科版科学二年级下册教学计划及进度表
- GB/T 24016-2026环境管理环境报告鉴证指南
- 2026广西玉林市老年大学招聘编外人员1人考试参考试题及答案解析
- 2026年人力资源招聘成本降低方案
- 2026年工地复工复产方案(5篇)课件
- 江西省国有资本运营控股集团有限公司2026年第一批批次公开招聘参考考试题库及答案解析
- 部队食堂管理与培训课件
- 2025版《煤矿安全规程》学习辅导课件(地质防治水部分解读)
- 《客房服务与管理》全套教学课件
- 建筑工程应急体系构建
- 学生校园欺凌治理工作教育培训和预防预警机制
评论
0/150
提交评论