Evaluating Queries Against In-Memory Objects Without Serialization
    1.
    发明申请
    Evaluating Queries Against In-Memory Objects Without Serialization 有权
    评估内存对象的查询而不进行序列化

    公开(公告)号:US20080040381A1

    公开(公告)日:2008-02-14

    申请号:US11876515

    申请日:2007-10-22

    IPC分类号: G06F7/00

    摘要: At least one implementation described herein relates to evaluating queries structured according to a first format against one or more objects structured according to a second, different format without serializing the object. Typically, evaluating an XML (eXtensible Markup Language) query against a CLR (Common Language Runtime) object required serializing the CLR object and deriving an XML construct from the serialized data. The query is then be evaluated against the XML construct. In the described implementations, significant system resources are realized by creating an infoset model that maps properties of an object to an object infoset. The query is then evaluated using the infoset to locate object values and, thus, no serialization is required. Dynamically generated IL is used and re-used to efficiently perform subsequent evaluation steps on similar queries.

    摘要翻译: 本文所描述的至少一个实现涉及针对根据第二不同格式而构造的一个或多个对象,根据第一格式来结构化查询而不串行化该对象。 通常,针对CLR(Common Language Runtime)对象评估XML(可扩展标记语言)查询需要序列化CLR对象并从序列化数据中导出XML构造。 然后根据XML构造来评估查询。 在所描述的实现中,通过创建将对象的属性映射到对象信息集的信息集模型来实现重要的系统资源。 然后使用信息集来评估查询以定位对象值,因此不需要序列化。 动态生成的IL被使用并重新用于有效执行类似查询的后续评估步骤。

    Evaluating queries against in-memory objects without serialization
    2.
    发明申请
    Evaluating queries against in-memory objects without serialization 失效
    评估针对内存中对象的查询而不进行序列化

    公开(公告)号:US20050187908A1

    公开(公告)日:2005-08-25

    申请号:US10783599

    申请日:2004-02-20

    IPC分类号: G06F7/00 G06F17/30

    摘要: At least one implementation described herein relates to evaluating queries structured according to a first format against one or more objects structured according to a second, different format without serializing the object. Typically, evaluating an XML (extensible Markup Language) query against a CLR (Common Language Runtime) object required serializing the CLR object and deriving an XML construct from the serialized data. The query is then be evaluated against the XML construct. In the described implementations, significant system resources are realized by creating an infoset model that maps properties of an object to an object infoset. The query is then evaluated using the infoset to locate object values and, thus, no serialization is required. Dynamically generated IL is used and re-used to efficiently perform subsequent evaluation steps on similar queries.

    摘要翻译: 本文所描述的至少一个实现涉及针对根据第二不同格式而构造的一个或多个对象,根据第一格式来结构化查询而不串行化该对象。 通常,针对CLR(公共语言运行时)对象评估XML(可扩展标记语言)查询需要序列化CLR对象并从序列化数据中导出XML构造。 然后根据XML构造来评估查询。 在所描述的实现中,通过创建将对象的属性映射到对象信息集的信息集模型来实现重要的系统资源。 然后使用信息集来评估查询以定位对象值,因此不需要序列化。 动态生成的IL被使用并重新用于有效执行类似查询的后续评估步骤。

    Systems and methods for parallel evaluation of multiple queries
    3.
    发明申请
    Systems and methods for parallel evaluation of multiple queries 有权
    用于并行评估多个查询的系统和方法

    公开(公告)号:US20050187947A1

    公开(公告)日:2005-08-25

    申请号:US10783343

    申请日:2004-02-20

    IPC分类号: G06F17/00 G06F17/30

    摘要: Implementations described herein relate to using a filter engine opcode tree for evaluating multiple queries. The opcode tree includes opcode nodes and branch nodes. Each opcode node includes one or more computer instructions resulting from compiling a query. Executing the opcode tree a single time evaluates each of multiple queries represented in the opcode tree. When a new opcode node is added to the tree, the context of the opcode tree and the structure of the new opcode are taken into account when modifying a branch node or an opcode node. In certain situation, a branch node is optimized to include an indexed lookup function such as a hash function, to optimize processing of opcode nodes that depend from the branch node. Adding and removing nodes to/from the opcode tree can be handled by a filter engine component or by an opcode object being added to/removed from the tree.

    摘要翻译: 这里描述的实现涉及使用过滤器引擎操作码树来评估多个查询。 操作码树包括操作码节点和分支节点。 每个操作码节点包括一个或多个由编译查询而产生的计算机指令。 执行操作码树一次可以评估操作码树中表示的多个查询中的每一个。 当新的操作码节点被添加到树中时,在修改分支节点或操作码节点时,考虑操作码树的上下文和新操作码的结构。 在某些情况下,优化分支节点以包括诸如散列函数的索引查找功能,以优化从分支节点依赖的操作码节点的处理。 向/从操作码树添加和删除节点可以由过滤器引擎组件或被添加到/从树中删除的操作码对象来处理。

    Forward-only evaluation for XPATH inverse query processing
    4.
    发明申请
    Forward-only evaluation for XPATH inverse query processing 失效
    针对XPATH反向查询处理的仅向前评估

    公开(公告)号:US20050187906A1

    公开(公告)日:2005-08-25

    申请号:US10783578

    申请日:2004-02-20

    IPC分类号: G06F7/00 G06F17/30

    摘要: An inverse query engine that uses an instruction tree to represents the queries to be applied against input, instead of applying each query individually. Each node in the instruction tree represents executable code. Each branch of the instruction tree when executed from the root node to a terminating branch node represents the instructions to be executed to process that query against the input. The instruction tree is forward-only in that once a node in a tree is processed against an input, that executable code associated with that node is not ever processed again for that node. Accordingly, processing resources and time is conserved.

    摘要翻译: 反向查询引擎,它使用指令树来表示要针对输入应用的查询,而不是单独应用每个查询。 指令树中的每个节点表示可执行代码。 从根节点到终止分支节点执行时,指令树的每个分支表示要针对输入处理该查询的执行指令。 指令树是前向的,因为一旦根据输入处理树中的一个节点,与该节点相关联的可执行代码就不会再次被该节点处理。 因此,节省了处理资源和时间。

    Evaluating queries against in-memory objects without serialization
    5.
    发明申请
    Evaluating queries against in-memory objects without serialization 失效
    评估针对内存中对象的查询而不进行序列化

    公开(公告)号:US20080040333A1

    公开(公告)日:2008-02-14

    申请号:US11876564

    申请日:2007-10-22

    IPC分类号: G06F17/30

    摘要: At least one implementation described herein relates to evaluating queries structured according to a first format against one or more objects structured according to a second, different format without serializing the object. Typically, evaluating an XML (eXtensible Markup Language) query against a CLR (Common Language Runtime) object required serializing the CLR object and deriving an XML construct from the serialized data. The query is then be evaluated against the XML construct. In the described implementations, significant system resources are realized by creating an infoset model that maps properties of an object to an object infoset. The query is then evaluated using the infoset to locate object values and, thus, no serialization is required. Dynamically generated IL is used and re-used to efficiently perform subsequent evaluation steps on similar queries.

    摘要翻译: 本文所描述的至少一个实现涉及针对根据第二不同格式而构造的一个或多个对象,根据第一格式来结构化查询而不串行化该对象。 通常,针对CLR(Common Language Runtime)对象评估XML(可扩展标记语言)查询需要序列化CLR对象并从序列化数据中导出XML构造。 然后根据XML构造来评估查询。 在所描述的实现中,通过创建将对象的属性映射到对象信息集的信息集模型来实现重要的系统资源。 然后使用信息集来评估查询以定位对象值,因此不需要序列化。 动态生成的IL被使用并重新用于有效执行类似查询的后续评估步骤。

    Systems and methods for filter table optimization
    7.
    发明申请
    Systems and methods for filter table optimization 有权
    过滤器表优化的系统和方法

    公开(公告)号:US20050198065A1

    公开(公告)日:2005-09-08

    申请号:US10782254

    申请日:2004-02-19

    IPC分类号: G06F7/00

    摘要: At least one implementation described herein relates to using multiple filter engines to optimize query processing. A filter engine comprises a general matcher and at least one optimized matcher, a matcher being a filter engine in its own right. When the filter engine receives an input, the input is analyzed to determine if it can be handled by the optimized matcher. While the general matcher is fully compliant with a query language, the optimized matcher only handles a subset of the query language. Therefore, inputs that can be processed in the optimized matcher are compared against fewer filters, making the filtering process more efficient. The filter engine may also process only a portion of an input in the optimized matcher and another portion of the input in the general matcher, which reduces processing overhead.

    摘要翻译: 本文所描述的至少一个实现涉及使用多个过滤器引擎来优化查询处理。 过滤引擎包括通用匹配器和至少一个优化的匹配器,匹配器本身就是过滤器引擎。 当过滤器引擎接收到输入时,分析输入以确定是否可以由优化的匹配器处理。 虽然通用匹配器完全符合查询语言,但是优化的匹配器仅处理查询语言的子集。 因此,可以在优化的匹配器中处理的输入与较少的过滤器进行比较,从而使过滤过程更有效率。 滤波器引擎还可以仅处理优化匹配器中的输入的一部分和通用匹配器中的输入的另一部分,这降低了处理开销。

    Systems and methods for updating a query engine opcode tree
    8.
    发明申请
    Systems and methods for updating a query engine opcode tree 有权
    用于更新查询引擎操作码树的系统和方法

    公开(公告)号:US20050187907A1

    公开(公告)日:2005-08-25

    申请号:US10783598

    申请日:2004-02-20

    IPC分类号: G06F7/00 G06F17/30

    摘要: Implementations described herein relate to using a filter engine opcode tree for evaluating multiple queries. The opcode tree includes opcode nodes and branch nodes. Each opcode node includes one or more computer instructions resulting from compiling a query. Executing the opcode tree a single time evaluates each of multiple queries represented in the opcode tree. When a new opcode node is added to the tree, the context of the opcode tree and the structure of the new opcode are taken into account when modifying a branch node or an opcode node. In certain situation, a branch node is optimized to include an indexed lookup function such as a hash function, to optimize processing of opcode nodes that depend from the branch node. Adding and removing nodes to/from the opcode tree can be handled by a filter engine component or by an opcode object being added to/removed from the tree.

    摘要翻译: 这里描述的实现涉及使用过滤器引擎操作码树来评估多个查询。 操作码树包括操作码节点和分支节点。 每个操作码节点包括一个或多个由编译查询而产生的计算机指令。 执行操作码树一次可以评估操作码树中表示的多个查询中的每一个。 当新的操作码节点被添加到树中时,在修改分支节点或操作码节点时,考虑操作码树的上下文和新操作码的结构。 在某些情况下,优化分支节点以包括诸如散列函数的索引查找功能,以优化从分支节点依赖的操作码节点的处理。 向/从操作码树添加和删除节点可以由过滤器引擎组件或被添加到/从树中删除的操作码对象来处理。

    Inverse query engine systems with cache and methods for cache maintenance
    9.
    发明申请
    Inverse query engine systems with cache and methods for cache maintenance 有权
    具有缓存和缓存维护方法的反向查询引擎系统

    公开(公告)号:US20050182754A1

    公开(公告)日:2005-08-18

    申请号:US10779328

    申请日:2004-02-13

    IPC分类号: G06F7/00 G06F17/30

    摘要: An inverse query engine system having a cache integrated therein and methods for maintaining the cache are described herein. Entities storing filters in the inverse query engine cache thus do not have to maintain an individual cache to maintain the filters. The inverse query engine system cache is maintained within a bounded size by removing expired filters from the cache and trimming the cache to an optimal size when the cache reaches a maximum size. In the event that filter size cannot be determined efficiently, weights may be associated with filters stored in the cache, each weight identifying an estimate of a filter size. The weights are used to determine cache size and to maintain the cache size within particular bounds.

    摘要翻译: 这里描述了具有集成在其中的高速缓存的逆查询引擎系统和用于维护高速缓存的方法。 因此,在逆查询引擎高速缓存中存储过滤器的实体不必维护单个缓存来维护过滤器。 反向查询引擎系统缓存通过从高速缓存中移除已过期的过滤器并在高速缓存达到最大大小时将高速缓存修剪到最佳大小来维护在有界大小内。 在无法有效地确定滤波器大小的情况下,权重可以与存储在高速缓存中的滤波器相关联,每个权重识别滤波器尺寸的估计。 权重用于确定高速缓存大小并将高速缓存大小保持在特定范围内。

    Select indexing in merged inverse query evaluations
    10.
    发明申请
    Select indexing in merged inverse query evaluations 有权
    合并反查询评估中选择索引

    公开(公告)号:US20070078874A1

    公开(公告)日:2007-04-05

    申请号:US11244670

    申请日:2005-10-05

    IPC分类号: G06F7/00

    摘要: Embodiments provide for select indexing, which uses an array to simultaneously construct output sets for instructions that operate on input nodesets with common axes. During evaluation of a message against an instruction tree, when a branching node with a large “splay” is iterated over, rather than iterating over an input nodeset with a common axis once per branch, the select indexing described herein iterates over the nodeset once in total. More specifically, the select index data structure includes an array of empty node sets for instructions that both, branch from a branching node, and evaluate input nodes that share a common axis. Identifiers for the input nodeset are compared to indices within the select index, and matches for the input nodes are added to the corresponding nodeset for the appropriate instruction. The results of the evaluation may then be passed to the branches of the select instructions for further processing.

    摘要翻译: 实施例提供了选择索引,其使用阵列来同时构造用于在具有公共轴的输入节点集上操作的指令的输出集合。 在针对指令树的消息评估期间,当遍历具有大“splay”的分支节点时,而不是遍历具有每个分支的公共轴的输入节点集,这里所述的选择索引在该节点集上一次遍历 总。 更具体地,选择索引数据结构包括用于从分支节点分支并且评估共享公共轴的输入节点的指令的空节点集的阵列。 将输入节点集的标识符与选择索引中的索引进行比较,并将输入节点的匹配添加到相应的节点集中以获取适当的指令。 然后可以将评估结果传递给选择指令的分支用于进一步处理。