CN104598508B - 用于快速查询响应的***和方法 - Google Patents
用于快速查询响应的***和方法 Download PDFInfo
- Publication number
- CN104598508B CN104598508B CN201410473639.1A CN201410473639A CN104598508B CN 104598508 B CN104598508 B CN 104598508B CN 201410473639 A CN201410473639 A CN 201410473639A CN 104598508 B CN104598508 B CN 104598508B
- Authority
- CN
- China
- Prior art keywords
- query
- service engine
- data server
- request
- fast
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/273—Asynchronous replication or reconciliation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24534—Query rewriting; Transformation
- G06F16/24539—Query rewriting; Transformation using cached or materialised query results
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
- G06F16/24561—Intermediate data storage techniques for performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9537—Spatial or temporal dependent retrieval, e.g. spatiotemporal queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/40—Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
- G06F16/43—Querying
- G06F16/438—Presentation of query results
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Computing Systems (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明一般地描述了用于处理数据访问请求的计算机实现的方法、软件和***,其包括:接收由用户提交的、访问存储在主数据服务器的数据条目的请求;确定接收到的请求是否被快速查询服务引擎所支持,快速查询服务引擎不同于主数据服务器;响应于确定接收到的请求被快速查询服务引擎所支持,将请求引导到快速查询服务引擎;从快速查询服务引擎接收查询结果,查询结果由快速查询服务引擎处的内存数据存储中保持的多于一个的应答集合构成,内存数据存储中的应答集合与主数据服务器同步;以及将查询结果提供给提交请求的用户。
Description
背景技术
用户可以提交数据访问请求到数据库,并可以获得查询结果。
发明内容
一个方面中,一些实施方式提供用于处理数据访问请求的计算机实现的方法,包括:接收由用户提交的、访问存储在主数据服务器的数据条目的请求;确定接收到的请求是否被快速查询服务引擎所支持,快速查询服务引擎不同于主数据服务器;响应于确定接收到的请求被快速查询服务引擎所支持,将请求引导到快速查询服务引擎;从快速查询服务引擎接收查询结果,查询结果由快速查询服务引擎处的内存数据存储中保持的多于一个的应答集合构成,内存数据存储中的应答集合与主数据服务器同步;以及将查询结果提供给提交请求的用户。
实施方式可包括以下一个或多个特征。在一个配置中,确定接收到的请求是否被快速查询服务所支持可包括把所接收的请求分解成逻辑查询段;以及确定分解的逻辑查询段的对应应答集合是否被保持在快速查询服务引擎处的内存数据存储装置中。分解接收到的请求可包括:将接收到的请求分解成由至少一个合取(conjunctive)嵌套的逻辑查询段。分解接收到的请求可包括:将接收到的请求分解成由至少一个析取(disjunctive)嵌套的逻辑查询段。分解接收到的请求可包括:将接收到的请求分解成由至少一个非(negation)嵌套的逻辑查询段。
一个配置中,该方法可附加地包括:响应于确定该请求不被快速查询服务引擎所支持,将请求引导到主数据服务器。该方法还可包括:确定该请求是否修改了主数据服务器上的数据。此外,该方法可以包括:响应于确定该请求修改了主数据服务器上的数据,通知快速查询服务引擎保持在快速查询服务引擎处的内存数据存储中的、引用修改的数据的应答集合的内容已变为无效。
另一方面中,一些实施方式可提供一种计算机***,包含至少一个处理器,其中至少一个处理器被配置为执行以下操作:接收由用户提交的、访问存储在主数据服务器的数据条目的请求;确定接收到的请求是否被快速查询服务引擎所支持,快速查询服务引擎不同于主数据服务器;响应于确定接收到的请求被快速查询服务引擎所支持,将请求引导到快速查询服务引擎;从快速查询服务引擎接收查询结果,查询结果由快速查询服务引擎处的内存数据存储中保持的多于一个的应答集合构成,内存数据存储中的应答集合与主数据服务器同步;以及将查询结果提供给提交请求的用户。
实施方式可包括以下一个或多个特征。在一个配置中,确定接收到的请求是否被快速查询服务所支持可包括:把所接收的请求分解成逻辑查询段;以及确定分解的逻辑查询段的对应应答集合是否被保持在快速查询服务引擎处的内存数据存储装置中。分解接收到的请求可包括:将接收到的请求分解成由至少一个合取嵌套的逻辑查询段。分解接收到的请求可包括:将接收到的请求分解成由至少一个析取嵌套的逻辑查询段。分解接收到的请求可包括:将接收到的请求分解成由至少一个非嵌套的逻辑查询段。
一个配置中,操作可附加地包括:响应于确定该请求不被快速查询服务引擎所支持,将请求引导到主数据服务器。该操作还可包括:确定该请求是否修改了主数据服务器上的数据。此外,该操作可以包括:响应于确定该请求修改了主数据服务器上的数据,通知快速查询服务引擎保持在快速查询服务引擎处的内存数据存储中的、引用修改的数据的应答集合的内容已变为无效。
在再另一方面中,一些实施方式可提供一种计算机可读介质,包括软件指令,当该指令被计算机运行时,使得计算机执行如下操作:接收由用户提交的、访问存储在主数据服务器的数据条目的请求;确定接收到的请求是否被快速查询服务引擎所支持,快速查询服务引擎不同于主数据服务器;响应于确定接收到的请求被快速查询服务引擎所支持,将请求引导到快速查询服务引擎;从快速查询服务引擎接收查询结果,查询结果由快速查询服务引擎处的内存数据存储中保持的多于一个的应答集合构成,内存数据存储中的应答集合与主数据服务器同步;以及将查询结果提供给提交请求的用户。
实施方式可包括以下一个或多个特征。在一个配置中,确定接收到的请求是否被快速查询服务所支持可包括:把所接收的请求分解成逻辑查询段;以及确定分解的逻辑查询段的对应应答集合是否被保持在快速查询服务引擎处的内存数据存储装置中。分解接收到的请求可包括:将接收到的请求分解成由至少一个合取嵌套的逻辑查询段。分解接收到的请求可包括:将接收到的请求分解成由至少一个析取嵌套的逻辑查询段。分解接收到的请求可包括:将接收到的请求分解成由至少一个非嵌套的逻辑查询段。
一个配置中,该操作可附加地包括:响应于确定该请求不被快速查询服务引擎所支持,将请求引导到主数据服务器。该操作还可包括:确定该请求是否修改了主数据服务器上的数据。此外,该操作可以包括:响应于确定该请求修改了主数据服务器上的数据,通知快速查询服务引擎保持在快速查询服务引擎处的内存数据存储中的、引用修改的数据的应答集合的内容已变为无效。
在又另一个方面中,一些实施方式可提供用于查询处理的方法,该方法包括:接收转发的查询,该查询由用户提交以访问主数据服务器上的数据;确定针对所转发的查询的组件的对应应答集合在内存数据存储中是否可用;响应于确定对应应答集合可用,进一步确定对应应答集合是否有效;响应于确定对应应答集合可用并且有效,基于针对查询的组件的对应应答集合来构成查询结果;以及提供查询结果以响应由用户提交的查询。
实施方式可包括以下一个或多个特征。该方法还可以包括接收关于数据被用户提交的查询所修改的无效通知,数据被保持在内存数据存储装置中的至少一个应答集合引用。该方法还可以包括将引用修改的数据的该至少一个应答集合记录为无效。该方法还可包括从内存数据存储中去除该至少一个应答集合。该方法还可包括更新存储在内存数据存储装置中的该至少一个应答集合的内容。
该方法还可以包括响应于确定对应应答集合可用,但至少一个应答集合无效,抑制构成查询结果,直到存储在内存数据存储装置中的至少一个应答集合的内容已与主数据服务器中的对应数据同步。该方法还可包括促进更新存储在内存数据存储装置中的该至少一个应答集合的内容。该方法还可包括分派更新请求以更新存储在内存数据存储装置中的该至少一个应答集合的内容。分派更新请求可以包括:分派更新请求以从主数据服务器取回更新的内容。该方法还可以包括:响应于确定对应应答集合可用但至少一个应答集合无效,提供指示转发的查询的查询结果被阻止的反馈。
在又另一个方面中,一些实施方式可提供用于查询处理的计算机***。计算机***可包括一个处理器,其被配置为执行包括以下各项的操作:接收转发的查询,该查询由用户提交以访问主数据服务器上的数据;确定针对所转发的查询的组件的对应应答集合在内存数据存储中是否可用;响应于确定对应应答集合可用,进一步确定对应应答集合是否有效;响应于确定对应应答集合可用并且有效,基于针对查询的组件的对应应答集合来构成查询结果;以及提供查询结果以响应由用户提交的查询。
实施方式可包括以下一个或多个特征。该操作还可以包括接收关于数据被用户提交的查询所修改的无效通知,数据被保持在内存数据存储装置中的至少一个应答集合引用。该方法还可以包括将引用修改的数据的该至少一个应答集合记录为无效。该操作还可包括从内存数据存储中去除该至少一个应答集合。该操作还可包括更新存储在内存数据存储装置中的该至少一个应答集合的内容。
该操作还可以包括响应于确定对应应答集合可用但至少一个应答集合无效,抑制构成查询结果,直到存储在内存数据存储装置中的至少一个应答集合的内容已与主数据服务器中的对应数据同步。该操作还可包括促进更新存储在内存数据存储装置中的该至少一个应答集合的内容。该操作还可包括分派更新请求以更新存储在内存数据存储装置中的该至少一个应答集合的内容。分派更新请求可以包括:分派更新请求以从主数据服务器取回更新的内容。该操作还可以包括:响应于确定对应应答集合可用但至少一个应答集合无效,提供指示转发的查询的查询结果被阻止的反馈。
在又另一个方面中,一些实施方式可提供一种计算机可读介质,包含软件指令,当该指令被计算机运行时,使得计算机执行如下操作:接收转发的查询,该查询由用户提交以访问主数据服务器上的数据;确定针对所转发的查询的组件的对应应答集合在内存数据存储中是否可用;响应于确定对应应答集合可用,进一步确定对应应答集合是否有效;响应于确定对应应答集合可用并且有效,基于针对查询的组件的对应应答集合来构成查询结果;以及提供查询结果以响应由用户提交的查询。
实施方式可包括以下一个或多个特征。该操作还可以包括接收关于数据被用户提交的查询所修改的无效通知,数据被保持在内存数据存储装置中的至少一个应答集合引用。该方法还可以包括将引用修改的数据的该至少一个应答集合记录为无效。该操作还可包括从内存数据存储中去除该至少一个应答集合。该操作还可包括更新存储在内存数据存储装置中的该至少一个应答集合的内容。
该操作还可以包括响应于确定对应应答集合可用但至少一个应答集合无效,抑制构成查询结果,直到存储在内存数据存储装置中的至少一个应答集合的内容已与主数据服务器中的对应数据同步。该操作还可包括促进更新存储在内存数据存储装置中的该至少一个应答集合的内容。该操作还可包括分派更新请求以更新存储在内存数据存储装置中的该至少一个应答集合的内容。分派更新请求可以包括:分派更新请求以从主数据服务器取回更新的内容。该操作还可以包括:响应于确定对应应答集合可用但至少一个应答集合无效,提供指示转发的查询的查询结果被阻止的反馈。
上述技术的实施方式包括方法、计算机程序产品和***。计算机程序产品适当地体现在非临时性计算机可读介质上,并且包括可由一个或多个处理器运行的指令。该指令被配置为使得一个或多个处理器来执行上述动作。
该***包括一个或多个处理器和嵌入在非临时性计算机可读介质中的、可由一个或多个处理器运行的指令。该指令被执行时被配置为使得一个或多个处理器执行上述动作。默认位置是不使用任何外部数据库,但该***在需要时可以被配置为执行数据库检查。
在附图及下面的描述中阐述了本说明书中所述主题的一个或多个方面的细节。从描述、附图和权利要求书中,本主题的其它特征、方面和优点将变得显而易见。
附图说明
图1是示出了根据一些实施方式来将快速查询响应提供给用户生成的问题的***。
图2示出了根据一些实施方式的处理用户生成的问题的示例工作流程。
图3A示出了根据一些实施方式,基于与数据集合同步的应答集合生成查询结果的示例工作流程。
图3B示出了根据一些实施方式的处理无效通知的示例工作流程。
图4A示出了根据一些实施方式的用于接收用户生成的问题并提供查询结果的示例用户界面。
图4B示出了根据一些实施方式的示出保持在内存数据存储106中的应答集合状态的示例用户界面。
图4C示出了根据一些实施方式的用于***管理员在运行快速查询封套的前端应用程序内集成后端快速查询服务引擎的示例用户界面。
具体实施方式
本公开总体上描述了用于将快速查询结果提供给用户生成的问题的***和方法。查询结果可以比由关系数据库直接处理更快地生成。关系数据库可以被耦合到主数据服务器。用户生成的问题可包括几个逻辑段。一些实施方式中,针对特定用户生成的问题的逻辑段的应答集合可作为高速缓存的形式被保持在高性能内存数据存储装置中。查询结果可以由在内存数据存储装置“高速缓存”的应答集合构成。与需要从主数据服务器例如通过由传统关系数据库进行的查询处理取回应答集合的情况相比,该构成可提供更快速的查询结果。应答集合的内容可与主数据服务器中的对应数据保持一致。例如,当对应数据被修改时,受影响的应答集合的内容可以被无效或更新。更新可以采取在内存数据存储装置和主数据服务器之间同步的形式。
图1是示出了根据一些实施方式来将快速查询响应提供给用户生成的问题的***。该***可以包括快速查询封套102、快速查询服务引擎104和无效通知循环。快速查询封套(FQW)102可以用作前端引擎。前端引擎可接收用户生成的数据访问请求110,包括读/查询请求和写/非查询请求。FWQ102可以将结果112提供给提交数据访问请求110的用户。数据访问请求110可包括由人类用户生成的业务级问题。数据访问请求110还可以包括由使用自然语言处理的机器(例如,由语音识别子***驱动的搜索引擎服务、由相同用户生成的现有问题部分地驱动的搜索引擎服务等)解析的高级问题,一般而言,前端引擎可以提供界面给处于业务级的用户生成的问题。用户生成的问题可以不特定于或限于以特定查询语言(诸如,结构化查询语言(SQL))制定的查询。事实上,用户生成的问题甚至可以不被界面语言(诸如,例如PHP或Python)限制为特定的SQL数据库。
快速查询封套(FQW)102可将用户生成的数据访问请求110(例如查询)分解成逻辑查询段。一些实施方式中,用户生成的查询可通过具有集合代数运算性质的运算划分成逻辑查询段。集合代数通常可包括布尔代数运算,布尔代数运算包括并运算(例如逻辑和)、与运算(例如,逻辑乘)、补运算(例如补或非)等。在一些实施方式中,用户生成的查询可被分解成通过合取、析取、非、或者合取、析取或非的组合所并的查询段。例如,非运算可通过保持针对给定查询实体的所有唯一标识符的通用集合U来使能。然后,如果具有约束〜A的查询被提交,则可基于存储的结果A通过运算U-A的来处理该查询。其他集合代数运算可以以类似的方式来执行,以简化访问请求,从而使得可以更有效地处理访问请求。分解或优化可以减少快速查询封套(FQW)102使用主数据服务器108处理用户生成的数据访问请求110(例如查询)的时间量。如上面所指出的,用户生成的查询可以包括高级或业务级的问题,并且可以不限于结构化查询(例如,以SQL制定的查询)。响应于如用户提交的查询,一些实施方式可以通过快速查询服务(FQS)引擎104提供快速查询服务。
快速查询服务(FQS)引擎104可用作后端引擎,而快速查询封套(FQW)102用作前端引擎。快速查询服务(FQS)引擎104可包括内存数据存储装置106。内存数据存储装置106可包括具有快速数据访问时间的存储器装置,诸如例如动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、非易失性存储器随机存取存储器(NVRAM )等。内存数据存储装置106可以不包括具有机械转动部分的存储介质,机械转动部分包括例如硬盘驱动器的扫描臂、光存储装置的扫描头等。这样的存储介质可能导致比不具有机械转动部分的存储介质更长的数据访问延迟。针对各种查询或查询段的应答集合的内容可以被存储在内存数据存储中。一些实施方式中,快速查询服务引擎104可将应答集合的内容提供给快速查询封套(FQW)102,使得快速查询封套(FQW)102可以根据所提供的应答集合构成查询结果。如本文中所讨论的,与内存数据存储相关联的存储器存取时间倾向于比与主数据服务器108相关联的存储器存取时间更快。因而基于已被存储于内存数据存储中的应答集合的内容来构成查询结果可导致对用户生成的查询的快速响应时间。在一些情况下,一些应答集合可以从内存数据存储106中提取,而其他的可从主数据服务器108取回。与其中整个应答集合可从主数据服务器108提取的情况相比,生成查询结果的预期等待时间仍然可能被减少。如本文中所讨论的,快速查询服务可包括减小提供查询结构的延迟的好处。
同时,快速查询服务(FQS)引擎可与主数据服务器108通信。主数据服务器108例如可以主控关系数据库管理***(DBMS)。示例DBMS可以包括MySQL数据库、PostgreSQL数据库、Oracle数据库等。与内存数据存储装置106相反,主数据服务器108可以包括具有转动机械部分的存储装置,诸如硬盘驱动器、磁带、光盘存储装置(例如压缩盘、数字视频盘、蓝光盘等)。主数据服务器108上的存储介质每个存储单元可以具有较低的价格。主数据服务器108可以具有比FQS104上内存数据存储装置的存储容量大的存储容量。然而,主数据服务器108相比内存数据存储106可能具有较慢的存储器存取时间。如上所述,一些实施方式可以通过基于已被存储于内存数据存储106的应答集合构成查询结果来把更快的响应时间提供给用户生成的数据访问请求110。此外,如本文所讨论的,保持在内存数据存储106的应答集合的内容可与主数据服务器108上对应的数据维持一致。因此,一些实施方式可以在危害一致性的情况下提供结果,例如快速查询结果。
具体地,无效循环可以强制执行内存数据存储106和主数据服务器108处存储的应答集合的内容之间的一致性。如图1中所示。 在接收用户生成的数据访问请求110时,快速查询封套102可提交访问请求给主数据服务器108。有时候,访问请求可以包括具有写操作(116)性质的操作。 有时候,访问请求可以包括具有读操作(118)性质的操作。当提交的请求包括具有写操作性质的操作时,主数据服务器108上对应的数据可被修改。这样的请求可以包括修改/更新数据条目的请求、创建数据条目的请求等。另一方面,当该请求具有读操作性质时,主数据服务器108上所请求的数据本身可能不会改变。然而,相关的数据(诸如指示所请求的数据已被访问次数的计数器)仍然可以被更新。修改状态可触发主数据服务器108发送无效通知114到快速查询服务(FQS)引擎104。无效通知114可以涉及主数据服务器108上已经或正在被修改的数据的特定部分。无效通知114可被快速查询服务引擎104接收。响应于接收到无效通知114,快速查询服务(FQS)引擎106可采取行动以保持存储在内存数据存储106的应答集合的内容和存储在主数据服务器108上的对应数据之间的一致性。在一个配置中,FQS引擎106可以标记内容注册表以把涉及由无效通知引用的修改数据的应答集合的状态标注为无效。在另一配置中,FQS引擎104可从内存数据存储106清除涉及修改的数据的应答集合。在又另一配置中,FQS引擎104可提前从主数据服务器108取回更新的应答集合,以取代涉及修改的数据的应答集合。当FQS引擎104采取行动以保持存储在内存数据存储106处的应答集合的内容和存储在主数据服务器108上的对应数据之间的一致性时,FQS引擎104可以阻挡从快速查询封套(FQW)102转发的、访问受到无效通知114影响的应答集合的访问请求。例如,试图访问受到无效通知114影响的应答集合的用户生成的查询可能接收到服务“暂时不可用”的阻挡消息。当FQS引擎104正将受影响的应答集合标记为无效、去除应答集合或更新应答集合时,阻挡可以起作用。当FQS引擎104完成标记、去除或更新时,FQS引擎104可相应地响应所转发的访问请求。例如,FQS引擎104可提醒FQW 102受影响的应答集合是无效的,或者受影响的应答集合的内容已经变得不可用。当受影响的应答集合的内容已被更新时,FQS引擎104可为FQW102提供与在主数据服务器108上修改和存储的对应数据相一致的更新的应答集合。
总之,使用无效通知114,跨越主数据服务器108和内存数据存储106的分布式事务可以被实现为具有强制的数据一致性。一些实施方式中,后端FQS引擎104可被配置为与主数据服务器108(例如运行MySQL或Oracle DBMS的核心数据服务器)进行核对。前端快速查询封套(FQS)可以被实现为集成到应用中以与用户交互的瘦客户端层,该用户可在线或从移动应用提交数据访问请求110。
图2示出了根据一些实施方式的处理用户生成的访问请求的示例工作流程。一些实施方式中,图2可被映射到前端快速查询封套(FQW)102。 最初,可接收用户生成的访问请求110(202)。用户生成的访问请求可由用户在移动计算装置上提交,该移动计算装置包括例如智能电话、平板电脑、膝上计算机等。用户可以使用从app商店下载的移动app提交访问请求。如上文所指出的,用户生成的访问请求可包括由用户提交的高级问题。 用户生成的访问请求可以包括不一定以特定语言(诸如SQL)制定的查询。
用户生成的访问请求可以由用户通过由Web服务器(例如Apache Web服务器)提供的门户网站提交。该门户网站可包括以例如脚本语言(诸如PHP或Python)编写的服务器端应用程序。服务器端应用程序可以实现前端快速查询封套(FQW)102。如上所讨论的,前端FQW 102可用作与快速查询服务引擎104(作为后端)和主数据服务器108(作为核心数据服务器)进行交互的客户端封套。一些实施方式中,根据客户端/服务器体系结构,前端快速查询封套(FQW)102可以与后端快速查询服务(FQS)引擎104进行交互。 在一配置中,FQW 102和FQS引擎104可以遵循分布式客户端/服务器模式。 FQW 102和FQS引擎104可以不在同一台物理机器上被核对。FQW 102和FQS引擎104可以被包括在云计算环境中从而为用户提供对查询结果的无缝访问、改善的响应等待时间,以及强制的数据一致性。
如果用户生成的访问请求包括查询,FQW 102可确定用户生成的数据访问请求是读/查询还是写/非查询请求(204)。当数据访问请求具有读/查询的性质时,该请求可以由快速查询服务处理。如本文所讨论的,快速查询服务可以呈现具有减少的等待时间的查询结果,同时保持数据的一致性。为了有资格进行快速查询处理,用户生成的查询可被分解成逻辑段,且针对一些逻辑段的应答集合可以存储在内存数据存储处。 在一些实施方式中,FQW可以维持状态图,状态图指示特定逻辑段是否具有预存储在内存数据存储106的应答集合。在一配置中,状态图可以通过例如单独和专用的服务线程填充。单独的线程可以遍历内存数据存储,以标识可用应答集合已被“高速缓存”。在一配置中,当FQW 102和FQS引擎104上的负载相对低时,可启动单独的线程。此外,该线程可以在增量的基础上针对可用应答集合扫描内存数据存储106,即只扫描自上次扫描以来已经改变的部分。在一配置中,当内存数据存储106上的应答集合已被更新时,甚至可反应性地启动该线程。
当FQW 102确定用户生成的查询是读/查询请求时,FQW 102可以将用户生成的查询重定向到快速查询服务(FQS)引擎104(206)。 在一配置中,重定向的查询可以按分解的逻辑段(特别地具有已存储在内存数据存储106的应答集合的逻辑段)形式被发送到FQS引擎104。在另一配置中,重定向的查询可被发送到FQS引擎104,以供FQS引擎104来分解成逻辑段。
响应于重定向的查询,FQW102可接收来自FQS引擎104的查询结果(208)。在一些情况下,接收到的查询结果可由FQS引擎104基于已存储在内存数据存储106的应答集合构成。如上所指出的,保持在内存数据存储106的应答集合可与主数据服务器108上对应的数据维持一致。其他情况下,可至少部分地通过FQW 102执行查询结果的组成。这样的情况下,针对用户生成的查询的一些逻辑段的应答集合在内存数据存储装置106处可能不可用。 由于各种原因,在内存数据存储106处,应答集合可能不可用。 例如,如上文所讨论的,应答集合可能尚未从主数据服务器108取回,或者应答集合可能响应于无效通知114而被从内存数据存储106中清除,或者应答集合可能响应于无效通知114而被无效。在这样的情况下,可能需要从主数据服务器108获得在内存数据存储装置106处不可用的应答集合。当对应于不可用应答集合的数据从主数据服务器108返回时,可相应地构成查询结果。在一些实施方式中,FQW102可被配置为从主数据服务器108获得不可用的应答集合。然而,在其他实施方式中,FQS引擎104可被适配为从主数据服务器108获得不可用应答集合,使得这些应答集合的内容对于后续用户生成的查询可以变为可用,后续用户生成的查询可能需要用于快速响应的应答集合的“高速缓存的”拷贝。 基于已存储在内存数据存储装置106以及从主数据服务器108新获得的应答集合构成查询结果可通过FQS引擎104或FQW 102执行。
然而,如果FQW 102确定用户生成的访问请求具有写入/非查询请求的性质,那么FQW 102可以继续确定主数据服务器108上的数据是否将通过用户生成的访问请求来修改(210)。
如果主数据服务器108上的数据将由用户生成的访问请求进行修改(210),无效通知114可被生成并发送以通知快速查询服务(FQS)引擎104(212)。 如本文所讨论的并且依照分布式事务实施方式,无效通知114可以触发FQS引擎104把引用修改的数据的应答集合标记为无效,把这样的应答集合从内存数据存储中清除,或者获得更新的应答集合。此后,该请求可被发送到主数据服务器108(214)。
如果主数据服务器108上的数据将不会被用户生成的访问请求所修改(210),则该过程可继续以把请求发送到主数据服务器108(214)。
当已经从主数据服务器108接收到结果时(216),FQW 102可继续以接收附加的用户生成的访问请求(202)。 换句话说,在提供用户生成的访问请求时,FQW 102可以采用阻挡方法(有时也被称为同步方法)来确保保持在内存数据存储106处的数据和存储在主数据服务器108的数据的一致性。 如本文所讨论的,该阻挡方法可实现部分的分布式事务特征。
在某些情况下,针对访问请求的特定逻辑段的应答集合可能尚未被“高速缓存”在内存数据存储,例如,当针对特定逻辑段的应答集合变为不可用、无效或者从内存数据存储106清除时。在这样的情况下,对应的应答集合的内容可以从主数据服务器108获得。为此,特定逻辑段可被重新路由到主数据服务器108。在一些实施方式中,重新路由的逻辑段可用例如结构化查询语言(SQL)来重新制定以便促进主数据服务器108处的查询处理。 响应于重新路由的逻辑段,对应的应答集合可被接收。 基于所接收的应答集合(来自内存数据存储106和主数据服务器108),可以按照本文的描述构成查询结果。构成的查询结果可被中继到已提交用户生成的查询的用户。
图3A示出了根据一些实施方式的基于与数据集合同步的应答集合生成查询结果的示例工作流程。在一些实施方式中,图3A可被映射到后端快速查询服务(FQS)引擎104。最初,可以从FQW 102接收转发的查询。如本文中所讨论的,所转发的查询可以为分解的逻辑段的形式。如果转发的查询不是分解的逻辑段的形式,FQS引擎104可将所接收的查询分解成逻辑段。
FQS引擎104可确定在内存数据存储106处针对逻辑段的应答集合是否可用(304)。如果任何应答集合在内存数据存储106处尚未被“高速缓存”,则FQS引擎104可查询主数据服务器108以取回这样的不可用应答集合。 当这样的应答集合正从主数据服务器108获得时,反馈信息可以被提供给FQW 102(316)来指示例如关于应答集合的状态信息。
如果所有应答集合在内存数据存储106处已被“高速缓存”,那么FQS引擎104可确定应答集合的内容是否有效。 如本文所讨论的,应答集合的内容可以是无效的,因为例如主数据服务器108上的对应数据已被修改。 在一些实施方式中,FQS引擎104可包括内容注册表来跟踪主数据服务器108上的对应数据的有效性状态。例如,可在内容注册表中查找特定应答集合的有效性状态。根据本文的讨论,内容注册表可以利用每个无效的通知114保持为最新。
如果FQS引擎104确定由于例如主数据服务器108上对应的数据已被修改并且内存数据存储处的“高速缓存”的拷贝已经变得陈旧,所以特定应答集合的内容已被无效,那么通过同步主数据服务器108和内存数据存储106上的数据的拷贝,FQS引擎104可以更新受到影响的应答集合的内容(314)。在一些实施方式中,FQS引擎104可包括更新调度器,更新调度器被适配为启动更新服务线程以从主数据服务器108获得更新的数据。 在一配置中,该更新调度器可被配置为当FQS引擎102上的负载相对低(例如80%以下)时,启动更新服务线程。在一些配置中,更新调度器可被配置为例如通过预测性地取回来提前启动更新服务线程。例如,更新服务线程可被配置为根据由先前用户生成的查询展现的数据访问模式“推测性地”预测后续用户生成的查询可能需要的数据段。 该预测可遵循例如基于被访问的数据的逻辑地址的线性外插算法。当受影响的数据集合的内容被更新时,反馈信息可以被提供给FQW 102,以指示更新状态(316)。 在同步之后,FQS引擎104上的内容注册表可被更新以反映更新的应答集合的有效性状态。
在一些实施方式中,FQS引擎104可以基于应答集合构成查询结果(308)。此后,构成的查询结果可通过FQW 102提供给用户。 因此,分开解决的策略,再加上用于“高速缓存”应答集合的内存数据存储106,可以基于与主数据服务器108一致的数据得到快速的查询结果。
图3B示出了根据一些实施方式的处理无效通知的示例工作流程。可在FQS引擎104处接收无效通知114(320)。作为响应,FQS引擎104可确定修改的数据是否具有保持在内存数据存储106处的拷贝(322)。如果修改的数据尚未保持在内存数据存储106,那么FQS引擎104可以选择忽略无效通知(324)。
然而,如果修改的数据被保持在内存数据存储106,则FQS引擎106可以选择将引用修改的数据的应答集合记录为无效(326),从内存数据存储106去除受影响的应答集合的内容(328),或更新存储在内存数据存储106的受影响的应答集合的内容(330)。
一些实施方式中,FQS引擎104可以包括内容注册表,内容注册表被配置为基于主数据服务器102上的对应数据跟踪存储在内存数据存储106的应答集合的有效性状态。响应于无效化引用修改数据的应答集合的无效通知,内容注册表可被更新以将受影响的应答集合标记为无效。
在其他实施方式中,FQS引擎104可以包括存储器管理器,其被配置为保持存储在内存数据存储106的应答集合。 响应于无效化引用修改数据的应答集合的无效通知,该存储器管理可从内存数据存储106中去除受影响的应答集合的内容。
在又一其他实施方式中,FQS引擎104可被配置为更勤奋地处理无效的数据。例如,更新调度器可以被调用以便从主数据服务器108获得基于修改的数据的更新的应答集合。
针对上下文,云计算和大数据正在以电子形式呈现增长得更大和更普遍的医疗保健数据。部分地,通过大容量存储装置的速度和容量上的硬件改进以及处理器和联网速度上的类似进步,可促进数据大小的增长和数据访问的改进。医疗保健数据库可以被划分为横跨利用不同存储技术的单独数据库服务器的集群的大表。例如,网络附属存储(NAS)和存储区域网络(SAN)以及快速局域网和光纤信道技术实现数据库的更大、更松弛的耦合配置和分布式计算能力。分布式数据库存储的示例实施方式可以包括在X/Open XA标准和Oracle RACrelies,二者都采用数据存储服务器之间的高速网络连接。在描述数据存储技术的上下文中,服务器、***和装置可以互换地使用。
对于云计算时代的医疗保健数据,医疗保健可以更合理地由不同或不同质的数据库管理***的主机进行管理。 这些数据库管理***可以在跨越宽阔区域的服务器上被主控。 因此,依赖传统数据库管理***来为后续查询提供“高速缓存”数据的单块解决方案可能是不现实的。此外,即使对于特定应用背景可实现单块解决方案,但该解决方案不可以对特定数据库引擎提供用户中的锁定,并妨碍了解决方案的可移植性。 与此相反,模块化解决方案可以提供上述的性能改进,而不会引起单块解决方案的费用、损失或可移植性。虽然如此,如本文所公开的分层或模块化解决方案的区别特性远非明显。 事实上,实现具有模块化***的分布式事务的绝对复杂性如此可怕以至于尚没有人解决这样的实现方式。
图4A示出根据一些实施方式的用于接收用户生成的问题并提供查询结果的示例用户界面。如图示的,三个可分解查询组件(或逻辑段)(即联系人状态,目标电子邮件,有效的联系人电子邮件)形成隐含的合取语句。 三个逻辑段结合形成用于搜索的准则。三个逻辑段之一,即关于目标电子邮件有效的逻辑段可包括排除准则。当从通用集合(即U-A)而不是非准则(即〜A)直接减去所包含的准则时,排除准则可能经受解释。 一些实施方式中,用户生成的查询可能被分解成可由析取组合的逻辑段。
图4B示出根据一些实施方式的示出保持在内存数据存储106的应答集合状态的示例用户界面。在快速查询服务(FQS)引擎104上,对于***管理员来说,状态视图可以是可用的。 如本文中所讨论的,FQS引擎104可形成快速查询服务的后端,并且可包括内存数据存储106。 如图4B中所图示的,对于涉及保持在数据存储106的可用应答集合的每个关键字值,该表示出了计数的数量(指示当关键字条目已被访问时候的次数)、关键字条目是否可用、关键字条目是否与主数据服务器108上对应数据一致、关键字条目在得到操作中被最后读取的时间戳、关键字条目在设置操作中被最后修改的时间戳、关键字条目最后被无效的时间戳、更新策略和对于***管理员可用的关于特定关键字条目的行动。更新策略可包括懒惰(例如仅把内容标记为无效),中性(例如从内存数据存储去除内容),或勤奋(例如,提前刷新无效应答集合的内容)。如图示的,***管理员可用的行动可包括查看关键字条目的内容、将关键字条目的内容标记为无效,以及从内存数据存储去除关键字条目的内容。
图4C示出根据一些实施方式的用于***管理员在运行快速查询封套的前端应用内集成后端快速查询服务引擎的示例用户界面。如图示的,用户界面可以允许计算机组接受来自特定因特网协议(IP)地址的快速查询服务请求。 快速查询服务可以包括读和写这两种访问。此外,作为应用的薄层,快速查询封套可作为客户端来将快速查询服务引擎用作快速查找服务器。
本说明书中所述主题和功能操作的实施方式可以实现在数字电子电路中,有形实现的计算机软件或固件中,计算机硬件中,包括本说明书中公开的结构及其结构等同物,或他们中的一个或多个的组合中。 本说明书中所述主题的实施方式可以被实现为一个或多个计算机程序,即编码在有形非暂存程序载体上的计算机程序指令的一个或多个模块,用于通过数据处理设备执行或用来控制数据处理设备的操作。计算机存储介质可以是机器可读存储装置、机器可读存储基片、随机或串行存取存储器装置或他们中一个或多个的组合。
术语“数据处理设备”指的是数据处理硬件并且包括用于处理数据的所有种类的设备、装置和机器,包括例如可编程处理器、计算机或多个处理器或计算机。 设备还可以是或进一步包括专用逻辑电路,例如中央处理单元(CPU)、FPGA(现场可编程门阵列)或ASIC(专用集成电路)。一些实施方式中,数据处理设备和/或专用逻辑电路可以是基于硬件和/或基于软件的。设备可选择性地包括创建用于计算机程序的执行环境的代码,例如构成处理器固件、协议栈、数据库管理***、操作***或他们中一个或多个的组合的代码。 本发明考虑具有或不具有传统操作***的数据处理设备的使用,例如Linux、UNIX、Windows和MacOS、Android、iOS或任何其他合适的传统操作***。
计算机程序(其也可以被称作或描述为程序、软件、软件应用、模块、软件模块、脚本或代码)可以用任何形式的编程语言编写,包括编译或解释语言,或者说明性或过程语言,并且其可以以任何形式部署,包括作为独立的程序或作为模块、组件、子例程或适于在计算环境中使用的其它单元。计算机程序可以,但不必对应于文件***中的文件。程序可存储在保持其它程序或数据的文件的一部分中,例如存储在标记语言文档中、专用于所讨论的程序的单个文件中或者多个协同文件(例如存储一个或多个模块、子程序或部分代码)中的一个或多个脚本。计算机程序可被部署为运行于一台计算机或多台计算机上,这些计算机位于一个地点或分布在多个地点并通过通信网络互连。虽然各图中图示的程序部分被示为通过各种对象、方法或其他过程实现各特征和功能的个体模块,但是程序可以视情况相反地包括多个子模块、第三方服务、组件、库等等。 相反地,各个组件的特征和功能视情况可以组合成单个组件。
本说明书中所述过程和逻辑流程可由运行一个或多个计算机程序以通过操作输入数据并且生成输出来执行功能的一个或多个可编程计算机执行。过程和逻辑流成还可以由专用逻辑电路执行,并且设备还可以被实现为该专用逻辑电路,专用逻辑电路例如是中央处理单元(CPU)、FPGA(现场可编程门阵列)或ASIC(专用集成电路)。
适于运行计算机程序的计算机包括,例如可以基于通用或专用微处理器或两者或任何其他种类的中央处理单元。 通常,中央处理单元将从只读存储器或随机存取存储器或两者接收指令和数据。 计算机的必要元件是用于执行或运行指令的中央处理单元以及用于存储指令和数据的一个或多个存储器装置。通常,计算机还将包括,或者***作地耦合以从用于存储数据的一个或多个大容量存储装置(例如磁盘、磁光盘或光盘)接收数据或向其传送数据或二者均有。 然而,计算机不必具有这样的装置。 此外,计算机可以嵌入另一装置中,如移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏控制台、全球定位***(GPS)接收器或便携式存储装置,例如通用串行总线(USB)闪存驱动器等等。
适于存储计算机程序指令和数据的计算机可读介质(视情况,暂时或非暂时的)包括所有形式的非易失性存储器、介质和存储器装置,包括例如:半导体存储器装置,例如EPROM、EEPROM和闪存装置;磁盘,例如内部硬盘或可移除盘;磁光盘;和CDROM以及DVD-ROM盘。存储器可以存储各种对象或数据,包括高速缓存、类、框架、应用、备份数据、作业、网页、网页模板、数据库表、存储业务和/或动态信息的储存库,以及任何其他适当的信息,包括任何参数、变量、算法、指令、规则、约束或其引用。此外,存储器可包括任何其他适当的数据,诸如日志、策略、安全或访问数据、报告文件以及其他。处理器和存储器可以通过专用逻辑电路补充或并入其中。
为了提供与用户的交互,本说明书中描述的主题的实施方式可在计算机上实现,该计算机具有用于将信息显示给用户的显示装置(例如CRT(阴极射线管)、LCD(液晶显示器)或等离子监视器)以及用户可以利用它们提供对计算机的输入的键盘和指示装置,例如鼠标或轨迹球。其他种类的装置也可以用来提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感官反馈,例如视觉反馈、听觉反馈或触觉反馈;并且来自用户的输入可以以任何形式(包括声音、语音或触觉输入)接收。 此外,计算机可以通过向用户使用的装置发送文档并且从其接收文档来与用户交互;例如,通过响应于从web浏览器接收的请求将网页发送到用户客户端装置上的web浏览器。
术语“图形用户界面”或者GUI可以按单数或复数使用来描述一个或多个图形用户界面和特定图形用户界面的每一个显示。因此,GUI可以表示任何图形用户界面,包括但不限于处理信息并将信息结果高效呈现给用户的web浏览器、触摸屏或命令行界面(CLI)。一般来说,GUI可以包括多个用户界面(UI)元素,一些或全部与Web浏览器相关联,如可由业务套件用户操作的交互式字段、下拉列表和按钮。这些和其他UI元素可以与web浏览器的功能相关或表示网络浏览器的功能。
本说明书中所述主题的实施方式可在计算***中实现,该计算***包括后端组件,例如作为数据服务器;或者包括中间件组件,例如应用服务器;或包括前端组件,例如具有图形用户界面或Web浏览器的客户端计算机,用户可通过图形用户界面或Web浏览器与本说明书中所述主题的实施方式交互;或包括一个或多个这种后端、中间件或前端组件的任意组合。该***的组件可以通过数字数据通信的任何形式或介质(例如通信网络)互连。 通信网络的示例包括局域网(LAN)、广域网(WAN)(例如因特网)以及无线局域网(WLAN)。
该计算***可以包括客户端和服务器。客户端和服务器一般彼此远离,并且通常通过通信网络进行交互。客户端和服务器的关系借助于在相应计算机上运行的并且具有彼此的客户端-服务器关系的计算机程序产生。
虽然本说明书包含许多具体的实施细节,但这些不应被解释为对任何发明的范围或者可要求保护的范围的限制,而是作为可以由特定发明的特定实施方式特有的特征的描述。在本说明书中在单独实施方式上下文中描述的某些特征也可以在单个实施方式中组合实现。 反之,在单个实施方式的上下文中描述的各个特征也可以在多个实施方式中单独地或以任何合适的子组合实现。此外,尽管特征可能在上文被描述为以特定组合发生作用,并且甚至最初如此要求保护,但是来自要求保护的组合的一个或多个特征在某些情况下可以从该组合中删去,并且所要求保护的组合可以设计子组合或子组合的变型。
类似地,虽然图中以特定顺序描绘了各操作,但这不应当理解为要求以所示特定顺序或者以连续顺序执行这样的操作,或者执行所有图示操作以实现期望的结果。在特定情况下,多任务和并行处理可能是有益的。此外,在上述实施方式中的各***模块和组件的分离不应当被理解为所有实施方式中均要求这样的分离,并且应当理解的是,所述程序组件和***一般可以一起集成在单个软件产品中或封装到多个软件产品中。
本主题的特定实施方式已被描述。对于本领域技术人员来说将是显而易见的是,所描述的实施方式的其他实施方式、更改和排列在所附权利要求的范围之内。例如,权利要求中叙述的行动可以以不同顺序来执行并且仍然实现期望的结果。
因此,示例实施方式的上述描述不限定或约束本公开。在不脱离本公开的精神和范围的情况下,其他的改变、替换和更改也是可能的。
Claims (18)
1.一种用于处理数据访问请求的方法,包含:
接收由用户提交的、访问存储在主数据服务器的数据条目的语义请求,所述主数据服务器运行关系数据库管理***(DBMS);
将接收到的请求分解成逻辑查询段,每个逻辑查询段具有对应的应答集合,所述应答集合能够基于DBMS查询从所述主数据服务器取回,所述DBMS查询基于所述逻辑查询段制定;
确定特定分解的逻辑查询段的对应应答集合是否被存储在快速查询服务引擎处的内存数据存储中且可用,使得在主数据服务器处的DBMS查询提交被排除,快速查询服务引擎不同于主数据服务器并且与主数据服务器分离;
响应于确定特定分解的逻辑查询段的对应应答集合未被存储在快速查询服务引擎处的内存数据存储中,基于所述特定分解的逻辑查询段制定DBMS查询,并且从主数据服务器取回所述特定分解的逻辑查询段的应答集合;
响应于确定特定分解的逻辑查询段的对应应答集合被存储在快速查询服务引擎处的内存数据存储中但是无效,基于所述特定分解的逻辑查询段制定DBMS查询,并且通过同步主数据服务器上和内存数据存储中的数据拷贝来更新所述应答集合的内容;
响应于确定特定分解的逻辑查询段的对应应答集合被存储在快速查询服务引擎处的内存数据存储中且可用,将所述逻辑查询段引导到快速查询服务引擎并且从快速查询服务引擎处的内存数据存储取回特定分解的逻辑查询段的应答集合;
由从主数据服务器接收的应答集合和从快速查询服务引擎处的内存数据存储取回的应答集合构成查询结果;以及
将构成的查询结果提供给提交语义请求的用户。
2.如权利要求1所述的方法,其中分解接收到的请求包括:将接收到的请求分解成由至少一个合取嵌套的逻辑查询段。
3.如权利要求1所述的方法,其中分解接收到的请求包括:将接收到的请求分解成由至少一个析取嵌套的逻辑查询段。
4.如权利要求1所述的方法,其中分解接收到的请求包括:将接收到的请求分解成由至少一个非嵌套的逻辑查询段。
5.如权利要求1所述的方法,还包括:
确定所述请求是否修改了主数据服务器上的数据。
6.如权利要求5所述的方法,还包括:
响应于确定所述请求修改了主数据服务器上的数据,通知快速查询服务引擎保持在快速查询服务引擎处的内存数据存储中的、引用修改的数据的应答集合的内容已变为无效。
7.如权利要求1所述的方法,还包括:
接收由用户提交的另外的请求;
确定所述另外的请求修改了由在快速查询服务引擎处的内存数据存储中高速缓存的应答集合引用的主数据服务器中的数据;以及
向快速查询服务引擎发出无效通知,使得在内存数据存储中高速缓存的应答集合变为无效。
8.一种计算机***,包含至少一个处理器,其中所述至少一个处理器被配置为执行以下操作:
接收由用户提交的、访问存储在主数据服务器的数据条目的语义请求,所述主数据服务器运行关系数据库管理***(DBMS);
将接收到的请求分解成逻辑查询段,每个逻辑查询段具有对应的应答集合,所述应答集合能够基于DBMS查询从所述主数据服务器取回,所述DBMS查询基于所述逻辑查询段制定;
确定特定分解的逻辑查询段的对应应答集合是否被存储在快速查询服务引擎处的内存数据存储中且可用,使得在主数据服务器处的DBMS查询提交被排除,快速查询服务引擎不同于主数据服务器并且与主数据服务器分离;
响应于确定特定分解的逻辑查询段的对应应答集合未被存储在快速查询服务引擎处的内存数据存储中,基于所述特定分解的逻辑查询段制定DBMS查询,并且从主数据服务器取回所述特定分解的逻辑查询段的应答集合;
响应于确定特定分解的逻辑查询段的对应应答集合被存储在快速查询服务引擎处的内存数据存储中但是无效,基于所述特定分解的逻辑查询段制定DBMS查询,并且通过同步主数据服务器上和内存数据存储中的数据拷贝来更新所述应答集合的内容;
响应于确定特定分解的逻辑查询段的对应应答集合被存储在快速查询服务引擎处的内存数据存储中且可用,将所述逻辑查询段引导到快速查询服务引擎并且从快速查询服务引擎处的内存数据存储取回特定分解的逻辑查询段的应答集合;
由从主数据服务器接收的应答集合和从快速查询服务引擎处的内存数据存储取回的应答集合构成查询结果;以及
将构成的查询结果提供给提交语义请求的用户。
9.如权利要求8所述的计算机***,其中分解接收到的请求包括:将接收到的请求分解成由至少一个合取嵌套的逻辑查询段。
10.如权利要求8所述的计算机***,其中分解接收到的请求包括:将接收到的请求分解成由至少一个析取嵌套的逻辑查询段。
11.如权利要求8所述的计算机***,其中分解接收到的请求包括:将接收到的请求分解成由至少一个非嵌套的逻辑查询段。
12.如权利要求8所述的计算机***,其中操作还包括:
确定所述请求是否修改了主数据服务器上的数据。
13.如权利要求12所述的计算机***,其中操作还包括:
响应于确定所述请求修改了主数据服务器上的数据,通知快速查询服务引擎保持在快速查询服务引擎处的内存数据存储中的、引用修改的数据的应答集合的内容已变为无效。
14.如权利要求8所述的计算机***,其中所述操作还包括:
接收由用户提交的另外的请求;
确定所述另外的请求修改了由在快速查询服务引擎处的内存数据存储中高速缓存的应答集合引用的主数据服务器中的数据;以及
向快速查询服务引擎发出无效通知,使得在内存数据存储中高速缓存的应答集合变为无效。
15.一种非临时性计算机可读介质,包括软件指令,当所述软件指令被计算机运行时,使得计算机执行如下操作:
接收由用户提交的、访问存储在主数据服务器的数据条目的语义请求,所述主数据服务器运行关系数据库管理***(DBMS);
将接收到的请求分解成逻辑查询段,每个逻辑查询段具有对应的应答集合,所述应答集合能够基于DBMS查询从所述主数据服务器取回,所述DBMS查询基于所述逻辑查询段制定;
确定特定分解的逻辑查询段的对应应答集合是否被存储在快速查询服务引擎处的内存数据存储中且可用,使得在主数据服务器处的DBMS查询提交被排除,快速查询服务引擎不同于主数据服务器并且与主数据服务器分离;
响应于确定特定分解的逻辑查询段的对应应答集合未被存储在快速查询服务引擎处的内存数据存储中,基于所述特定分解的逻辑查询段制定DBMS查询,并且从主数据服务器取回所述特定分解的逻辑查询段的应答集合;
响应于确定特定分解的逻辑查询段的对应应答集合被存储在快速查询服务引擎处的内存数据存储中但是无效,基于所述特定分解的逻辑查询段制定DBMS查询,并且通过同步主数据服务器上和内存数据存储中的数据拷贝来更新所述应答集合的内容;
响应于确定特定分解的逻辑查询段的对应应答集合被存储在快速查询服务引擎处的内存数据存储中且可用,将所述逻辑查询段引导到快速查询服务引擎并且从快速查询服务引擎处的内存数据存储取回特定分解的逻辑查询段的应答集合;
由从主数据服务器接收的应答集合和从快速查询服务引擎处的内存数据存储取回的应答集合构成查询结果;以及
将构成的查询结果提供给提交语义请求的用户。
16.如权利要求15所述的计算机可读介质,其中操作还包括:
响应于确定所述请求不被快速查询服务引擎所支持,将所述请求引导到主数据服务器;以及
确定所述请求是否修改了主数据服务器上的数据。
17.如权利要求16所述的计算机可读介质,其中操作还包括:
响应于确定所述请求修改了主数据服务器上的数据,通知快速查询服务引擎保持在快速查询服务引擎处的内存数据存储中的、引用修改的数据的应答集合的内容已变为无效。
18.如权利要求15所述的计算机可读介质,其中所述操作还包括:
接收由用户提交的另外的请求;
确定所述另外的请求修改了由在快速查询服务引擎处的内存数据存储中高速缓存的应答集合引用的主数据服务器中的数据;
向快速查询服务引擎发出无效通知,使得在内存数据存储中高速缓存的应答集合变为无效。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201361879476P | 2013-09-18 | 2013-09-18 | |
US61/879476 | 2013-09-18 | ||
US14/057712 | 2013-10-18 | ||
US14/057,712 US9870415B2 (en) | 2013-09-18 | 2013-10-18 | System and method for fast query response |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104598508A CN104598508A (zh) | 2015-05-06 |
CN104598508B true CN104598508B (zh) | 2021-06-08 |
Family
ID=51539215
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410473639.1A Active CN104598508B (zh) | 2013-09-18 | 2014-09-17 | 用于快速查询响应的***和方法 |
Country Status (7)
Country | Link |
---|---|
US (1) | US9870415B2 (zh) |
EP (1) | EP2851814A1 (zh) |
JP (1) | JP6522911B2 (zh) |
KR (1) | KR102229011B1 (zh) |
CN (1) | CN104598508B (zh) |
BR (1) | BR102014023214A2 (zh) |
IN (1) | IN2014DE02630A (zh) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150161180A1 (en) * | 2013-12-05 | 2015-06-11 | Marcel Hermanns | Consumption layer query interface |
US20150363473A1 (en) * | 2014-06-17 | 2015-12-17 | Microsoft Corporation | Direct answer triggering in search |
US10180989B2 (en) * | 2015-07-24 | 2019-01-15 | International Business Machines Corporation | Generating and executing query language statements from natural language |
US10332511B2 (en) | 2015-07-24 | 2019-06-25 | International Business Machines Corporation | Processing speech to text queries by optimizing conversion of speech queries to text |
US9952848B2 (en) * | 2015-12-21 | 2018-04-24 | Samsung Electronics Co., Ltd. | Dependency-aware transformation of multi-function applications for on-demand execution |
US9811327B2 (en) | 2015-12-21 | 2017-11-07 | Quixey, Inc. | Dependency-aware transformation of multi-function applications for on-demand execution |
US10162729B1 (en) * | 2016-02-01 | 2018-12-25 | State Farm Mutual Automobile Insurance Company | Automatic review of SQL statement complexity |
CN107122354B (zh) | 2016-02-24 | 2020-05-08 | 华为技术有限公司 | 事务执行方法、装置及*** |
CA3026475A1 (en) * | 2016-06-10 | 2017-12-14 | Schneider Electric Industries Sas | Method and system for providing proxy service in an industrial system |
WO2018112023A1 (en) * | 2016-12-14 | 2018-06-21 | Jpmorgan Chase Bank, N.A. | Systems and methods for aggregating, filtering, and presenting streaming data |
CN108255848B (zh) * | 2016-12-29 | 2022-06-24 | 阿里巴巴集团控股有限公司 | 实现条件更新的方法、设备及*** |
CN109388655A (zh) * | 2017-08-07 | 2019-02-26 | 北京京东尚科信息技术有限公司 | 一种动态控制数据访问的方法和装置 |
US10565981B2 (en) * | 2017-09-26 | 2020-02-18 | Microsoft Technology Licensing, Llc | Computer-assisted conversation using addressible conversation segments |
CN110058926B (zh) * | 2018-01-18 | 2023-03-14 | 伊姆西Ip控股有限责任公司 | 用于处理gpu任务的方法、设备和计算机可读介质 |
EP3762839A4 (en) | 2018-03-07 | 2021-12-22 | Open Text SA ULC | FLEXIBLE AND SCALABLE ARTIFICIAL INTELLIGENCE AND ANALYSIS PLATFORM WITH CONTENT ANALYSIS AND ADVANCED DATA INGESTION |
WO2020164718A1 (en) * | 2019-02-14 | 2020-08-20 | Huawei Technologies Co., Ltd. | System and method for enhancing processing of a query to a relational database with software-based near-data processing (ndp) technology |
US11604928B2 (en) | 2020-04-30 | 2023-03-14 | International Business Machines Corporation | Efficiently managing predictive changes for a conversational agent |
CN112685446B (zh) * | 2020-12-31 | 2023-07-25 | 上海梦鱼信息科技有限公司 | 通过Elasticsearch数据库的复杂SQL查询方法、装置、处理器及存储介质 |
CN113722362B (zh) * | 2021-07-27 | 2023-08-11 | 苏州浪潮智能科技有限公司 | 一种基于远端的缓存数据查询方法、装置及*** |
CN113596177B (zh) * | 2021-08-13 | 2023-06-27 | 四川虹美智能科技有限公司 | 智能家居设备的ip地址的解析方法和装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1551014A (zh) * | 2003-03-28 | 2004-12-01 | 利用联机分析处理变型的预设高速缓存的***和方法 | |
CN1588879A (zh) * | 2004-08-12 | 2005-03-02 | 复旦大学 | 一种互联网内容过滤***及过滤方法 |
US7707367B1 (en) * | 2007-06-28 | 2010-04-27 | Emc Corporation | Data storage system having separate atomic operation/non-atomic operation paths |
CN102375853A (zh) * | 2010-08-24 | 2012-03-14 | ***通信集团公司 | 分布式数据库***、在其中建立索引的方法和查询方法 |
CN102937955A (zh) * | 2011-11-29 | 2013-02-20 | Ut斯达康通讯有限公司 | 一种基于MySQL双存储引擎的内存数据库实现方法 |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6134530A (en) * | 1998-04-17 | 2000-10-17 | Andersen Consulting Llp | Rule based routing system and method for a virtual sales and service center |
WO2000052594A2 (en) * | 1999-03-03 | 2000-09-08 | Ultradns, Inc. | Scalable and efficient domain name resolution |
US6484161B1 (en) * | 1999-03-31 | 2002-11-19 | Verizon Laboratories Inc. | Method and system for performing online data queries in a distributed computer system |
JP4202534B2 (ja) * | 1999-06-25 | 2008-12-24 | 株式会社東芝 | Webデータのキャッシュ更新方法およびキャッシュ更新システム |
CA2279359C (en) * | 1999-07-30 | 2012-10-23 | Basantkumar John Oommen | A method of generating attribute cardinality maps |
JP4552242B2 (ja) * | 1999-10-06 | 2010-09-29 | 株式会社日立製作所 | 仮想表インタフェースと該インタフェースを用いた問合せ処理システム及び方法 |
US20040236726A1 (en) | 2003-05-19 | 2004-11-25 | Teracruz, Inc. | System and method for query result caching |
US7685384B2 (en) * | 2004-02-06 | 2010-03-23 | Globalscape, Inc. | System and method for replicating files in a computer network |
US8423569B2 (en) * | 2006-08-09 | 2013-04-16 | International Business Machines Corporation | Decomposed query conditions |
JP2008287660A (ja) * | 2007-05-21 | 2008-11-27 | Hitachi Ltd | キャッシュサーバ、キャッシュ管理方法、およびキャッシュ管理プログラム |
US8458129B2 (en) * | 2008-06-23 | 2013-06-04 | Teradata Us, Inc. | Methods and systems for real-time continuous updates |
US7885969B2 (en) * | 2007-09-17 | 2011-02-08 | International Business Machines Corporation | System and method for executing compute-intensive database user-defined programs on an attached high-performance parallel computer |
CN101567882A (zh) * | 2008-04-25 | 2009-10-28 | 北京易路联动技术有限公司 | 一种提供终端本地化网络服务的方法、装置及*** |
US8229911B2 (en) * | 2008-05-13 | 2012-07-24 | Enpulz, Llc | Network search engine utilizing client browser activity information |
US20100010987A1 (en) * | 2008-07-01 | 2010-01-14 | Barry Smyth | Searching system having a server which automatically generates search data sets for shared searching |
CN101741889B (zh) * | 2008-11-17 | 2012-07-11 | 北京易路联动技术有限公司 | 一种网络服务集中管理的方法、***及服务器 |
JP5257172B2 (ja) * | 2009-03-16 | 2013-08-07 | 富士通株式会社 | 検索方法、検索プログラム及び検索装置 |
US8204903B2 (en) * | 2010-02-16 | 2012-06-19 | Microsoft Corporation | Expressing and executing semantic queries within a relational database |
WO2012041388A1 (en) * | 2010-10-01 | 2012-04-05 | Telefonaktiebolaget Lm Ericsson (Publ) | Generation of a query plan for accessing a database |
US8930347B2 (en) | 2011-12-14 | 2015-01-06 | International Business Machines Corporation | Intermediate result set caching for a database system |
US9424202B2 (en) * | 2012-11-19 | 2016-08-23 | Smartfocus Holdings Limited | Database search facility |
CN103207919A (zh) * | 2013-04-26 | 2013-07-17 | 北京亿赞普网络技术有限公司 | 一种MongoDB集群快速查询计算的方法及装置 |
-
2013
- 2013-10-18 US US14/057,712 patent/US9870415B2/en active Active
-
2014
- 2014-09-10 JP JP2014184468A patent/JP6522911B2/ja not_active Expired - Fee Related
- 2014-09-12 IN IN2630DE2014 patent/IN2014DE02630A/en unknown
- 2014-09-16 EP EP14184943.0A patent/EP2851814A1/en not_active Ceased
- 2014-09-17 CN CN201410473639.1A patent/CN104598508B/zh active Active
- 2014-09-18 KR KR1020140124537A patent/KR102229011B1/ko active IP Right Grant
- 2014-09-18 BR BR102014023214A patent/BR102014023214A2/pt not_active IP Right Cessation
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1551014A (zh) * | 2003-03-28 | 2004-12-01 | 利用联机分析处理变型的预设高速缓存的***和方法 | |
CN1588879A (zh) * | 2004-08-12 | 2005-03-02 | 复旦大学 | 一种互联网内容过滤***及过滤方法 |
US7707367B1 (en) * | 2007-06-28 | 2010-04-27 | Emc Corporation | Data storage system having separate atomic operation/non-atomic operation paths |
CN102375853A (zh) * | 2010-08-24 | 2012-03-14 | ***通信集团公司 | 分布式数据库***、在其中建立索引的方法和查询方法 |
CN102937955A (zh) * | 2011-11-29 | 2013-02-20 | Ut斯达康通讯有限公司 | 一种基于MySQL双存储引擎的内存数据库实现方法 |
Non-Patent Citations (2)
Title |
---|
"农机作业调度管理云服务平台架构及其支撑技术研究";谢秋波等;《广东农业科学》;20140725(第14期);第168-172页 * |
"采油工程数据库在生产管理中的应用";杨刚;《化工管理》;20140116(第03期);第55页 * |
Also Published As
Publication number | Publication date |
---|---|
IN2014DE02630A (zh) | 2015-06-26 |
EP2851814A1 (en) | 2015-03-25 |
JP6522911B2 (ja) | 2019-05-29 |
US20150081658A1 (en) | 2015-03-19 |
KR20150032508A (ko) | 2015-03-26 |
KR102229011B1 (ko) | 2021-03-17 |
CN104598508A (zh) | 2015-05-06 |
JP2015072681A (ja) | 2015-04-16 |
BR102014023214A2 (pt) | 2015-09-08 |
US9870415B2 (en) | 2018-01-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104598508B (zh) | 用于快速查询响应的***和方法 | |
US10726039B2 (en) | Systems and methods for updating database indexes | |
US20190012357A1 (en) | Logging changes to data stored in distributed data storage system | |
US9514211B2 (en) | High throughput data modifications using blind update operations | |
EP2653986B1 (en) | Client-side caching of a database transaction token. | |
US9031918B2 (en) | Per-user aggregation of database content | |
US20200084213A1 (en) | Low-latency differential access controls in a time-series prediction system | |
EP3365785A1 (en) | Event batching, output sequencing, and log based state storage in continuous query processing | |
US9547689B2 (en) | Security descriptors for record access queries | |
US10789262B2 (en) | Progressive chart rendering | |
US20110246417A1 (en) | System, method and computer program product for synchronizing entities within a system | |
US20130159339A1 (en) | Data Container Access in a Database System | |
US9928178B1 (en) | Memory-efficient management of computer network resources | |
US11409742B2 (en) | Efficient database searching for queries using wildcards | |
US20180373684A1 (en) | Techniques and Architectures for Native Data Field Lifecycle Management | |
US9928174B1 (en) | Consistent caching | |
US10331747B1 (en) | Method and system for creating and using persona in a content management system | |
US20140052752A1 (en) | Representation of business object in analytical application by combining replicated, analytical, and locally enriched data | |
US11151178B2 (en) | Self-adapting resource aware phrase indexes | |
US20200210257A1 (en) | Deduplication of Application Program Interface Calls | |
US20230185714A1 (en) | Transactional multi-version control enabled update of cached graph indices | |
US11113296B1 (en) | Metadata management for a transactional storage system | |
US10915576B2 (en) | High performance bloom filter |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: American Connecticut Applicant after: IMS HEALTH Inc. Address before: American Connecticut Applicant before: IMS Co.,Ltd. Address after: American Connecticut Applicant after: IMS Co.,Ltd. Address before: American Connecticut Applicant before: IMS HEALTH Inc. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |