CN1573756A - 分布式查询引擎流水线方法和系统 - Google Patents
分布式查询引擎流水线方法和系统 Download PDFInfo
- Publication number
- CN1573756A CN1573756A CNA2004100639168A CN200410063916A CN1573756A CN 1573756 A CN1573756 A CN 1573756A CN A2004100639168 A CNA2004100639168 A CN A2004100639168A CN 200410063916 A CN200410063916 A CN 200410063916A CN 1573756 A CN1573756 A CN 1573756A
- Authority
- CN
- China
- Prior art keywords
- engine
- execution
- query
- inquiry
- input inquiry
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/40—Data acquisition and logging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/80—Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
- G06F16/83—Querying
- G06F16/835—Query processing
- G06F16/8358—Query translation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/80—Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
- G06F16/84—Mapping; Conversion
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99933—Query processing, i.e. searching
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99944—Object-oriented database structure
- Y10S707/99945—Object-oriented database structure processing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Devices For Executing Special Programs (AREA)
- Multi Processors (AREA)
Abstract
一种分布式查询引擎流水线体系结构,包括级联的分析引擎,这些分析引擎接收输入查询并且每个识别能够传递到执行引擎的输入查询部分。每个阶段重写该输入查询以去除已识别的部分并用占位符置换它。在该级联中,该重写查询向前送到下一分析引擎。每个引擎编译它所识别的部分使得执行引擎可以处理该部分。优选的是从最后一个分析引擎编译的查询部分进行执行。对应于最后一个分析引擎的执行引擎执行该查询,并在级联中为数据从前一部分对下一更高执行引擎进行访问。该处理一直持续到来自输入查询的结果被完全收集。
Description
技术领域
本发明一般涉及在数据源上进行查询的软件领域,尤其涉及对包含不同数据模型的数据源的分布式查询。
背景技术
在各种数据源上进行查询是在具有不同数据模型的数据源上执行搜索所急待解决的问题。在具有相同数据模型的异类数据源中也同样出现出这样的问题。为了查询具有多个数据模型的多个数据源,通常需要多个查询执行引擎。输入查询通常由单片机分解,该单片机确定与执行引擎相连的先验应当得到初始输入查询的哪个部分。从而单片地处理原始查询,以将该查询分成用于执行的清楚块。每个执行引擎对应于特殊数据模型或数据源。然后,各个查询执行引擎执行它们的查询部分并将结果返回到单片机。然后该单片机具有合并来自每个查询执行引擎的各个查询结果并将它们串在一起以形成一组完整的查询结果的任务。
各种数据查询的该方法存在需要能识别和操作所有可能数据源的单片机的缺点。这是一个不好的任务,因为不同数据源具有用于与它们的数据相互作用的很不同的API’s或模型,并且建造熟知所有数据模型并能操作所有可能数据源的单片机一般不太可行或不期望。例如,如果有人想要在SQL数据库或XML文件上查询,与XML文件相互作用的唯一接口是文档对象模型(DOM),并且到数据库的唯一接口是SQL命令。因此,这人需要不同代码与数据库和XML文件一起工作。如果有人试图建造能够处理附加数据模型类型(如在本领域呈现出重要性的那些数据类型)的单片机的话,则该问题将会加剧。在这样的条件下,通过改变需求,单片引擎容量会被很大程度地超出,并且如果任何附加数据模型类型被添加或如果现存的数据模型类型明显改变,则需要重新设计。
建立各种数据源查询机制的附加问题是虚拟查询。如果数据源可以以一种数据模型类型来轻松地查询,然而还希望以第二数据模型查询语言来建立查询,那么则需要一种数据模型查询语言类型的转换。该需要会导致需求多套硬件和软件模块以及对应数量的优化器来确保查询有效编码的多个查询语言转换。
因此,存在避免设计和建造单片查询处理器的体系结构的需要,该单片查询处理器适合于改变查询语言需求。另外,存在对这样一种体系结构的需要,即该体系结构避免了与从一种形式到另一种形式转换多个查询语言相关的问题。本发明着手解决前面提到的需要并用本发明的体系结构解决它们,本发明的体系结构适合于改变查询环境需要。
发明内容
本发明通过利用分布式查询引擎流水线,着手解决在具有多个数据模型类型的多个数据源上进行查询的问题。该流水线提供了优越于典型解决方案的优点,该典型解决方案使用单片机来分解输入查询,分配各个部分到具体的执行引擎并随后将结果合并来形成输入查询结果。本发明使用级联的分析引擎而不用单片机来识别和提取在具体执行引擎上能编译和执行的输入查询部分。
在本发明的一个实施例中,分析引擎与执行引擎类型相联系,尽管被级联,但是每个分析引擎互相独立操作。每个分析引擎具有输出:该引擎将其识别为对应于执行引擎的编译部分,以及该已识别部分被去除并用占位符置换的重写查询。在该级联中位于下一个的分析引擎接收该重写查询,识别它的可执行部分,用另一个占位符置换它,并将两次重写查询与两个占位符一起向下传递到下一阶段。
处理该查询的执行阶段,优选与对应于最后一个分析引擎的执行引擎一起开始。该执行引擎执行分配给它的查询,并且在执行引擎的级联中,将呼叫放置到下一更高执行引擎,以恢复占位符查询结果。每个执行引擎将呼叫放置到更高堆栈引擎以恢复对应于占位符的数据。在级联的执行引擎中的连续呼叫最终导致一个执行引擎聚集对应于输入查询的所有查询结果。
可选的,流水线查询执行阶段可以从最外面执行或第一分析引擎编译输出处开始。如前所述,每个执行引擎可以执行给其分配的查询并且为占位符数据对后续的执行引擎进行呼叫。该输入查询返回的结果是相同的。
附图说明
前面的发明概述,以及随后优选实施例的详细描述,将通过结合附图阅读时会得到更好的理解。为了说明本发明,在图中示出了本发明的示范性结构,但是本发明不局限于公开的具体方法和手段。附图为:
图1是示出了示范性计算环境的框图,在该示范性计算环境中本发明的各个方面可以完成;
图2示出了框图体系结构,其中本发明的各个方面可以在其内完成;
图3示出了框图体系结构,其中本发明的各个方面可以在其内完成;以及
图4示出了适合于本发明各个方面的流程图。
具体实施方式
本发明要解决的问题是从多个查询源的多个类型的数据源上进行查询。一种解决在虚拟XML数据源上进行查询的问题的方法可以是使用统一中间语言。用在本发明上下文中的XML中间语言表示查询的意思或语义。该XML中间语言被称为查询中间语言(QIL)。
QIL着手解决通常所说的″查询/视图组合″问题。例如,假定XML查询在数据、或XML、XML虚拟或其他数据的虚拟XML视图上执行。一种方法可以将该数据源作为XML实现,但是这会是非常低效的并且会需要比系统可用存储器更多的存储器。另一种方法是虚拟化该视图,将该查询用该虚拟视图构成,并且将传送结果到原始数据上的操作上。用户虽然明白在逻辑XNIL数据模型上进行的XML查询,但是无论使用所提供的哪一个系统,该执行查询本地数据格式。这种方法用在关系数据库中用于在SQL视图上的SQL查询。使用XML中间语言,例如QIL,初始潜在的复杂视图可以分解为在更小原子数据上的查询操作。这样,复杂视图的查询变成在附加了简单视图的查询上的查询。查询组合将此转变为仅仅在简单视图上的查询,从而简化了该问题。
XML中间语言QIL提供(1)XML查询和XML视图的统一表达,从而极大地简化了查询/视图组合问题以及(2)将所有视图视为″虚拟XML″,极大地简化了该系统的接口。与每个可能语言和数据模型具有一个API相反,所有的API共享一个公用数据模型,XML中间语言QIL的操作符。
连同输入查询的中间语言表达的使用,本发明公开了示范性的利用分布式体系结构的体系结构,用于在多个数据源上处理查询。一个真正的分布式体系结构能够在不同的执行引擎上分配混合源查询而不需要单片机来监控工作。本发明示范的分布式查询引擎流水线同时具有模块化的能力,表现在新的或修改的执行引擎可以被添加到体系结构中去以适应不同查询需要。另外,为了正确的操作,所利用的执行引擎不必被告知另一个查询执行引擎的工作。每个引擎可以在彼此顶端堆栈或级联,同时在该链或级联中,每个引擎仅仅处理并优化该引擎所知道的部分查询,并将其余的查询传递到下一个引擎。
示范性的计算装置
图1及下面的描述意欲提供其中可实现本发明的合适计算环境的简要概述。然而应当理解到,手提、便携或其它计算装置和所有种类的计算物均可与本发明结合使用。因此,虽然下面描述的是通通计算机(这仅仅是一个实例),但是本发明可以使用其他计算装置来实现,例如具有网络/总线互操作性和交互的客户端。因此,本发明可以在联网的主机服务环境中实现,其中包含很少或极少客户端资源,例如,客户装置仅仅用作网络环境中的网络/总线接口,例如放入设备中的对象、或其他计算装置和对象。根本上,根据本发明,凡是可以存储或可以从中检索数据的环境均是用于操作所需的或合适的环境。
尽管不需要,本发明还可以通过操作系统来实现,以由装置或对象服务的开发者使用,和/或包括在根据本发明操作的应用软件内部。软件可以在计算机可执行指令例如程序模块的一般上下文内描述,由一个或多个计算机,例如客户工作站、服务器或其他装置执行。通常,程序模块包括执行特定任务、实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。典型地,程序模块的功能性可以在不同实施例中依照需要被结合或分配。而且,本领域技术人员将会理解到本发明可以在其他计算机配置中实践。其他熟知的适合用于本发明的计算系统、环境和/或配置包括,但不局限于个人电脑(PC)、自动出纳机、服务器计算机、手提或膝上型装置、多处理器系统、基于微处理器的系统、可编程消费电子产品、网络PC、设备、光、环境控制元件、小型机、大型机等等。本发明也可在由远程处理装置执行任务的分布式计算环境中实践,其中远程处理装置通过通信网络/总线或其他数据传输媒介进行连接。在分布式计算环境中程序模块可以同时位于包括存储器存储装置的本地和远程计算机存储媒介中,并且客户节点可以依次充当服务器节点。
图1示出了本发明可以在其中实现的合适的计算系统环境100的实例,尽管如先前所解释清楚的,该计算系统环境100仅仅是合适的计算环境的一个实例,并且不打算对本发明应用或功能的范围作出任何限定。该计算环境100也不应当解释为具有与示范性操作环境100所示出的组件中任何一个或其组合相关的依赖或需求。
参照图1,用于实现本发明的示范性系统包括为计算机系统110形式的通用计算装置。计算机系统110的组件可以包括,但不局限于,处理单元120、系统存储器130和系统总线121,该系统总线121将包括系统存储器的不同系统组件耦合到处理单元120。该系统总线121可以是任何几种类型的总线结构,包括使用任何一种总线体系结构的存储器总线或存储控制器、外围总线和本地总线。举例来说,但不局限于,该体系结构包括工业标准结构(ISA)总线、微通道体系结构(MCA)总线、增强ISA(EISA)总线、视频电子标准协会(VESA)本地总线和周边元件互连(PCI)总线(也称为Mezzanine总线)。
计算机系统110典型地包括各种计算机可读媒介。计算机可读媒介可以是可由计算机系统110访问的任何可用媒介,包括易失和非易失媒介、可移除和不可移除媒介。举例来说,而不作为限定,计算机可读媒介可以包含计算机存储媒介和通信媒介。计算机存储媒介包括易失和非易失性、可移除和不可移除媒介,这些媒介可以以任何方法或技术来实现,用于存储信息例如计算机可读指令、数据结构、程序模块或其他数据。计算机存储媒介包括,但不局限于,随机存取存储器(RAM)、只读存储器(ROM)、电可擦可编程只读存储器(EEPROM)、闪速存储器或其他存储技术、只读光盘存储器(CDROM)、可重写光盘(CDRW)、数字化视频光盘(DVD)或其他光盘存储器、磁盒、磁带、磁盘存储器或其他磁存储器装置、或可用于存储所需信息和可以由计算机系统110访问的任何其他媒介。通信媒质典型地包含计算机可读指令、数据结构、程序模块或其他为调制数据信号(例如载波的数据)、或其他传送机构并且包括任何信息传递媒介。术语″调制数据信号″指具有一个或多个其特征集或在信号中以编码信息方式变化的信号。举例但不限定地说,通信媒介包括有线媒介例如有线网络或直接有线连接和无线媒介例如声、RF、红外及其他无线媒介。任何上述的组合也包括在计算机可读媒介范围内。
系统存储器130包括计算机存储媒介,其为易失和/或非易失存储器形式,例如只读存储器(ROM)131和随机存取存储器(RAM)132。包含例如在启动期间,有助于在计算机系统110内部元件之间传递信息的基本例程基本输入/输出系统133(BIOS)典型地保存在ROM 131中。RAM 132典型地包含可由处理单元120立即访问和/或立刻操作的数据和/或程序模块。举例来说,而不限定,图1示出了操作系统134、应用程序135、其它程序模块136和程序数据137。
该计算机系统110也可以包括其他可移除/不可移除、易失/非易失计算机存储媒介。仅仅举例来说,图1示出了读写到不可移除、非易失性磁媒介的硬盘驱动器141、读写到可移除、非易失性磁盘152的磁盘驱动器151和读写到可移除、非易失性光盘156的光盘驱动器155,例如CD ROM、CDRW、DVD或其他光媒介。可用于该示范性操作环境的其他可移除/不可移除、易失/非易失计算机存储媒介包括(但不局限于),磁带盒、闪存卡、数字化视频光盘、数字视频磁带、固态RAM、固态ROM等等。该硬盘驱动器141典型地经由不可移除存储器接口例如接口140连接到系统总线121,并且磁盘驱动器151和光盘驱动器155典型地经由可移除存储器接口例如接口150连接到系统总线121。
上述所描述的和在图1中示出的驱动器和他们相联系的计算机存储媒介为计算机系统110提供计算机可读指令、数据结构、程序模块、及其他数据的存储。例如,在图1中所说明的硬盘驱动器141存储操作系统144、应用程序145、其他程序模块146和程序数据147。注意,这些元件可以与操作系统134、应用程序135、其他程序模块136、和程序数据137相同或者不同。操作系统144、应用程序145、其他程序模块146、和程序数据147在此处被给予不同的数字以最小量的示出他们是不同的版本。用户可以通过输入装置例如键盘162和指示设备161将命令和信息输入到计算机系统110中,所述的指示设备161通常指鼠标、跟踪球或触摸板。其他输入装置(未示出)可以包括麦克风、操纵杆、游戏板、卫星盘、扫描器等等。这些及其他输入装置经常经由耦合到系统总线121的用户输入接口160连接到处理单元120,还可以由其他接口和总线结构例如并行端口、游戏端口或通用的串行总线(USB)进行连接。监视器191或其他类型显示装置也经由接口例如视频接口190连接到系统总线121,该视频接口190可以依次与视频存储器(未示出)进行通信。除监视器191之外,计算机系统也可以包括其他的外围输出装置,例如扬声器197和打印机196,它们可以经由输出外围接口195进行连接。
该计算机系统110可以在使用逻辑连接到一个或多个远程计算机例如远程计算机180的网络或分布式环境中操作。该远程计算机180可以是个人电脑、服务器、路由器网络PC、对等装置或其他公用网络节点,并且典型地包括许多或所有上面描述的相对于计算机系统110的元件,尽管在图1中仅仅示出了存储器装置181。在图1中显示的逻辑连接包括局域网(LAN)171和广域网(WAN)173,但是也可以包括其他网络/总线。这样的网络环境常见于家庭、办公室、企业计算机网络、内部网和互联网。
当用于LAN网络环境时,计算机系统110通过网络接口或适配器170连接到LAN 171。当用于WAN网络环境时,计算机系统110典型地包括调制解调器172或用于在WAN 173例如互联网上建立通信的其他装置。可是内置或外置的调制解调器172可以经由用户输入接口160或其他合适的机构连接到系统总线121。在网络环境中,相对于计算机系统110或其部分显示的程序模块可以保存在远程存储器存储装置中。举例来说,而不限定,图1示出了在存储器装置181上驻留的远程应用程序185。应当理解到所示出的网络连接是示范性的,并且也可以使用在计算机之间建立通信链路的其他方法。
不同的分布式计算框架根据个人计算和互联网的交叉已经并正在发展着。个人和商业用户同样被提供了应用和计算装置的无缝共同操作的和Web使能的接口,使得面向Web浏览和面向网络的计算活动增加。
例如从微软公司,One Microsoft Way,Redmond,Washington 98052,可获得的MICROSOFT′s.NETTM平台包括服务器、预制组件服务、例如基于Web的数据存储和可下载的装置软件。当此处示范性实施例结合驻留在计算装置中的软件进行描述时,本发明的一个或多个部分也可以经由操作系统、应用程序接口(API)或在任何协同处理器之间的″中间人″对象、显示装置和请求对象来实现,使得根据本发明的操作可以经由所有.NETTM的语言和服务并也在其它分布式计算框架内被执行、支持或访问。
示范性实施例
图2显示了包含当前发明一些方面的示范性系统体系结构的框图。示出了包括中间语言编译器和分布式执行引擎流水线的查询体系结构200。该体系结构显示了示范性的基本块,这些基本块被用来执行接收、编译、解释和访问数据,用于在多个数据源和类型上查询。可以使用多个前端语言编译器210,并且其一般是相关语言。例如,编译器210可以是与XML或XML相关的标准一致的XML相关编译器。该初始或输入查询可以从例如图1所示的多个输入装置中任何一个接收或输入。返回图2,前端编译器210可以接收查询例如XML查询、XML视图、或其他涉及XML语言的查询,以产生已编译的输入查询含义的中间语言表达220。用于前端编译器的实例语言类型包括XPath的W3C标准、XMLStylesheet语言(XSL)、XSLT、XML。附加的实例包括XML视图编译器及其它。在查询及视图语言和多目标模型之间的中间语言抽象允许实际数据,例如将来自MICROS0FT′s.NETTM的XML数据和虚拟XML数据用作数据源。
如图2所显示产生的中间语言代表输入查询或视图。同样,因为它是查询含义的明显表达,所以它也可以被定义为查询中间语言(QIL)。该查询中间语言可以被视为共同通过用于体系结构200的所有查询和视图语言编译器210的语义表达。例如,如果输入编译器在XML数据上操作,则QIL在多个不同目标数据源(例如关系和非关系数据)上使得多个不同XML查询语言和视图定义语言(例如XPath和XSLT)能够抽象。同样,QIL使得共用结构支撑所有兼容的XML查询语言。本领域技术人员将会认识到,在查询体系结构200中使用中间语言表达的优点。内部的每个操作都是明显和无歧义的,优选的是完全地将帮助生成QIL的前端编译器从使用QIL的分布式查询引擎流水线上分离。
前面的实例表示了当前发明一个上下文的实施例,当前发明使用XML中间语言表达作为输入输入到分布式查询引擎流水线。其他中间语言表达或直接基础语言可以用作输入输入到本发明,例如作为实例,直接LDP、AD、XML或SQL语言查询输入来作几个例子。
中间语言表达220可以选择性地是优化的230,用于随后阶段更加有效的处理。图2的优化器仅作为当前发明上下文提供,并且不严格需要。输入查询优化的或未优化的中间语言表达220可以提供到分布式查询引擎流水线240。
分布式查询引擎流水线允许在不同数据源260上查询。该流水线引擎将中间语言查询分配到具有特定数据模型的执行机器中。这允许查询执行由执行机器来完成,该执行引擎在特定数据模型内最大化查询效率。因此在流水线240内的执行引擎可以构造为使得他们在每个支撑的数据源内,在与数据模块相一致的数据源的基础上有效工作。例如:用于SQL数据库源的执行引擎可以在具有SQL数据库管理系统的相关数据库上查询效率最优化。在流水线内的每个执行引擎具有到其特定数据源的访问250,该特定数据源承受其自身数据模型。分布式查询引擎能够在一个或多个数据源上查询,该一个或多个数据源在各种查询中具有一个或多个数据模型。当执行分布式查询时,流水线的执行引擎通常产生为进一步处理、存储、显示给用户可用的查询结果270,或者例如提供给随后的软件应用。
图3表示了图2中分布式查询引擎流水线240的框图。图3显示了分布式查询引擎流水线的基本内部体系结构。该流水线由级联或堆栈分析引擎310、320、330和执行引擎370、380和390组成。应当指出图3示出了三个分析引擎和三个执行引擎,但是像小至两个和多至N个的分析/执行引擎对可以被级联用于给定的流水线应用。
输入查询300由分析引擎A310接收。该引擎检查查询和找出查询的部分,该查询部分知道如何优化或传递312到执行引擎。分析引擎310去除识别部分并用占位符替换他们。从而该引擎310重写查询并将314带有占位符的查询均衡传递到分析引擎B 320上。因此在该堆栈内该引擎310将修改的查询传递到下一引擎。
分析引擎A 310已识别的查询的部分被编译并被传递312到累加器340以保持编译查询部分(编译查询A)。请注意分析引擎A 310不了解分析引擎B。引擎A提取它能识别的和能由特定执行引擎处理的查询部分,并且将查询平衡传递出。堆栈中的下一分析引擎,若有的话,仅仅识别对应于不同执行引擎的查询部分。
分析引擎B 320从引擎A接收修改后的查询并识别修改后的查询部分,这一部分能传递322到执行引擎。然后分析引擎B去除该识别部分,编译它,并将它传送到保持已编译查询B的累加器350。然后分析引擎B 320通过置换,用占位符、占位符识别和提取的部分来重写它所收到的查询。然后在该堆栈中该分析引擎320传递两次修改的查询324到下一引擎。分析引擎C 330从引擎B接收该两次修改的查询并且识别该两次修改的查询部分可以传递332到执行引擎。分析引擎C然后去除该识别部分,编译它,并将它传送到保持已编译查询C的累加器360。在实现分析引擎的更多层或阶段的系统中,分析引擎C 330可以通过置换,用占位符、它识别和提取的部分来重写它所收到的查询。在堆栈中,该分析引擎C 320可以传递三次修改的查询到下一引擎。因此明显的分布式流水线分析引擎可以按所需级联。
编译的查询累加器340、350和360一起形成组合查询。每个查询部分(A、B和C)与在具有特定数据模型的数据源上有效执行查询的执行引擎相联系。例如,编译查询A 340能够由执行引擎A 390执行。执行引擎A能够访问250、具有对应于与编译查询A一致的数据模型的至少一部分的一个或多个数据源260。
由编译查询A、B和C组合形成的组合查询340、350和360分别可以视为打包系列查询。例如,编译查询C 360是子查询并是编译查询B 350的一部分。因此,编译查询C由编译查询B打包。同样地,编译查询B 350是编译查询A 340的子查询并且编译查询B由编译查询A打包。
应当指出,由编译查询A、B和C导致的编译和嵌套或打包查询是本发明有用的输出,这些查询输出可以存储用于将来使用。该存储的查询可以在相同或不同计算机上立即或延迟一段时间后执行。
为了执行编译查询A、B和C的组合查询组合,需要执行引擎次序工作,这允许连续级别的包被打开。例如,为了编译查询A完全执行,编译查询B应该优选被执行。但是为了将编译查询B执行到完全执行,编译查询C应该优选被执行。因此,打开包的顺序优选首先是最里边的包,随后是连续的更高级别的包。在图3的实例中,编译查询C可以在编译查询B之前优选执行并且编译查询B可以在编译查询A之前优选执行。图3的执行引擎允许执行的优先权。
执行引擎C接收365最里边的可执行编译查询360。该执行引擎C然后执行它的编译查询。包含兼容数据模型的一个或多个数据源260、373和250被访问。该数据源260返回372所需要的数据。然而,所提供的由分析引擎B 320插入编译查询C中的占位符表明执行引擎C需要附加信息来完成查询结果。实质上,执行引擎C作为信息的外部源回叫375到执行引擎B 380,来完成编译查询C的执行。由分析引擎B插入到编译查询C中的占位符回叫前一执行引擎,好象它是外部数据源。
执行引擎B 380接收来自执行引擎C的呼叫。执行引擎B然后输入355编译查询B 350。编译查询B的执行通过访问382和250、一个或多个数据源260来进行。数据源260返回382所需的数据。然而,所提供的由分析引擎A 310插入的编译查询B中的占位符表明执行引擎B需要附加的信息来完成查询结果。执行引擎B作为信息的外部源回叫385到执行引擎A 390,来完成编译查询B的执行。由分析引擎A插入到编译查询B中的占位符回叫前一执行引擎,好象它是外部数据源。
执行引擎A 390接收385来自执行引擎B的呼叫。然后执行引擎B输入345编译查询B 340。编译查询A的执行通过访问392和250、一个或多个数据源260来进行。数据源260返回392所需的数据。在该实例中,在编译查询A内有明显插入的占位符,因此该查询可以完全执行。
执行引擎A提供编译查询A 340结果到执行引擎B。执行引擎A已经完成它对来自执行引擎B的呼叫的响应。收到来自执行引擎A的查询结果时,执行引擎B能够完成它的编译查询B 350的执行。通过提供375从执行引擎A所获得的信息和它自身查询结果到执行引擎C,执行引擎B然后响应。执行引擎B已经完成它对来自执行引擎C的呼叫的响应。
收到来自执行引擎B的查询结果时,执行引擎C能够完成它的编译查询C 360的执行。通过提供395从执行引擎B所获得的信息和它自身查询结果来形成初始输入查询300的完整结果,执行引擎C然后响应。
图4是相对于图3描述的示范性过程的流程图。该过程通过接收输入查询启动410。该查询被提供到第一分析引擎,该第一分析引擎识别415对应于执行引擎和数据模型的一部分查询。输入查询已识别部分被编译用来执行并被送到存储位置420用于后面的恢复。然后该第一分析引擎可以重写输入查询425来去除已识别部分并用占位符置换失去部分。该第一分析引擎然后可以传递重写后的查询430到下一分析引擎,用于处理查询平衡。如果最后一个分析引擎到达435,则该过程可以改变。如果未到达在分析引擎级联中最后一个分析引擎,那么通过下一分析引擎该过程继续进行阶段440,识别该下一分析引擎能够容纳的重写查询部分。该过程继续进行,下一分析引擎如前面一样走过识别415、编译420、重写425和传送430步骤。
如果该最后一个分析引擎已完成它的任务435,那么执行阶段开始445。优选地,该执行阶段和被存储的最后一个分析引擎编译一起开始。该最后编译也已知为最里面的编译。可选地,该执行可以与第一分析引擎编译一起开始。图4的流程图构建来显示与最后一个分析引擎编译一起开始的执行,尽管本领域技术人员可以构建第一分析引擎编译用于开始执行组合查询的流程。
应当指出,在执行445开始的编译查询部分可以为系统可使用的输出。在使用合适的执行引擎的相同或不同系统上,该编译查询可以立刻执行或者恢复用于后面的应用。
与最后一个分析引擎445编译一起开始执行,该对应的执行引擎可以回叫查询450对应编译部分。该引擎执行恢复的编译查询455。最初,在查询中将会有占位符,其将告知执行引擎为信息460进行外部源呼叫。该外部源呼叫可以进行465,并且来自下一级联执行引擎的数据将被请求。在该实例中,外部数据源为下一级联执行引擎。该下一引擎从存储器中回叫它对应的编译查询450并执行查询455。如果在执行查询中遇到占位符,该执行引擎可以进行产生外部源数据呼叫到下一级联执行引擎。指出该过程继续从一个级联执行引擎移动到下一个,直到执行引擎不再遇到外部源的占位符为止。
如果在级联中的执行引擎没有外部占位符,并因此没有外部呼叫需要进行,那么那个查询的全部响应可以被给出到呼叫执行引擎470。然后在级联中下一更高引擎对应于它的下一更高执行引擎呼叫,来收集或累加嵌套的查询结果475。如果下一更高引擎也对应于呼叫480,那么外部源呼叫的执行移到下一执行引擎485。然后下一执行引擎发送它的查询结果返回到呼叫引擎470来收集累加的查询结果475。当所有的外部数据呼叫完成时,最里面的执行引擎或者基础引擎基本上已经恢复所有更高等级执行的所有结果,并累加全部查询490的结果。在该点来自初始恢复输入查询410的查询结果被累加并为下一过程可用或供用户使用。
上面讲述过程的编码实例在下面提供。例如设想如下查询:
‘An XQuery combining relational and XML operators’ For$in sql:table (“customers”) where sql:column($i,‘CustomerID’)=‘ALFKI’ return <Customer id=“{sql:column($i,‘Customer ID’)}” name=“{sql:column($i,‘ContactName’)}”> <OrderList>{ for $j in sql:table(“Orders”) where sql:column($i,‘CustomerID’)=sql:column($i,‘Customer ID’) and position($j)>=3 return<Order id=”{sql:column($J,‘OrderID’)}“/> }</OrderList> </Customer>
该查询将相关操作者例如对比列数值与XML操作符(例如位置)相组合。如果该查询分成两部分:一部分使用SQL服务器引擎可以执行并且另一部分使用XML引擎可以执行。该XQuery可以编译入QIL并随后被分析为可由SQL服务器执行的模式。通过去除那些模式、在虚拟XML文档上用导航置换它们,该查询随后可以被重写。
再次,优点为该操作实现了仅仅部分绝对需要的映射,并且尽可能多的查询被推入SQL服务器。这可以通过从查询中提取所有SQL服务器操作并在虚拟XML文档上用导航置换它们而完成,例如如下:
for $i in document(“virtual”)/root/X1 return <Customer id=“{$i@CustomerID}“name=“{$i/@ContactName}“> <OrderList> { for $j in $i/X2 where positio($j)>=3 return,Order id={$j/@OrderID}/> } </OrderList> </Customer>
应当注意,位置操作符留在适当的位置用于XML引擎执行。置换SQL表格和列的该虚拟XML文档在概念上等同于SQL查询的结果:
‘Extracted SQL parts of the XQuery,to be executed by SQL Server’
SELECT X1.CustomerID,X1.ContactName,X2.OrderID
FROM Customers X1 JOIN Oreders X2 ON X1.CustomerID=X2.CustomerID
WHERE X1.CustomerID=‘ALFKI’
FOR XML AUTO
其提出的XML形式如下:
‘Virtual XML document’
<root>
<X1 CustomerID=“ALFKI”ContactName=“Maria Anders”>
<X2 OrderID=“10643”/>
<X2 OrderID=“10692”/>
<X2 OrderID=“10702”/>
<X2 OrderID=“10835”/>
<X2 OrderID=“10952”/>
<X2 OrderID=“11011”/>
</X1>
</root>
然而,这仅仅在概念上是对的;事实上,没有XML曾被建造。相反,普通的SQL查询发送到SQL服务器来执行结合和过滤,并且行组(rowset)结果通过客户XPathNavigator接口作为虚拟XML暴露给XML引擎。
如上所述,虽然结合不同计算装置和网络体系已经描述了本发明的示范性实施例,基础的概念也可以用于需要执行查询系统的任何计算装置或系统中。因此,本发明的方法和系统可以应用于不同应用和装置上。虽然此处选择示范性编程语言、命名和实例作为不同选择的表达,这些语言、命名和实例并不意欲限定。本领域普通技术人员将会理解到存在多种方法提供结果代码,该结果代码获得相同、相似或等同的本发明所获得的系统和方法。
此处描述的不同技术可以结合硬件或软件或者在合适的地方两者的结合来实现。因此,本发明的方法和设备或者其某些方法或部分,可以采取包含在有形媒介内的程序代码(例如指令)的形式,该有形媒介例如软盘、CD-ROM、硬盘驱动器或者任何其它机器可读存储媒介,其中当程序代码由机器例如计算机载入并执行时,该机器变成实践本发明的设备。程序代码在可编程计算机上执行的情况下,计算装置一般包括处理器、由处理器可读的存储媒介(包括易失和非易失存储器和/或存储元件)、至少一个输入装置和至少一个输出装置。通过使用数据处理API等,利用本发明信号处理服务的一个或多个程序优选以高等级程序上的或对象定位的编程语言执行,与计算机相通信。然而,如果需要,程序可以以装置或机器语言来执行。在任何情况下,该语言可以为编译或解释语言,并与硬件执行指令结合。
本发明的方法和设备也可以经由为程序代码形式包含的通信来实践,该程序代码在一些传送媒介上传送,例如在电线或电缆上、通过光纤、或经由任何其它形式的传送,其中当程序代码由机器获得并载入和执行时,如上在示范性实施例中所描述的诸如EPROM、门阵列、可编程逻辑装置(PLD)、客户计算机、录像机等,或者具有信号处理能力的接收机器都变成实践本发明的设备。当在通用目的的处理器上执行时,程序代码与处理器相结合来提供专用设备,该专用设备进行操作来激活本发明功能性。另外,结合本发明使用的任何存储技术可以不变地为硬件和软件的结合。
虽然本发明结合不同图形的优选实施例进行了描述,应当理解到可以使用其它类似的实施例或者对所描述的实施例进行修改和添加,用于执行与本发明相同的功能而不背离本发明。而且,尤其当无线网络装置的数量继续激增时,应当重点指出预期有不同的计算机平台,包括手提装置操作系统和其它应用特定的操作系统。因此,本发明不应当局限于任何一个单独的实施例,而应当根据附加的权利要求来构造保护幅度和范围。
Claims (16)
1.一种在一个或多个执行引擎上分配查询部分的方法,所述方法包括:
接收输入查询;
用第一分析引擎识别可以由第一执行引擎处理的输入查询部分;
编译输入查询的识别部分形成第一编译部分;
重写输入查询以形成第一重写查询,其中该输入查询的识别部分从该输入查询中去除并由第一占位符置换;
传递第一重写查询到第二分析引擎;
用第二分析引擎识别可以由第二执行引擎处理的第一重写查询部分;以及
编译第一重写查询的识别部分产生第二编译部分,其中该输入查询在第一执行引擎和第二执行引擎上分配。
2、如权利要求1所述的方法,进一步包括:重写第一重写查询以形成第二重写查询,其中第一重写查询的识别部分从第一重写查询中去除并由第二占位符置换。
3、如权利要求1所述的方法,其中重写操作进一步包括将第二编译部分打包到输入查询的第一编译部分中。
4、如权利要求1所述的方法,其中第一编译部分和第二编译部分可以在不同数据源上执行。
5、如权利要求1所述的方法,其中第一分析引擎是基于结构化查询语言的引擎并且第二分析引擎是基于扩展标记语言的引擎。
6、如权利要求1所述的方法,进一步包括:
使用第二执行引擎部分地执行第二编译部分形成第二中间结果和第一占位符的组合,其中第一占位符保持第二编译部分的未执行部分;
从第二执行引擎产生呼叫到第一执行引擎,请求对应于第一占位符的数据;
使用第一执行引擎执行第一编译部分以形成对应于第一占位符的第一中间结果并满足呼叫;
将第一中间结果提供到第二执行引擎;以及
用第一中间结果代替第一占位符形成第二中间结果和第一中间结果的组合,该第一中间结果包括组合的输入查询结果。
7、如权利要求6所述的方法,其中第一执行引擎和第二执行引擎在包括不同数据模型的查询上操作。
8、如权利要求1所述的方法,进一步包括:使用第一执行引擎部分地执行第一编译部分形成第一中间结果;
从第一执行引擎产生呼叫到第二执行引擎,请求与输入查询未识别部分相对应的数据;
使用第二执行引擎执行第二编译部分以形成第二中间结果并满足该呼叫;
将第二中间结果提供给第一执行引擎;以及
将第一中间结果与第二中间结果组合以形成组合的输入查询结果。
9、如权利要求8所述的方法,其中该第一执行引擎和第二执行引擎在包括不同数据模型的查询上操作。
10、一种用于对输入查询分配处理的系统,所述的系统包括:
两个或多个分析引擎,用于分离出能被编译和执行的输入查询部分;
两个或多个执行引擎,用于对输入查询执行操作;以及
访问一个或多个数据源,其中两个或多个分析引擎操作独立地识别和编译输入查询的一个或多个部分,其中:
两个或多个分析引擎中至少一个重写该输入查询,以去除对应于执行引擎的输入查询部分,以及
该两个或多个执行引擎处理输入查询的一个或多个编译部分,使得来自于一个执行引擎的部分查询结果被传递到随后的执行引擎并被组合以形成整个输入查询结果。
11、一种包含指令的计算机可读媒介,当其在计算机上运行时,在两个或多个执行引擎上执行分配查询部分的方法,该方法包括:
接收输入查询;
用第一分析引擎识别可以由第一执行引擎处理的输入查询部分;
编译输入查询的识别部分形成第一编译部分;
重写输入查询以形成第一重写查询,其中该输入查询的识别部分从该输入查询中去除并由第一占位符置换;
传递第一重写查询到第二分析引擎;
用第二分析引擎识别可以由第二执行引擎处理的第一重写查询部分;以及
编译第一重写查询的识别部分产生第二编译部分,其中该输入查询在第一执行引擎和第二执行引擎上分配。
12、如权利要求11所述的计算机可读媒介,进一步包括:
使用第二执行引擎部分地执行第二编译部分形成第二中间结果和第一占位符的组合,其中第一占位符保持第二编译部分的未执行部分;
从第二执行引擎产生呼叫到第一执行引擎,请求对应于第一占位符的数据;
使用第一执行引擎执行第一编译部分以形成对应于第一占位符的第一中间结果并满足呼叫;
将第一中间结果提供到第二执行引擎;以及
用第一中间结果代替第一占位符形成第二中间结果和第一中间结果的组合,该第一中间结果包括组合的输入查询结果。
13、如权利要求12所述的方法,其中第一执行引擎和第二执行引擎在包括不同数据模型的查询上操作。
14、如权利要求12所述的方法,其中第一编译部分和第二编译部分在不同数据源上执行。
15、如权利要求11所述的计算机可读媒介,进一步包括:
使用第一执行引擎部分地执行第一编译部分形成第一中间结果;
从第一执行引擎产生呼叫到第二执行引擎,请求与输入未识别部分对应的数据;
使用第二执行引擎执行第二编译部分以形成第二中间结果并满足该呼叫;
将第二中间结果提供给第一执行引擎;
以及将第一中间结果与第二中间结果组合以形成组合的输入查询结果。
16、如权利要求15所述的方法,其中第一分析引擎是基于结构化查询语言的引擎并且第二分析引擎是基于扩展标记语言的引擎。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/601,730 | 2003-06-23 | ||
US10/601,730 US7472112B2 (en) | 2003-06-23 | 2003-06-23 | Distributed query engine pipeline method and system |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1573756A true CN1573756A (zh) | 2005-02-02 |
Family
ID=33418607
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2004100639168A Pending CN1573756A (zh) | 2003-06-23 | 2004-06-23 | 分布式查询引擎流水线方法和系统 |
Country Status (5)
Country | Link |
---|---|
US (1) | US7472112B2 (zh) |
EP (1) | EP1492031A3 (zh) |
JP (1) | JP2005018775A (zh) |
KR (1) | KR20050000342A (zh) |
CN (1) | CN1573756A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101495987B (zh) * | 2005-07-14 | 2012-04-18 | 微软公司 | 节点到节点通信流水线 |
CN102591925A (zh) * | 2010-12-13 | 2012-07-18 | 微软公司 | 以多维数据为中心的服务协议 |
CN103019799A (zh) * | 2011-07-15 | 2013-04-03 | 英飞凌科技股份有限公司 | 具有指令签名支持的分布式编译处理 |
CN104036007A (zh) * | 2014-06-23 | 2014-09-10 | 北京京东尚科信息技术有限公司 | 一种分布式数据库查询方法及装置 |
Families Citing this family (101)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7233998B2 (en) * | 2001-03-22 | 2007-06-19 | Sony Computer Entertainment Inc. | Computer architecture and software cells for broadband networks |
US6996558B2 (en) * | 2002-02-26 | 2006-02-07 | International Business Machines Corporation | Application portability and extensibility through database schema and query abstraction |
US8244702B2 (en) | 2002-02-26 | 2012-08-14 | International Business Machines Corporation | Modification of a data repository based on an abstract data representation |
US7822771B1 (en) * | 2003-09-23 | 2010-10-26 | Teradata Us, Inc. | Search query generation |
US7475257B2 (en) | 2003-09-25 | 2009-01-06 | International Business Machines Corporation | System and method for selecting and using a signal processor in a multiprocessor system to operate as a security for encryption/decryption of data |
US7318218B2 (en) * | 2003-09-25 | 2008-01-08 | International Business Machines Corporation | System and method for processor thread for software debugging |
US20050071578A1 (en) * | 2003-09-25 | 2005-03-31 | International Business Machines Corporation | System and method for manipulating data with a plurality of processors |
US7523157B2 (en) | 2003-09-25 | 2009-04-21 | International Business Machines Corporation | Managing a plurality of processors as devices |
US20050071828A1 (en) * | 2003-09-25 | 2005-03-31 | International Business Machines Corporation | System and method for compiling source code for multi-processor environments |
US7444632B2 (en) * | 2003-09-25 | 2008-10-28 | International Business Machines Corporation | Balancing computational load across a plurality of processors |
US7146529B2 (en) * | 2003-09-25 | 2006-12-05 | International Business Machines Corporation | System and method for processor thread acting as a system service processor |
US7516456B2 (en) * | 2003-09-25 | 2009-04-07 | International Business Machines Corporation | Asymmetric heterogeneous multi-threaded operating system |
US7389508B2 (en) * | 2003-09-25 | 2008-06-17 | International Business Machines Corporation | System and method for grouping processors and assigning shared memory space to a group in heterogeneous computer environment |
US7549145B2 (en) * | 2003-09-25 | 2009-06-16 | International Business Machines Corporation | Processor dedicated code handling in a multi-processor environment |
US7236998B2 (en) * | 2003-09-25 | 2007-06-26 | International Business Machines Corporation | System and method for solving a large system of dense linear equations |
US7415703B2 (en) * | 2003-09-25 | 2008-08-19 | International Business Machines Corporation | Loading software on a plurality of processors |
US7496917B2 (en) * | 2003-09-25 | 2009-02-24 | International Business Machines Corporation | Virtual devices using a pluarlity of processors |
US7900133B2 (en) | 2003-12-09 | 2011-03-01 | International Business Machines Corporation | Annotation structure type determination |
US7406691B2 (en) | 2004-01-13 | 2008-07-29 | International Business Machines Corporation | Minimizing complex decisions to allocate additional resources to a job submitted to a grid environment |
US7562143B2 (en) | 2004-01-13 | 2009-07-14 | International Business Machines Corporation | Managing escalating resource needs within a grid environment |
US7464159B2 (en) * | 2004-01-14 | 2008-12-09 | International Business Machines Corporation | Managing analysis of a degraded service in a grid environment |
US7552437B2 (en) | 2004-01-14 | 2009-06-23 | International Business Machines Corporation | Maintaining application operations within a suboptimal grid environment |
US7860875B2 (en) * | 2004-05-26 | 2010-12-28 | International Business Machines Corporation | Method for modifying a query by use of an external system for managing assignment of user and data classifications |
US7266547B2 (en) * | 2004-06-10 | 2007-09-04 | International Business Machines Corporation | Query meaning determination through a grid service |
US7406461B1 (en) | 2004-06-11 | 2008-07-29 | Seisint, Inc. | System and method for processing a request to perform an activity associated with a precompiled query |
US7778997B1 (en) * | 2004-06-11 | 2010-08-17 | Seisint, Inc. | System and method for managing throughput in the processing of query requests in a database system |
US8266234B1 (en) | 2004-06-11 | 2012-09-11 | Seisint, Inc. | System and method for enhancing system reliability using multiple channels and multicast |
US7873650B1 (en) | 2004-06-11 | 2011-01-18 | Seisint, Inc. | System and method for distributing data in a parallel processing system |
US7801911B1 (en) | 2004-06-11 | 2010-09-21 | Seisint, Inc. | System and method for using activity identifications in a database system |
US7693826B1 (en) * | 2004-06-11 | 2010-04-06 | Seisint, Inc. | System and method for pre-compiling a query and pre-keying a database system |
US7797333B1 (en) | 2004-06-11 | 2010-09-14 | Seisint, Inc. | System and method for returning results of a query from one or more slave nodes to one or more master nodes of a database system |
US7739287B1 (en) * | 2004-06-11 | 2010-06-15 | Seisint, Inc. | System and method for dynamically creating keys in a database system |
US7917495B1 (en) * | 2004-06-11 | 2011-03-29 | Seisint, Inc. | System and method for processing query requests in a database system |
US7302447B2 (en) * | 2005-01-14 | 2007-11-27 | International Business Machines Corporation | Virtual columns |
US7712100B2 (en) * | 2004-09-14 | 2010-05-04 | International Business Machines Corporation | Determining a capacity of a grid environment to handle a required workload for a virtual grid job request |
US9171100B2 (en) | 2004-09-22 | 2015-10-27 | Primo M. Pettovello | MTree an XPath multi-axis structure threaded index |
US8447774B1 (en) * | 2004-11-23 | 2013-05-21 | Progress Software Corporation | Database-independent mechanism for retrieving relational data as XML |
US20060116999A1 (en) * | 2004-11-30 | 2006-06-01 | International Business Machines Corporation | Sequential stepwise query condition building |
US7461052B2 (en) * | 2004-12-06 | 2008-12-02 | International Business Machines Corporation | Abstract query plan |
US7333981B2 (en) * | 2004-12-17 | 2008-02-19 | International Business Machines Corporation | Transformation of a physical query into an abstract query |
US8131744B2 (en) * | 2004-12-17 | 2012-03-06 | International Business Machines Corporation | Well organized query result sets |
US8112459B2 (en) * | 2004-12-17 | 2012-02-07 | International Business Machines Corporation | Creating a logical table from multiple differently formatted physical tables having different access methods |
US7707288B2 (en) | 2005-01-06 | 2010-04-27 | International Business Machines Corporation | Automatically building a locally managed virtual node grouping to handle a grid job requiring a degree of resource parallelism within a grid environment |
US7502850B2 (en) * | 2005-01-06 | 2009-03-10 | International Business Machines Corporation | Verifying resource functionality before use by a grid job submitted to a grid environment |
US7668741B2 (en) | 2005-01-06 | 2010-02-23 | International Business Machines Corporation | Managing compliance with service level agreements in a grid environment |
US7590623B2 (en) | 2005-01-06 | 2009-09-15 | International Business Machines Corporation | Automated management of software images for efficient resource node building within a grid environment |
US7793308B2 (en) | 2005-01-06 | 2010-09-07 | International Business Machines Corporation | Setting operation based resource utilization thresholds for resource use by a process |
US7761557B2 (en) | 2005-01-06 | 2010-07-20 | International Business Machines Corporation | Facilitating overall grid environment management by monitoring and distributing grid activity |
US7533170B2 (en) * | 2005-01-06 | 2009-05-12 | International Business Machines Corporation | Coordinating the monitoring, management, and prediction of unintended changes within a grid environment |
US7562035B2 (en) | 2005-01-12 | 2009-07-14 | International Business Machines Corporation | Automating responses by grid providers to bid requests indicating criteria for a grid job |
US7467196B2 (en) * | 2005-01-12 | 2008-12-16 | International Business Machines Corporation | Managing network errors communicated in a message transaction with error information using a troubleshooting agent |
US7571120B2 (en) | 2005-01-12 | 2009-08-04 | International Business Machines Corporation | Computer implemented method for estimating future grid job costs by classifying grid jobs and storing results of processing grid job microcosms |
US7472079B2 (en) * | 2005-01-12 | 2008-12-30 | International Business Machines Corporation | Computer implemented method for automatically controlling selection of a grid provider for a grid job |
US7624097B2 (en) * | 2005-01-14 | 2009-11-24 | International Business Machines Corporation | Abstract records |
US8122012B2 (en) | 2005-01-14 | 2012-02-21 | International Business Machines Corporation | Abstract record timeline rendering/display |
US7321895B2 (en) * | 2005-01-14 | 2008-01-22 | International Business Machines Corporation | Timeline condition support for an abstract database |
US8095553B2 (en) * | 2005-03-17 | 2012-01-10 | International Business Machines Corporation | Sequence support operators for an abstract database |
JP4723301B2 (ja) * | 2005-07-21 | 2011-07-13 | 株式会社日立製作所 | ストリームデータ処理システムおよびストリームデータ処理方法 |
US7440945B2 (en) | 2005-11-10 | 2008-10-21 | International Business Machines Corporation | Dynamic discovery of abstract rule set required inputs |
US7444332B2 (en) | 2005-11-10 | 2008-10-28 | International Business Machines Corporation | Strict validation of inference rule based on abstraction environment |
US7664742B2 (en) | 2005-11-14 | 2010-02-16 | Pettovello Primo M | Index data structure for a peer-to-peer network |
US8027982B2 (en) | 2006-03-01 | 2011-09-27 | Oracle International Corporation | Self-service sources for secure search |
US8005816B2 (en) | 2006-03-01 | 2011-08-23 | Oracle International Corporation | Auto generation of suggested links in a search system |
US7752221B2 (en) * | 2006-03-01 | 2010-07-06 | Oracle International Corp. | Progressive relaxation across tiers |
US8332430B2 (en) | 2006-03-01 | 2012-12-11 | Oracle International Corporation | Secure search performance improvement |
US8868540B2 (en) | 2006-03-01 | 2014-10-21 | Oracle International Corporation | Method for suggesting web links and alternate terms for matching search queries |
US7941419B2 (en) | 2006-03-01 | 2011-05-10 | Oracle International Corporation | Suggested content with attribute parameterization |
US9177124B2 (en) | 2006-03-01 | 2015-11-03 | Oracle International Corporation | Flexible authentication framework |
US8707451B2 (en) | 2006-03-01 | 2014-04-22 | Oracle International Corporation | Search hit URL modification for secure application integration |
US8433712B2 (en) | 2006-03-01 | 2013-04-30 | Oracle International Corporation | Link analysis for enterprise environment |
US8875249B2 (en) | 2006-03-01 | 2014-10-28 | Oracle International Corporation | Minimum lifespan credentials for crawling data repositories |
US8214394B2 (en) | 2006-03-01 | 2012-07-03 | Oracle International Corporation | Propagating user identities in a secure federated search system |
US20080065591A1 (en) * | 2006-09-08 | 2008-03-13 | Leon Guzenda | Configurable software database parallel query system and method |
JP5068062B2 (ja) * | 2006-10-30 | 2012-11-07 | インターナショナル・ビジネス・マシーンズ・コーポレーション | データベースを統合するためのシステム、方法、およびプログラム |
US8244747B2 (en) * | 2006-12-05 | 2012-08-14 | International Business Machines Corporation | Middleware for query processing across a network of RFID databases |
US8140557B2 (en) | 2007-05-15 | 2012-03-20 | International Business Machines Corporation | Ontological translation of abstract rules |
US7996392B2 (en) | 2007-06-27 | 2011-08-09 | Oracle International Corporation | Changing ranking algorithms based on customer settings |
US8316007B2 (en) | 2007-06-28 | 2012-11-20 | Oracle International Corporation | Automatically finding acronyms and synonyms in a corpus |
US8386508B2 (en) * | 2008-04-28 | 2013-02-26 | Infosys Technologies Limited | System and method for parallel query evaluation |
US8171045B2 (en) * | 2008-07-31 | 2012-05-01 | Xsevo Systems, Inc. | Record based code structure |
US8805875B1 (en) * | 2008-10-04 | 2014-08-12 | Reflex Systems Llc | Systems and methods for information retrieval |
US8676808B2 (en) | 2009-07-09 | 2014-03-18 | Dillon Software Services, Llc | Data store interface that facilitates distribution of application functionality across a multi-tier client-server architecture |
US9081873B1 (en) | 2009-10-05 | 2015-07-14 | Stratacloud, Inc. | Method and system for information retrieval in response to a query |
US8631028B1 (en) | 2009-10-29 | 2014-01-14 | Primo M. Pettovello | XPath query processing improvements |
KR101721892B1 (ko) * | 2009-12-23 | 2017-04-10 | 아브 이니티오 테크놀로지 엘엘시 | 쿼리 관리 |
US8949210B2 (en) | 2010-05-13 | 2015-02-03 | Microsoft Corporation | Analysis stack for complex event flows |
EP2580692B1 (en) * | 2010-06-10 | 2019-02-13 | EntIT Software LLC | Query pipeline |
US20120215763A1 (en) * | 2011-02-18 | 2012-08-23 | Microsoft Corporation | Dynamic distributed query execution over heterogeneous sources |
US8689226B2 (en) | 2011-05-11 | 2014-04-01 | Hewlett-Packard Development Company, L.P. | Assigning resources to processing stages of a processing subsystem |
US8725730B2 (en) | 2011-05-23 | 2014-05-13 | Hewlett-Packard Development Company, L.P. | Responding to a query in a data processing system |
CN102169509B (zh) * | 2011-05-30 | 2012-07-25 | 中铁第一勘察设计院集团有限公司 | 基于关系数据库及xml文件的地铁综合管线数据储存方法 |
US9177021B2 (en) * | 2011-06-09 | 2015-11-03 | International Business Machines Corporation | Relational query planning for non-relational data sources |
US20130060806A1 (en) * | 2011-09-07 | 2013-03-07 | Microsoft Corporation | Data Solution Composition Architecture |
US9053210B2 (en) * | 2012-12-14 | 2015-06-09 | Microsoft Technology Licensing, Llc | Graph query processing using plurality of engines |
CN103106261B (zh) * | 2013-01-28 | 2016-02-10 | 中国电子科技集团公司第二十八研究所 | 基于窄带云数据服务的分布式查询方法 |
US10192187B2 (en) * | 2014-01-03 | 2019-01-29 | Visier Solutions, Inc. | Comparison of client and benchmark data |
US9449098B2 (en) * | 2014-05-30 | 2016-09-20 | Macy's West Stores, Inc. | System and method for performing a multiple pass search |
US9961166B2 (en) * | 2015-07-31 | 2018-05-01 | Microsoft Technology Licensing, Llc | Organizational directory access client and server leveraging local and network search |
US10671607B2 (en) * | 2016-09-23 | 2020-06-02 | Futurewei Technologies, Inc. | Pipeline dependent tree query optimizer and scheduler |
CN109885585B (zh) * | 2019-02-18 | 2020-01-10 | 星环信息科技(上海)有限公司 | 支持存储过程、触发器与视图的分布式数据库系统和方法 |
KR102605929B1 (ko) * | 2022-09-29 | 2023-11-30 | 스마트마인드 주식회사 | 서로 다른 프로세서 자원을 할당하여 정형 데이터와 비정형 데이터를 처리하는 방법 및 이러한 방법을 제공하는 데이터 처리 시스템 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5873080A (en) * | 1996-09-20 | 1999-02-16 | International Business Machines Corporation | Using multiple search engines to search multimedia data |
US6078914A (en) * | 1996-12-09 | 2000-06-20 | Open Text Corporation | Natural language meta-search system and method |
US6226635B1 (en) * | 1998-08-14 | 2001-05-01 | Microsoft Corporation | Layered query management |
US6324534B1 (en) * | 1999-09-10 | 2001-11-27 | Requisite Technology, Inc. | Sequential subset catalog search engine |
US6697799B1 (en) * | 1999-09-10 | 2004-02-24 | Requisite Technology, Inc. | Automated classification of items using cascade searches |
US7305399B2 (en) * | 2000-03-09 | 2007-12-04 | The Web Access, Inc. | Method and apparatus for applying a parametric search methodology to a directory tree database format |
US20020133504A1 (en) * | 2000-10-27 | 2002-09-19 | Harry Vlahos | Integrating heterogeneous data and tools |
US6834287B1 (en) * | 2001-03-14 | 2004-12-21 | Trilogy Development Group, Inc. | Classification engine for managing attribute-based data |
US6795832B2 (en) * | 2001-10-09 | 2004-09-21 | Hewlett-Packard Development Company, L.P. | Rule based compatibility module |
US7289981B2 (en) * | 2002-12-10 | 2007-10-30 | International Business Machines Corporation | Using text search engine for parametric search |
US6836778B2 (en) * | 2003-05-01 | 2004-12-28 | Oracle International Corporation | Techniques for changing XML content in a relational database |
-
2003
- 2003-06-23 US US10/601,730 patent/US7472112B2/en not_active Expired - Fee Related
-
2004
- 2004-06-07 EP EP04102564A patent/EP1492031A3/en not_active Withdrawn
- 2004-06-22 KR KR1020040046668A patent/KR20050000342A/ko not_active Application Discontinuation
- 2004-06-23 JP JP2004185645A patent/JP2005018775A/ja active Pending
- 2004-06-23 CN CNA2004100639168A patent/CN1573756A/zh active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101495987B (zh) * | 2005-07-14 | 2012-04-18 | 微软公司 | 节点到节点通信流水线 |
CN102591925A (zh) * | 2010-12-13 | 2012-07-18 | 微软公司 | 以多维数据为中心的服务协议 |
CN103019799A (zh) * | 2011-07-15 | 2013-04-03 | 英飞凌科技股份有限公司 | 具有指令签名支持的分布式编译处理 |
CN103019799B (zh) * | 2011-07-15 | 2016-08-17 | 英飞凌科技股份有限公司 | 具有指令签名支持的分布式编译处理 |
CN104036007A (zh) * | 2014-06-23 | 2014-09-10 | 北京京东尚科信息技术有限公司 | 一种分布式数据库查询方法及装置 |
CN104036007B (zh) * | 2014-06-23 | 2017-12-12 | 北京京东尚科信息技术有限公司 | 一种分布式数据库查询方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
US20040260685A1 (en) | 2004-12-23 |
KR20050000342A (ko) | 2005-01-03 |
EP1492031A9 (en) | 2005-03-23 |
JP2005018775A (ja) | 2005-01-20 |
EP1492031A2 (en) | 2004-12-29 |
US7472112B2 (en) | 2008-12-30 |
EP1492031A3 (en) | 2005-03-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1573756A (zh) | 分布式查询引擎流水线方法和系统 | |
AU2017202501B2 (en) | Managing data queries | |
CN1713179A (zh) | 在对象模型中的影响分析 | |
CN100527127C (zh) | 查询中间语言的方法和系统 | |
CN101300577B (zh) | 部分xml确认 | |
CN1255215A (zh) | 在信息处理系统中存储和操作数据的系统和方法 | |
CN1324031A (zh) | 多平台环境下的字符码转换系统以及计算机可读记录介质 | |
CN100350381C (zh) | 用于以一种语言独立语法记录宏的方法和系统 | |
CN1670728A (zh) | 具有标记数据的完全形式词典及其构建和使用方法 | |
CN1573693A (zh) | 用于创建、管理和使用代码段的系统和方法 | |
CN105718593A (zh) | 一种数据库查询优化方法及系统 | |
JP2007249785A (ja) | コンパイルプログラム、仮想データベースリモートアクセス用プログラムの製造方法、及び仮想データベースのリモートアクセス方法 | |
CN1750119A (zh) | 创建用于字母数字概念的语音识别语法 | |
CN1967538A (zh) | 存储状态指定健康相关情节数据的方法和系统 | |
CN110019314B (zh) | 基于数据项分析的动态数据封装方法、客户端和服务端 | |
CN101458692A (zh) | 一种战略物资行业知识库的平台及其构建方法 | |
CN109086573A (zh) | 多源生物大数据融合平台 | |
CN1809811A (zh) | 用于借助中心xml配置文件生成分布式java应用的方法和装置 | |
Pannarale et al. | GIDL: a rule based expert system for GenBank Intelligent Data Loading into the Molecular Biodiversity database | |
CN115905278A (zh) | 数据查询的方法及装置 | |
CN1737795A (zh) | 多数据源协同条件下的数据挖掘和知识发现方法 | |
US20220075778A1 (en) | Transforming operations of a computer program for execution at a database | |
Morishima et al. | A data modeling and query processing scheme for integration of structured document repositories and relational databases | |
CN108897897B (zh) | 一种数据处理方法和装置 | |
CN102023982A (zh) | 数据集成平台 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20050202 |