论文部分内容阅读
“基于P2P的分布式存储系统”是四川省科技厅“青年软件创新工程”资助项目。本系统在P2P的基础上采用了Server-to-Server的模型,各个Server之间完全对等,通过路由关系连接起来。客户从任何一个Server上都可以查询并访问系统中的所有文件,同时每一个Server上的文件及其存储信息都被冗余备份到其他Server上,提供了较高的容错性。此外,本系统的文件存储信息采用XML方式存放,有利于WEB方式发布和查询信息。在基础理论中,首先介绍了I/O模型,并对几种网络服务器内部架构进行了分析和比较,最后介绍了XML语言的基本概念和相关语法。随后,我们讨论了P2P的各种资源查找算法,并详细描述了本系统使用的基于关键字的路由模型的主要算法和设计。在对网络分布存储及其技术研究的基础上,我们设计了一个基于P2P模型的分布式存储系统。本系统采用分层结构,以路由层作为基础,在其上实现了对象传输层和命令解释层。在命令解释层实现了一个基于线程池的任务驱动的服务器框架模型,它监听UDP端口,并维护一个全局任务队列,所有收到的命令都作为一个任务放到任务队列中由处理线程进行命令分发,调用对象传输层处理;在对象传输层实现了资源查找算法,设计并实现了一套基于UDP的传输协议用于客户与服务器之间,以及服务器内部之间的命令交互,同时还设计了以XML方式存放的文件存储指针格式;最后,实现了一个定时模块,使得各种网络延时较大的任务可以通过定时队列得到异步响应,从而释放相应的处理线程,并且对于延时太久的任务可以实现超时重发。通过对本系统的初步测试,表明该系统实现了设计目标并具有较好的性能。