Systems and methods for filter processing using hierarchical data and data structures
    1.
    发明申请
    Systems and methods for filter processing using hierarchical data and data structures 有权
    使用分层数据和数据结构进行过滤处理的系统和方法

    公开(公告)号:US20050182756A1

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

    申请号:US10781390

    申请日:2004-02-18

    IPC分类号: G06F7/00 G06F17/30

    摘要: At least one implementation described herein relates to maintaining filters according to hierarchical data associated with the filters. The filters are maintained in a tree structure that is used to match inputs with filters. A filter hierarchy is an in-memory tree of string segments where each node corresponds to a string segment and references zero or more filters. When an input is received, a path associated with the input is parsed into string segments and the tree is traversed according to the string segments to locate nodes that match the input (primary matching). The input is then compared to filters referenced by matching nodes to locate filters that match the input (secondary matching). As a result, the input is tested against significantly fewer filters and greater efficiency is achieved over typical systems. Also, the primary matching process returns filters in a sorted order which facilitates the secondary matching process.

    摘要翻译: 本文描述的至少一个实现涉及根据与滤波器相关联的层级数据来维护滤波器。 滤波器保持在树结构中,用于将输入与滤波器匹配。 过滤器层次结构是字符串段的内存中树,其中每个节点对应于字符串段,并引用零个或多个过滤器。 当接收到输入时,将与输入相关联的路径解析为字符串段,并根据字符串段遍历树,以定位与输入匹配的节点(主要匹配)。 然后将输入与匹配节点引用的过滤器进行比较,以定位与输入匹配的过滤器(辅助匹配)。 因此,对输入进行了测试,显着减少了滤波器,并且在典型系统上实现了更高的效率。 此外,主要匹配过程以排序顺序返回过滤器,这有助于辅助匹配过程。

    Systems and methods for filter table optimization
    2.
    发明授权
    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
    3.
    发明申请
    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
    4.
    发明申请
    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被使用并重新用于有效执行类似查询的后续评估步骤。

    Evaluating queries against in-memory objects without serialization
    6.
    发明授权
    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被使用并重新用于有效执行类似查询的后续评估步骤。

    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.

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

    Systems and methods for filter processing using hierarchical data and data structures
    9.
    发明授权
    Systems and methods for filter processing using hierarchical data and data structures 有权
    使用分层数据和数据结构进行过滤处理的系统和方法

    公开(公告)号:US07277885B2

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

    申请号:US10781390

    申请日:2004-02-18

    IPC分类号: G06F17/30 G06F7/00 G06F15/16

    摘要: At least one implementation described herein relates to maintaining filters according to hierarchical data associated with the filters. The filters are maintained in a tree structure that is used to match inputs with filters. A filter hierarchy is an in-memory tree of string segments where each node corresponds to a string segment and references zero or more filters. When an input is received, a path associated with the input is parsed into string segments and the tree is traversed according to the string segments to locate nodes that match the input (primary matching). The input is then compared to filters referenced by matching nodes to locate filters that match the input (secondary matching). As a result, the input is tested against significantly fewer filters and greater efficiency is achieved over typical systems. Also, the primary matching process returns filters in a sorted order which facilitates the secondary matching process.

    摘要翻译: 本文描述的至少一个实现涉及根据与滤波器相关联的层级数据来维护滤波器。 滤波器保持在树结构中,用于将输入与滤波器匹配。 过滤器层次结构是字符串段的内存中树,其中每个节点对应于字符串段,并引用零个或多个过滤器。 当接收到输入时,将与输入相关联的路径解析为字符串段,并根据字符串段遍历树,以定位与输入匹配的节点(主要匹配)。 然后将输入与匹配节点引用的过滤器进行比较,以定位与输入匹配的过滤器(辅助匹配)。 因此,对输入进行了测试,显着减少了滤波器,并且在典型系统上实现了更高的效率。 此外,主要匹配过程以排序顺序返回过滤器,这有助于辅助匹配过程。

    Systems and methods for parallel evaluation of multiple queries
    10.
    发明申请
    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.

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