精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>编程开发>>● 数据库技术>>INFORMIX 产品>>Informix Dynamix Server技术白皮书 II

主题:Informix Dynamix Server技术白皮书 II
发信人: garyjan()
整理人: chedong(2000-05-05 18:21:46), 站内信件
动态共享存贮器
         Informix动态服务器用到的所有存贮器是由虚处理器缓冲池共享的。 
 这样 , 为了更有利地处理客户需求,就可以配置 Informix 动态服务器,向共
享存贮 器缓冲池中增加更多的存贮器。
      Informix 动态服务器的共享存贮器最大限度地减少碎片。这样,存贮器的
利 用不随时间而下降,除了初始分配之外, 共享存贮器片段自动地按需要大块
地 添加进来。 而且,共享存贮器片段还可在运行数据库时由管理员添加。存贮
管 理系统还在存贮空间用完时自动增长存贮器片段。 当用户对话结束时,它所
使 用的存储空间被释放,并且被另一个对话重新使用。 通过释放分配给数据库
的 存储空间,操作系统可以将存储空间收回。 这样,用户线索可以很容易地在
虚 处理器间移动,当用户数目增加时, 这就增强了 Informix 动态服务器的可
伸缩 性。
      Informix 动态服务器在共享存贮器的虚拟部分分配一个区域,用来存贮线
索 执行的函数的非共享数据。使其不被并行地执行相同代码的其它线索抹去。I
nformix 动态服务器将为某些特定的操作( 例如递归的存贮过程 )动态地增长
栈 的大小。
        Informix 动态服务器使用的共享内存是由内部表和缓冲页构成。
内表
         Informix 动态服务器构造和维护共享内存中的内部表来监控和管理那
些被 争用的资源,这些资源包括缓冲区,锁和打开的数据表。
缓冲池
         缓冲池是一组内存中的定长页, 用于存放处理过程中所要的数据。当
用户 请求数据时, 数据库服务器进程首先在缓冲池中查找所需数据, 如果在缓
冲区 中找到所需数据, 就不需要触发硬盘 I/O 操作, 数据库服务器进程可以
直接对 数据进行存取操作 。                 
         如果在缓冲区中没有找到所需数据,就从硬磁盘上读取; 从硬盘上读
数据 时, 数据库服务器进程首先从自由缓冲页表中分配一个缓冲页。 自由缓冲
页表 使Informix动态服务器很容易找到一个自由缓冲页,避免耗时的查找, In
formix 动态服务器从硬盘上读入所需的数据到这个自由缓冲页中, 这时, 所需
数据就 可被系统中的数据库服务器所使用。
Informix 动态服务器的特性和功能
       Informix 动态服务器给予依据当前需要调整数据库性能,以及更有效地
管理 整个系统的能力。本节详细介绍这些特性。Informix动态服务器利用这些特
性来 提供性能上的优越性。
异步I/O
        通常 I/O 是数据处理中最慢的成分。Informix动态服务器使用它自己的
异步 I/O(AIO)软件包(或可利用的操作系统核心的AIO)来加速I/O处理。因为In
formix动态服务器的虚处理器异步地对用户的I/O请求进行服务,所以一个虚处理
器不必等待 一个I/O结束就可以开始处理另一个服务请求。
        I/O 虚处理器有四种特定类型:逻辑日志I/O,物理日志 I/O,异步 I/
O,核 心异步 I/O (KIO ),将 I/O 划分为这些类型使得可以实施一种高效的优
先级划分 方案。另外,鉴于I/O请求被统一调度, Informix 动态服务器就能有
效地使所有 可用的磁盘处于忙状态。实际上,你可以使用 Informix 动态服务器
系统监控界 面来 检测从磁盘读写的长队列,然后启动附加的特定于I/O的虚处理
器来消除 I/O 瓶 颈。
提前读                   
        为了顺序地扫描或索引,可以将Informix动态服务器配置成在处理共享
内存 中的前页面集的同时能够异步地从硬盘提前读入若干页。 具有了这种能力
, 应 用系统花费较少的时间用于等待磁盘存取 的完成,这样就保证了吞吐量。

并行的装入
        Informix  的并行装入实用程序能够非常快速地装入和卸出数据, 这是
由于 它能够从多个来源读入数据,并且能够并行地将数据装入到Informix动态服
务器 中。图形化的用户界面使得DBA能够:
 为多种类型的普通文件(例如ASCII、COBOL或EBCDIC)配置装入, 并
执行 必要的转换(例如EBCDIC到ASCII)。
 执行装入文件和Informix模式之间的映象。
 执行有选择的装入。
 通过浏览器观察和装入文件。
 有两种不同的方式使得DBA可以决定,那些通常的装入任务,如检查参
照完整性、日志、建立索引等,是在数据装入过程中进行,或是在装入完成之后
进行 (这样就可以加快装入的速度)。
并行的索引建立
         使用Informix动态服务器,SQL 的CREATE INDEX 语句比使用基于序列
的 结构要快得多。 这是因为算法的改进和并行地执行索引建立的能力 。
       在一个并行的索引建立过程中,Informix 动态服务器对可用的数据进行
采样 , 并确定扫描它所需的线索的数目。 这些数据在可能的情况下使用提前读
被并 行地扫描进来,然后被放在共享存贮器"bins"中。然后,这些 bins被并行
地排序 , 并行地建立排好序的子任务中的子树,最后,并入最终的索引中。使用
Informix 动态服务器,排序线索无需等到扫描线索结束就可以开始另一个排序。
 与此同 时,索引建立线索不必等到排序结束就可以开始建立索引子树(所有这些
都是同时并行进行的。实际上, 基于数据量,使用的磁盘的数目和可用的存贮器
, 这 种并行机制与顺序的索引建立相比较 ,最多可以十倍地提高索引建立的性
能。
并行的数据查询
         随着硬件发展到对称多处理器、 松耦合的群集机、   以及大规模并行
处理 器结构,PDQ将充分利用作为基础的 CPU 的优势,以比以往的数据库结构快
若 干倍的速度去执行任务。 在某些情况下, 原来需要数小时的查询可以在数分
钟 内完成。 这种性能上的收益适用于所有那些需要排序、 扫描大量数据,进行
表 连接和执行聚合运算的复杂的数据库操作。
        让我们看一个简单的连接,当顺序地进行连接时,用户必须等待,数据
库 完成一个任务才能开始下一个任务。换句话说,数据库必须首先扫描,然后连
 接、排序,最后将结果送给用户,PDQ在处理以上两个方面获得了节省。首先 ,
它并行地同时处理这些任务;另外,它将各个任务分解为子任务,充分利用DSA内
部构造的核心并行机制。这种能力远远节省了总的处理时间 。
并行排序
         排序是建立索引、排序 (合并连接、 SQL 中的 ORDER BY 查询等常用
的 数据库作所需的基本活动。排序速度的提高将对许多应用程序的性能提高发挥
 作用。                  
        并行查询将一个清单分解为多个节,并将每一节送到一个处理器上去处
理 。按邮政编码去排序一个长长的邮递清单,或按生产成本将一个长长的零件号
 码清单重 新排序,这都是典型的能够从并 行排序直接得到好处的任务。
         实际上,排序操作的速度受表中扫描数据所需时间的限制。这一限制由
于 PDQ 的另一个特性---并行扫描而大大缩减了。
并行扫描
      在当今大多数的应用中,当在大型数据库上工作时,报表、连接、索引建
立  都需要很长的扫描操作。 Informix 的 PDQ 技术大大缩减了扫描时间。表分
割的 能力将表分成几个小的逻辑片段,并将它们分布到几个硬盘上,  于是多个
处理 器可以并行地扫描这些磁盘,所获得的性能增长与磁盘的数目成比例。  对
于顺 序表或索引扫描,   Informix动态服务器可以设置成在当前页正被处理时异
步地提 前读入若干页; 这样就可以维持较大的吞吐量, 因为应用系统花在等待
磁盘完 成存取操作上的时候减少了。
并行连接            
         复杂的查询通常需要从两个或更多个表中检索数据。然后将两个表中的
记 录进行匹配,并将结果返回给请求者。这一任务称作连接。 DSA 采用先进的
算 法, 让多个处理器去扫描数据, 然后并行地连接几个片段,从而使接连操作
并 行地执行。
并行聚合
        复杂查询可能经常需要数据的总和或聚合。由于Informix动态服务器具
有许 多并行处理的能力,  包括:GROUP  BY 命令、 SUM、Average、MIN、MAX
 等聚合函数的查询操作执行起来要快得多。
内存授权管理器
        内存授权管理器(MGM)使得DBA和程序员能够对于用户对可利用的系统资
 源的请求的优先级进行 平衡,从而控制并行的程度。MGM执行下述任务:
 调整PDQ类任务所需的系统资源数量。
 设置每个查询的优先级。
 调整可以同时运行的复杂查询的数目。
 调整决策支持和OLTP使用的最大的内存量。
 与基于代价的优化器协同工作,以保证各个层次上的最大的并发度。

 MGM的高效的内存空间利用是优化并行处理的关键。MGM还强制PDQ处理
的聚合资源界限。 使用了MGM, 整个系统范围的优先级设置都可以动态地 改变

表分割
      正如前面所提到的,表分割可以提高并行处理性能和高可用性。通过将数
据 分解为较小的部分, 还使非常大的数据库变得易于管理了。
       Informix 动态服务器使得不打断数据库服务器就能设置表分割和改变数
据的 分布。而且, 分割模式对于应用系统和最终用户是透明的, 分割模式的设
置可 以采用简单轮循法( 顺序地将每一个记录分配到下一个分片中), 散列法
(将 一个算法作用到记录的关键码上, 以确定它的分片号), 或表达式法(基
于关 键码的,   将一组记录分配到一个分片中 ),    分割模式的设置通过 
 CREATE TABLE 和ALTER TABLE 这样的 SQL语句,必要时可对分片进行修改和调
整。
         要获得并行处理的好处, 很关键的是要具有将单个的表分片(这是造
成系 统瓶颈的地方)划分为两个或多个新的表分片的能力。 例如, 由于数据库
了解 数据分片的模式, 数据库服务器就知道哪些分片与特定的查询无关, 从而
可以 跳过它们。 同时, 数据库服务器可以跳过由于系统故障而不可用的那些分
片, 以保持高可用性。
        除了将数据表分割之外,Informix动态服务器还可以将索引分割,以获
得最 大的数据布局灵活性,  从而达到最优的并行处理性能, DBA 可以把分割
了的 索引放到与数据不同的分片上去。分割了的索引可以有自己的分片模式,与
数 据表相分离。
         分割对于有效的系统管理也是很关键的。数据库越大,就越之需要系统
管 理员能够在表分片级进行备份和恢复、批量装入和卸出等操作, 而不是必须
备 份或恢复整个的数据库或表。 这些操作可以并行地进行,从而大大地减少装
入 、卸出或恢复数据所需的时间。
基于代价的优化器
      Informix 动态服务器基于代价的优化器,根据表的列中数据分布的详细信
息 可以自动确定从数据库表中检索数据的最快方法。 优化器收集和计算有关数
据 分布的统计情况, 并选取对系统资源影响最小的返回路径 ( 在某些情况下,
这 可能是一个并行的返回路径。但在其他情况下 ,可能是顺序处理。内存授权
管 理器控制上述并行程度。
数据一致性
       Informix 动态服务器通过事务逻辑日志、内部一致性检查、建立锁处理
过程 以及商业规则等等,保证数据在事务级保持一致。
事务日志
         当一个事务无法完成时,必须将已做完的部分从数据库中除去才能保证
数 据一致性。为了免去这部分已完成的操作,Informix动态服务器通过维护记录
着 所有事务处理的逻辑日志, 以及自动使用这些记录将数据恢复到该事务之前
的 状态。
内部一致性检查
        当数据或系统出现不一致时,内部一致性检查可向Informix动态服务器
的系 统管理员报警。这是因为Informix动态服务器有一个数据层检测,若由于硬
件或 操作系统错误导致了非一致性,Informix动态服务器会自动将有关信息写入
信息 日志中。
        Informix动态服务器系统管理员可使用户设置一致性检查环境变量,这
些变 量会给出非一致性诊断例子,以帮助问题定位。
锁及进程隔离
        Informix动态服务器的另一个重要特点是锁及进程隔离,可防止正在读
或修 改的数据被其它用户更改。

        锁是由系统内部保留并可用程序写入数据片中。数据库服务器保证数据
加 锁期间别的进程不可更改;如果有别的用户进程要做更改,服务器或是要它等
 待,或是返回一错误码。
        Informix动态服务器还可防止由于互需资源均被锁住而造成死锁情况发
生, 如果有这种情况,服务器会立即通知会造成死锁的后边的进程退出。
        Informix动态服务器提供几种类别的锁,即:行级锁、页级数、表级锁
及库 级锁。行级锁和页级锁在表生成或修改时指定, 表级锁和库级锁在应用程
序中 指定。

--
※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.99.12.234]

[关闭][返回]