1 / 14
文档名称:

综合实习报告 文献综述类(20101221149).doc

格式:doc   大小:85KB   页数:14页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

综合实习报告 文献综述类(20101221149).doc

上传人:w447750 2017/11/10 文件大小:85 KB

下载得到文件列表

综合实习报告 文献综述类(20101221149).doc

文档介绍

文档介绍:综合实****报告
题目 MySQL数据库垂直水平分割技术的研究
学院信息科学与工程学院
专业计算机科学与技术
姓名刘成启
学号 20101221149
班级计1008
指导教师刘鹍
助理指导教师
二O一四年一月十一日


随着应用系统的规模不断增大,数据库中单表所存储的数据量也越来越多,这在一定程度上影响了系统的查询效率,垂直水平分割可以很好的解决这个问题,分割后可以降低在查询时需要读的数据和索引的页数,同时也降低了索引的层数,加快了查询速度。一个数据库系统的性能很大程度上取决于数据库设计, 而数据库设计就是在收集系统要求的基础上研究数据库结构的过程在这个过程中一个重要的环节就是怎样物理地组织数据, 以获得一个令人满意的系统物理地组织数据就是在物理地址中数据的存放即数据库分割。数据库分割是把一个逻辑实体从数据库的逻辑模型到物理地址的分配过程,一个好的分割技术可以减少存贮一个数据库所需要的存贮空间并减少把数据库调入内存进行处理所需要的I/O操作,把数据库分割成逻辑组有许多不同的技术, 所采用的技术不同, 达到的效果也不一徉。
国内外研究现状
随着互联网应用的广泛普及,海量数据的存储和访问成为了系统设计的瓶颈问题。对于一个大型的互联网应用,每天几十亿的PV无疑对数据库造成了相当高的负载。对于系统的稳定性和扩展性造成了极大的问题。通过数据切分来提高网站性能,横向扩展数据层已经成为架构研发人员首选的方式。水平切分数据库,可以降低单台机器的负载,同时最大限度的降低了了宕机造成的损失。通过负载均衡策略,有效的降低了单台机器的访问负载,降低了宕机的可能性;通过集群方案,解决了数据库宕机带来的单点数据库不能访问的问题;通过读写分离策略更是最大限度了提高了应用中读取(Read)数据的速度和并发量。目前国内的大型互联网应用中,大量的采用了这样的数据切分方案,Taobao,Alibaba,Tencent,它们大都实现了自己的分布式数据访问层(DDAL)。以实现方式和实现的层次来划分,大概分为两个层次(Java应用为例):JDBC层的封装,ORM框架层的实现。就JDBC层的直接封装而言,现在国内发展较好的一个项目是被称作"变形虫"(Amoeba)的项目,由阿里集团的研究院开发,现在仍然处于测试阶段(beta版),其运行效率和生产时效性有待考究。就ORM框架层的实现而言,比如Taobao的基于ibatis和Spring的的分布式数据访问层,已有多年的应用,运行效率和生产实效性得到了开发人员和用户的肯定。

人类认知问题的过程总是这样的:how怎么做,why为什么what什么。以这样的方式阐述了数据库切分的一些概念和意义以及对一些常规的切分规则做了概要的介绍。本课题所讨论的分布数据层并不仅仅如此,它是一个完整的数据层解决方案,它到底是什么样的呢?接下来的文字,我将详细阐述本研究课题的完整思想和实现方式。
分布式数据方案提供功能如下:
(1)提供分库规则和路由规则(RouteRule简称RR),将三种切分规则直接内嵌入本系统;
(2)引入集群(Group)的概念,保证数据的高可用性;
(3)引入负载均衡策略(LoadBalancePolicy简称LB);
(4)引入集群节点可用性探测机制,对单点机器的可用性进行定时的侦测,以保证LB策略的正确实施,以确保系统的高度稳定性;
(5)引入读/写分离,提高数据的查询速度;
仅仅是分库分表的数据层设计也是不够完善的,当某个节点上的DB服务器出现了宕机的情况的时候,会是什么样的呢?是的,我们采用了数据库切分方案,也就是说有N太机器组成了一个完整的DB,如果有一台机器宕机的话,也仅仅是一个DB的N分之一的数据不能访问而已,这是我们能接受的,起码比切分之前的情况好很多了,总不至于整个DB都不能访问。一般的应用中,这样的机器故障导致的数据无法访问是可以接受的,假设我们的系统是一个高并发的电子商务网站呢?单节点机器宕机带来的经济损失是非常严重的。也就是说,现在我们这样的方案还是存在问题的,容错性能是经不起考验的。当然了,问题总是有解决方案的。我们引入集群的概念,在此我称之为Group,也就是每一个分库的节点我们引入多台机器,每台机器保存的数据是一样的,一般情况下这多台机器分摊负载,当出现宕机情况,负载均衡器将分配负载给这台宕机的机器。这样一来,就解决了容错性的问题。所以我们引入了集群的概念,并将其内嵌入我们的框架中,成为框架的一部分。
图2-1 集群和读写分离的模型
如图2-1所示,整个数据层有Group1,Group2,Group3三个集群组成,这三个集群就是数据水平切分的结果,当然这三个集群也就组成了