软件工程论文开题报告范文:分布式系统的升级和数据迁移问题研究

论文价格:免费 论文用途:其他 编辑:硕博论文网 点击次数:
论文字数:4543 论文编号:sb2016011115585715135 日期:2017-11-08 来源:硕博论文网
分布式系统的升级和数据迁移问题研究
开题报告 
 
目 录 
一、选题背景 
二、研究目的和意义 
三、本文研究涉及的主要理论 
四、本文研究的主要内容及研究框架 
(一)本文研究的主要内容 
(二)本文研究框架 
五、写作提纲 
六、本文研究进展 
七、目前已经阅读的文献 
 
一、选题背景 
 
当今的互联网服务面临着许许多多的挑战和千变万化的需求,其中就包括需要管理海量的数据,并且能为高速增长的用户群提供持续可依赖的服务。这里所说的互联网服务包括了诸如在线邮箱、搜索引擎、在线游戏、在线金融系统、内容分发网络、文件共享网络等等。 因此,能提供这些互联网服务的系统往往很庞大:由成百上千台机器组成,并且这些机器可能在同一个数据中心里,也可能分散在不同的数据中心,之间通过不可依赖的网络进行通信。在具有如此巨大的扩展性的集群中,错误的发生变的很常见:一部分机器可能随时会遇到硬件或者软件故障;网络延迟和网络故障随时可能发生,导致丢包、网络分区等情况;偶发的恶意攻击或是操作错误,也有可能导致不可预测的灾难性错误发生。 所以,构建这种系统的软件往往很复杂,同时,每隔一段时间,系统都需要进行一定的修改(升级)以提升性能、修改错误或增加新的功能。本文工作所面临的最基本的问题就是如何有效地设计一种工程上可行的升级方案,使得这种规模的分布式系统能在升级期间能持续地提供服务。 
 
二、研究目的和意义 
 
时下云计算十分火爆,各种互联网公司、银行、政府都经常提及云计算,各种各样的分布式系统也层出不穷,不论是著名的大型分布式产品的开源项目诸如 Hadoop、Open Stack、Mongo DB 等等,又或者是国内外的著名的云计算服务提供商 Amazon AWS、Microsoft Azure、阿里云们,云计算早已从纸面或者是宣传标语中,走向了实实在在的落地阶段。 但是,针对云计算抑或是分布式系统中一个比较具体的问题的相关研究,尤其对于国内的相关领域而言,却是比较缺少的,国内工业界的著名厂商们似乎都在闷头造车,分享出来的解决云计算工程中实际具体问题的论文和研究成果依然较少。 本人深知自己的能力有限,仅得益于研究生期间的一些实习经历,结合工程实际,尝试对分布式系统的升级和数据迁移问题做一些总结和提炼的工作,并且有一定的创新。
 
三、本文研究涉及的主要理论 
 
分布式系统是其组件分布在联网的计算机上,组件之间通过传递消息进行通信和动作协调的软件系统[2]。分布式系统是一个统称,常见的有分布式操作系统、分布式程序设计语言及其编译(解释)系统、分布式文件系统和分布式数据库(存储)系统等等。本文所面临的升级和数据迁移的问题涉及到更多的是分布式存储系统,分布式存储系统的定义如下: 分布式存储系统是大量的普通的PC 服务器通过互联网互联,对外作为一个整体提供存储服务。也可以说,那些以数据存储和访问为目的而设计的分布式系统称之为分布式存储系统。 与普通的软件系统不同,分布式存储系统具有以下几个特性,理解这些特性对解决本文所提出的问题具有基础性的意义。 扩展性:分布式存储系统的扩展性是最重要的优势,往往可以扩展成百上千台的规模。同时随着集群规模的增长,其系统整体性能表现为线性增长。并且,可以根据一定的策略将数据和请求分配到不同的物理节点,物理节点的数目和集群处理能力成正比,集群是线性可扩展的。同时,集群能否扩展,可否线性扩展是衡量分布式存储系统的一个重要指标。 低成本和高性能:分布式存储系统具有的自动容错、自动负载均衡机制使其可以构建在普通的 PC  机之上。另外,线性扩展能力也使得增加、减少机器非常方便,可以实现自动运维。因此,对整个集群而言,分布式存储系统具备高性能。 数据分布:分布式存储系统区别于单机存储系统最大的特点是它可以按照一定方法进行数据切片,不同的物理节点分布不同的数据分片,从而将系统的存储容量压力和访问请求压力分散到系统集群的各个物理节点上,使系统整体能够存储超大规模的数据量,同时能够接受更多的并发请求。那么如何将数据分布到多台服务器才能够保证数据分布均匀?数据分布到多台服务器后如何实现跨服务器读写操作?常用的数据分片和分布方法有两种:a.哈希分区方法,即根据数据的 Key 进行哈希取模,离散的分配到集群的物理节点上,Amazon  的  Dynamo 采用了一致性哈希算法进行分区;b.连续分区方法,即将整个数据集合按照  key 来排序,根据  key 的范围进行分片。
  
四、本文研究的主要内容及研究框架 
 
(一)本文研究的主要内容 
本论文共分为六章,各章的主要内容如下所述: 
第一章为引言。介绍了本论文的研究背景,简述了云计算和分布式系统目前的现状,系统升级的必要性,以及本文的主要工作和组织结构。 
第二章为文献综述。介绍了分布式系统相关的基本理论,分析了一些典型的 Nosql系统,综述了在单机软件成熟的升级方案以及在分布式系统升级问题上前人的一些研究成果。 
第三章为难点分析及总体设计。本章系统地分析了分布式系统升级问题的难点,并且提出了高可用的分布式系统升级设计的基本概念和原则,在此基础上,提出了该问题的总体设计方案。 
第四章为详细设计和实现。本章在前一章的基础上,依次详细地设计了在单数据中心和跨数据中心的分布式环境下的系统升级方案,为本论文的最为重点的章节。 
第五章为方案测试与实施。本章在详细设计与实现的基础上,提出了相应的测试和实施方案,通过测试分析和实验分析验证了升级方案的有效性。 
第六章为总结和展望。总结了全文所做的工作,指出了论文的创新点,并且对论文的不足以及未来的后续研究做出了展望。 
 
(二)本文研究框架 
本文研究框架可简单表示为:
 
五、写作提纲 
 
摘要 4-5 
ABSTRACT 5-6 
第一章 引言 9-11 
    1.1 研究背景 9 
    1.2 本文主要工作 9-10 
    1.3 本文组织结构 10-11 
第二章 文献综述 11-23 
    2.1 分布式相关理论 11-14 
        2.1.1 基本概念和特性 11-12 
        2.1.2 CAP 理论 12-14 
    2.2 典型 Nosql 系统分析 14-19 
        2.2.1 Bigtable 15-16 
        2.2.2 Dynamo 16-18 
        2.2.3 Cassandra 与 Bigtable,Dynamo 的对比 18-19 
    2.3 单机软件升级方案 19-21 
    2.4 分布式系统升级方案 21-22 
    2.5 本章小结 22-23 
第三章 难点分析与总体设计 23-32 
    3.1 分布式系统升级难点分析 23-25 
    3.2 高可用的分布式系统升级设计 25-27 
        3.2.1 升级设计的基本概念 25-26 
        3.2.2 升级设计的基本原则 26-27 
    3.3 总体设计方案 27-31 
        3.3.1 方案背景 27-28 
        3.3.2 方案步骤 28-30 
        3.3.3 重点说明 30-31 
    3.4 本章小结 31-32 
第四章 详细设计与实现 32-51 
    4.1 项目背景介绍 32-33 
    4.2 单数据中心分布式系统升级 33-38 
        4.2.1 设计意义 33-34 
        4.2.2 详细设计 34-38 
    4.3 跨数据中心分布式系统升级 38-42 
        4.3.1 区别分析 38 
        4.3.2 总体说明 38-39 
        4.3.3 读写请求处理 39-40 
        4.3.4 详细步骤 40-42 
    4.4 主要模块的实现 42-49 
        4.4.1 总体模块设计 42-44 
        4.4.2 升级主要模块实现 44-46 
        4.4.3 数据迁移模块实现 46-48 
        4.4.4 回调函数的实现 48-49 
    4.5 本章小结 49-51 
第五章 方案实施与测试 51-70 
    5.1 方案实施 51-57 
        5.1.1 系统部署 51 
        5.1.2 对外接口 51-52 
        5.1.3 升级操作过程 52-57 
    5.2 方案测试 57-66 
        5.2.1 单元测试 57-61 
        5.2.2 集成测试 61-63 
        5.2.3 系统测试 63-66 
    5.3 实际生产环境测试结果 66-69 
    5.4 本章小结 69-70 
第六章 总结与展望 70-72 
    6.1 回顾和总结 70-71 
    6.2 前景展望 71-72 
参考文献 72-74 
致谢 74 
 
六、本文研究进展(略) 
 
七、目前已经阅读的主要文献 
[1]  杨传辉.  大规模分布式存储系统  原理解析与架构实战[J]. 2013. 
[2]  Coulouris,  George;  Jean  Dollimore;  Tim  Kindberg;  Gordon  Blair  (2011).  Distributed  Systems: Concepts and Design (5th Edition). Boston: Addison-Wesley. ISBN 0-132-14301-1. 
[3]  Haerder,  T.;  Reuter,  A.  (1983).  "Principles  of  transaction-oriented  database  recovery".  ACM Computing  Surveys  15  (4):  287.  doi:10.1145/289.291.  edit These  four  properties,  atomicity, consistency,  isolation,  and  durability  (ACID),  describe  the  major  highlights  of  the  transaction paradigm, which has influenced many aspects of development in database systems. 
[4] Eric Brewer, CAP twelve years later: How the "rules" have changed, IEEE Explore, Volume 45, Issue 2 (2012), pg. 23-29. 
[5]  Armando  Fox  and  Eric  Brewer,  Harvest,  Yield  and  Scalable  Tolerant  Systems,  Proc.  7th  Workshop Hot Topics in Operating Systems (Hot OS 99), IEEE CS, 1999, pg. 174-178. 
[6]  MSBI #72 – BI  #  5  –  Big  Data  #  2  –  What  is  Big  Data  ?  What  is  No  SQL  ?  What  is  Relation  in association  of  Microsoft  with  SQL  Azure  ,  Windows  Azure  ,Big  Data  and  No  SQL  together. 
[7] Nosql. Wikipedia. http://zh.wikipedia.org/zh-cn/No SQL. 
[8] Chang, Fay, et al. "Bigtable: A distributed storage system for structured data." ACM Transactions on Computer Systems (TOCS) 26.2 (2008): 4. [9]  Giuseppe De Candia,  Deniz Hastorun,  Madan  Jampani,  etc.  Dynamo:  Amazon’s  Highly  Available Key-value Store. 
[10]  Lakshman,  Avinash,  and  Prashant  Malik.  "Cassandra:  a  decentralized  structured  storage  system." ACM SIGOPS Operating Systems Review 44.2 (2010): 35-40. 
[11] Kala Karun, A., and Subu Surendran. "Big Table, Dynamo & Cassandra–A Review.". 
[12]  van  der  Burg,  Sander,  Eelco  Dolstra,  and  Merijn  de  Jonge.  "Atomic  upgrading  of  distributed systems." Proceedings of the 1st International Workshop on Hot Topics in Software Upgrades. ACM, 2008. 
[13] Eelco Dolstra. The Purely Functional Software Deployment Model. Ph D thesis, Faculty of Science, Utrecht University, The Nether-lands, January 2006. 
[14]  Eric  Foster-Johnson.  Red  Hat  RPM  Guide.  John  Wiley  &  Sons,  2003. 
[15]  Eelco  Dolstra,  Eelco  Visser,  and  Merijn  de  Jonge.  Imposing  a  memory  management  discipline  on software deployment. In Proc. 26th Intl. Conf. on Software Engineering (ICSE 2004), pages 583–592. IEEE Computer Society, May 2004. 
[16]  Ajmani,  Sameer,  Barbara  Liskov,  and  Liuba  Shrira.  "Modular  software  upgrades  for  distributed systems." ECOOP 2006–Object-Oriented Programming. Springer Berlin Heidelberg, 2006. 452-476. 
[17] Ajmani, Sameer. "Automatic Software Upgrades for Distributed Systems (Ph D thesis)." (2005). 
[18] Bailey, Edward C. (2000). "Appendix A: Format of the RPM File". Maximum RPM: Taking the Red Hat  Package  Manager  to  the  Limit.  Red  Hat,  Inc.  pp.  325–336.  ISBN  978-1888172782.  Retrieved 2010-11-22. 
[19]  Hunt,  Patrick,  et  al.  "Zookeeper:  Wait-free  Coordination  for  Internet-scale  Systems."  USENIX Annual Technical Conference. Vol. 8. 2010. 
[20]  Fielding,  Roy  Thomas  (2000).  "Chapter  5:  Representational  State  Transfer  (REST)".  Architectural Styles  and  the  Design  of  Network-based  Software  Architectures  (Ph.D.).  University  of  California, Irvine.
[21] Andrew, H., David, T.,  程序员修炼三部曲第 2 部单元测试之道 Java 版  使用 JUnit,  陈伟柱,陶文译,  电子工业出版社, 2005 年. 

如果您有论文相关需求,可以通过下面的方式联系我们
点击联系客服
QQ 1429724474 电话 18964107217