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

    公开(公告)号:US07287035B2

    公开(公告)日:2007-10-23

    申请号:US10783599

    申请日:2004-02-20

    IPC分类号: G06F7/00 G06Q99/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(公共语言运行时)对象评估XML(可扩展标记语言)查询需要序列化CLR对象并从序列化数据中导出XML构造。 然后根据XML构造来评估查询。 在所描述的实现中,通过创建将对象的属性映射到对象信息集的信息集模型来实现重要的系统资源。 然后使用信息集来评估查询以定位对象值,因此不需要序列化。 动态生成的IL被使用并重新用于有效执行类似查询的后续评估步骤。

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

    公开(公告)号:US07644064B2

    公开(公告)日:2010-01-05

    申请号:US10782254

    申请日:2004-02-19

    IPC分类号: G07F17/30

    摘要: 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.

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

    Evaluating queries against in-memory objects without serialization
    4.
    发明授权
    Evaluating queries against in-memory objects without serialization 有权
    评估针对内存中对象的查询而不进行序列化

    公开(公告)号:US07792852B2

    公开(公告)日:2010-09-07

    申请号:US11876515

    申请日:2007-10-22

    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(Common Language Runtime)对象评估XML(可扩展标记语言)查询需要序列化CLR对象并从序列化数据中导出XML构造。 然后根据XML构造来评估查询。 在所描述的实现中,通过创建将对象的属性映射到对象信息集的信息集模型来实现重要的系统资源。 然后使用信息集来评估查询以定位对象值,因此不需要序列化。 动态生成的IL被使用并重新用于有效执行类似查询的后续评估步骤。

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

    公开(公告)号:US07664728B2

    公开(公告)日:2010-02-16

    申请号:US10783343

    申请日:2004-02-20

    IPC分类号: G07F17/30

    摘要: Implementations described herein relate to evaluating multiple queries represented in an opcode tree having opcode nodes and branch nodes. Each opcode node comprises an opcode that is a part of an opcode block derived from compilation of a query, the opcode block consisting of a linear sequence of opcodes. Opcode nodes are arranged in the tree according to location of its corresponding opcode in the opcode block with opcodes that occur earlier in the opcode block being represented at a higher tree level than subsequent opcodes. Only one opcode node corresponds to a common opcode block segment that is included in multiple queries. Executing the opcode tree against an input evaluates each of the multiple queries represented in the opcode tree.

    摘要翻译: 本文描述的实现涉及评估在具有操作码节点和分支节点的操作码树中表示的多个查询。 每个操作码节点包括作为从查询编译得到的操作码块的一部分的操作码,操作码块由操作码的线性序列组成。 操作码节点根据其操作码块中相应操作码的位置而排列在树中,其中操作代码块中较早出现的操作码在比后续操作码更高的树级别表示。 只有一个操作码节点对应于多个查询中包含的常见操作码块段。 针对输入执行操作码树会评估操作码树中表示的多个查询中的每一个。

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

    公开(公告)号:US07539691B2

    公开(公告)日:2009-05-26

    申请号:US10783598

    申请日:2004-02-20

    IPC分类号: 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.

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

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

    公开(公告)号:US07921129B2

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

    申请号:US11876564

    申请日:2007-10-22

    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(Common Language Runtime)对象评估XML(可扩展标记语言)查询需要序列化CLR对象并从序列化数据中导出XML构造。 然后根据XML构造来评估查询。 在所描述的实现中,通过创建将对象的属性映射到对象信息集的信息集模型来实现重要的系统资源。 然后使用信息集来评估查询以定位对象值,因此不需要序列化。 动态生成的IL被使用并重新用于有效执行类似查询的后续评估步骤。

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

    公开(公告)号:US07558917B2

    公开(公告)日:2009-07-07

    申请号:US10779328

    申请日:2004-02-13

    摘要: 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.

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

    High performance navigator for parsing inputs of a message
    9.
    发明授权
    High performance navigator for parsing inputs of a message 有权
    用于解析消息输入的高性能导航器

    公开(公告)号:US07548926B2

    公开(公告)日:2009-06-16

    申请号:US11245323

    申请日:2005-10-05

    IPC分类号: G06F17/30

    摘要: Example embodiments provide a high performance navigator configured to lightly touch on the elements or input of a message, without necessarily having to build an entire tree structure for each input within the message. In addition, as portions of the inputs are identified as requiring further details, only those stub nodes representing that particular input will be created; thus avoiding the setup cost associated with loading an entire tree. Other example embodiments also provide for other optimizations such as reducing the class types of node allocations needed for navigating a particular message. For instance, a single class is defined that holds enough fields to store all of the information needed for numerous input nodes. Further, these common node structures can simultaneously generate as an array that further allows for more efficient navigation of the inputs.

    摘要翻译: 示例性实施例提供了被配置为轻轻触摸消息的元素或输入的高性能导航器,而不必为消息内的每个输入构建整个树结构。 另外,由于输入的部分被识别为需要进一步的细节,所以仅将形成表示该特定输入的那些存根节点; 从而避免与加载整个树相关的设置成本。 其他示例实施例还提供其他优化,例如减少用于导航特定消息所需的节点分配的类类型。 例如,定义了一个类,它保存足够的字段来存储许多输入节点所需的所有信息。 此外,这些公共节点结构可以同时生成为进一步允许输入的更有效的导航的阵列。

    Safe mode for inverse query evaluations
    10.
    发明授权
    Safe mode for inverse query evaluations 有权
    反向查询评估的安全模式

    公开(公告)号:US07899817B2

    公开(公告)日:2011-03-01

    申请号:US11245322

    申请日:2005-10-05

    IPC分类号: G06F7/00 G06F11/00

    CPC分类号: G06F17/30938 G06F21/52

    摘要: Embodiments herein prevent or mitigate attacks on inverse query engines by providing safe mode routines that allow for the acceptance of third party messages and/or query expressions, as well as prevent trusted sources from accidental attacks. The mitigations fall into two categories: compile-time and runtime. Compile-time mitigations prevent query expressions from being accepted and compiled that are susceptible to known attacks. For example, the complexity of query expressions may be limited to functions with linear runtimes; constant memory usage; or ones that do not create large strings. Further, language constructs for the criteria in the query expression may not allow for nested predicates complexities. Runtime mitigations, on the other hand, monitor the data size and processing lengths of messages against the various query expressions. If these runtime quotas are exceeded, an exception or other violation indication may be thrown (e.g., abort), deeming the evaluation as under attack.

    摘要翻译: 这里的实施例通过提供允许接受第三方消息和/或查询表达式的安全模式例程,以及防止可信源来自意外攻击来防止或减轻对反向查询引擎的攻击。 缓解分为两类:编译时和运行时。 编译时缓解阻止查询表达式受到已知攻击的接受和编译。 例如,查询表达式的复杂性可能限于具有线性运行时的函数; 不断的内存使用; 或者不创建大字符串的那些。 此外,查询表达式中的条件的语言结构可能不允许嵌套谓词的复杂性。 另一方面,运行缓解则根据各种查询表达式监视消息的数据大小和处理长度。 如果超出这些运行时配额,可能会抛出异常或其他违规指示(例如,中止),将评估视为受到攻击。