论文部分内容阅读
由于P2P用户的高动态性和异构性,P2P文件共享系统中的冷门文件的下载成功率很低。之前的文献一方面利用空闲用户来协助分发文件,增加参与分发文件的用户数,另一方面是利用稳定的服务器或CDN来存放文件的副本。由于冷门文件数量巨大,两种策略对下载时间的改进都很有限。离线下载将下载过程分为两个阶段,离线阶段需要的时间长、波动大,但请求下载的用户可以离线;当离线阶段完成以后,请求下载的用户再次上线,就能以稳定的速率把文件下载到本地,因此节约了用户的在线等待时间。 本文提出了一种基于P2P的离线下载架构,它利用P2P用户的带宽和存储资源,在服务器的调度下,通过用户之间的协作,把文件分发到足够多的用户机器上。基于P2P的离线下载具有成本低、扩展性好的优点。为了把高动态性的用户组织起来,保证下载成功率,系统采用合适的冗余策略来存储文件数据,对任务和用户进行合理的管理和调度,高效地把文件分发到P2P存储系统中,并对任务完成时间进行了有效的预测。 P2P系统中用户共享文件的数量的不均衡,导致用户承担的下载任务的不均衡,少量用户的任务出现堆积,降低了离线下载成功率。本文提出了一种用户协作策略,利用空闲用户帮助种子用户分发文件;在此基础上,本文分析了影响用户协作策略效果的因素,并在不同任务负载条件下对比了不同用户协作策略的性能。 本文把离线下载系统真实部署在AmazingStore系统中,通过模拟和实际系统得出了任务成功率、完成时间、等待时间等系统性能数据,证实了系统的可行性,分析了任务失败的各项原因所占的比例。本文通过实际系统运行的实践,总结了如下经验:首先,设置消息超时、及时终止传输速度慢的连接是十分必要的;其次,在异常情况下客户端和服务器的状态会出现不一致,因此系统必须通过某种机制来同步二者的状态;第三,用户在执行任务的过程中会出现不同类型的错误,识别和区分这些错误,对保证系统性能具有十分重要的作用。