一种内容分发系统的设计与实现
作者单位:电子科技大学
学位级别:硕士
导师姓名:卢显良
授予年度:2007年
学科分类:08[工学] 0835[工学-软件工程] 081202[工学-计算机软件与理论] 0812[工学-计算机科学与技术(可授工学、理学学位)]
主 题:内容分发系统 DHT 内容分发算法 存储可靠性 网络服务器架构
摘 要:目前,内容提供商提出了利用互联网传播大尺寸块式内容(如游戏软件)和流式内容(如高清流媒体)的需求。而传统的CDN(Content Distribution Network,内容分发系统)面对这样的需求,存在两个问题:第一,很难同时支持块式内容和流式内容的分发,分发算法对于两种内容性能差距很大;第二,对于分发系统中边缘服务器上内容存储可靠性的保证涉足较少,一旦内容失效,恢复效率低下。 为了能够满足最新的需求,解决上述问题,本文在研究了当前CDN的基础上,设计并实现了SmartCDN内容分发系统。 首先,本文介绍了一个简单的分布式哈希表服务SmartDHT(Smart Distributed Hash Table),为SmartCDN提供了分布式可靠存储和快速查询平台。 然后,本文考察了当前的内容分发算法,并根据SmartCDN的特点,在SmartCDN一级分发网络上,设计了一个通过参数自适应调整,能同时支持块式内容和流式内容的内容分发算法SmartCDA(Smart Content Distribution Algorithm)。SmartCDA依赖于SmartDHT,结合了BitTorrent的优点,采用同自治域优先的聚类算法和紧急内容分片优先下载策略,可以最小化块式内容平均分发时间并满足流式内容的分发实时性要求。 接着,在总结了常见内容存储可靠性保证机制的优缺点后,考虑到SmartCDN的实际需求,实现了一套内容失效恢复机制SmartCRM(Smart Content Recovery Mechanism)。SmartCRM在SmartDHT上维护系统全局状态,采用“软状态探测内容丢失,并通过P2P(Peer-to-Peer,点对点)互传恢复内容。这样可以及时发现内容失效,并快速恢复,减少了平均故障恢复时间,提高了内容的可用率。 另外,为了能够高效地实现SmartCDN的各个服务器模块,本文在Linux2.6 epoll高性能IO事件通知机制的基础上,采用面向对象的思想,建立了一个在复杂业务逻辑中能处理与多种通信实体交互的内容服务器架构SmartCSF(Smart Content Server Framework)。SmartCDN中所有的服务器模块都采用了SmartCSF。 最后,通过功能测试和仿真性能对比测试,不仅得出了SmartCDA算法参数的最佳值,而且表现了SmartCDA和SmartCRM的性能优势。实际部署中用户的积极反馈也进一步验证了SmartCDN的优良性能。