精华内容
下载资源
问答
  • 分布式数据库论文

    2018-03-09 16:02:35
    5篇完整的课程设计,结构完整,可当毕业设计! !
  • 本文分析了我国农产品数据分散、难以共享的现状,介绍了分布式数据库的结构,详细叙述了分布式数据库的设计内容,提出了农产品电子商务系统中的分布式数据库的设计方案,包括数据分割、数据冗余和数据同步等问题的...
  • 自己认为还不错的................................
  • 国外的轮文,关于分布式数据库及事务同步,值得一看
  • 4 日,第 46 届 VLDB 会议以线上直播的方式举行(原定于日本东京召开),PingCAP 团队的论文《TiDB: A Raft-based HTAP Database 》入选 VLDB 2020 ,成为业界第一篇 Real-time HTAP 分布式数据库工业实现的论文。...

    8 月 31 日 - 9 月 4 日,第 46 届 VLDB 会议以线上直播的方式举行(原定于日本东京召开),PingCAP 团队的论文《TiDB: A Raft-based HTAP Database 》入选 VLDB 2020 ,成为业界第一篇 Real-time HTAP 分布式数据库工业实现的论文。PingCAP 联合创始人、CTO 黄东旭获邀在会上进行演讲,分享关于论文的深度解读及在线答疑。

    在这里插入图片描述

    VLDB(International Conference on Very Large Databases)是数据库领域顶尖的三大学术会议之一,于 1975 年在美国成立,由非盈利性机构 VLDB 基金会赞助和运营,以在全球普及数据库技术研究和交流作为使命。

    在本篇论文中,PingCAP 重点介绍了其研发的 TiDB 作为一款定位于在线事务处理和在线实时分析(HTAP)混合负载融合型分布式数据库产品的系统架构和核心特性。TiDB 受 Google 发布的 Spanner / F1 论文 ,以及 2014 年 Stanford 工业级分布式一致性协议算法 Raft 论文的启发。经过 5 年多的产品研发、生产环境上线验证,取得了一系列成果,此次被 VLDB 2020 收录也是对学术界的反哺。

    HTAP(Hybrid Transactional / Analytical Processing) 是近些年为数据库界所关注的研究方向。HTAP 数据库需要能够同时兼具处理交易以及分析两种作业的能力,这使得交易数据能够被实时分析,大大缩短决策的周期,同时大幅简化平台架构。

    但是 HTAP 能力并不容易构建:交易业务需要行存,分析业务仰赖列存,且列存往往难于实时更新。以往的分析平台往往需要将数据从行存的交易库向列存的分析库进行数据迁移,这使得我们的数据分析往往基于历史数据。现今越来越多的用户不再满足于基于对历史数据进行分析,而是希望能用更新鲜的数据支持决策。例如生鲜零售业,基于更新鲜的数据进行物流调度可以大大减少货损。

    技术上来说,Real-time HTAP 并不容易实现。首先,数据库需要同时具备行存和列存两种能力;并且列存需要能实时反映行存的变更;最后,两种业务需要能互相之间无干扰运行。
    TiDB 最新版本中引入了专为 Real-time HTAP 场景设计的以 Raft 为基础的行列混合体系。本论文也是以这个架构为主轴来阐述其独特之处。

    TiDB 为支持 Real-time HTAP 架构实现了:

    1. 可实时更新的列存。与传统的列存不同,TiDB 实现了一套可实时根据主键更新的列存引擎,并使用了与 TiKV 的 LSM 不同的 DeltaTree 设计,避免了范围读取下 LSM 多路归并负担过重的问题。

    2. 通过以 Raft Learner 角色加入 Multi-Raft 副本体系,以异步的方式进行从行到列的数据复制,以求尽最小化对在线交易业务的影响。同时,虽然是异步复制,通过共识协议的 Learner Read 算法,TiFlash 仍然可以提供一致性的读取效果。

    3. 通过与行存一致的代价估算模型,TiDB 可以智能选取行存,列存或者混合的方式响应查询,以期获得最佳性能。
      在这里插入图片描述

    以上是 TiDB HTAP 架构图,与以往不同的是,新的架构下增加了 TiFlash 列式存储节点。通过 Raft 共识算法进行复制,每个 Region 可以拥有行存和列存两种副本,而用户查询会根据统计信息和代价估算自动选择副本类型。

    TiDB 创新性地利用 Raft 共识协议同时实现了行列混合,负载隔离,以及异步复制下的一致性读取,为 HTAP 架构设计提供了新的思路。PingCAP 联合创始人、CTO 黄东旭表示,我们相信,HTAP 将会随着业务对实时决策的需求不断增加而越来越普及,与此同时,希望我们的探索可以启发其他数据库开发者。

    TiDB 目前已经有近 1000 家海内外头部公司用户将其用于线上生产环境,涉及互联网、游戏、银行、保险、证券、航空、制造业、电信、新零售、政府等多个行业。包括国内的光大银行、北京银行、微众银行、美团点评、中通快递、知乎、爱奇艺等;海外用户如日本最大的支付公司 Paypay,视频公司 U-Next, 越南的独角兽 VNG,以及支付公司 ZaloPay,印度的 Zomato,BookMyShow,东南亚最大的电商 Shopee,法国视频互联网公司 Dailymotion 等,目前已经成为业内的分布式数据库事实标准。

    💡 本论文于 2020 年八月的 PVLDB, Volume 13, Issue 12 刊登。【点击链接
    】立即下载论文。

    展开全文
  • 分布式数据库的查询优化研究,王欣,,本文首先介绍了分布式数据库的机制和特点,并介绍了分布式查询的步骤。然后探讨了分布式查询优化的目标,指出在分布式数据库系统
  • 基于Java RMI的分布式数据库系统的应用与研究的论文 摘要随着互联网技术以及信息时代的发展分布式计算已经非常流行JavaRMI为远程方法调用将该机制内容作为研究的基础能够充分实现分布式数据库系统的建设通过对Java...
  • 基于分布式数据库的连锁超市物流管理系统,陈瓅,易淼,本文针对连锁超市地理位置分散的实际特点,设计和实现了连锁超市物流管理系统的分布式数据库结构,使不同区域的数据可以共享.同
  • 分布式数据库系统中死锁避免策略的选择,吴德州 ,武君胜, 提出了分析死锁工作的等待图的一种优化――带时戳的资源分配图,同时对分布式数据库系统中的死锁避免的两种方案通过例证给出了��
  • 基于Oracle的智能交通系统(ITS)分布式数据库系统研究,高爽,肖扬,在分布式数据库系统环境下,信息可能存储在地理位置分散的数据库中,如何在全局逻辑上查询、更新分布在分布式数据库中的错误是分
  • 由于用户的位置可能变化很大并且存储信息的类型多种多样,因此有助于满足需求的分布式数据库系统的必要性很重要。 来自不同地方、不同平台的用户可以相互工作和共享信息,而无需担心用户的位置和资源格式。 考虑到...
  • 分布式数据库研究现状及发展趋势学期末的课程小论文 主要介绍分布式数据库
  • RDGSM(the Regional Database for Geothermal Surface Manifestation)是国际原子能机构(IAEA)对地表同位素水文数据进行处理和管理的分布式数据库系统,数据信息分布在世界各地,数据采集和提交的时间至关重要。...
  • 分布式数据库数据分配策略研究,李想,王秀坤,本文提出用遗传算法来解决数据分配问题,在本文的遗传算法中,主要统计了数据库信息、应用信息和网络通信代价等,采用以事务处理
  • 基于粗糙集和模糊聚类的分布式数据库性能评估,陈思,杨正球,在分布式数据库系统中,数据库数量庞大,物理位置分散,为数据库综合性能评估提供一个统一的、科学的衡量标准是十分必要的。在建
  • 分布式数据库的集成 [摘要] 本文讨论了某公司发货系统的分布式数据库集成解决方案。该公司由于业务的发展,要在另三个城市设立货仓进行发货。为此,需要増加原先的MIS系统实现这一功能。公司委任我作为项目经理...

    论分布式数据库的集成

    [摘要]

    本文讨论了某公司发货系统的分布式数据库集成解决方案。该公司由于业务的发展,要在另三个城市设立货仓进行发货。为此,需要増加原先的MIS系统实现这一功能。公司委任我作为项目经理完成系统的设计和开发的工作。我经过分析,使用了 Sybase的分布式数据库技术。我设计的这个系统是采用典型的C/S结构,但客户端连接服务器的网络采用电话线拨号,速度有限,传统Windows界面的客户端应用程序相应速度比较慢。于是我采用了优化数
    据库结构的方法,把数据分两部份存放,基础数据放客户机,销售资料主要采用键码放服务器,应用程序再现数据时从服务器取键码,到客户机取対应的解释。由于键码的数据量少,网络传输便快。在构建这个公布式数据库系统的过程中,我着重研究并解决了数据同歩和事务协调的问题,到得了良好的应用效果。

    [正文]

    2004年3月,由于公司业务的发展,要求在其它三个城市设立货仓,处理发货业务。公司本部运行用Sybase数据库的MIS系统可以实现发货,该系统用的是C/S结构。由于客户端连接服务器的网络采用电话拨导,所以直接把客户端软件直接安装在外地访问本部数据库,速度很慢。于是,公司成立了一个项目,专门解决这个问题。在这个项目中,我担任项目经理。经过対现有系统的分析,我们决定利用Sybase提供的技术,采用分布式数据库集成的方
    法来改造目前的系统使之能适应新的需要。项目分三个阶段进行,一是进行需求分析,确定要増加的功能。二是进行系统设计,改变后数据分布如何,系统架构如何。最后是实现和测试,上线。整个项目历时从分析到实现历时三个月,最后于2004年6月份系统成功上线。
    在分析阶段时我发现由于客户端地域的分散,遍及三个省境内,连接服务器数据库的网络采用电话拨导方式,速度有限,在使用客户端应用程序时感觉界面速度很慢。我经过分析,认识到许多操作都要从服务器中取数据,速度慢就慢在数据访问上。服务器是没有瓶颈的,问题出在网络速度上。出于成本和业务重方面的考虑,公司不会用专线连接,只能是电话拨号。这时只能改变目前软件的实现方法,来适应这种低速网络的使用模式。
    经和项目组的人员一起探讨,结合关系数据库的知识,我认识到,应用程序的每一次数据库操作,都要访问多个相联的表,其中,有销售订单表和物料基础数据表唇户资料表/货仓的基础数据等。销售订单表中存放着出销售的订单编号,成品编号等,数据量少。而基础数据表就则放着成品的相关信息,有大量的数据。如果考虑把销售订单放在服务器,基础数据放在客户端,当应用程序中访问数据时,总是从服务器上存取销售订单,从客户端提取成
    品/订单的详细信息。由于订单的数据量少,便减少了网络上传送的数据量,从而提高了界面的响应速度。
    把数据分散存放只是工作的第一歩,接下来要考虑应用程序怎样访问这种分布式数据。开发应用时,如果每一功能都针対两个数据库进行,就带来了很多麻烦。所以,我通过研究Sybase的分布式数据库技术,决定采用CIS (组件集成服务)部件,来合并两个数据库成一个统一的分布式数据库。应用程序只要连接一个数据库,就可以透明统一访问到两个数据库中的数据。
    该技术具体实施方法是:在客户端数据库中建立一个対服务器数据库的远程访问服务名,包含访问地址,登录用户名,登录密码等关键的连接信息;前且対服务器中销售订单建立一个本地代理表。结构和服务器中远程表完全一样,它是访问服务器中会员资料的中转和代理。客户端应用程序访问本地代理销售资料表时,实际上是通过预先定义的远程访问服务名中包含的连接信息到服务器中対应的实际销售资料表中访问数据。这种访问対于客户端完全透明,感觉不到是从物理上独立的两个服务器中存服数据。所以,这种数据库结构是典型的分布式数据库。部署这种分布式数据库不是难事,只要在客户端和服务器上安装12.0版本以上的数据库服务器,在客户端服务器上建立远程服务名和代理表即可。由于Sybase数据库的安装支持脚本方式,在客户端应用程序的标准安装过程中,嵌入Sybase数据库的安装和配置脚本,就自动化地完成了所有工作。
    在实际使用该分布式数据库系统的过程中,遇到了几个问题,第一,数据同歩。客户端基础数据不是绝対静态的,也有变化,因此在服务器要设貫一个统一的基准,称为主点数据。客户端总是要复制使用,称为复制点数据。如何及时感知到服务器端主点数据的变化,有效率地复制到客户端,是个难题。Sybase针対这种应用场合,提供了复制服务器技术,但为了避免过于复杂,我们采用实际应用程序来管理同歩。当服务器端主点数据有了更改时,保存一个相应的标识和时间戳,客户端应用在登录服务器时,检資这些标识,一检测到了数据有更新,就首先下载,然后再进入系统正常使用。这种方法实现起来,増加了额外的开发量,且不能判别绕过应用程序対数据的直接修改,但是,是最简单和有效的方法。
    第二个问题是事务协调问题。物理上独立的两个数据库,在协同操作时,如果服务器正好停机或者网络故障,完整的一个事务没能完成,就会事务崩溃,虽然Sybase CIS內嵌了两阶段提交技术,能够自动恢复。但是应用程序在这种情况下,敏感性不够,操作界面会无端凝固,影响了使用的方便性。我针対PB対劲于连接的判断和感知,用了一个小小编程技巧,使应用程序能够及时感知到数据库连接故障,及时停止和恢复事务,使操作界面表现友好灵活。
    在具体的应用中,我们在三个城市安装了増强的客户端应用程序,同时安装了 Sybase数据库。初始化时,把基础数据放从公司本部的数据库导入客户端的数据库中。用户在外地进行发货时,先拨号上网,然后启动客户端程序。在登录过程中,客户端程序会检查服务器上的标识和时间戳检查这些主数据是否有更新,如果有就先下载,下载完成后再进入系统正常使用。在服务器更新的数据比较多的情况下,下载的时间会比较长,这时如果遇到急需发货,则会影响到货物不能及时发出去。为了解决这个问题,我设置了在每天凌晨的某个时刻自动登录和启动客户端程序,在下载更新数据完成后自动关闭。这样可以把一部份数据更新的内容放在非工作时间里完成,减少了发货登录的时间。用户登录后开始进行发货操作。输入销售订单,通过本地代理表系统自动到服务器获取该销售订单的数据,如发货的数量,客户编号等。而一些基础数据则可以直接从本地的数据库中得到,如销售产品的描述,客户的地址/电话/传真,发货的库位等。完成出货动作后,会自动更新服务器的库存。而这一更新通过提交事务在后台进行,不影响前台的操作。所以,対用户来讲,能够进行正常的操作,不会因为速度慢而进行不下去。
    在当今的信息社会里,互联网带来了相互连通的方便,而且知识爆炸,数据的分布式访问是个必然的趋势。目前新起的XML技术,提供了各种平台数据库之间的一个公共数据访问标准,可以用来构建更加灵活,适应性更强的分布数据库技术。将XML用在分布式数据库中,将是未来的一个趋势。

    展开全文
  • 研究论文-一种维护分布式数据库数据一致性的方法
  • 分布式数据库中全局唯一主键生成策略的设计与实现,胡云亭,王晶,随着互联网的发展以及数据的爆炸式增长,集中式数据库已经无法满足海量数据快速存储和查询的要求了,这时分布式数据库应运而生。
  • 通过借鉴移动agent思想并对其功能进行扩充,提出基于移动agent的J2ME分布式数据库四层C/S访问机制,并在开源Aglets平台基础上开发了一个分布式通信录系统原型,实验评估显示该方案有效地提高了J2ME设备对分布式...
  • 一种基于数据切分的分布式数据库架构的设计,周国钢,徐雅静,针对传统的集中式数据库架构在数据量大幅度增加的情况下会出现性能瓶颈的问题,本文提出了一种基于数据切分的分布式数据库架构,��
  • 分布式数据库中负载均衡技术的实现,张红旗,任维政,随着互联网的快速发展,用户对于信息获取的正确性、及时性要求越来越高。数据库系统是数据存储、信息检索的主要手段,是制约Web系
  • 本文是分布式数据库课程的阅读报告,为了凑字数可能有些罗嗦,但也算是对Spanner数据库的一个简述,参考文献包括: 1.《Spanner: Google’s Globally Distributed Database》 2.《Google-Spanner论文的思考》 3....

    本文是分布式数据库课程的阅读报告,为了凑字数可能有些罗嗦,但也算是对Spanner数据库的一个简述,参考文献包括:

    1.《Spanner: Google’s Globally Distributed Database》
    2.《Google-Spanner论文的思考》
    3.《百万节点数据库扩展之道(3): Google Bigtable》

           BigTable,作为Google分布式三架马车之一,问世以来已经有十多年(相对于选择的论文的时间还不到十年),随着计算机相关技术的发展,也有相应的更新。这次我选择谷歌发表于2012年的论文《Spanner: Google’s Globally Distributed Database》作为阅读的论文,学习Spanner数据库的基本原理,以及其包含的分布式数据库设计思路。

           论文中明确表示,Spanner数据库的数据结构和DML受限于谷歌公司以往存储的数据形式和使用方式,处于兼容性和过去的使用经验,Spanner数据库使用结构化的半关系型表来存储数据,支持查询语言和支持通用事务。这些并不是Spanner数据库与众不同之处,Spanner数据库的特点,在于其使用True Time以及基于True Time的数据管理方式。

           True Time使用GPS和原子钟保证了每一个Spanner的数据管理单元,能在任何时刻,获得全局范围上的准确时间,True Time的实现细节十分复杂,,但其使用却十分简单。True Time所使用的APIGoogle的集群管理软件实现并提供,主要包含TT.now()TT.after()TT.before()三个方法。其中TT.now()返回一个时间区间TTinterval:[earliest,latest]TTinterval是一个具有有限时间不确定性的时间区间,在这里认为获得的时间戳TTstamp是一个不确定的时间,但是可以保证时间戳TTstamp一定存在于TTinterval这个时间区间内,这个不确定时钟的时间窗口的宽度足够小(通常小于10ms)。而TT.after()TT.before()方法是基于TT.now()方法的二次封装,提供了用于判断是否已经超过了指定时间和是否还没有到达指定时间的便捷方法。

           基于True Time的时间戳,区别于一般的键值存储,Spanner中数据存储的形式为(key:string, timestamp:int64)string。由于时间戳的存在,Spanner数据库根据设定的销毁时间的不同,可以存在不同数量的多个版本的数据。通过对事务发起时间和分布式数据库不同站点的局部时间戳的比较,确定操作的执行位置和时间。在了解Spanner的具体实现前,先明确Spanner分布式数据库的总体结构和其基于BigTable的现实,如下图1和图2

                            

           总体上,一个Spanner分布式数据库由univermasterplacement driver和一系列Zone组成。ZoneSpanner部署管理的基本单元,univermaster将根据任务的实际情况,将其分发给对应的zonemasterzonemaster再将其发布到不同的spanseverspansever直接为客户端提供数据服务。Location proxy提供给zonemaster定位可能达数千个spanserver的服务。Placement driver则是负责不同zone之间的数据移动,用以满足最新的数据副本约束条件或者实现负载均衡。

                         

           每个SpanServer管理1001000TabletSpanner中的TabletBigTable中的Tablet类似,Tablet的状态存储在一系列以B-Tree组织的文件集合和WALWrite-Ahead-Log)文件中,而所有的这些文件都存储在名为Colossus的分布式文件系统中。为了支持复制,每个Spanserver在每个Tablet的上层都实现了一个单独的Paxos状态机(这里请看参考文献3)。每个状态机中将状态机的状态和日志信息记录到其对应的Tablet中。SpannerPaxos实现支持了长寿leader(数据的不同时间的状态机副本replica,根据实现的机制获得执行权),长寿leader是通过基于时间的leader租约(默认租约长度是10秒)实现的。当前Spanner的实现中会对每次Paxos的写入操作记录两次:一次记录在tabletlog中,一次记录在Paxoslog中。

           在任意一个leader副本上,每个Spanserver通过一张lock table来控制并发。这张lock table中包含了二阶段锁的状态:它将某个范围的key映射到相应的锁状态。用于后面所介绍的事务管理。

      

    而图2中所涉及的组(group)的概念,是因为在所有的Key-Value映射的上层,Spanner实现了一层被称为directorybucketing 抽象,如图3所示,一个directory是一批连续的具有相同前缀的key的集合。Directory又被组织成组,通过二级结构实现更加方便的数据管理和访问。GroupZonedirectory的关系如图所示。

    有上述的系统组织和基于True Time时间戳的多副本存储,Spanner数据库的事务实现方式十分巧妙而又高效:

           基于时间戳的非事务只读操作:每个数据副本都会记录一个名为安全时间的变量:T_safeT_safe=min(T_paxos_safe,T_tm_safe),在没有事务有待提交时,T_safe为数据副本最后一次更新的时间T_paxos_safe,当有事务待提交时,根据leader事务管理器的安全时间计算出安全事件T_tm_safe。若一个读操作的时间戳是T,当满足T<=T_safe的时候,这个数据副本才可以被当前的这个读操作进行读取。在进行只读操作的时候无须对数据进行加锁,因为时间戳已经保证读操作可以得到正确的数据。

           事务性读和写使用两阶段锁,在读写事务获得锁之后,释放锁之前,可以为之指定任意的时间戳,但需要保证顺序一致性原则:若事务T2的开始时间在事务T1的提交时间之后,那么事务T2的提交时间一定比事务T1的提交时间要晚。

           基于这样的数据管理方式,Spanner数据库实现了在全球范围,这样大的区域下的高并发数据读,和一致性的读写事务操作,并且提供多版本的数据库访问。

           其实在我的印象中,使用时间戳的数据管理方式在通信和编程领域早已出现过。如在通信系统中,使用一致的时钟频率对数据进行一致性采样和校准。又或者是在单机程序上使用时间戳的方式通过管道模型,对实现多进程以及多线程之间的通信。前者是通过短距离情况下通信设备的电气特性实现,而后者是借助计算机系统的时间接口实现,均只能在小范围情况下做到时间准确同步。而Spanner数据库则在全范围内实现了时间的同步(尽管10ms的误差在很多场景下并不适用,但还是有重大影响),想来这项技术也将被应用到其他相关领域。或许这种时间戳的数据管理方式不再适用于数据库需要等到人类建立地外基地,并且需要同步各基地的数据吧。

          

    展开全文
  • 研究大规模分布式数据挖掘问题,提出了一个基于投票的挖掘分布式数据库的聚集模型。该模型计算产生于子数据库中每条规则的信任系数,通过投票得到一组划分的分类规则集。该模型表示出良好的预测能力和描述能力,而且...
  • 伊利诺伊大学厄本那香槟分校(University of Illinois at Urbana-Champaign)高等数据管理课讲义,本篇介绍谷歌的F1分布式数据库,相关论文:http://download.csdn.net/detail/quantum_bit/8556099
  • 分布式数据库的设计与实现 [摘要] 本文通过XXX高速公路收费系统(以下简称收费系统),来论述分布式数据库的设计与实现。收费系统是我公司近年来接的较为大型的项目,管理结构为三层结构:公司级、收费中心级、...

    论分布式数据库的设计与实现

    [摘要]

    本文通过XXX高速公路收费系统(以下简称收费系统),来论述分布式数据库的设计与实现。收费系统是我公司近年来接的较为大型的项目,管理结构为三层结构:公司级、收费中心级、收费站级,各级之间即可独立的完成自身业务,又有自上而下的管理关系。收费中心、收费站均为三层C/S结构,公司级采取B/S结构。该系统的数据库也按照三层来设计,收费站存放本站的所有流水数据,收费中心存放所有数据,公司本部存放查询用汇总数据,收费站与收费中心使用事务复制来同歩数据,而收费中心与公司本部使用快照复制来同歩数据,并且使用分级的方法来测试收费站、收费中心与公司本部之间的数据同歩。
    在本项目的开发过程中,我担任了数据库的设计工作。

    [正文]

    2000年10月一2001年12月我公司开发了高速公路收费系统(以下简称收费系统),收费系统项目从管理层面分为三层结构:公司级、收费中心级和收费站级。公司本部:供领导、运营部、财务部等业务部门了解业务情况、检查工作-B/S结构各部门通过Web服务器查询数据库服务器,而公司数据库服器定时要求中心数据库服务器复制汇总数据。
    收费中心:收费系统的管理中心下达管理制度,管理数据到收费站,接收统计收费站的收费数据,上报汇总数据到公司,负责日常的管理工作。
    收费站:具体进行收费的单位,收费车道的数据通过通信系统实时上传到收费站数据库保存、分类、汇总,并且实时传送收费中心下达的数据库管理,并通过通信子系统下载到车道收费机上具体实施。
    系统采用三层C/S与B/S的混合结构,收费中心与收费站为三层C/S结构,而公司级为B/S结构。我在项目中担任了数据库的设计工作,负责数据库的设计、测试及实施。

    1.数据库设计

    此收费系统的结构较为复杂,分为公司级、收费中心、收费站三级管理结构,班可独立工作,又有管理的联系。数据实时传送到收费站数据库服务器,再实时传送到收费中心数据库服务器。在数据库设计方面我们按物理的分布也分为三层结构。
    在收费站,根据系统的需求分析的结果,一辆车通过收费站时产生的最基本的数据有:通过日期、时间、车型、收费类型及收费金额,因为收费标准不轻易改变,考虑到我们采用的是专用的车道收费机,存储量较小,所以收费金额项在此处不计入数据库,上传至收费站数据库服务器后,可以用车数乘以此类车型的收费标准而得到。当车道收费机上传数据到数据库时,还要加上工班、车道及收费员信息,保证数据的唯一性,所以我们把日期、时间、工
    班、车道、收费员、收费类型、车型设为组合主谜,为车辆流水数据。收费员下班后还要上缴实收金额,因此还要保存实收金额,包括日期、工班、收费员及实际收费金额,为工班收费数据。在此基础上,分析、汇总数据,得到以下几类数据:
    业务类型数据:车辆流水数据、工班收费数据、车道开通情况、收费员上班情况;扩展的数据:为了查询、打印的方便、高效,流水表经过分类汇总,产生了以车道分类统计的车流量表(日、月)、以收费员来分类统计的收费金额表(日、月)及不收费车辆统计表;
    管理类型数据:收费标准、收费员信息、收费站信息、车道信息、工班信息、收费类型信息;
    从全局应用的角度出发,各收费站存放本站的数据,收费中心的数据库则存放所有数据,并対数据进行完整性和一致性的检查,这种做法虽然有一定的数据冗余,但在不同场地存储同一数据的多个副本,能提高系统的可靠性、可用性,使系统易于扩充,也提高了局部应用的效率,减少了通讯代价,同时也使得各处理机之间的相互干扰降到最低。公司总部存放所有收费站的汇总数据,通过浏览器进行查询。

    2.数据的分布

    (1)在收费中心数据库服务器与收费站数据库服务器的数据关系中,由于收费站的数据是收费中心数据的子集,我们采用了水平分片的方式,通过并运算实现关系的重构。
    (2)在收费中心数据库服务器与公司总部数据库服务器的数据关系中,数据是按照其应用功能来划分的,所以我们采用了垂直分片的方式。
    数据分布在多个地点,为了保证数据的一致性及完整性,我使用了事务复制和快照复制丙种数据同歩的方式,在收费中心与收费站之间使用事务复制,而在收费中心和公司总部之同使用快照复制。
    対于业务类型的数据,收费站在本地存放收费车辆的实时数据,而用户也要求:收费中心也要实时的收费车辆数据,延迟不超过2秒,所以我采用事务复制进行业务数据的同歩,收费站只需将更新的数据发送到收费中心的数据库即可。具体过程如下,把收费站的数据库作为出版者和分发者,收费中心的数据库作为订阅者,対收费站的数据建立快照代理,并在分发数据库中记录同歩状态的信息。每一个使用事务复制的收费站数据库均有自己的日志读取
    代理,运行在分发者上并连接出版者。分发代理的任务是将分发数据库中保持的事务任务直接推动到订阅者。当推订阅被创建时,每个为立即同歩而建立的事务出版物通过自己的分布代理运行在分发者上并与订阅者相连。
    而管理型的数据是在收费中心设置,虽然修改的频度不是很大,但在修改后即要发生作用,所以也采用事物型复制,收费中心为出版者,收费站为订阅者。将管理型的数据发布到各收费站。
    由于公司总部不需要实时更新,所以收费中心数据库服务器与公司总部服务器之间的数据同歩设置为快照复制,公司总部数据库中建立收费中心表的快照,対这些数据的修改在收费中心进行,把收费中心数据库服务器设置为出版者,出版物为汇总数据,公司总部数据库服务器设置为订阅者,快照代理将准备包含有被出版数据表的结构与数据的快照文件,在分发者上存储这些文件,并在分发者的分发数据库中记录同歩任务。在收费中心数据库服务器上建立一个作业,设置为每天早上8点更新一次(收费日的夭为8点到第二天8点),公司总部就能得到截止到前一天所有收费站的汇总数据。
    在这里插入图片描述

    3.测试

    数据库设计好了,就要対它进行测试。我们的测试策略为分歩测试:首先测试收费站数据的正确性及完整性,在多台收费机上同时输入几组车型、收费类型的数据,查询数据库的流水数据是否正确,再看汇总数据是否正确;收费站正确后,再测试收费中心的数据的正确性、完整性及延时;再测试公司总部的数据正确性、完整性。
    一开始我们把所有的表都建立在一个出版物中,但在测试中我们发现,由于收费站一个表的错误而造成的复制的中断,经常要重新配置复制,所有的表都要重新选择及设置一遍,非常繁琐,我们采取一个表建立一个出版物的方法来简化操作,只要恢复出错的复制,其他的复制仍然能正常执行,而且哪一个表的复制发生中断也很明确,不仅简化了操作,也加快了处理时间,就是日后用户雄护起来也简单明了。
    在设计过程中,基于查询及安全性的需要,我们大量的使用了视图,第一加快了查询速度;第二也防止了人为因素造成的数据的更改。

    4.总结

    按照以上的设计方案实施后,完全满足高速公路系统対数据实时性和完整性的要求,系统目前只在内部使用,而以后全省的高速公路收费系统实行联网,在外网上发布信息,那时数据的安全性及查询的响应速度将是我们考虑的重点。

    展开全文
  • Tidb分布式数据库

    万次阅读 2018-08-06 21:32:47
    TiDB 是 PingCAP 公司受 Google Spanner / F1 论文启发而设计的开源分布式 NewSQL 数据库。 TiDB 具备如下 NewSQL 核心特性: SQL支持(TiDB 是 MySQL 兼容的) 水平弹性扩展(吞吐可线性扩展) 分布式事务 跨...
  • 分布式数据库的设计和实现 -金蚕工程 [摘要] 本文论述《金蚕工程》的分布式数据库的设计和实现。该项目的设计目标是实现企业间茧、丝等的合同交易(交易规则和期货交易一样)、实时行情和成交数据的发布、茧丝质押...
  • 分布式数据库的设计与实现 -MIS系统 [摘要] 分布式数据库系统把应用所需的数据存放在多个数据库服务器上,完成某个数据操作要涉及到访问多个服务器,这适用于某种特定需要的应用。我在主持设计开发的一个MIS系统中...
  • 本研究旨在研究各种对称算法,而本研究的主要目的是找到一种适合于加密任何特定大小的文本文件的算法,其中每种算法的实验都是基于对不同大小的文本文件进行加密的,大小为“ 10 KB至5 MB”,还可以计算每种算法加密...
  • conflux - 分布式数据库同步 Conflux 通过唯一的内容可寻址标识符同步数据。 它通过用多项式表示整个标识符集来实现这一点。 数据库之间的差异表示为这些多项式的比率。 然而,多项式非常大,因为它们代表了数据库中...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,117
精华内容 446
关键字:

分布式数据库论文