用JAVA设计分布式系统(java分布式开发)

用JAVA设计分布式系统(java分布式开发),第1张

分布式是一种思想,范围很广,我得先知道它的诞生:

以前是一个数据库一个JSP就可以做一个应用了,后来随着业务复杂,我们开始分层,比如MVC之类的,再后来我们的数据越来越多了,比如有上亿的数据,这个时候我们一个数据库查询太慢了,就开始分库,这也算是分布式的一种。

还有比如我们的系统访问的人多了,比如双11,上千万人同时访问,我们的服务器(网站)支持不住了,这个时候就要部署到很多个服务器,每个服务器分摊请求,这也是分布式

当然随着业务扩大,我们得分业务了,比如注册登录的,物流的,卖东西的等等,不同的系统,但是各个系统之间进行协调,也算分布式一种

以上都算是分布式的来源,主要是解决压力过大,大家协同工作的,那么这就涉及到一些常用的东西,或者像你说的的技术

1你用N个数据库才放数据,至少CRUD方面就麻烦些了,得用cobar,tddl,mysql-proxy等协调

2服务器:你部署了很多服务器,肯定得用个东西来分发请求这些吧,nginx,apache等分发请求。

3你公司有很多系统,想很好的联系在一起,光用接口不满足了,得用一些JMS,像activemq,ons之类的来协调吧

4为了解决io问题,得加缓存吧,那么缓存对应上面的,也得分布式吧,就涉及memcache,redies等等

上面就简单的介绍了下分布式的东西,还有很多啦,这是常用的一些,希望你能慢慢来,不是一下子能理解得

可以采取两个手段: 
第一:将数据库表拆分到不同的库中,比如 tblMEMBER 就可以拆分到 DB1 与 DB2 中去。 实际上,可以拆分到 DB001 DB100 甚至更多的库中间去。 DB1 与 DB2 最好不在一块硬盘上。

第二:如果更大量级的数据,则最好拆分到不同的数据库服务器中去。 数据库的拆分带来的是查询等 *** 作的复杂性。简单地可以通过 hash 或者 按序号 匹配不同的数据库。复杂一些,应该设置一个独立的应用服务器(软件)协调其中的 *** 作。

文件服务器、数据库服务器、邮件服务器。
文件服务器是指在计算机网络中,以文件数据的存储与共享为主要功能的服务器,负责中央存储和数据文件管理,处于同一网络环境。数据库服务器因为数据文件的重要性及数据的文件都较大,数据库服务器一般是指运行在网络中的一台或多台服务器和数据库管理系统软件,邮件服务器。
文件服务器(Fileserver),又称档案伺服器,是指在计算机网络环境中,所有用户都可访问的文件存储设备,是一种专供其他电脑检索文件和存储的特殊电脑。文件服务器通常比一般的个人电脑拥有更大的存储容量,并具有一些其他的功能,如磁盘镜像、多个网络接口。

问题一:数据库到底是做什么的,和应用程序是什么关系? 数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今五十年前,随着信息技术和市场的发展,特别是二十世纪九十年代以后,数据管理不再仅仅是存储和管理数据,而转变成用户所需要的各种数据管理的方式。数据库有很多种类型,从最简单的存储有各种数据的表格到能够进行海量数据存储的大型数据库系统都在各个方面得到了广泛的应用。
以上是百度百科的描述。
其实按我的理解,数据库就是可以系统的管理存储数据,例如你有大量的数据,只是用一些普通文件(如文本文件)来存储,想想看,当你想从中提取一项或一类信息时(特别是存储数据的文件还比较多时),是一件非常麻烦的事,但是有了数据库来存储管理,就很好办了,只要输入查询条件,即使数据非常多也可以很快的提取有用的信息。而且用数据库来存储数据,可以有效的控制 *** 作权限,例如管理员和用户的权限是有区别的,不同的用户的权限也是有区别的,让不同的用户看到管理员想让他们看到的信息。你可以多上网搜搜,一定能找到你想找的的信息。

问题二:数据库应用系统的作用是什么 1、数据库的作用:
数据库是计算机应用系统中的一种专门管理数据资源的系统。
⑴ 实现数据共享
数据共享包含所有用户可同时存取数据库中的数据,也包括用户可以用各种方式通过接口使用数据库,并提供数据共享。
⑵ 减少数据的冗余度
同文件系统相比,由于数据库实现了数据共享,从而避免了用户各自建立应用文件。减少了大量重复数据,减少了数据冗余,维护了数据的一致性。
⑶ 数据的独立性
数据的独立性包括逻辑独立性(数据库中数据库的逻辑结构和应用程序相互独立)和物理独立性(数据物理结构的变化不影响数据的逻辑结构)。
⑷ 数据实现集中控制
文件管理方式中,数据处于一种分散的状态,不同的用户或同一用户在不同处理中其文件之间毫无关系。利用数据库可对数据进行集中控制和管理,并通过数据模型表示各种数据的组织以及数据间的联系。
⑸数据一致性和可维护性,以确保数据的安全性和可靠性
主要包括:安全性控制、完整性控制、并发控制,使在同一时间周期内,允许对数据实现多路存取,又能防止用户之间的不正常交互作用。
⑹ 故障恢复
由数据库管理系统提供一套方法,可及时发现故障和修复故障,从而防止数据被破坏。数据库系统能尽快恢复数据库系统运行时出现的故障,可能是物理上或是逻辑上的错误。比如对系统的误 *** 作造成的数据错误等。

问题三:数据库软件 是干什么用的 数据库:是按一定的数据模型组织长期地存储在计算机存储的设备上,具有共享性、安全性、独立性、冗余度低的相关数据的 。用于数据管理的软件系统。
数据库通常包括两个部分:一是按一定的数据模型组织并实际存储的所有用户可以直接伐使用的数据;二是有关数据库的定义的数据,用来描述相关的数据的结构、类型、格式、关系、完整性的约束等。

问题四:数据库应用软件的概念是什么 数据库技术涉及到许多基本概念,主要包括数据、数据处理、数据库、数据库管理系统以及数据库系统等。
1.数据
数据是指存储在某一种媒体上能够识别的物理符号。数据的概念包括两个方面:其一是描述事物特性的数据内容;其二是存储在某一种媒体上的数据形式。
2.数据处理
数据处理是指对各种形式的数据进行收集、存储、加工和传播的一系列活动的总和。其目的之一是从大量的、原始的数据中抽取、推导出对人们有价值的信息以作为行动和决策的依据;目的之二是为了借助计算机科学地保存和管理复杂的、大量的数据,以便人们能够方便而充分地利用这些宝贵的信息资源。
3.数据库
数据库是与特定的主题或目的相关的数据的 。数据库可以直观地理解为存放数据的仓库,只不过这个仓库是在计算机的大容量存储器上(例如,硬盘就是一种最常见的计算机大容量存储设备)。而且数据必须按照一定的格式存放,因为它不仅需要存放,而且还要便于查找。
可以认为数据库是被长期存放在计算机内、有组织的、可以表现为多种形式的可共享的数据 。数据库技术使数据能按一定格式组织、描述和存储,且具有较小的冗余度,较高的数据独立性和易扩展性,并可为多个用户所共享。
4.数据库管理系统
数据库管理系统(DataBase Management System,简称DBMS)是对数据库进行管理的系统软件,它的职能是有效地组织和存储数据,获取和管理数据,接受和完成用户提出的访问数据的各种请求。
数据库管理系统主要功能包括以下几个方面。
(1)数据定义功能
DBMS提供了数据定义语言DDL(Data Definition Language),用户通过它可以方便地对数据库中的相关内容进行定义。例如,对数据库、表、索引进行定义。 (2)数据 *** 纵功能
DBMS提供了数据 *** 纵语言DML(Data Manipulation Language),用户通过它可以实现对数据库的基本 *** 作。例如,对表中数据的查询、插入、删除和修改。
(3)数据库运行控制功能
这是DBMS的核心部分,它包括并发控制(即处理多个用户同时使用某些数据时可能产生的问题)、安全性检查、完整性约束条件的检查和执行、数据库的内部维护(例如,索引的自动维护)等。所有数据库的 *** 作都要在这些控制程序的统一管理下进行,以保证数据的安全性、完整性以及多个用户对数据库的并发使用。
(4)数据库的建立和维护功能
数据库的建立和维护功能包括数据库初始数据的输入、转换功能,数据库的转储、恢复功能,数据库的重新组织功能和性能监视、分析功能等。这些功能通常是由一些实用程序完成的。它是数据库管理系统的一个重要组成部分。
5.数据库系统
数据库系统是指拥有数据库技术支持的计算机系统,它可以实现有组织地、动态地存储大量相关数据,提供数据处理和信息资源共享服务。数据库系统不仅包括数据本身,即实际存储在计算机中的数据,还包括相应的硬件、软件和各类人员。

问题五:数据库应用软件的概念是什么 这个需要弄明白 “数据库应用软件”指的是什么?
比如我用 access 开发出一个 通讯录软件, 那么此时数据库应用软件指的是“access”呢还是“通讯录软件”;
如果是后者的话,就无法确定 概念和组成了;如果指的是数据库软件,那么可以参考下百科中“数据库管理系统”相应的内容
数据库管理系统(database managementsystem)是一种 *** 纵和管理数据库的大型软件,是用于建立、使用和维护数据库,简称dbms。它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。用户通过d胆ms访问数据库中的数据,数据库管理员也通过dbms进行数据库的维护工作。
全文见
baikebaidu/view/68446

问题六:数据库应用系统是什么? 数据库应用系统是在数据库管理系统(DBMS)支持下建立的计算机应用系统,简写为DBAS。数据库应用系统是由数据库系统、应用程序系统、用户组成的,具体包括:数据库、数据库管理系统、数据库管理员、硬件平台、叮件平台、应用软件、应用界面。 数据库应用系统的7个部分以一定的逻辑层次结构方式组成一个有机的整体,它们的结构关系是:应用系统、应用开发工具软件、数据库管理系统、 *** 作系统、硬件。例如,以数据库为基础的财务管理系统、人事管理系统、图书管理系统等等。无论是面向内部业务和管理的管理信息系统,还是面向外部,提供信息服务的开放式信息系统,从实现技术角度而言,都是以数据库为基础和核心的计算机应用系统。

问题七:常用的数据库软件有哪些?它们的优缺点是什么? 目前,商品化的数据库管理系统以关系型数据库为主导产品,技术比较成熟。面向对象的数据库管理系统虽然技术先进,数据库易于开发、维护,但尚未有成熟的产品。国际国内的主导关系型数据库管理系统有Oracle、Sybase、INFORMIX和INGRES。这些产品都支持多平台,如 UNIX、VMS、Windows,但支持的程度不一样。IBM的DB2也是成熟的关系型数据库。但是,DB2是内嵌于IBM的AS/400系列机中,只支持OS/400 *** 作系统。
1MySQL
MySQL是最受欢迎的开源SQL数据库管理系统,它由 MySQL AB开发、发布和支持。MySQL AB是一家基于MySQL开发人员的商业公司,它是一家使用了一种成功的商业模式来结合开源价值和方法论的第二代开源公司。MySQL是MySQL AB的注册商标。
MySQL是一个快速的、多线程、多用户和健壮的SQL数据库服务器。MySQL服务器支持关键任务、重负载生产系统的使用,也可以将它嵌入到一个大配置(mass- deployed)的软件中去。
与其他数据库管理系统相比,MySQL具有以下优势:
(1)MySQL是一个关系数据库管理系统。
(2)MySQL是开源的。
(3)MySQL服务器是一个快速的、可靠的和易于使用的数据库服务器。
(4)MySQL服务器工作在客户/服务器或嵌入系统中。
(5)有大量的MySQL软件可以使用。
2SQL Server
SQL Server是由微软开发的数据库管理系统,是Web上最流行的用于存储数据的数据库,它已广泛用于电子商务、银行、保险、电力等与数据库有关的行业。
目前最新版本是SQL Server 2005,它只能在Windows上运行, *** 作系统的系统稳定性对数据库十分重要。并行实施和共存模型并不成熟,很难处理日益增多的用户数和数据卷,伸缩性有限。
SQL Server 提供了众多的Web和电子商务功能,如对XML和Internet标准的丰富支持,通过Web对数据进行轻松安全的访问,具有强大的、灵活的、基于Web的和安全的应用程序管理等。而且,由于其易 *** 作性及其友好的 *** 作界面,深受广大用户的喜爱。
3Oracle
提起数据库,第一个想到的公司,一般都会是Oracle(甲骨文)。该公司成立于1977年,最初是一家专门开发数据库的公司。Oracle在数据库领域一直处于领先地位。 1984年,首先将关系数据库转到了桌面计算机上。然后,Oracle5率先推出了分布式数据库、客户/服务器结构等崭新的概念。Oracle 6首创行锁定模式以及对称多处理计算机的支持……最新的Oracle 8主要增加了对象技术,成为关系―对象数据库系统。目前,Oracle产品覆盖了大、中、小型机等几十种机型,Oracle数据库成为世界上使用最广泛的关系数据系统之一。
Oracle数据库产品具有以下优良特性。
(1)兼容性
Oracle产品采用标准SQL,并经过美国国家标准技术所(NIST)测试。与IBM SQL/DS、DB2、INGRES、IDMS/R等兼容。
(2)可移植性
Oracle的产品可运行于很宽范围的硬件与 *** 作系统平台上。可以安装在70种以上不同的大、中、小型机上;可在VMS、DOS、UNIX、Windows等多种 *** 作系统下工作。
(3)可联结性
Oracle能与多种通讯网络相连,支持各种协议(TCP>>

问题八:请问专用的数据库是属于什么软件 数据库属于系统软件还是应用软件呢
软件是计算机的灵魂,没有软件的计算机就如同没有磁带的录音机和没有录像带的录像机一样,与废铁没什么差别。使用不同的计算机软件,计算机可以完成许许多多不同的工作。它使计算机具有非凡的灵活性和通用性。也正是这一原因,决定了计算机的任何动作都离不开由人安排的指令。人们针对某一需要而为计算机编制的指令序列称为程序。程序连同有关的说明资料称为软件。配上软件的计算机才成为完整的计算机系统。
一般把软件分为两大类:应用软件和系统软件。
一、应用软件
应用软件是专门为某一应用目的而编制的软件,较常见的如:
1、文字处理软件
用于输入、存贮、修改、编辑、打印文字材料等,例如WORD、WPS等。
2、信息管理软件
用于输入、存贮、修改、检索各种信息,例如工资管理软件、人事管理软件、仓库管理软件、计划管理软件等。这种软件发展到一定水平后,各个单项的软件相互连系起来,计算机和管理人员组成一个和谐的整体,各种信息在其中合理地流动,形成一个完整、高效的管理信息系统,简称MIS。
3、辅助设计软件
用于高效地绘制、修改工程图纸,进行设计中的常规计算,帮助人寻求好设计方案。
4、实时控制软件
用于随时搜集生产装置、飞行器等的运行状态信息,以此为依据按预定的方案实施自动或半自动控制,安全、准确地完成任务。
二、系统软件
各种应用软件,虽然完成的工作各不相同,但它们都需要一些共同的基础 *** 作,例如都要从输入设备取得数据,向输出设备送出数据,向外存写数据,从外存读数据,对数据的常规管理,等等。这些基础工作也要由一系列指令来完成。人们把这些指令集中组织在一起,形成专门的软件,用来支持应用软件的运行,这种软件称为系统软件。
系统软件在为应用软件提供上述基本功能的同时,也进行着对硬件的管理,使在一台计算机上同时或先后运行的不同应用软件有条不紊地合用硬件设备。例如,两个应用软件都要向硬盘存入和修改数据,如果没有一个协调管理机构来为它们划定区域的话,必然形成互相破坏对方数据的局面。
有代表性的系统软件有:
1、 *** 作系统
管理计算机的硬件设备,使应用软件能方便、高效地使用这些设备。在微机上常见的有:DOS、WINDOWS、UNIX、OS/2等
2、数据库管理系统
有组织地、动态地存贮大量数据,使人们能方便、高效地使用这些数据。现在比较流行的数据库有FoxPro、DB-2、Access、SQL-server等
3、编译软件
CPU执行每一条指令都只完成一项十分简单的 *** 作,一个系统软件或应用软件,要由成千上万甚至上亿条指令组合而成。直接用基本指令来编写软件,是一件极其繁重而艰难的工作。为了提高效率,人们规定一套新的指令,称为高级语言,其中每一条指令完成一项 *** 作,这种 *** 作相对于软件总的功能而言是简单而基本的,而相对于CPU的一眇 *** 作而言又是复杂的。
用这种高级语言来编写程序(称为源程序)就象用预制板代替砖块来造房子,效率要高得多。但CPU并不能直接执行这些新的指令,需要编写一个软件,专门用来将源程序中的每条指令翻译成一系列CPU能接受的基本指令(也称机器语言)使源程序转化成能在计算机上运行的程序。完成这种翻译的软件称为高级语言编译软件,通常把它们归入系统软件。目前常用的高级语言有VB、C++、JAVA等,它们各有特点,分别适用于编写某一类型的程序,它们都有各自的编译软件。>>

问题九:数据库管理系统是一种什么软件 选择C计算机的软件分为系统软件和应用软件。系统软件是为了计算机能正常、高效工件所配备的各种管理、监控和维护系统的程序及其有关资料。系统软件主要包括如下几个方面: (1) *** 作系统软件,这是软件的核心 (2) 各种语言的解释程序和编译程序(如BASIC语言解释程序等) (3) 各种服务性程序(如机器的调试、故障检查和诊断程序等) (4) 各种数据库管理系统(Oracle、Syabse等)

数据库:存储数据的应用软件。

服务器:公共的服务库。

应用服务器是应用的服务器,提供应用服务,也可以是自己的网络应用服务器,接口服务器是提供给第三方调用的服务,主要是为了自己的应用的安全性,所以只把能供给第三方调用的东西封装在应用服务器服务器。

根据应用环境的不同,需要的数据库服务器也不同,一般来说,如果数据库服务器需要连接的客户端多、并且是不同权限组的客户端的话需要网络接口比较多的,除此之外,数据库服务器的处理器性能要求比较高,因为其要进行频繁的 *** 作,内存要求大,加快数据存取速度。

应用服务器相对而言要求低一些,如果是FTP服务器的话网卡的速率要求要高,起码是千兆的,网页服务器对于网卡的速率也同样有较高的要求,但对于处理器性能要求就不那么高了。

应用程序服务器是为应用程序提供业务逻辑的。它是基于组件的,位于以服务器为中心的架构的中间件。

这个架构通常是一个主要的基于Web的界面。中间件是业务逻辑所在的应用服务器。而第三层,后端是负责数据库的服务器。应用程序服务器充当用户和数据库之间的交互。

应用服务器通过各种协议向客户端应用程序打开业务逻辑。它还可以包括计算机,web服务器或其他应用服务器上的图形用户界面。业务逻辑通过组件API。它还管理自己的资源以及执行安全性,事务处理,资源和连接池以及消息传递。

对于高端要求,应用服务器往往具有高可用性监控,集群,负载平衡,集成冗余和高性能分布式应用服务,并支持复杂的数据库访问。

当需要与现有数据库和服务器(如Web服务器)集成时,应使用应用程序服务器,可以通过启用集中式方法来提供应用程序更新和升级来提供数据和代码的完整性。

可伸缩性是使用应用服务器的另一个原因和好处。应用程序服务器可以与数据库连接。这意味着企业可以扩展Web服务器群,而不需要增加数据库连接的数量。

从网页到数据库的直接链接如果暴露,可导致SQL注入攻击基础架构。

通过单独的数据访问层执行数据验证和/或显示业务逻辑,可以确保以Web表单输入的文本不被用作SQL调用。通过集中身份验证过程以及数据访问管理,还可以提高安全性。

应用程序服务器与Web服务器不同,因为前者通过多种协议处理向应用程序提供业务逻辑,而Web服务器响应并处理>

虽然Web服务器可能不支持事务或数据库连接,但可能具有容错和可扩展性功能,如负载平衡,缓存和集群。

与数据库服务器不同,因为该服务器执行诸如数据分析,存储,数据处理,归档以及其他数据管理相关任务之类的任务。

数据库服务器使用诸如ODBC,JDBC等协议。他们还将托管数据库,如Oracle,SQLServer,MySQL等。

扩展资料:

服务器是计算机局域网的核心部件。网络 *** 作系统是在网络服务器上运行的,网络服务器的效率直接影响整个网络的效率。

因此,一般要用高档计算机或专用服务器计算机作为网络服务器。网络服务器主要有以下4个作用:

运行网络 *** 作系统,控制和协调网络中各计算机之间的工作,最大限度地满足用户的要求,并做出响应和处理。

存储和管理网络中的共享资源,如数据库、文件、应用程序、磁盘空间、打印机、绘图仪等。

·为各工作站的应用程序服务,如采用客户/服务器(Client/Server)结构使网络服务器不仅担当网络服务器,而且还担当应用程序服务器。

对网络活动进行监督及控制,对网络进行实际管理,分配系统资源,了解和调整系统运行状态,关闭或启动某些资源等。

参考资料:

百度百科-网络服务器

写作小论文有助于提高我们的学术水平,小论文的格式有哪些要求呢?下面是由我整理的1000字小论文格式 范文 模板,欢迎大家阅读。

1000字小论文格式范文模板篇一:《多数据库系统互联机制的设计与实现》

摘要: 随着企业规模的不断扩大,各部门所需信息既相互交错,又相对独立。这就要求各部门所用的数据库既能高度自治地 工作,又能进行信息共享。本文主要介绍多DM3数据库系统间的信息共享机制。 不同DM3数据库系统间的信息共享通过协调器实现。所有这些被协调器连接在一起的数据库系统组成了一个联邦数据库。这样既能较好地满足企业的需要,也能在保证效率的前提下,提高数据的可用性。

关键词: DBMS 复制 联邦数据库

1引言

随着经济的发展,企业的规模越来越大,其积累的信息也越来越多。存在着各部门所处理的信息多数只对本部门有效,仅有少数信息需给 其它 某些部门共享的问题。这种信息的分布性和独立性要求对所处理的数据进行分类,使各部门既能独立地处理本部门大多数数据,也使部门间能协调处理跨部门的事务。在这种情况下,对整个企业建立一个完全的紧密耦合的分布式数据库是很困难的,也是没必要的,特别是大型企业, 这样的数据库的效率往往是很低的。

为解决这个问题,我们采用以下策略:每个部门使用一套紧密耦合的数据库系统,而在存在跨部门事务处理的数据库系统间用一个协调器联起来。这样就组成了一个横跨整个企业,各部门高度自治的联邦数据库系统。

DM2是由华中理工大学数据库多媒体技术研究所研制的数据库管理系统。它采用客户/服务器模型,客户机与服务器,服务器与服务器均通过网络互连,通过消息相互通讯,组成一个紧密耦合的分布式数据库系统。它的工作流程如下:客户机登录到一台服务器上,这台服务器便成为它的代理服务器;它接收来自客户机的消息,然后根据全局数据字典决定是自己独立完成该 *** 作,还是与其它服务器协作处理这条消息,处理完成之后,再由代理服务器将处理结果返回给客户机。

而数据字典,作为记录数据库所有元数据的系统表,它向以上过程中提供各类有用的信息,引导它们向正确的方向运行,起着“指南针”的作用。它分为局部数据字典和全局数据字典。其中,局部数据字典用于记录一个服务器站点中数据库的控制信息,如表的模式,视图的模式及各个数据区的的文件名等信息。全局数据字典用于记录分布式数据库系统中各个服务器站点上有关全局数据的控制信息,如服务器站点信息,各服务器站点的全局表名及表内码记录,各服务器站点上的全局数据视图名及视图内码记录,用户名及口令记录,用户权限记录等信息。各个局部数据字典可以各不相同,但为了保证在各个服务器上所看到的全局数据库是一致的,因此,全局数据字典必须一致。我们所关心的是全局数据字典中的基表控制块TV_CTRL_BLOCK,它的内容主要包括:全局基表总数,每个全局基表名和其对应的表内码,该基表所在的服务器站点的编号等信息。它的功能是将各个服务器站点号与存储在其上的表名及表内码联系起来。这样,代理服务器从客户消息中找到被处理的表名,然后通过查询基表控制块TV_CTRL_BLOCK,就能知道该表存在哪个服务器上,以便将相关消息发给该服务器。

由于DM2上各个服务器站点的全局字典完全相同,任何全局表的信息都会记入全局字典。若用它来构建一个企业的数据库系统,则大量只对企业某部门有用的信息将会充斥在各部门所有服务器的全局字典中,增加了冗余。而且,当对全局表进行DDL *** 作时,为了确保全局字典的一致性,须对所有服务器的全局字典进行加锁。DM2对全局字典的封锁方式是采用令牌环方式,即令牌绕虚环(非实环)传输,某个服务器想对全局字典进行 *** 作,必须等令牌到达该服务器才可以执行。每个部门建立的全局表绝大多数只对本部门有用,当对这些表进行DDL *** 作时,却要对所有服务器的全局字典进行封锁,通过令牌来实现对全局字典的互斥访问。假如,两个部门都要分别对本部门的内部表进行DDL *** 作,这应该是可以并行处理的 *** 作,现在却只能串行执行。而且,当服务器数目庞大时,每个服务器等待令牌的时间将会很长。这严重损害了数据库的效率。

为弥补以上不足,在DM2的改进版本DM3中增加了协调器,用以联接各个独立的DM3数据库子系统,并协调各子系统间的各种关系,使各子系统既能高度自治地工作,又能进行有效的信息共享。

2体系结构

本系统可看作多个数据库子系统被协调器联起来的,高度自治的一个联邦数据库系统。其中,每个子系统独立处理本系统内部的事务,而子系统间的信息共享由复制技术提供,副本间的一致性由协调器协调处理,处理所需的信息在初始化时写入协调器的组间数据字典中。当对某子系统中的一份数据副本进行修改时,该子系统会将修改通知协调器,由协调器对该数据的其它副本进行修改,从而保证了所有副本的一致性。

由以上可知,子系统彼此并不直接接触,而是各自都与协调器直接相联,由协调器统一管理子系统间的通信。这样,当子系统对副本进行修改时,不必关心相应的子系统处于何种状态,也不必等待回应消息,以及异常处理,所有这些都由协调器进行管理。因此,既提高了系统运行的效率,也保证了子系统的独立性。其体系结构如下图所示。

协调器主要有三大功能,首先,它对协调器和服务器进行初始化,并将有关信息存入组间字典;其次,它管理不同子系统间的通信,维护副本的一致性;最后,它在子系统出现崩溃时,进行异常管理及恢复工作。

图1 DM3多数据库系统体系结构

3主要策略

多个DM3系统间的信息共享是通过副本实现的,副本的一致性是由协调器来维持的,是一种弱一致性。通常,多数据库系统间的一致性是通过协调器周期性地访问服务器的日志来完成的。由于副本的更新带有随机性,因此,若采用这种 方法 ,可能数据被修改多次,但其相对应的副本仍未被修改,这样就损害了数据的一致性;也可能数据并未被修改,但协调器已多次访问了服务器的日志了,这样就降低了系统的效率。

所以,本系统采用的方法是当数据被修改时,由服务器通知协调器有关信息,再由协调器通知相关系统,修改相关数据。这样,数据的修改及时(仍然是弱一致性),而协调器也不会在数据未被修改的情况下访问服务器,提高了准确性。

为了使协调器正常工作,我们对底层数据库管理系统DM2进行了修改。在基表控制块TV_CTRL_BLOCK中增加一项IsReplication。建表时,该项初始化为false;当为该表建立一个副本时,该项赋值为true。具体算法如下。

31初始化算法。

协调器:

从用户或应用程序接收待连接的两个系统中的服务器名,需复制的表名;

分别登录到两个系统的服务器上;

向存有待复制表的服务器发预复制消息;

等待服务器消息;

若失败,发一条失败的消息给服务器和用户或应用程序,转11);

若成功,从消息中取出待复制表的有关信息,根据这些信息,发一条建表消息给另一个系统的服务器;

等待服务器消息;

若失败,发一条失败的消息给服务器和用户或应用程序,转11);

若成功,调数据转移程序,进行数据复制;

将有关信息写入组间字典。

退出。

服务器:

当服务器收到预复制消息后,将基表控制块TV_CTRL_BLOCK中的IsReplication赋为true。同时,取出待复制表的有关信息,组成应答消息发给协调器。

当服务器收到失败的消息后,将基表控制块TV_CTRL_BLOCK中的IsReplication赋为false。

32维护算法。

协调器:

从组间字典读出相关信息,根据这些信息,登录到相应系统上;

等待消息;

从某系统的服务器上收到一条修改消息后,通过查找组间字典,确定该消息的目的地,然后将它转发过去;

若失败,定时重发;

转2);

服务器:

1)等待消息;

2)当收到某客户或应用程序的消息后,检查它是否是修改数据的 *** 作(如delete,update或insert等);

若不是,转7);

若是,检查基表控制块TV_CTRL_BLOCK中的IsReplication是否为true;

若不是,转7);

若是,向协调器发修改消息;

继续执行服务器程序的其它部分。

33恢复算法。

若协调器所联接的系统中有一个跨掉了,则对副本的修改无法及时地反映到跨掉的系统中来。这时,需要恢复算法来进行处理。

协调器:

当协调器发现有一个系统已经崩溃后,采取以下步骤。

将与该系统相关的变量open赋值为false;

打开记时器;

等待消息;

若收到的消息是其它系统发出的修改崩溃了的系统上的副本的命令,则依次将这些消息存储起来,转3);

若收到的消息是记时器发出的时间到的消息,则向崩溃的系统发登录命令;

若登录成功,将open的值改为true;

将存储的消息依次发送过去,转9);

若登录失败,转3);

退出。

4结论

我们曾在三个DM3数据库系统上,用两个协调器进行联接。结果,运行情况良好,各副本最终都能保证一致,且各副本间存在差异的时间间隔很短。另外,在出现异常的情况下,协调器也能正常工作。

主要参考文献:

1周龙骧等,分布式数据库管理系统实现技术,科学出版社,1998。

2郑振楣,于戈,郭敏,分布式数据库,科学出版社,1998。

3王珊等,数据仓库技术与联机分析处理,科学出版社,1998。

>>>下一页更多精彩的“1000字小论 文格 式范 文模 板”


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/13029778.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-29
下一篇 2023-05-29

发表评论

登录后才能评论

评论列表(0条)

保存