一种文档库系统及其实现方法

文档序号:6561648阅读:117来源:国知局
专利名称:一种文档库系统及其实现方法
技术领域
本发明涉及电子文档处理系统,特别涉及一种文档库系统及其实现方法。
技术背景文档库系统提供对大量文档的组织、管理、安全、展示、存储等诸方面的功能。在本申请人在先提交的申请号为CN200510131072.0的基础专利申请 说明书中提供了一种包括文档库系统、存储器、应用软件的文档处理系统, 其中,文档库的数据存储在存储器中,文档库系统和应用软件通过一种标准 调用接口连接起来,该标准调用接口根据预先定义的动作和对象而定义。应 用软件对文档的操作都统一成对一种预定义的通用文档模型进行的操作,并 通过该标准调用接口向文档库系统发出指令,文档库系统按照应用软件的指 令,对存储在存储器中的文档库执行相应的操作。由于文档库系统涉及了大量的逻辑概念和操作,需要对大量功能提供支 持,所以一般情况下,文档库系统要做到好的可扩展、可伸縮和可维护性是 相当困难的。如果不从架构上解决该问题,那最后实现的文档库系统,无法 作到较好的可扩展、可伸縮和可维护性。 发明内容本发明的目的在于提供一种文档库系统,该系统具有可扩展、可伸縮和 可维护性。本发明提供的一种文档库系统,包括解释器、计划器、执行器和存储模 块,其中,解释器用于接收应用程序调用并将其解析为由通用文档模型的对象或操 作构成的中间形式;计划器用于接收中间形式并将其解析为由对物理存储的操作构成的执行 计划;执行器用于调度执行计划中对物理存储的操作的执行;
存储模块用于执行构成执行计划的对物理存储的操作。本发明提供的文档库系统还进一步包括优化器,用于从计划器生成的执 行计划中根据判断条件选择最优执行计划。更进一步,本发明提供的文档库系统中的优化器用于对计划器生成的执 行计划进行执行计划空间搜索,并根据上述判断条件获得优化的执行计划。其中,上述的应用程序调用为XML形式或者符合LALR语法的自定义 形式。上述的的中间形式为语法树或文档对象模型树。上述的存储模块支持对逻辑分区或物理磁盘或虚拟存储或内存的物理存 储操作。而虚拟存储为远程存储或网络存储。远程存储包括网络文件系统或 分布式文件系统,网络存储包括存储区域网络或网格或对等方式的存储。上述的判断条件为经验规则、执行计划的时间成本或空间成本或时间和 空间成本的结合。从上述技术方案可以看出,本发明将文档库系统的实现分为多层。由于 不同层的实现可以相对独立,从而使本发明提供的文档库系统具有可扩展、 可伸缩和可维护性。通过本发明提供的优化器,可以从多个执行计划中选出 一个最优的执行计划,提高执行的性能,从而使整个文档库系统的性能提高。 而对初始执行计划的局部优化,使选出的最优执行计划成本更低,从而进一 步提高整个文档库系统的性能。本发明的另一目的在于提供一种文档库系统的实现方法,使通过该方法 实现的系统具有可扩展、可伸縮和可维护性。本发明提供的一种文档库系统的实现方法,包括如下步骤步骤1,将应用程序调用解析为由通用文档模型的对象或操作构成的中 间形式;步骤2,将中间形式解析为由对物理存储的操作构成的执行计划;步骤3,调度执行执行计划。其中步骤2包含如下步骤步骤21,将由通用文档模型的对象或操作构成的中间形式解析为对应的 多个执行计划;步骤23,从多个执行计划中根据判断条件选择一个最优的执行计划。进一步,在步骤21和步骤23之间包含如下步骤对生成的执行计划进行执行计划空间搜索,并根据所述判断条件获得优 化的执行计划。其中,采用的搜索算法为遗传算法、演化算法、模拟退火算 法、分支定界算法、爬山算法、启发式算法、人工神经网络算法或动态编程 算法。 ,其中上述的应用程序调用为XML形式或者符合LALR语法的自定义形 式。中间形式为语法树或文档对象模型树。判断条件为经验规则、执行计划 的时间成本或空间成本或时间和空间成本的结合。而步骤23中选择最优执行计划的算法包括基于经验规则优先级的算法 或基于经验规则赋权的算法。从上述技术方案可以看出,通过上述方法实现的文档库系统,在各个步 骤间的接口满足标准接口规范条件下,各个步骤的具体实现相互独立,从而 使整个文档库系统的实现具有很强的可扩展、可伸縮和可维护性。通过生成 多个执行计划并选择最优执行计划的步骤,使选出的最优执行计划的成本较 低,从而使实现的文档库系统具有较高的性能。通过对计划器生成的多个执 行计划进行局部优化的步骤,使选出的最优执行计划成本更低,从而进一步 提高整个文档库系统的性能。


图1所示为本发明的文档库系统的分层示意图; 图2所示为本发明的文档库系统示意图; 图3所示为本发明的文档库系统实现方法的流程图。
具体实施方式
本发明的基本思想是,为了实现文档库系统较好的可扩展、可伸縮和可 维护性,将文档库系统的实现分为几个层,并对相邻层之间的接口定义标准 规范。这样,在各个层的输出结果符合标准接口规范的条件下,各个层的具 体实现可以分别有多种选择,从而实现文档库系统具有较好的可扩展、可伸 缩和可维护性。如图1所示,本发明将文档库系统的实现分为如图所示的几个层将应 用程序调用转换为逻辑操作构成的中间形式,将逻辑操作构成的中间形式转 换为物理操作构成的执行计划,执行执行计划。本发明的一个文档库系统如图2所示,包括解释器、计划器、执行器和 存储模块。其中,解释器的输入为应用程序调用,输出为符合标准接口规范的由通 用文档模型的对象或操作构成的中间形式。中间形式可以具体表现为语法树 或文档对象模型(DOM, Document Object Model)树。应用程序对文档 库系统标准接口的调用,首先由解释器进行处理。所谓标准接口,可以是文 档库系统基础专利文档中所说明的可扩展置标语言(XML, Extensible Markup Language)形式的UOML接口,也可以是命令串的形式,或者是其它的形式, 但都需要符合基础专利文档处理系统中所描述的通用文档模型。应用程序调 用通过解释器进行词法、语法解析后,生成符合标准接口规范的由通用文档 模型的对象或操作构成的中间形式。对XML形式,可以使用XML解析器, 生成DOM树。对于命令串形式,使用的命令串一般符合LALR(l)(Lookahead Left to Right Parsing)语法。在给出语法定义的情况下,可使用lex (Lexical compiler)禾口 yacc (Yet another compiler compiler)生成的词法禾口语法解析器 来解析命令串。Lex是一种生成扫描器的工具,即生成词法分析器的工具。 Yacc (Yet Another CompilerCompiler)是一种LALR(l)分析器的自动生成工具,它 的第1版于70年代初发表,是美国贝尔实验室的软件产品(作者为S.C.Johnson)。 这两个工具目前在UNIX, DOS等系统平台上广泛流行。具体的XML解析以 及lex、 yacc解析为现有技术。下面举例具体说明XML形式的标准接口调用的解析<call><stringVal val-"AppendLine" name="MethodName7> <stringVal val="0xabcdl234" name="PathObj'7> 〈compoundVal name="LineObj"> <line><start xCod=" 1000.23" yCod="2193.3247〉 <end xCod="3233.234" yCod="2342.2347> </line> </compoundVal> </call>上述代码表示的是一个XML形式的标准接口调用,接口方法的名称为 AppendLine,该方法完成的任务是向句柄为0xabcdl234的路径对象附加一条 线段,该线段的两个端点位置分别是(1000.23, 2193.324)和(3233.234, 2342.234)。解释器对上述的XML形式的标准接口调用进行解析,解析后的结果表 现为DOM树,该DOM树的结构是根元素为call, call有三个子元素,分 另ij是两个stringVal禾口一个compoundVal 即如下的形式-callstringVal stringVal compoundVal下面是符合LALR(1)语法的自定义语言对文档库系统标准接口的调用 call with name=AppendLine, params=(PathObj=,,0xabcdl234,,, LineObj=(StartPt=( 1000.23, 2193.324), EndPt=(3233.234, 2342.234)));解释器对上述的自定义形式的应用程序调用,通过对应的词法和语法解 析器解析后生成语法树。上述词法和语法解析器可以通过预先调用lex或者yacc定义了自定义语言的词法和语法后生成。语法树可以通过下述C结构表不struct SyntaxTree struct Node * pRoot;};struct Nodestruct Node *pLeft; struct Node *pRight;具体的树形结构与上述示例的DOM树类似。解释器输出的是由逻辑操作构成的中间形式,这些逻辑操作对应于通用 文档模型的对象或操作。这些与通用文档模型对应的逻辑操作需要转换为对 物理存储的操作。计划器就是用来实现从通用文档模型的对象或操作到对物 理存储的操作的转换。计划器的输入是由通用文档模型的对象或操作构成的 中间形式,其输出就是由对物理存储的操作构成的执行计划。构成中间形式 的逻辑操作是比较高层次的概念, 一个逻辑操作可能映射到单个物理操作, 也可能映射到由多个物理操作组成的序列,而且满足条件的映射可能是多个。 所以单个中间形式,可能对应多个执行计划。对同一个中间形式,每次调用 计划器转换后得到的执行计划,可能是不同的,但这些执行计划之间是等价 的。下面以语法树为中间形式为例,说明计划器对逻辑操作向物理操作转换 的实现枚举语法树中的每一个逻辑操作L一OP,这里的逻辑操作,也可以是一组 逻辑操作的序列;获得L—OP对应的物理操作集合(P—OPl、 P_OP2、……、P一OPm),这 里的各个物理操作P—OPj也可以是一组物理操作的序列; 为L一OP选择一个物理操作,假定为P—OPi;将语法树中所有的逻辑操作都按照上述步骤,选择对应的物理操作,当 语法树中所有的逻辑操作都由对应的物理操作所替换时,则生成了执行计划。 对DOM树和其它中间形式的转换与上述实现类似。 对上述例子中以DOM数为例的中间形式经过计划器转换后生成的执行 计划如下所示 AppendLine PathObj CreateLine StartPt EndPt其中,执行计划的根结点AppendLine是操作,其第一个子结点PathObj 是Path对象的句柄,而第二个子结点是CreateLine操作,用于创建线段对象, CreateLine的两个子结点分别是创建线段的起始点和结束点。CreateLine的执行结果,会生成对应的线段对象,而AppendLine操作, 则会将该线段对象添加到Path对象中。执行器用于调度执行计划。执行计划一般是由对物理存储的操作构成的 树,执行器自执行计划对应树的根结点开始,自顶向下递归,从树最末端的 结点自底向上通过存储模块执行实际的操作,逐步完成整个执行计划。 例如执行器执行下述的执行计划 0P1 Paral Para2 OP2 Para3 Para4 OP3 Para5 Para6其中OPl、 OP2和OP3为三个操作,Paral-Para6为六个对应操作的参数。执行器执行上述执行计划的过程顺序如下 执行OP3 (Pam5, Para6),结果为res3; 执行OP2 (Para3, Para4), res3),结果为res2; 执行OPl (Paral, Para2, res2),结果为resl。存储模块可以建构在各种物理或虚拟的物理存储层上,有不同的性能、 规模方面的约束。在系统的实现中,物理存储层提供的接口会影响到构成执 行计划的物理操作的构成;例如,如果物理存储层只提供了二进制流的读取/ 写入,则构成执行计划的物理操作可能只包含读取/写入两种物理操作,如果 物理存储层提供了更多操作,比如创建文档库、创建文档集合等,则构成执 行计划的物理操作就会多。物理存储层需要提供的基本对象包括文档库、文 档集合、文档等还需要提供分配、回收、读写物理存储的功能。在使用逻辑分区、物理磁盘、虚拟存储、内存等等媒介时,存储模块的 实现都是类似的。存储模块可以在如下的基础上构建操作系统提供的文件 系统,或操作系统提供的逻辑分区,或操作系统提供的访问物理磁盘的接口, 或绕过操作系统访问物理磁盘的接口 ,或操作系统提供的访问虚拟内存或物 理内存的接口,或绕过操作系统之间访问物理内存的接口,或虚拟存储设备。 并在此基础上实现文档库、文档集合、文档等物理存储层对象其中,虚拟存储可以使用远程存储,即实际的物理存储在另一计算设备上。如网络文件系统(NFS)、分布式文件系统(DFS)。虚拟存储也可以使用 网络存储,即实际的网络存储由一个网络提供。如存储区域网络(SAN, Storage AreaNetwork)、网格(GRID)、对等(P2P, PEER-to-PEER)方式的存储等。以文件系统为例,存储模块执行如下操作设定某个目录为文档库;在文档库目录下,建立一个或多个文档集合目录; 在文档集合目录下,建立一个或多个文件作为文档; 在文档中,可以建立页、层、页面流等等。最后的目录结构可能如下所示,其中文档以文件形式出现,放置在dodist 目录下-/……docbase/ doclist/ doclist/上述是本发明的文档库系统的各个模块的具体实现。从上面的描述可以 看出,不同的模块之间具有标准的接口规范。在输入输出符合标准接口规范 的条件下,各个模块的具体实现可以采用不同的方案,从而使整个文档库系 统的实现具有可扩展、可伸縮和可维护性的特性。
本发明的文档库系统可以进一步包含优化器。在上述计划器的描述中, 指出了对同一个中间形式,每次调用计划器转换后得到的执行计划可能是不 同的。虽然这些执行计划之间是等价的,但是不同执行计划在执行时所耗费 的时间和占用的空间却经常相差甚远,所以从对应执行计划集合中确定的执 行计划是否是优选的,对文档库系统的性能会有很大的影响。优化器就是用 于从与中间形式对应的执行计划集合中,按照确定的判断规则,挑选出优选 的执行计划。一种优化器的实现是,由计划器生成一定数目的执行计划,例如计划器 可以随机生成一定数目的执行计划;然后由优化器根据判断条件从生成的执 行计划集合中选出最优的执行计划。需要指出的,所谓的最优是从判断条件 或者实际需求的意义上来说的,例如,在要求执行时间最少的判断条件下选 出的最优执行计划,可能执行需要的最大空间很大,从而该执行计划在执行 的最大空间要求最小的判断条件下,并不是最优的执行计划。上述的判断条 件可以是经验规则,或者是基于执行计划成本的比较,即基于执行计划的时 间成本、空间成本或者时间与空间成本的结合的比较。以下举例说明一种优化器基于经验规则优先级选择最优执行计划的实现。假定优化器 设有L条规则,分别为Rl, R2,……RL,不失一般性,假定规则的优先 级为R1〉R2〉……>RL,优化器执行如下操作-al,设定执行计划集合为生成的所有执行计划,设定当前用于判断的经验规则为Ri, i=l; a2,对执行计划集合中的所有执行计划,依次判断是否符合规则Ri, 如果一个执行计划不符合规则Ri,则标记该执行计划,并将该执行 计划从执行计划集合中去除; a3,如果执行计划集合为空,则将a2中标记的执行计划放入执行计划 集合,并执行下面的操作;如果i等于L,则执行下面的操作;否则, 将i加1,重复执行a2; a4,从执行计划集合中任意挑选一个执行计划,作为基于经验规则优先级选择的最优执行计划。 一种优化器基于经验规则赋权的选择最优执行计划的实现。假定优化器
设有L条规则,分别为R1, R2,……RL,不失一般性,假定规则Ri的权 值为PRi;优化器执行如下操作对所有的执行计划,将其权值初始化为O;对每个执行计划,判断其是否符合规则Ri (i=l,......,L);如果符合,则将该执行计划的权值增加PRi;根据各个执行计划的权值,挑选出权值最大的执行计划,作为基于经验 规则赋权的选择的最优执行计划。如果符合条件的最优执行计划有多个,可 以任意选出一个。上面描述的是基于经验规则的优化器选择最优执行计划的两种实现,下 面介绍基于执行计划成本的优化器选择最优执行计划的实现。执行计划的成本,包括时间成本和空间成本。时间成本是指执行整个执 行计划所花费的时间,而空间成本则指整个执行过程中,最后的结果和中间 结果可能占据的最大空间。由于这种执行涉及的磁盘I/O时间是时间成本的主要部分,对时间成本的计算也主要是计算磁盘I/0时间;对空间成本而言,涉及到内存和磁盘两方面的占用。一) 计算执行计划的时间成本对具体的执行计划而言,优化器预先精确计算其执行时间实际上不可能, 只能将执行计划拆解为一些基本操作,以各个基本操作花费的时间为基准, 按照各个基本操作实际执行次数进行累加,最后估算出执行计划总共花费的 时间。通常的方法是优化器按照递归的执行次序遍历整个执行计划,获得各 个基本操作的执行次数,然后计算出整个执行计划花费的时间。二) 计算执行计划的空间成本和执行计划的时间成本不同的是,执行计划的空间成本通常指的是执行 过程中的空间的最大值。计算的方法是优化器按递归次序,自底向上计算, 并将当前的执行需要的空间和当前最大的空间值进行比较,如果大于当前最 大空间值,则用当前的执行空间替换当前的最大空间,当执行计划计算结束 后,就可以得到执行计划的最大空间,即该执行计划的空间成本。下面分别举例说明执行计划时间成本和空间成本的计算方法。一种计算执行计划的时间成本的方法。假定执行计划是树形结构,基本操作包括(OPl、 OP2、……OPn),假定计算执行计划的时间成本函数为 TIME—CALC(NODE node),以下是TIME—CALC的实现 初始化执行时间变量T为O;对node的子结点(SUB1、 SUB2......SUBm),执行T = T + ETIME—CALC(SUBi),哑元i的范围从l到m; 计算node涉及的各个基本操作的数量,其中OPi的数量简记为Ci, OPi 本身需要的时间简记为OTi;T-T+ i:CPOTi,此处哑元i的范围是,从l到n; 将T作为TIME—CALC的结果返回。一种计算执行计划的时间成本的方法。假定执行计划是树形结构,基本 操作包括(OPl、 OP2、……OPn),假定计算执行空间的函数为 SPACE—CALC(NODE node),以下是SPACE—CALC的实现初始化执行空间变量S为O;对node的子结点(SUB1、 SUB2 SUBm),执行-S = S + MAX(SPACE—CALC(SUBi)),哑元i的范围从l到m; 计算node涉及的各个基本操作的数量,其中OPi的数量简记为Ci, OPi 本身需要的时间简记为OTi;S = S + MAX(C"OTi),此处哑元i的范围是,从1到n; 将S作为SPACE—CALC的结果返回。从上面的描述可以看出,优化器从多个执行计划中按照判断条件挑选出 最优的执行计划,优选出的执行计划往往具有较低的时间或者空间成本,从 而提高了整个文档库系统的性能。优化器可以直接从由计划器生成的执行计划中选择最优的执行计划,也 可以首先利用例如遗传算法、人工神经网络等人工智能算法对由计划器生成 的执行计划进行优化,并从改进后的执行计划中选择最优的执行计划。上述对执行计划的优化,其根本是将执行计划的成本,或其它度量值, 作为一个度量函数与智能算法中的度量值,如遗传算法中的适应度和模拟退 火算法中的能量,关联起来,通过这些算法对执行计划空间进行搜索,从而 得到局部优化的执行计划。 下面介绍几种对执行计划进行优化的实现方法。 一种使用遗传算法改进初始执行计划的方法,包括如下步骤-将执行计划树编码为串,形成一个串的集合,即遗传算法所使用初始种群;以执行的时间或空间作为适应度的度量函数,对初始种群进行演化;在演化到预定数目的后代之后停止演化,然后将最后得到的种群解码为执行计划。需要指出的是,上面所述的适应度度量函数,除对应于执行的时间空间 之外,还可以选择其他度量,例如对文档执行获取页面位图操作次数。 一种使用模拟退火算法改进初始执行计划的方法,对初始执行计划集合中的每一个执行计划,都执行下述操作dl,当前执行计划为C,改进后的执行计划为B,将B初始化为C; d2,初始化当前温度T;d3,初始化温度降低因子ALPHA为0到1之间的值;d4, T大于设定的停止温度FT时,循环执行下述操作序列-4.1)在当前温度下,执行次数小于设定的COUNT时,循环执行以下 操作4丄1)将当前执行计划C,复制到临时执行计划W;4丄2)对W进行随机的微调,但要保证W与C的等价性; 4丄3)分别计算C和W的能量(即执行成本)Ec和Ew; 4丄4)如果EOEw,则将W复制到C和B; 4丄5)如果Ec〈二Ew,则执行下述计算初始化TEST为0到1之间的随机值; DELTA-Ew — Ec; RESULT = EXP(-DELTA / T); 如果RESULT大于TEST,则将W复制到C; 4.2)降低当前温度,T = T* ALPHA; d5,将执行计划B复制到C。 除了上述的介绍的两种算法,还可以采用演化计算、启发式算法、分支
定界算法、爬山算法、人工神经网络或动态编程等技术领域内的算法,对执 行计划进行优化。对于其他算法改进初始执行计划的方法,其策略与上述两 种方法是类似的。通过对初始的执行计划进行局部优化,可以使优化器选出的最优执行计 划成本更低,从而进一步提高整个文档库系统的性能。需要指出的是,本发明所述的解释器、计划器、优化器、执行器和存储 模块,其中的一个或者几个模块都可以作为独立的模块实现。例如,在Windows系统下,各个模块可以分别实现为单独的DLL,也可以将所有的模 块实现为一个DLL。在liniix系统下,各个模块可以分别实现为一个so文件, 也可以将所有的模块实现为一个so文件。在java环境下,各个模块的可以分 别实现为一个.class文件,也可以将所有的模块实现为一个.class文件。而各个模块的实现,可以使用C、C++、Java、Python、Ruby、Perl、SmallTalk、 Ada、 Simula、 Pascal、 Haskell等语言开发。如图3所示, 一种文档库系统的实现方法,包括如下步骤 步骤1,将应用程序调用解析为由通用文档模型的对象或操作构成的中 间形式。应用程序对文档库系统标准接口的调用,可以是文档库系统基础专利文 档中所说明的UOML,也可以是命令串的形式,但都需要符合文档库系统基 础专利中所指出的通用文档模型。对应用程序调用进行词法、语法解析后, 生成符合标准接口规范的由通用文档模型的对象或者操作构成的中间形式。 对XML,可以使用XML解析器,生成DOM树。对于命令串形式,使用的 命令串一般符合LALR(1)语法,在给出语法定义的情况下,可使用lex和yacc 生成的词法和语法解析器解析命令串。步骤2,将中间形式解析为由对物理存储的操作构成的执行计划。 构成中间形式的通用文档模型的对象或者操作是逻辑操作,这些逻辑操 作是比较高层次的概念, 一个逻辑操作可能映射到单个对物理存储的操作, 也可能映射到由多个对物理存储的操作组成的序列,而且满足条件的映射可 能是多个。所以单个中间形式,可能对应多个执行计划。对同一个中间形式, 每次转换后的执行计划,可能是不同的。 一种将语法树表示的中间形式转换为执行计划的方法包括如下步骤-枚举语法树中的每一个逻辑操作L—OP,这里的逻辑操作,也可以是一组 逻辑操作的序列;获得L一OP对应的物理操作集合(P一0P1、 P一OP2、 、 P一OPm),这里的各个物理操作P_OPj也可以是一组物理操作的序列; 为L—OP选择一个物理操作,假定为P—OPi;将语法树中所有的逻辑操作都按照上述步骤,选择对应的物理操作,当 语法树中所有的逻辑操作都由对应的物理操作所替换时,则生成了执行计划。 对DOM树和其它中间形式的转换与上述实现类似。 步骤3,调度并执行执行计划。自执行计划对应树的根结点开始,自顶向下递归,到达树的最末端结点 后自底向上执行实际的操作,逐步完成整个执行计划。通过上述方法实现的文档库系统,在各个步骤间的接口满足标准接口规 范条件下,各个步骤的具体实现相互独立,从而使整个文档库系统的实现具 有很强的可扩展、可伸縮和可维护性。进一步,步骤2包含如下的步骤步骤21,将由通用文档模型的对象或操作构成的中间形式解析为对应的 多个执行计划;构成中间形式的通用文档模型的对象或操作是逻辑操作,这些逻辑操作 是比较高层次的概念, 一个逻辑操作可能映射到单个物理操作,也可能映射 到由多个物理操作组成的序列,而且满足条件的映射可能是多个。所以单个 中间形式,可能对应多个执行计划。可以根据由逻辑操作构成的中间形式, 随机生成对应的多个执行计划。步骤23,从多个执行计划中根据判断条件选择一个最优的执行计划。 可以根据判断条件从生成的执行计划集合中选出最优的执行计划。需要 指出的,所谓的最优是从判断条件或者实际需求的意义上来说的,例如,在 要求执行时间最少的判断条件下选出的最优执行计划,可能执行需要的最大 空间很大,从而该执行计划在执行的最大空间要求最小的判断条件下,并不 是最优的执行计划。上述的判断条件可以是经验规则,或者是基于执行计划
成本的比较,即基于执行计划的时间成本、空间成本或者时间与空间成本的 结合的比较。一种基于经验规则优先级选择最优执行计划的方法。假定有L条规则,分别为R1, R2,……RL,不失一般性,假定规则的优先级为R1〉R2〉…… >RL,包括如下步骤bl,设定执行计划集合为生成的所有执行计划,设定当前用于判断的经验规则为Ri, i=l; b2,对执行计划集合中的所有执行计划,依次判断是否符合规则Ri, 如果一个执行计划不符合规则Ri,则标记该执行计划,并将该执行计 划从执行计划集合中去除; b3,如果执行计划集合为空,则将b2中标记的执行计划放入执行计划 集合,并执行下面的步骤;如果i等于L,则执行下面的步骤;否则, 将i加1,重复执行b2; b4,从执行计划集合中任意挑选一个执行计划,作为基于经验规则优先级选择的最优执行计划。 一种基于经验规则赋权的选择最优执行计划的方法。假定有L条规则, 分别为R1, R2,……RL,不失一般性,假定规则Ri的权值为PRh包括 如下步骤对所有的执行计划,将其权值初始化为0;对每个执行计划,判断其是否符合规则Ri (i=l,......,L);如果符合,则将该执行计划的权值增加PRi;根据各个执行计划的权值,挑选出权值最大的执行计划,作为基于经验 规则赋权的选择的最优执行计划。如果权值最大的执行计划有多个,可以任意选出一个。上面描述的是基于经验规则的选择最优执行计划的两种方法,下面介绍 基于执行计划成本的选择最优执行计划的方法。执行计划的成本,包括时间成本和空间成本。时间成本是指执行整个执 行计划所花费的时间,而空间成本则指整个执行过程中,最后的结果和中间 结果可能占据的最大空间。由于这种执行涉及的磁盘I/O时间是时间成本的
主要部分,对时间成本的计算也主要是计算磁盘I/0时间;对空间成本而言, 涉及到内存和磁盘两方面的占用。关于执行计划的时间成本和空间成本的计算方法,可以参见上面优化器 实现部分的相应内容。通过上述生成多个执行计划并选择最优执行计划的步骤,使选出的最优 执行计划的成本较低,从而使整个文档库系统的实现方法具有较高的性能。进一步,在步骤21和步骤23之间还包括如下步骤 步骤22,优化对应的多个执行计划获得它们的局部优化的执行计划。 与步骤22相对应,步骤23从优化后的多个执行计划中选择一个最优的 执行计划。上述步骤22中对执行计划的优化,其根本是将执行计划的成本或其它度 量值,作为一个度量函数与智能算法中的度量值,如遗传算法中的适应度和 模拟退火算法中的能量,关联起来,通过这些算法对执行计划空间进行搜索, 从而得到局部优化的执行计划。执行计划进行优化的方法包括遗传算法、模拟退火算法等,这两种方法 的具体步骤参见优化器部分相应内容的描述。除了上述的介绍的两种算法,,还可以采用演化计算、启发式算法、分支 定界算法、爬山算法、人工神经网络或动态编程等技术领域内的算法,对执 行计划进行优化。对于其他算法改进初始执行计划的方法,其策略与上述两 种方法是类似的。通过对初始的执行计划进行局部优化的步骤,使选出的最优执行计划成 本更低,从而进一步提高整个文档库系统的性能。综上所述,本发明提供的文档库系统及其实现方法,将文档库系统的实 现分为多层。由于不同层的实现可以相对独立,从而使本发明提供的文档库 系统具有可扩展、可伸縮和可维护性。通过本发明提供的优化器和相应的优 化算法,可以从多个执行计划中选出一个最优的执行计划,提高执行的性能, 从而使整个文档库系统的性能提高。而对初始执行计划的局部优化,可以使 选出的最优执行计划成本更低,从而进一步提高整个文档库系统的性能,使 整个文档库系统的实现具有高性能。
以上所述,仅为本发明较佳的具体实施方式
,但本发明的保护范围并不 局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可 轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明 的保护范围应该以权利要求的保护范围为准。
权利要求
1.一种文档库系统,其特征在于,包括解释器、计划器、执行器和存储模块,其中,解释器用于接收应用程序调用并将其解析为由通用文档模型的对象或操作构成的中间形式;计划器用于接收中间形式并将其解析为由对物理存储的操作构成的执行计划;执行器用于调度执行计划中对物理存储的操作的执行;存储模块用于执行构成执行计划的对物理存储的操作。
2. 如权利要求1所述的文档库系统,其特征在于,还包括优化器,用于 从计划器生成的执行计划中根据判断条件选择最优执行计划。
3. 如权利要求2所述的文档库系统,其特征在于,优化器用于对计划器 生成的执行计划进行执行计划空间搜索,并根据所述判断条件获得优化的执 行计划。
4. 如权利要求1或2或3所述的文档库系统,其特征在于,所述的应用 程序调用为XML形式或者符合LALR语法的自定义形式。
5. 如权利要求1或2或3所述的文档库系统,其特征在于,所述的中间形式为语法树或文档对象模型树。
6. 如权利要求1或2或3所述的文档库系统,其特征在于,所述存储模 块支持对逻辑分区、物理磁盘、虚拟存储、内存中的一种或多种的物理存储 操作。
7. 如权利要求6所述的文档库系统,其特征在于,所述的虚拟存储为远 程存储或网络存储,所述远程存储包括网络文件系统或分布式文件系统,所 述网络存储包括存储区域网络或网格或对等方式的存储。
8. 如权利要求3所述的文档库系统,其特征在于,实现所述执行计划优化的算法为遗传算法、演化算法、模拟退火算法、分支定界算法、爬山算 法、启发式算法、人工神经网络算法或动态编程算法。
9. 如权利要求2或3所述的文档库系统,其特征在于,所述的判断条件 为经验规则,或者执行计划的时间成本或空间成本或时间和空间成本的结合。
10. —种文档库系统的实现方法,其特征在于,包括如下步骤步骤1,将应用程序调用解析为由通用文档模型的对象或操作构成的中 间形式;步骤2,将中间形式解析为由对物理存储的操作构成的执行计划; 步骤3,调度并执行执行计划。
11. 如权利要求IO所述的方法,其特征在于,步骤2包含如下步骤步骤21,将由通用文档模型的对象或操作构成的中间形式解析为对应的 多个执行计划;步骤23,从多个执行计划中根据判断条件选择一个最优的执行计划。
12. 如权利要求11所述的方法,其特征在于,在步骤21和步骤23之间 包含如下步骤对生成的执行计划进行执行计划空间搜索,并根据所述判断条件获得优 化的执行计划。
13. 如权利要求10或11或12所述的方法,其特征在于,所述的应用程 序调用为XML形式或者符合LALR语法的自定义形式。
14. 如权利要求10或11或12所述的方法,其特征在于,所述的中间形 式为语法树或文档对象模型树。
15. 如权利要求11或12所述的方法,其特征在于,所述的判断条件为 经验规则,或者执行计划的时间成本或空间成本或时间和空间成本的结合。
16. 如权利要求11或12所述的方法,其特征在于,步骤23中选择最优执行计划的算法包括基于经验规则优先级的算法或基于经验规则赋权的算 法。
17. 如权利要求12所述的方法,其特征在于,步骤22中采用的优化算 法为遗传算法、演化算法、模拟退火算法、分支定界算法、爬山算法、启发 式算法、人工神经网络算法或动态编程算法。
全文摘要
本发明公开了一种文档库系统,包括解释器、计划器、优化器、执行器和存储模块。其中解释器将应用程序调用转换为中间形式,计划器将中间形式转换为执行计划,优化器负责从计划器生成的执行计划集合中选择一个最优执行计划,而执行器负责选中执行计划的执行调度,存储模块负责执行对物理存储的操作。由于本发明的文档库系统不同层的实现可以相对独立,从而使其具有可扩展、可伸缩和可维护性。而优化器可以从多个执行计划中选出一个最优的执行计划,从而使整个文档库系统具有高性能。
文档编号G06F9/44GK101131695SQ200610126538
公开日2008年2月27日 申请日期2006年8月25日 优先权日2006年8月25日
发明者王东临, 旭 郭 申请人:北京书生国际信息技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1