论文部分内容阅读
Lmaze系统是在P2P文件共享系统Maze基础上重新构造的系统,它的目标是为了解决Maze系统在持续开发过程中遇到的可扩展性问题。在Lmaze开发过程中形成了跨平台的Lunar库,它对网络通信程序需要使用的基本功能如多线程、网络IO、磁盘IO等进行了跨平台封装,还包含了消息传递、基于Kademlia协议的DHT等功能模块。Lmaze中与Maze相关的模块属于基于Lunar之上的上层应用,虽然底层以Lunar的形式进行了完全的重构,但是上层Maze相关的部分基本保持不变。
进一步发展需要在原有系统基础上增加更多的应用,而原有系统中Maze相关模块的系统结构以及其中对多线程、网络IO等的使用模式包括代码质量都不具备良好的扩展性。本文先对原有系统的问题进行了分析,然后介绍了对系统中Maze相关模块的重构与重写过程,在解决系统结构问题的同时,引入非阻塞IO与异步IO技术代替系统中原来大量使用的阻塞IO操作,提升IO效率、减少系统中的线程数目并且提升了用户体验。
系统的维护与运行离不开一些辅助设施的支持,本文第二部分对状态监控、自动更新、异常汇报三个子系统的构建进行了介绍,说明了它们的工作原理以及在设计与实现过程中的一些考量因素。
在前面介绍的工作基础之上,结合网络硬盘、P2P存储等应用,Lmaze衍化为一个全新的P2P共享存储系统AmazingStore。本文第三部分介绍了对AmazingStore中浏览机制的研究。浏览是源自Maze中的一种资源发现机制,用户通过从服务器端取得一个随机的用户列表并访问列表中用户的资源来完成资源发现的过程。本文首先通过对用户行为数据的分析说明了浏览在系统中所起的重要作用,然后设计了改进现有浏览机制的算法,并在系统中实际部署对其有效性进行了验证。