
论文摘要
随着彩铃业务的成熟和发展,如何有效地存储和管理大容量的铃音数据成为了一个重要的技术问题。本文提出新增铃音服务器网元作为集中式铃音数据存储方案,利用高效的磁盘缓存算法满足了系统设计容量的要求。该方案的重点是缓存算法的设计与实现。首先,在理想环境下建立了缓存分配的数学模型,用动态规划算法给出了理想模型的最优解;为了进一步提高速度和减少空间消耗,针对理想模型的特点用贪婪算法得到了模型的近似最优解。其次,通过分析现网中实际的彩铃铃音订阅数据,为铃音流行度建立了数学模型,证明了铃音播放流行度服从Zipf分布的结论,并利用该结论对经典缓存算法LRU(Least Recently Used)和LFU(Least Frequently Used)进行了分析和验证。针对经典算法的不足和铃音服务器应用的特点,本文创新性地提出了一种新的缓存替换算法LFU-EA(LFU with Exponential Aging),该算法采用指数平滑公式作为频率老化机制,使用灵活的手段来平衡资源访问模式中的频率特性和时间特性,能够很好地与缓存周期性替换模型结合起来,适宜应用在磁盘缓存系统中。实验结果表明LFU-EA算法比经典算法的缓存命中率提高了10%左右。为了有效地实现LFU-EA算法,我们引入了受限二叉堆数据结构用于快速过滤大量铃音文件,并实现了应用双散列技术的通用散列容器,该技术从理论上有效地保证了高负载下容器的性能不会退化,适宜应用在对实时性要求很高的场合。实验证明该容器比标准容器速度更快并且占用更少的内存空间。最后,详细介绍了具体实现中的负载均衡策略,给出了应用Reactor模式和Leader/Followers模式作为软件并发架构的理由,讨论了容错机制的设计等等问题。本文提出的流行度建模技术和缓存替换算法LFU-EA对于其它的磁盘缓存系统也有良好的借鉴意义。
论文目录
摘要ABSTRACT第1章 彩铃业务与铃音服务器1.1 彩铃业务的发展1.1.1 彩铃市场和用户规模增长1.1.2 彩铃铃音资源增长1.2 彩铃业务呼叫处理流程1.2.1 目标网方案1.2.2 普通彩铃呼叫的正常处理流程1.2.3 智能用户彩铃呼叫的正常处理流程1.3 彩铃平台组网结构1.4 铃音服务器1.5 铃音传输协议1.5.1 NFS协议的优点1.5.2 NFS协议性能测试1.6 系统容量的估算1.7 本章小结第2章 模型的建立与求解2.1 理想模型2.1.1 理想缓存分配模型2.1.2 理想缓存分配模型的近似解法2.2 预测模型2.2.1 铃音播放流行度建模与Zipf分布2.2.2 铃音订阅次数和铃音播放次数的关系2.2.3 服从Zipf分布内在原因的初步解释2.3 本章小结第3章 缓存算法设计3.1 经典缓存替换算法3.1.1 LRU策略3.1.2 LFU策略3.1.3 LRU和LFU对Zipf访问模式的模拟结果3.1.4 经典缓存替换算法的不足3.2 一种新的缓存替换算法3.2.1 LFU算法的缓存污染问题3.2.2 适用于铃音磁盘缓存的LFU-EA算法3.2.3 缓存周期性替换模型3.2.4 算法验证3.3 本章小结第4章 关键数据结构和算法实现4.1 缓存信息的存储结构4.2 通用散列容器的设计4.2.1 好的散列函数的原则4.2.2 双散列技术4.2.3 散列函数的选择4.3 通用散列容器的实现4.3.1 实现通用散列函数接口4.3.2 散列桶和散列元素的抽象4.3.3 利用内存池优化内存管理4.3.4 关于自动增长特性4.4 通用散列容器性能测试4.5 并发访问控制4.6 本章小结第5章 系统实现5.1 系统架构5.1.1 部署视图及工作流程5.1.2 铃音播放统计协议5.1.3 负载均衡策略5.2 并发模型5.2.1 Reactor模式5.2.2 Leader/Followers模式5.3 软件模块实现5.3.1 模块划分5.3.2 通用组件5.3.3 应用层组件5.3.4 关于产生唯一ID5.4 缓存一致性5.5 容错设计5.6 本章小结结束语参考文献致谢
相关论文文献
标签:流行度建模论文; 分布论文; 指数平滑论文; 双散列技术论文; 负载均衡论文; 模式论文;