CN106164897A - 用于寄存内存数据库的系统及方法 - Google Patents

用于寄存内存数据库的系统及方法 Download PDF

Info

Publication number
CN106164897A
CN106164897A CN201480073426.8A CN201480073426A CN106164897A CN 106164897 A CN106164897 A CN 106164897A CN 201480073426 A CN201480073426 A CN 201480073426A CN 106164897 A CN106164897 A CN 106164897A
Authority
CN
China
Prior art keywords
node
search
data
record
manager
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
Application number
CN201480073426.8A
Other languages
English (en)
Inventor
斯科特·莱特纳
弗兰兹·威克斯尔
布莱恩·齐默尔曼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Chubais LLC
Qbase LLC
Original Assignee
Chubais LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Chubais LLC filed Critical Chubais LLC
Publication of CN106164897A publication Critical patent/CN106164897A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/278Data partitioning, e.g. horizontal or vertical partitioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2393Updating materialised views
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24554Unary operations; Data partitioning operations

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

公开了一种内存数据库系统以及用于管理分布式内存数据库的方法,该内存数据库系统包括具有模块的一个或更多个节点,该模块被配置成对与搜索引导器相关联的分区器所划分的集合的数据库分区进行存储和分配。根据模式对数据库集合进行划分。当系统界面提出了请求,则根据模式将分区、集合以及记录进行更新和移除。监管器基于接受自每个节点的心跳确定节点的状态。用户可以通过系统界面向搜索管理器发送查询。搜索管理器应用字段处理器技术、将搜索查询转发至搜索引导器,以及将一组结果记录返回至分析代理。分析代理对来自搜索管理器的候选结果记录执行分析处理。在接收到来自搜索管理器的搜索查询之后,包括与集合相关联的分区器的搜索引导器搜索分区中的记录并对记录进行评分,然后将一组候选结果记录返回。

Description

用于寄存内存数据库的系统及方法
技术领域
本发明总体上涉及内存数据库,更具体地涉及内存数据库内的分面搜索(facetedsearching)和搜索建议。本发明总体上涉及数据库,更具体地涉及内存数据库。本发明总体上涉及内存数据库,更具体地涉及内存数据库中所使用的硬件配置。本发明总体上涉及数据库架构,更具体地涉及容错系统架构。本发明总体上涉及数据库,更具体地涉及一种可以用于内存数据库的依赖管理器(dependency manager)。本发明总体上涉及内存数据库,更具体地涉及可插拔内存分析模块。本发明总体上涉及内存数据库,更具体地涉及内存数据库内的非排他性搜索。本发明总体上涉及数据压缩和数据库,更具体地涉及用于内存数据库以及文档数据库的压缩方法。
背景技术
分面搜索为用户提供了增量搜索和浏览体验,使得用户从关键字搜索开始并且以有组织且简单的方式查阅搜索结果。分面搜索在许多场合用于提供搜索结果的映射,该映像可以提供对这些搜索结果的组织和内容的有用的见解。分面导航还使得用户能够以相当简单的方式系统地缩小搜索结果。由于其具有许多优势,分面搜索和导航在各种各样的环境和平台上被快速地部署。然而,分面引擎工作的方式非常缓慢并且非常占内存,这阻碍了这些类型的搜索引擎更好地运行和扩展。
因此,仍然需要准确、快速且可扩展的分面搜索引擎。
计算机是具有存储大量信息并且提供对这些信息的访问的用途的强有力工具,而数据库是用于将信息存储在计算机系统中并且为用户提供简易的访问的常见机制。通常,数据库是信息的有组织集合,该信息被存储为具有“字段”信息的“记录”(例如,餐馆数据库可以具有某个区域内的每个餐馆的记录,其中,每个记录包括用于描述餐馆的特性的字段,诸如,名称、地址、烹饪风格等)。
数据库管理系统在操作过程中需要频繁地从存储设备(诸如,磁盘)检索数据或者将数据保存至存储设备(诸如,磁盘)。不利地是,对这样的存储设备的访问可能会有些缓慢。为了加快对数据的访问,数据库通常采用“缓存”或“高速缓存”,“缓存”或“高速缓存”为被分配以存储最近所使用的数据对象的一部分相对快速存储器(例如,随机访问存储器(RAM))。存储器通常设置在半导体或其他电子存储介质上并且经由快速数据总线耦接至CPU(中央处理器),该快速数据总线使得存储器内所保存的数据相对于磁盘上所存储的数据而言能够被更快速地访问。
当试图解决这个问题时,可以采取的一种方法为将数据库中的所有数据都存储在存储器中,然而,由于计算机上所提供的存储器的大小是有限的,因此在试图处理大规模数据库时,必然要面临大量的障碍。
因此,仍然需要对数据进行高速大规模地存储和检索的改进的方法。
计算机是具有存储大量信息并且提供对这些信息的访问的用途的强有力工具,而数据库是用于将信息存储在计算机系统中并且为用户提供简易的访问的常见机制。通常,数据库是信息的有组织集合,该信息被存储为具有“字段”信息的“记录”。(例如,餐馆数据库可以具有某个区域内的每个餐馆的记录,并且每个记录包括用于描述餐馆的特性的字段,诸如,名称、地址、烹饪风格等。)
数据库管理系统在操作过程中需要频繁地从存储设备(诸如,磁盘)检索数据或者将数据保存至存储设备(诸如,磁盘)。为了加快对数据的访问,数据库通常采用“缓存”或“高速缓存”,“缓存”或“高速缓存”为被分配以存储最近所使用的数据对象的一部分相对快速存储器(例如,随机访问存储器(RAM))。存储器通常设置在半导体或其他电子存储介质上并且经由快速数据总线耦接至CPU(中央处理器),该快速数据总线使得存储器内所保存的数据相对于磁盘上所存储的数据而言能够被更快速地访问。
当试图解决这个问题时,可以采取的一种方法为将数据库中的所有数据都存储在存储器中,然而,由于计算机上所提供的存储器的大小是有限的,因此在试图处理大规模数据库时,必然要面临大量的障碍。这些障碍的某些可以包括:确定操作数据库所需要的技术,包括所需要的网络、不同节点所需要的硬件等。
因此,仍然需要对数据进行高速大规模地存储和检索的改进的方法。
计算机是具有存储并提供对大规模信息的访问的用途的强有力工具。数据库是用于存储计算机系统上的信息同时为用户提供轻松访问的常见机制。通常,数据库是信息的有组织集合,该信息被存储为具有“字段”信息的“记录”。(例如,餐馆数据库可以具有某个区域内的每个餐馆的记录,并且每个记录包括用于描述餐馆的特性的字段,诸如,名称、地址、烹饪风格等。)
通常,数据库可以利用计算机群集以便能够存储并访问大量数据。这可能需要对计算机群集的状态进行管理。当试图解决该问题时,可以采取的一种方法是雇佣一个专业团队,该专业团队能够访问现场或远程维护系统所需要的工具。然而,当试图在大规模数据库的情况下使用该方法时,还存在必须面对的大量障碍。
因此,仍然需要在大规模数据库下具有良好的容错性和高可用性的改进的方法。
包管理系统(package management system)可以被设计成通过远程管理和软件分布(software distribution)技术来节省组织时间和金钱,所述技术可以消除对系统或进程的任意合适的部件(诸如,软件,操作系统部件、应用程序、支持库、应用程序数据、通用文档以及其他数据)进行手动安装和更新。现有技术中涉及包管理系统的一种传统方法可以是红帽包管理器(RPM)。包管理器可以具有一种统一的方式来安装和/或更新软件程序和相关联的部件。
为了安装一组软件或数据包(software or data packages),包管理器可以以拓扑顺序将包及其依赖包在图形上进行排序。因此,包管理器可以采集图形底部的包并且首先安装这些包。最后,包管理器可以将该图形向上移动并且安装下一组包。
然而,现有技术中涉及数据库管理系统的传统方法是指:一些包管理器可能仅保持系统中的软件配置,而可能不能支持元数据或原始数据收集依赖。在数据库中,特别是在内存数据库或其他分布式存储架构中,集中于数据的部署与集中于软件的部署一样多,并且因此对数据部署所需要的依赖树(dependency tree)进行维护是必不可少的。
传统技术可以在整个传统分布式计算架构中的一个或更多个计算机群集上对软件部件和依赖关系进行自动部署、安装以及配置。所需要的解决方案是在分布式计算架构(诸如,内存数据库或其他分布式数据平台)中使分布式数据库中的原始数据存储库(primarydatastore)中的数据、元数据以及软件的部署、安装以及配置自动化。此外,由于传统技术方案集中在对一组静态的服务和数据进行部署,因此传统系统不具有如下能力:检测服务或数据故障,然后通过将数据、元数据以及软件的包移动至分布式系统中的其他可用节点来自动地从这些故障中恢复。
出于上述理由,需要一种改进的包管理应用程序以保证/保持系统配置的成功执行以及对数据管理系统的依赖性。
传统数据库使得用户能够找到与实体相关的多条信息,然而,在不存在正式外键关系的情况下,用于描述该实体的数百万或数十亿的记录通常没有被链接在一起。存在具有非正式、不可靠或不存在外键关系的记录的大的集合。因此,将与单个实体相关的所有记录汇集到一起是极具挑战性的。
传统的方法是将这样的集合中的所有数据预链接,使得找到一个记录将直接通向记录的集合。这种传统方法具有两个明显的问题。
首先,将大的记录集合预链接是一个相当耗时的密集型过程(intensive process)。这使可用来将新记录集成到所链接的集合中所耗费的时间产生了明显的滞后,从而不利地影响了集合中的数据的及时性。
其次,按照定义对数据进行预链接受到被用于执行预链接的模型的限制,从而大大降低了该系统的用户改变记录被连接的强弱程度的参数的能力。预链接还受到在预链接步骤时可用数据的限制。
另一种方法是避免对数据进行任何预链接,而是,响应于用户查询,进行实时链接,或者“即时链接”。该方法使得新记录能够立即加入到集合中,从而避免了任何及时性问题。这种方法还使得各种模型能够被应用以在链接过程中使用不同的算法和参数来执行链接。这种方法的传统缺点是不能执行数据密集型查询和不能达到可接受的交互响应时间。这可以通过使内存数据库中的集合具备嵌入式分析来克服。
因此,本领域需要一种灵活的数据库架构,该数据库架构能够支持多种定制分析模块,被设计成实时处理数据,而无需对数据在系统中管理、准备以及存储的方式进行改变。
相对于非结构化数据而言,对结构化和半结构化数据进行数据访问会更简单、更准确以及更快速。当使用结构化和半结构化数据通过指示关键数据字段来执行搜索时,能够在非常短的时间内获得非常准确的结果,但也有可能将与查询相关的许多记录从结果列表中排除。之所以会出现这种情况,是因为这些记录可以被存储在具有不同模式(schemata)的集合中,或者因为这些记录可能具有与查询中所指定的字段中的某些相对应的一些丢失的字段或者空字段。
因此,需要具有改进的查全率能力的搜索方法,从而使得能够混合和匹配具有不同模式的记录。
计算机是具有存储大量信息并且提供对这些信息的访问的用途的强有力工具,而数据库是用于将信息存储在计算机系统中并且为用户提供简易的访问的常见机制。通常,数据库是信息的有组织集合,该信息被存储为具有“字段”信息的“记录”(例如,餐馆数据库可以具有某个区域内的每个餐馆的记录,并且每个记录包括用于描述餐馆的特性的字段,诸如,名称、地址、烹饪风格等)。
通常,数据库可以利用计算机群集以便能够存储并访问大量数据。这可能需要大量的信息存储空间。通常,可以使用压缩技术来降低寄存所述信息所必要的存储空间的量,但是这有可能会显著增加计算负载。因为许多常见的压缩方法需要在每次对整个记录或许多记录进行访问时对该整个记录或许多记录进行解压缩。
因此,仍然需要对数据进行高速大规模存储和检索的改进的方法。
发明内容
本文公开了一种寄存内存数据库的系统架构,该系统架构可以包括计算设备和软件模块的任意合适的组合以用于对系统的分布式计算架构内寄存的内存数据库中的数据记录进行存储、操纵以及检索。系统的计算硬件所执行的软件模块可以包括系统界面、搜索管理器、分析代理、搜索引导器、分区器、数据的集合、监管器、依赖管理器;这些软件模块的任意合适的组合可以在寄存内存数据库的系统架构中找到。
执行软件模块的节点可以压缩记录中所存储的数据以使得能够对大规模数据集进行内存存储、查询和检索。可以在数据库的几乎任意级别(例如,数据库级别、集合级别、记录级别、字段级别)上进行压缩和解压缩。执行软件模块的节点可以支持存储分布式内存数据库中的复杂数据结构,诸如,JavaScript对象标记(JSON)。由于系统部件的分布式架构以及能够监视和恢复故障服务的各种系统硬件和软件模块,内存数据库系统的实施例可以是容错的。容错可以包括系统部件冗余和系统部件的自动恢复过程等技术。内存数据可以使用评分方法通过对数据评分来有效且高效地查询数据。根据用于对数据评分的评分方法可以对搜索结果进行排名,从而使得执行查询的用户和/或节点能够以更为定制并且从一个查询到下一个查询上下文相关的方式利用数据。执行分析代理的节点可以对数据的内存数据库映像中存储的记录执行多个高级分析。在某些情况下,可以对通过搜索引导器从一组搜索查询结果中检索出的记录执行分析。
在一个实施例中,一种寄存内存数据库的计算系统,包括:包括处理器的分区器节点,该处理器被配置成:响应于接收到数据库的一个或更多个记录的集合,基于与所述集合相关联的机器可读模式文件来确定是否压缩所述集合;根据所述模式文件在逻辑上将所述集合划分成一个或更多个分区;以及根据所述模式文件将所述一个或更多个分区分配至一个或更多个存储节点;存储节点,包括用于存储从与所述存储节点相关联的分区器所接收的分区的非易失性机器可读主存储器;包括处理器的搜索管理器节点,该处理器用于从系统的客户端设备接收搜索查询;并且响应于从所述客户端设备接收到所述搜索查询,将所述搜索查询作为搜索引导器查询发送至一个或更多个搜索引导器,其中,所述搜索查询是机器可读计算机文件,所述机器可读计算机文件包含与满足所述搜索查询的一个或更多个记录相关联的参数;搜索引导器节点,所述搜索引导器节点与一个或更多个分区器相关联并且包括处理器,该处理器被配置成:响应于从所述搜索管理器节点接收到搜索引导器查询,查询由所述搜索引导器查询所指示的一组一个或更多个分区;识别该组查询到的分区中所存储的一个或更多个候选记录;使用评分算法针对每个相应的候选记录计算第一得分;以及将包含有满足阈值的一个或更多个候选记录的一组一个或更多个查询结果发送至所述搜索管理器;以及包括处理器的分析代理节点,该处理器被配置成:响应于从接收自所述搜索管理器节点的该组查询结果中识别出将两个或更多个记录关联的数据链接,自动地生成包含有针对该组查询结果的一组一个或更多个数据链接,其中,该数据链接将第一记录中包含的数据与第二记录中包含的数据关联。
在另一实施例中,一种计算机执行的方法包括:寄存内存数据库的系统的搜索管理器计算机接收表示搜索查询的二进制数据,所述搜索查询包含对所述数据库进行查询的参数,其中,所述系统包括一个或更多个存储节点,所述一个或更多个存储节点包括用于存储所述数据库中的一个或更多个集合的主存储器,其中,每个集合包括一个或更多个记录;所述计算机根据所述搜索查询将所述搜索查询发送至一个或更多个搜索引导器节点,其中,所述搜索查询指示一组一个或更多个待查询的集合;响应于从所述一个或更多个搜索引导器接收到包含满足所述搜索查询的一个或更多个记录的一组搜索结果,所述计算机基于所述搜索查询将该组搜索结果发送至一个或更多个分析代理节点,其中,该组搜索结果中的每个相应的记录与基于所述搜索查询中的评分算法的得分相关联;以及响应于所述计算机从所述一个或更多个分析代理节点接收到包含一组一个或更多个数据链接的计算机文件:计算机根据从所述分析代理节点所接收的该组一个或更多个数据链接对所述搜索结果中的所述一个或更多个记录进行更新。
在另一实施例中,一种计算机执行的方法包括:计算机根据计算机可读模式文件从搜索引导器接收一个或更多个集合,其中,所述集合中的每一个包括具有一个或更多个字段的一组一个或更多个记录;所述计算机根据所述模式对每个集合进行分区;所述计算机根据所述模式对分区中的记录进行压缩;以及所述计算机将所述分区中的每一个分配至一个或更多个相关联的搜索引导器以将所述分区中的每一个包括在与所述搜索引导器相关联的分区器所对应的每个集合中。
公开了用于在内存数据库内进行分面搜索的方法。在一些实施例中,所公开的分面搜索方法和搜索引擎可以用于生成搜索建议。分面搜索引擎能够使用字面或非字面的关键字构建算法来进行部分前缀模糊匹配。所公开的搜索引擎能够实时处理大量的非结构化数据以生成搜索建议。可以支持所公开的分面搜索引擎的内存数据库的系统架构可以包括模块和群集的任意合适的组合;包括下列项中的一个或更多个:系统结构、搜索管理器、分析代理、搜索引导器、分区器、集合、监管器、依赖管理器或任意合适的组合。在一些实施例中,当用户开始在合适的搜索窗口中打字时,系统可以自动地生成一个或更多个建议,所述建议是根据对用于在搜索框上打出的文字进行的模糊匹配推导出的。系统可以针对一个或更多个记录对查询评分,其中,系统可以对记录的一个或更多个字段的匹配进行评分并且于是可以确定对于记录对查询的所有匹配的得分。系统可以确定该得分是否大于预定接受阈值,其中该阈值可以是在搜索查询中定义的或者可以是默认值。
在处理过程中,可以对具有不同特异性级别的分面进行如下处理:从文档中提取出来;消除歧义;规范化;按照话题进行分组;以及索引并临时地添加至知识库中。在一些实施例中,所提取出来的分面可以用于映射搜索结果。在另一些实施例中,模糊匹配算法可以将临时存储于集合中的分面与系统和下拉窗口生成的一个或更多个查询进行比较,所述一个或更多个查询可以包括最相关级别的一类分面,可以作为用户的搜索建议;用户可以被运行选择不同级别的分面来缩小搜索查询。
在一个实施例中,计算机可实现方法包括:通过计算机从包括表示基于文本的信息的数据的语料库中提取一个或更多个分面;使用计算机来对从语料库提取的一个或更多个分面中的每个分面进行消歧义;使用计算机生成与一个或更多个分面相对应的一个或更多个索引;通过计算机从包括数据库的一个或更多个记录的分区的记录中检索出基于相关联的索引的每个分面,其中,数据库的集合包括一个或更多个分区,以及其中,每个相应的分面表示与数据的一个或更多个记录有关的数据库中存储的数据的层次关系;以及计算机基于每个分面生成建议的搜索查询。
公文公开了寄存内存数据库的系统中的节点的链接配置,这些节点具有多种连接带宽和延迟层,其中,第一带宽层可以相对于第二带宽层具有更大的带宽,第二带宽层可以相对于第三带宽层具有更大的带宽,第三带宽层可以相对于第四带宽层具有更大的带宽,以及第一带宽层可以相对于第二带宽层具有较低的延迟。
本文公开了一种具有多种网络分段的分布式计算系统,其中,每个网络分段都具有应用于内存数据平台的带宽和延迟层。系统包括具有合适数量的网络段的连接配置,其中,网络段可以连接孩子系统内部和外部的若干服务器,并且连接至系统中的服务器群集。系统的服务器可以包括软件模块,诸如,搜索管理器、分析代理、搜索引导器、依赖管理器、监管器以及分区器等。服务器和模块可以连接至所期望的网络段以达到所期望的带宽和延迟需求。服务器和模块可以连接至所期望的网络段以将不同类型的网络业务区分开,从而防止同种类型的业务相互干扰。
在一个实施例中,提供了包括寄存内存数据库的一个或更多个节点的系统,该系统包括多个存储节点,所述多个存储节点包括用于存储集合的一个或更多个分区的非易失性机器可读存储解释,其中,每个相应的存储节点所存储的集合包括数据库的一个或更多个记录,并且其中,每个相应的存储节点的存储介质包括主存储器;搜索管理器节点包括处理器,该处理器用于:使用从用户节点接收的搜索查询生成一个或更多个搜索引导器查询,根据搜索查询将所述一个或更多个搜索引导器查询发送至一个或更多个搜索查询引导器,以及响应于接收到一组或更多个组搜索结果根据搜索查询将所述一组或更多组搜索结果转发至一个或更多个分析代理节点;分析代理节点包括处理器,该处理器用于:响应于从搜索管理器节点接收到一组搜索结果执行一个或更多个分析算法;搜索引导器节点包括处理器,该处理器用于:响应于从搜索管理器接收到搜索引导器查询根据该搜索引导器查询查询存储节点的数据库记录的集合,并且响应于对一组或更多组搜索结果的识别将一组或更多组搜索结果发送至搜索管理器节点,其中,每个相应的搜索结果与包括满足搜索引导器查询的数据的数据库记录相对应;多个网络分段包括通过每个相应的网络分段进行通信的一个或更多个节点之间的一个或更多个连接,其中,第一网络分段包括搜索管理器、搜索引导器以及分析代理。
本文公开了一种适用于任意分布式计算系统的容错架构。容错体系结构可以包括任意合适数量的监管器、依赖管理器、节点管理器以及分布在整个任意合适数量节点上的其他模块,从而能够维持所期望的系统功能、冗余性以及当系统的子部件发生故障时的系统可靠性。本发明描述了一种适用于任意分布式计算系统的容错架构。分布式计算系统的示例可以是内存数据库,但是其他分布式计算系统可以实现本文所描述的特征。本文所公开的系统和方法通过以下方式为分布式计算系统提供了容错特征:自动地检测出故障,并且通过将处理模块以及与这些模块中的每个模块相关联的依赖(软件、数据、元数据等)移动到分布式系统中的能够寄存所述处理模块和/或所述依赖的其他计算机节点中来从所检测到的故障中恢复过来。
在一个实施例中,一种计算机实现的方法包括:由包括有执行监管器模块的处理器的计算机来监视用于监视节点上存储的一个或更多个软件模块的节点管理器所生成的心跳信号,其中,该心跳信号包括表示由节点管理器所监视的每个相应的软件模块的状态的二进制数据;计算机基于从接收自节点的节点管理器的心跳信号对节点的一个或更多个软件模块中的失效软件模块进行探测;响应于探测到失效的软件模块,计算机自动地向节点的节点管理器发送用于指令节点修复该失效的软件模块的命令;以及计算机基于接收自节点管理器的心跳信号确定节点管理器是否成功地修复了模块。
在另一实施例中,一种计算机实现的方法包括:计算机持续地向监管器节点发送心跳信号;当接收到修复命令时,计算机对失效模块进行修复;以及当计算机探测到模块已经被修复时,向监管器节点发送已修复状态信号。
在另一实施例中,一种容错分布式计算系统包括:一个或更多个包括处理器的节点,该处理器用于向监管器节点发送心跳信号并且对安装在节点上的一个或更多个软件模块的执行进行监视;以及一个或更多个包括处理器的监管器节点,该处理器用于对接收自一个或更多个节点的一个或更多个心跳信号进行监视以及基于每个相应的心跳信号确定每个相应的节点的状态。
本文公开了系统及方法,用于对针对任意合适的数据库或搜索引擎进行安装、升级以及配置不同软件、数据或元数据包(software,data or metadata packages)的过程期间的依赖进行处理。这些系统及方法可以使得如下过程自动化:对分布式计算系统(诸如,寄存内存数据库的分布式系统或其他类型的分布式数据平台)的原始数据存储库中存储的多种数据、元数据以及软件进行部署、安装以及配置。示例性实施例可以描述这些系统及方法,其中,依赖管理器(配置管理)可以直接地链接至监管器(系统管理),其中,监管器可以以功能齐全的方式维护系统,并且可以接收配置请求以对系统进行变更。
在一个实施例中,一种计算机实现的方法包括:具有分布式计算系统的计算机将对于与系统的目标节点相关联的机器可读可部署包文件的请求发送至依赖管理器节点,该依赖性管理器节点包括非易失性机器可读存储介质,该非易失性机器可读存储介质用于根据依赖树存储与系统的一个或更多个节点相关联的一个或更多个可部署包文件;响应于从依赖节点接收到可部署包文件,计算机将该可部署包文件发送至目标节点,其中,与目标节点相关联的可部署包文件包括基于依赖树的一组一个或更多个依赖文件;以及计算机指令目标节点将可部署包中的一组依赖安装至目标节点。
在另一实施例中,一种计算机实现的方法包括:响应于从监管器节点接收到配置目标节点的请求,计算机使用与目标节点相关联的依赖树来确定待被安装到目标节点的一组一个或更多个依赖文件;计算机从包括用于存储一个或更多个依赖文件的非易失性机器可读存储介质的至少一个数据存储机构中获取一组一个或更多个依赖文件中的每个依赖文件;计算机生成包括一组一个或更多个依赖文件的可部署包文件;以及计算机将所述可部署包文件发送至监管器节点。
在另一实施例中,一种数据库管理系统包括:一个或更多个节点,所述一个或更多个节点包括用于存储一个或更多个依赖文件的非易失性存机器可读存储器以及用于监视一个或更多个依赖文件的状态的处理器,其中,每个相应的依赖文件是节点的部件,该部件与安装在第二节点上的相应的部件具有比较关系;一个或更多个监管器节点,所述一个或更多个监管器节点包括处理器,该处理器用于监视一个或更多个节点中的每个节点的状态并且被配置成基于每个相应的节点的状态将包括一组依赖文件的可部署包发送至每个节点;以及一个或更多个依赖管理器节点,所述一个或更多个依赖管理器节点包括:非易失性机器可读存储介质和处理器,其中,非易失性机器可读存储介质用于存储与一个或更多个节点相关联的一个或更多个依赖树文件,以及处理器被配置成根据与节点相关联的依赖树来编译可部署包文件,其中,可部署包文件包括被存储在至少一个数据存储机构上的一组一个或更多个依赖文件,以及依赖管理器节点基于目的在于接收可部署包的节点相关联的依赖树确定依赖从而包括在可部署包中。
本文公开了一种寄存内存数据库的分布式计算机系统架构,其可以包括模块和群集的任意合适的组合;包括下列项中的一个或更多个:系统结构、搜索管理器、分析代理、搜索引导器、分区器、集合、监管器、依赖管理器或任意合适的组合。系统的实施例可以具有节点和软件模块的可插拔架构,这些可插拔架构可以便于安装、嵌入,或者包括其他即时(即,无需中断或者干扰系统的操作现状)部件(例如,节点、模块、数据库实例)。系统的实施例可以接受后来开发的或者外部的、第三方定制分析模块用于包含在内存数据库中。数据库查询可以为中间查询结果指定应该即时应用哪些分析模块和参数,而无需分析模块和参数可以指定应用动态中间查询结果,而无需首先从数据库中检索数据。本文所描述的系统及方法使得定制分析模块能够独立于内存数据库进行开发,并且定制分析模块还可以在寄存有数据库的系统内进行部署以得到使用内存数据库执行分析的性能优势。已公开和可获得的API可以被用于与独立创建的分析模块传送数据,这是因为API可以无缝地插入或者集成到内存数据库中。数据的验证可用于确定新模块是否符合API的预期。
在一个实施例中,内存数据库系统包括:一个或更多个存储器节点,所述一个或更多个存储节点包括用于存储数据库的一个或更多个记录的非易失性机器可读存储介质,其中,各个所述存储器节点中的存储介质是各个所述存储器节点的主存储器;分析代理节点,所述分析代理节点包括处理器,该处理器:响应于接收到指示所述分析模块的分析的请求,使用作为输入参数的一组查询结果执行分析模块,其中,所述一组查询结果包括表示一个或更多个记录的二进制数据,所述一个或更多个记录是从用于存储所述一个或更多个记录的所述一个或更多个存储器节点中检索出的;以及分析模块数据存储库,所述分析模块数据存储库包括:用于存储一个或更多个分析模块的非易失性机器可读存储介质,以及处理器,所述处理器被配置成将新分析模块发送至一个或更多个分析代理节点。
本文描述了用于提供搜索模式的系统及方法,该搜索模式可以针对数据存储系统,诸如,内存数据库系统来实现,为用户提供了指定查询算法和详细的评分和排名算法的能力,使得可以根据搜索查询的独立方面中的每一个确定不同的算法。然后,引导搜索查询的节点可以使用每个指定的算法来找到每个可能的候选记录(即时,一些字段在特定的模式中为空或者没有被定义),然后使用指定的评分和排名算法对候选记录进行评分和排名。传统的系统不能在单个搜索查询内提供独立的查询和评分算法,因此每个评分算法只能在完全独立的一组字段上运行。本文所描述的系统及方法提供这样的方法来减小数据准备的负担并且能够在数据被加载时出于并非最初的目的来重复使用数据。
本文所描述的系统及方法提供了在群集的内存数据库中进行非排他性搜索。非排他性搜索方法可以能够在如下情况下执行搜索:结果可以包括这样的记录,查询中所指定的该记录的字段没有被填充或定义。所公开的方法包括模糊索引、模糊匹配以及评分算法的应用,这使得系统能够使用不同的模式对记录进行搜索、评分以及比较。这显著地提高了相关记录的查全率。
可以支持所公开的非排他性搜索方法的内存数据库的系统架构可以包括模块和群集的任意合适的组合;包括下列项中的一个或更多个:系统结构、搜索管理器、分析代理、搜索引导器、分区器、集合、监管器、依赖管理器或任意合适的组合。
系统可以针对一个或更多个查询对记录评分,其中,系统可以对记录的一个或更多个可获得字段的匹配进行评分并且于是可以确定记录的总体匹配得分。如果一些字段缺失,则罚分或较低的得分会被赋给这些记录而不将记录排除。系统可以确定该得分是否大于预定接受阈值,其中该阈值可以是在搜索查询中定义的或者可以是默认值。在其他实施例中,模糊匹配算法可以将临时地存储在集合中的记录与系统正生成的一个或更多个查询进行比较。
本文公开了用于压缩结构化或半结构化数据的方法,然而,应当理解的是,可以使用各种合适的压缩算法(即,并不需要特定的压缩算法)。本文所描述的系统及方法可以可以对数据库的每个字段执行合适的数据压缩处理的组合,使得被压缩的数据库记录可以达到商业上可接受的比例的压缩率,同时仍然使得能够仅对感兴趣的记录和字段进行字段的解压缩(即,仅对满足数据库搜索查询的数据记录或字段进行解压缩)。便于对记录或字段进行选择性的解压缩的压缩技术的实现不仅允许对被压缩的数据进行水平的基于记录的存储,而且允许对解压缩的数据的字段进行柱状或垂直访问。这提供了压缩的减小存储的益处,同时避免了当仅对特定字段进行解压缩时所造成的与解压缩相关联的大量的计算能力和延迟。
本文所描述的系统及方法还可以实现N-gram压缩技术。传统地,N-gram仅限于仅对一个字母链(来字符串的连续字符)或者文字链(文本中的连续字符串)进行压缩。传统的N-gram压缩不能在这样的压缩技术的单个实现内对字母链、单个文字和/或文字链进行压缩。本文描述了在记录存储期间针对柱状压缩使用相关的N-gram压缩,从而使得能够进行良好的整体压缩,同时作为搜索查询的响应,仍然能够提供对单个记录或记录内的单个字段进行低延迟的访问。
本文所描述的系统及方法描述了应用于内存数据库和文档数据库的压缩技术的实施例。然而,应当理解的是,系统及方法的这样的技术和其他方面也可以应用于更通用的数据压缩。
在一个实施例中,计算机执行的方法包括:计算机确定压缩技术以应用于一组数据元素中的一个或更多个数据元素,其中,所述计算机基于各个数据元素的数据类型使用模式来确定所述压缩技术以应用于各个数据元素;所述计算机使用所述模式定义的压缩技术来压缩数据元素,其中,所述压缩技术压缩所述数据元素使得当作为搜索查询的响应,所述数据元素被返回时,所述数据元素分别被解压缩;所述计算机将每个被压缩的数据元素存储在记录的字段中,所述记录的字段用于存储所述数据元素的数据类型的数据;所述计算机根据模式为每个字段关联参考表中的字段标记,其中,表示性的该标记对字段的数据类型进行标识;所述计算机向数据库查询满足接收自搜索引导器的搜索查询的一组一个或更多个数据元素;以及响应于识别出满足所述搜索查询的一组一个或更多个数据元素,所述计算机使用所述压缩技术对满足所述搜索查询的一组一个或更多个数据元素中的一个或更多个数据元素中的每个元素进行解压缩,其中,不满足所述搜索查询的每个数据元素仍然是被压缩的。
在另一实施例中,计算系统包括:用于存储一个或更多个集合的一个或更多个节点,所述集合包括一组一个或更多个记录,每个所述记录包括用于存储数据的一组字段;以及压缩处理器,所述压缩处理器用于根据与集合相关联的模式对一个或更多个字段进行压缩。
根据下面的详细说明,本发明的个各个其他方面、特征将变得明显。下面的说明书中阐明了实施例的其他特征和优点,并且部分特征和优点根据说明书将变得明显。本发明的目的和其它的优点通过在书面说明书、权利要求书以及附图中所特别指出的结构来实现并达到。
附图说明
通过参考附图会更好地理解本发明。这些附图中的部件并不一定是按比例绘制的,而重点在于对本发明的原理进行说明。在这些附图中的不同视图中,附图标记表示相应的部件。
图1示出了根据一种示例性实施例的内存数据库架构。
图2是根据一种示例性实施例的用于分面搜索的方法的流程图。
图3是根据一种示例性实施例的使用分面搜索来生成搜索建议的方法的流程图。
图4示出了根据一种示例性实施例的内存数据库架构。
图5示出了一种示例性实施例的节点配置。
图6是根据一种示例性实施例的用于建立节点的流程图。
图7是根据一种示例性实施例的用于描绘在节点中的模块建立的流程图。
图8是根据一种示例性实施例的描述搜索管理器的功能的流程图。
图9是根据一种示例性实施例的描述搜索引导器的功能的流程图。
图10是根据一种示例性实施例的描述分区器的功能的流程图。
图11是根据一种示例性实施例的描述在搜索引导器中建立分区的过程的流程图。
图12A示出了根据一种示例性实施例的集合、该集合的分区版本以及与该集合相关联的分区。
图12B示出了根据一种示例性实施例的与搜索管理器连接的、包括第一集合的第一和第二搜索节点。
图12C示出了根据一种示例性实施例的、与搜索管理器断开的、包括第一集合的第一搜索节点,以与搜索管理器连接的、包括第一集合的第二搜索节点。
图12D示出了根据一种示例性实施例的、加载了更新的集合的第一搜索节点,以及与搜索管理器连接的第二搜索节点。
图12E示出了根据一种示例性实施例的、与搜索管理器连接的包括更新集合的第一搜索节点,以及与搜索管理器断开的包括第一集合的第二搜索节点。
图12F示出了根据一种示例性实施例的、加载更新的集合的第二搜索节点以及与搜索管理器连接的第一搜索节点。
图12G示出了根据一种示例性实施例的、与搜索管理器连接的、包括更新的集合的第一和第二搜索节点。
图13示出了根据一种示例性实施例的包括两个集合的分区的搜索节点的群集。
图14是寄存有内存数据库系统的计算系统的连接图示,其中,节点在逻辑上被群集。
图15示出了根据一种示例性系统实施例的分布式系统管理架构的部件。
图16示出了一种示例性系统实施例中的节点的示例性节点配置。
图17是示出了根据一种示例性方法实施例的、由分布式计算系统进行的故障处理的流程图。
图18示出了根据一个实施例的监管器与依赖管理器之间的连接的框图。
图19是根据一个实施例的配置过程的流程图。
图20示出了根据一个实施例的用于系统的配置的依赖性的框图。
图21示出了根据一种示例性实施例的内存数据库架构。
图22是根据一个实施例的用于将新模块添加至内存数据库的方法的流程图。
图23示出了根据一种示例性实施例的内存数据库架构。
图24是描述了根据一种示例性实施例的用于非排他性搜索的方法的流程图。
图25示出了一种示例性实施例的数据压缩设备。
图26示出了一种示例性实施例的结构化数据表。
图27示出了一种示例性实施例的令牌表。
图28示出了一种示例性实施例的n-gram表。
图29示出了一种示例性实施例的用于描述经压缩记录的表。
定义
本文所使用的下列术语可以具有如下定义:
“实体提取”是指用于提取诸如名称、地点以及组织的信息的信息处理方法。
“语料库”是指一个或更多个文档的集合。
“特征”是至少部分地从文档中推导出的任意信息。
“事件概念库”是指事件模板模型的数据库。
“事件”是指至少由其自身的实时出现进行表征的一个或更多个特征。
“事件模型”是指数据的集合,该数据的集合可以用于与特定类型的事件进行比较并且用于标识特定类型的事件。
“模块”是指适用于执行至少一个或更多个任务的计算机或软件部件。
“数据库”是指包括用于存储一个或更多个集合并且适用于处理一个或更多个查询的群集和模块的任意组合的任意系统。
“查询”是指从一个或更多个合适的数据库中检索信息的请求。
“存储器”是指适用于以足够高的速度存储信息并且检索所述信息的任意硬件部件。
“节点”是指适用于运行一个或更多个模块的计算机硬件配置。
“群集”是指一组一个或更多个节点。
“集合”是指离散的一组记录。
“记录”是指可以被处理为一个单元的一条或更多个条信息。
“分区”是指集合的记录的任意分隔部分。
“搜索管理器”或“S.M.”是指被配置成至少接收一个或更多个查询并且返回一个或更多个搜索结果的模块。
“分析代理”、“分析模块”、“A.A.”或“A.M.”是指一种模块,该模块被配置成至少接收一个或更多个记录、处理所述一个或更多个记录并且返回所产生的一个或更多个经处理的记录。
“搜索引导器”或“S.C.”是指一种模块,该模块被配置成至少在分区上运行一个或更多个搜索查询并且将搜索结果返回至一个或更多个搜索管理器。
“节点管理器”或“N.M.”是指一种模块,该模块被配置成至少对节点执行一个或更多个命令并且与一个或更多个监管器通信。
“监管器”是指一种模块,该模块被配置成至少与系统的一个或更多个部件通信并且确定一个或更多个状态。
“心跳”或“HB”是指向一个或更多个监管器传送一个或更多个状态的信号。
“分区器”是指一种模块,该模块被配置成至少将一个或更多个集合划分为一个或更多个分区。
“依赖管理器”或“D.M.”是指一种模块,该模块被配置成:至少包括一个或更多个依赖树,这些依赖树与系统中的一个或更多个模块、分区或合适的组合相关联;至少接收与所述一个或更多个依赖树的任意一个或更多个合适的部分相关的信息的请求;以及至少返回从所述部分得到的一个或更多个配置。
“文档”是指具有开头和结尾的信息的离散电子表示。
“现场语料库”是指随着新文档被上载至网络,而被不断地馈送的语料库。
“特征”是指至少部分地从文档中推导出的任意信息。
“特征属性”是指与特征相关联的元数据,例如,特征在文档中的位置、置信度(confidence score)等。
“事实”是指特征之间的客观关系。
“知识库”是指包括消除了歧义的特征或分面的库。
“即时链接模块”是指在向系统请求数据时而不是将数据添加至系统时执行数据链接的任意链接模块。
“看法(Sentiment)”是指与文档、部分文档或特征相关联的主观评估。
“话题”是指至少部分地从语料库中推导出的一组专题信息。
“前缀”是指长度为p的字符串,该字符串包括节点的所有子树所共享的关键字字符中的最长字符串以及用于存储数据记录的参考的数据记录字段。
“分面”是指类、特定主题、话题或特征的被明确定义、相互排斥并且完全穷尽的方面、属性或特性。
“字段”是指记录内的一个数据元素。
“模式”是指用于描述一个或更多个记录的一个或更多个特性的数据。
“分段”是指将记录分成较小的记录直到达到所期望的粒度级别。
“资源”是指节点中被配置成存储或处理数据的硬件。在一种或更多种实施例中,“资源”可以包括RAM、硬盘存储器以及计算能力等。
“依赖树”是指一种类型的数据结构,其可以示出分区、模块、文件或数据等之间的关系。
“可部署包”是指一组信息,这组信息可以用于对分区、模块、文件或数据等进行配置。
“分析方法”是指可以被应用于对搜索结果进行聚集的任意操作。
“分析参数”是指一种参数,该参数用于描述分析模块为了获得特定结果必须执行的操作。
“应用程序编程接口”或“API”使得用户所开发的不同软件模块能够与分布式计算系统中的部件(例如,软件模块、节点)兼容。
“字典”是指信息的中央储存库,该中央储存库包括关于MEMDB中的字段的详情,例如,意思、与其他数据的关系、来源、用途以及格式。
“未定义”指代字段并不是特定模式的一部分。
“未填充”是指字段是模式的一部分但是没有被指定的值。
“对象”是指数据记录内的字段的逻辑集合。
“数组”是指记录内的数据值的有序列表。
“压缩”是指将表示值所需要的电子数据的量减小。
“令牌表”是指一种为一个或更多个其他更复杂的值定义一个或更多个简化的值的表。
“n-gram”是指N个连续的整体单元的数据,其可以是字符、词、一组词,其中,N大于或等于1。即,在句子“The quick brown fox jumped over the lazy dog.”中,“the”、“e”、“he”以及“brown fox”都是是有效的N-GRAM。
“N-GRAM表”是指一种为一个或更多个其他更复杂的值定义一个或更多个简化的值的表。
“JSON”是指JavaScript对象标记,是一种数据交换格式。
“BSON”是指二进制JSON,是一种数据交换格式。
“YAML”是指编码语言“YAML不是一种标记语言”,是一种数据交换格式。
“文档数据库”是指面向文档的数据库,该数据库被设计来对面向文档的信息进行存储、检索并管理。
具体实施方式
现在将详细参考优选实施例,这些实施例中的示例在附图中进行了说明。上述实施例是示例性的。本领域的技术人员认为:多个可替代部件和实施例可以用于代替本文所描述的特定示例并且仍然属于本发明的保护范围。在不偏离于本发明的主旨或范围的情况下,可以使用其他实施和/或做出其他改变。在详尽的说明书中所描述的示意性实施例并非意在对这里所提出的主题进行限定。
然而,应当理解的是,由此目的并非在于对本发明的范围进行限制。这里所说明的创造性特征的变更和进一步的修改以及这里所描述的本发明的原理的其他应用(这些变更、修改和应用可以由相关领域中并且获得本发明的技术人员实现),被认为是在本发明的范围内。
本发明描述了一种用于对多个源中的事件进行检测、提取并验证。源可以包括新闻源、社交媒体网站和/或包括与可以包括与事件有关的数据的任何源。
本文所公开的系统与方法的各个实施例从不同的源采集数据以便于识别独立的事件。
图1示出了根据一种示例性实施例的内存数据库100的系统架构。MEMDB 100的系统架构可以包括系统界面102、第一搜索管理器104、第n搜索管理器106、第一分析代理108、第n搜索代理110、第一搜索引导器112、第n搜索引导器114、分区器116、第一集合118、第n集合120、监管器122以及依赖管理器124。
在一种或更多种实施例中,系统界面102可以被配置成将MEMDB 100的系统架构外部所生成的一个或更多个查询馈送至第一群集中的一个或更多个搜索管理器110、112,并且第一群集至少包括:第一搜索管理器104到第n搜索管理器106。在该第一群集中的所述一个或更多个搜索管理器可以与第二群集中的一个或更多个分析代理链接,以及第二群集至少包括第一分析代理108到第n分析代理110。
在该第一群集中的搜索管理器可以与第三群集中的一个或更多个搜索引导器链接,以及第二群集至少包括第一搜索引导器112到第n搜索引导器114。第三群集中的搜索引导器可以被链接至一个或更多个分区器126,其中,可以在一个或更多个时刻即时地将与至少第一集合118至第n集合120相对应的分区保存。
MEMDB 100中所包括的群集中所包括的一个或更多个节点、模块或上述项的合适的组合可以被链接至一个或更多个监管器122,其中,在所述群集中的一个或更多个节点、模块或合适的结合可以被配置成将至少一个心跳发送至一个或更多个监管器122。监管器122可以被链接至一个或更多个依赖管理器124,其中,所述一个或更多个依赖管理器124可以包括对于一个或更多个模块、分区或上述项的合适的组合的一个或更多个依赖树。监管器122可以附加地链接至一个或更多个其他监管器122,其中,附加的监管器122可以被链接至MEMDB 100的系统架构中所包括的群集。
图2是根据示例性实施例的描述用于分面搜索200的方法的流程图。使用分面对文档进行分离或分组可以有效地缩小搜索结果。当执行分面搜索时,每个面可以被认为文档在多维空间中的维度,并且通过选择特定的文档面可以显著地改善找到相关搜索结果的可能性,同时可以大大地缩短执行搜索所需要的时间。
该过程可以使用搜索管理器202所接收的查询来开始,其中,由外部源所生成的一个或更多个查询可以通过一个或更多个搜索管理器来接收。在一些实施例中,作为与用户之间的交互,这些查询可以由系统接口102自动地生成。在一种或更多种实施例中,这些查询可以通过标记语言(包括XML和HTML)来表示。在一个或更多个其他实施例中,这些查询可以通过一种结构来表示,其中,包括通过JSON表示查询的实施例。在一些实施例中,可以通过紧凑或二进制格式来表示查询。
然后,所接收的查询可以通过搜索管理器204进行解析。这个过程使得系统能够确定是否需要进行字段处理206。在一种或更多种实施例中,系统可以利用查询中包括的信息确定是否需要进行处理。在一个或更多而过其他实施例中,一个或更多个搜索管理器可以自动地确定查询的一个或更多个字段中的哪个字段需要进行所期待的处理。
如果系统确定需要对一个或更多个字段进行字段处理,则一个或更多个搜索管理器可以在搜索管理器处理字段208期间,将一个或更多个合适的处理技术应用于一个或更多个所期望的字段。在一种或更多种实施例中,合适的处理技术可以包括地址标准化、接近边界以及昵称解释等。在一些实施例中,合适的处理技术可以包括从字符串中提取前缀并且生成非字面的关键字,该非字面的关键字之后可以用于执行模糊模糊匹配技术。
然后,当S.M.构建搜索查询210时,一个或更多个搜索管理器可以构建与一个或更多个查询相关联的一个或更多个搜索查询。在一种或更多种实施例中,可以构建搜索查询以便于作为基于堆栈的搜索进行处理。
随后,S.M.可以向S.C.发送搜索查询212。在一些实施例中,一个或更多个搜索管理器可以向一个或更多个搜索引导器发送一个或更多个搜索查询,其中,所述一个或更多个搜索引导器可以与一个或更多个搜索查询中指定的集合相关联。
一个或更多个搜索引导器可以针对一个或更多个查询对记录评分,其中,搜索引导器可以对记录的一个或更多个字段的匹配进行评分并且于是可以确定对于记录的所有匹配的得分。系统可以确定该得分是否大于预定接受阈值,其中该阈值可以是在搜索查询中定义的或者可以是默认值。在一种或更多种实施例中,可以根据待评分的一个或更多个字段来改变默认的得分阈值。如果搜索引导器确定得分超过所期望的阈值,则可以将记录添加至搜索结果。搜索引导器可以不断地对记录进行评分,直到确定该记录为分区中的最后一个记录为止。如果搜索引导器确定已经对分区中的最后一个记录进行了处理,则搜索引导器可以对所得到的结果列表进行排序。然后,搜索引导器可以将结果列表返回至搜索管理器。
当S.M.接收并整理来自S.C.的结果214时,一个或更多个搜索引导器将一个或更多个搜索结果返回至一个或更多个搜索管理器,其中,在一种或更多种实施例中,可以以异步方式将所述一个或更多个搜索结果返回。然后,一个或更多个搜索管理器可以将来自一个或更多个搜索引导器的结果编译成一个或更多个结果列表。
系统可以确定由一个或更多个搜索管理器所编译的搜索结果是否需要进行分析处理216。在一种或更多种实施例中,系统利用查询中包括的信息确定处理是否是必要的。在一个或更多而过其他实施例中,一个或更多个搜索管理器可以自动地确定查询的一个或更多个字段中的哪个字段需要进行所期待的处理。
如果系统确定需要进行聚集的分析处理,则一个或更多个分析代理可以通过一个或更多个合适的处理技术将结果218处理成一个或更多个结果列表。在一种或更多种实施例中,合适的技术包括:将多个记录累积为更完整的记录中;对结果执行一个或更多个分析,并且确定关于相邻记录的信息等。在一些实施例中,分析模块可以包括:消歧模块、链接模块、即时(on-the-fly)链接模块、或者任意其它合适的模块和算法。在处理过程中,可以对具有不同特异性级别的分面进行如下处理:从文档中提取出来;消除歧义;规范化;按照话题进行分组;以及索引。可以根据层次结构对分面进行索引,其中,该层次结构可以被预定义或者由系统即时定义。在一种或更多种实施例中,级别为1的分面可以是最宽的面,并且可以通递减的相关性或更高程度的特异性来推导出后续的等级。
结果列表的分面可以被存储在集合中。在一些实施例中,每种类型的面可以被存储在不同的集合中或者一组集合中。
在根据一些实施例的处理之后,一个或更多个分析代理可以将一个或更多个经处理的结果列表返回至一个或更多个搜索管理器。
搜索管理器可以返回搜索结果220。在一些实施例中,一个或更多个搜索管理器可以对一个或更多个结果列表解压缩并且发送至发起查询的系统。
任选地,根据一些实施例,搜索结构可以被临时地存储在知识库中222并且被返回至用户接口224。该知识库可以被用来存储相关消除了歧义的分面的群集以及他们相关的特征。当可以将新文档下载到MEMDB中时,可以将新的消除了歧义的一组分面与现有的知识库进行比较,以便于确定分面之间的关系并且确定新的分面与先前所提取的分面是否存在匹配。如果所比较的分面是匹配的,则可以对知识库进行更新并且可以将相匹配的ID返回。如果所比较的分面与任意已经提取的分面都不匹配,则将唯一的ID被指定给消除了歧义的实体或分面,并且该ID与定义特征的群集相关联并且被存储在MEMDB的知识库中。
图3是根据一种示例性实施例的使用分面搜索来生成搜索建议的方法的流程图。用于生成搜索建议的方法300可以开始于查询生成302。在一些实施例中,当用户开始在合适的搜索窗口中打字时,系统可以自动地生成建议,所述建议是根据对用于在搜索框上打出的文字进行的前缀推导出的。甚至使用在搜索窗键入的最小数量的字符(3个或4个)并且在用户已经完成了在搜索窗口键入字符串之前,可以生成这些搜索。
一旦合适的搜索被生成,则可以应用用于分面搜索的方法200。该方法的应用可以包括使用可以允许部分前缀匹配的文字或非文字的关键字算法。
为了生成搜索建议304,模糊匹配算法可以将临时地存储在集合中的分面与系统正生成的一个或更多个查询进行比较。通过这种方式,关于当前的一个或更多个查询的点击数(counts of hits)可以被指定给具有不同层次结构等级的分面,这些分面可以在集合的不同分区中。然后,可以给级别为1的分面分配累积点击数并且根据累积点击数进行排序。
然后,可以将搜索建议呈现给用户303。在一些实施例中,这可以以下拉窗的形式实现,该下拉窗可以包括一个最相关的一级分面,每个分面具有与其相关联的点击数并且用户可以被允许选择不同级别的分面以缩小搜索查询或者开始新的查询。根据一些实施例,在用户完成在搜索窗口键入字符串之前,该过程可以生成并供应分面搜索建议,当搜索窗口中的字符开始形成文字时,该过程会多次发生。
图4示出了系统架构400,该系统架构100具有:系统界面402,、第一搜索管理器410、第n搜索管理器412、第一分析代理420、第n搜索代理422、第一搜索引导器430、第n搜索引导器432、分区数据440、分区器450、第一集合460、第n集合462、监管器470以及依赖管理器480。
在一种或更多种实施例中,系统界面402可以将外部系统架构400所生成的一个或更多个查询馈送至第一群集中的一个或更多个搜索管理器410、412,并且第一群集至少包括:包括第一搜索管理器410的一个节点到包括第n搜索管理器412的n个节点。在该第一群集中的一个或更多个搜索管理器410、412可以与第二群集中的一个或更多个分析代理420、422链接,以及第二群集至少包括第一分析代理420到第n分析代理422。
第一群集中的搜索管理器410、412可以链接至第三群集中的一个或更多个搜索引导器430、432。第三群集可以至少包括第一搜索引导器430至第n搜索引导器432。每个搜索节点(及,执行搜索管理器410、412的节点)可以包括任意适合数量的搜索引导器430、432。
第三群集中的搜索引导器430、432可以链接至用于存储分区数据440的一个或更多个数据库节点。分区数据440可以包括通过节点执行一个或更多个分区器450所产生的一个或更多个分区(即,从离散的记录集合中分区出来的任意分隔部分的记录),分区器150可以是被配置成至少将一个或更多个集合划分为一个或更多个分区的模块。每个分区对应于至少第一集合460并且至多第n集合462。集合460、462还可以通过一个或更多个模式文件进行描述,所述一个或更多个模式文件可以对集合460、462中的数据进行定义。该一个或更多个模式可以包括如下信息:分区的记录中的字段名称、是否这些字段被索引、使用了什么压缩方法以及对于字段而言哪个评分算法是默认的等。当分区器450对第一集合460至第n集合462进行分区时,可以使用所述模式,并且当第一搜索管理器410至第n搜索管理器412对集合执行一个或更多个查询时也可以使用所述模式。
一个或更多个节点可以执行监管器470软件模块,该软件模块接收系统400的其他节点所传送的心跳信号。监管器470可以被配置成从系统400的、执行一个或更多个依赖管理器480软件模块的节点接收数据。依赖管理器480节点可以存储、更新和引用与一个或更多个模块、分区或尚书巷的合适的组合相关联的依赖树,依赖树可以表示基于相对关系的对于节点、模块和分区的配置依赖。监管器470还可以链接至系统400中的执行一个或更多个其他监管器470的其他节点。在某些情况下,到其他监管器470的链路可以在系统架构400的群集之间跨越。
执行分析代理420、422的节点可以执行一个或更多个合适的分析模块,所述分析模块符合所指定的应用编程接口(API),该API有利于系统的部件(例如,软件模块、节点)之间的互操作性和数据传输。分析代理420、422可以被配置成对搜索引导器430、432所返回的聚集查询结构进行处理。例如,搜索管理器410可以接收搜索查询然后生成搜索引导器查询,搜索管理器410将该搜索引导器查询发送至一个或更多个搜索引导器430、432。在搜索引导器430、432执行了各自被指定的搜索引导器查询之后,搜索管理器410将从所述一个或更多个搜索引导器430、432接收所聚集的查询结果的集合。如果根据搜索查询的参数需要对搜索查询结果进行进一步处理,则搜索管理器410可以将这些搜索查询结果转发至分析代理420以进行进一步处理。
在一些实施方式中,在搜索管理器410确定搜索查询已经向分析代理420请求对从搜索引导器430、432接收的一组或多组聚集的结果进行处理,则搜索管理器410可以向分析代理420、422发送数据库模式文件和/或一个或更多个分析参数。在一些情况下,搜索询问可以请求执行特定的分析算法,搜索管理器410可以使用该分析算法来识别哪个分析代理420会接收到所聚集的分析结果。在一些情况下,一组或更多个组所聚集的结果可以以经压缩记录的形式传送至分析代理420、422,这些经压缩记录包括根据压缩算法所压缩的数据。在一些情况下,可以按照记录的字段来压缩记录的数据,以及,在一些情况下,可以对整个记录进行压缩。
执行分析代理420、422的节点具有多个分析模块。分析模块的非限制性示例可以包括:消歧模块、链接模块、和即时(on-the-fly)链接模块、以及其它合适的模块和算法。如后面所详述地,链接模块和即时链接模块可以对先前在数据库的记录中所存储的数据链接的元数据进行识别、生成和/或存储。合适的模块可以包括用于处理任意类型数据的分析方法的任意软件实现。在一些实施例中,特定的分析模块或分析代理420、422仅可被内存数据库中所预定的实例、群集、分区和/或实例化对象。
图5是根据一个实施例的示出了节点500的配置的图示。图5中的节点500可以包括处理器执行节点管理器502软件模块和任意数量的附加软件模块510、512,这些软件模块可以包括第一软件模块510至第n软件模块512。
根据图5中的示例性配置,节点500可以经由数据网络通信地耦接至执行监管器模块的第二节点,或监管器节点。通过节点500安装和执行的节点管理器502也可以被配置成与监管器节点通信,并且还可以被配置成对节点上安装的软件模块510、512(包括第一模块510至第n模块512)进行监视。节点管理器501可以执行从监管器接收的任意合适的命令,并且还可以报告下列项的一个或更多个的状态:节点500、节点管理器502以及第一模块510至第n模块512。第一模块510可以链接至一个或更多个监管器并且可以连接至节点中的一个或更多个模块,其中,节点中的其他模块的类型可以不同于第一模块510的类型或者与第一模块510的类型相同。此外,第一模块510可以链接至系统中的一个或更多个其他模块、节点或群集。
图6是描述节点建立600的流程图,包括步骤602、604和606。
在步骤602中,将适用于节点的操作系统(OS)加载至节点。在一种或更多中实施例中,该OS可以由节点的制造商自动地加载。在一个或更多个其他实施例中,该OS可以由一个或更多个操作员加载到节点上。
在步骤604中,一个或更多个操作员手动地安装适用于节点上所加载的OS的节点管理器,其中,该安装可以确定除了节点管理器之外,哪一个或多个理想的模块将被安装在节点上。
在步骤606中,节点管理器向监管器发送心跳,其中,该心跳可以包括对于监管器而言足以确定节点已经准备好接收安装一个或更多个模块的质量的信息。
图7是描述模块建立700的流程图,包括步骤702、704、706、708、710、712以及714。
在步骤702中,监管器基于系统所定义的数据集合的需要确定一个或更多个模块待被安装到一个或更多个节点上。然后,监管器向一个更多个节点上的一个或更多个节点管理器发送安装准备指令。在一些实施例中,监管器可以跟踪数据集合(包括,数据碎片或部分数据)和与各个集合相关联的配置设置。监管器还可以知道所有可获得的节点和这些节点的资源(节点管理器所报告的)。监管器可以将系统需求映射(即,关联)至可获得的节点资源以确定哪些数据碎片或数据部分或者哪些系统服务或资源应该运行在每个对应的节点上。于是,监管器可以将包括任意所定义的依赖关系的请求部署/安装至合适的节点管理器以指令节点管理器在客户端上执行安装。
在步骤704中,节点管理器分配节点的资源(诸如,计算机存储器、磁盘存储器和/或CPU容量的部分)用于所述一个或更多个所期望的模块。在一种或更多种实施例中,在监管器不在继续执行该过程一段时间之后,可以中止分配资源。资源的非限制性实施例可以包括计算机存储器、磁盘存储器和/或CPU容量的一部分。可以使用监管器向给定的节点分配的数据和/或服务确定所需要的资源。所需要的资源的详情可以在定义软件和数据依赖性关系的包中指定,该包存储在依赖管理器中。
在步骤706中,监管器向依赖管理器发送请求,请求得到与待安装到节点上的一个或更多个模块相关联的一个或更多个配置包。
在步骤708中,然后,监管器可以将配置包发送至待被部署、安装和启动的节点管理器。包括所有的数据、软件和元数据依赖关系的配置包由系统管理员进行定义并且被存储在依赖管理器中。
在步骤710中,节点管理器读取所需要的任意软件和数据以对来自合适的服务器的一个或更多个模块进行运行。合适的软件和数据可以包括:适合于对一个或更多个记录进行索引、压缩、解压缩、评分、切片、联合或处理的软件、数据和元数据,以及适合于与系统中的一个或更多个其他部件进行通信、协作、监视或交互的软件和数据。
在步骤712中,节点管理器对步骤710中获取的所需要的软件进行安装。
在步骤714中,节点管理器执行步骤712中所安装的软件。
图8是描述查询处理800的流程图,包括步骤802、804、808、810、812、814、818以及820,并且包括核查806和816。
在步骤802中,一个或更多个搜索管理器接收外部资源(诸如,系统所主机的基于浏览器的图形用户界面(GUI)或客户端计算机的本机GUI)所生成的数据库查询。这些查询可以包括表示任意合适的软件源代码的二进制数据,该软件源代码可以包括用于所提交的搜索参数或程序自动生成的搜索参数。用于搜索查询的源代码语言可以是能够处理复杂数据结构的数据串行化语言,诸如,对象或类。数据串行化语言可以用于将复杂的数据对象或结构转化为数字位的序列,并且可以以任意大多数设备可以管理的格式提供复杂对象的数据。在一些实施例中,查询可以通过标记语言,诸如,XML和HTML来表示,该标记语言可以根据模式文件(例如,XSD)进行验证和理解。在一些实施例中,查询可以表示为或者表达为复杂的数据结构,诸如JSON,该数据结构可以根据模式文件进行验证和理解。查询可以包括适合于搜索数据库以获得所期待的满足查询的参数的记录的指令;以及,在一些实施例中,合适的指令可以包括用于搜索的有一个或更多个集合的列表。
在步骤804中,可以通过一个或更多个搜索管理器根据相关联的查询语言(例如,SQL)对从外部资源接收的查询进行解析,从而生成机器可读查询以被合适的节点(例如,搜索引导器、分析代理)执行。在一些情况下,与查询的软件语言相关联的模式文件可以设置有查询,该查询由生成查询和所接受的标准的代码生成或者该查询是搜索管理器本地的。模式文件可以指令搜索管理器对搜索查询进行恰当地解析。例如,如果通过一个或更多个标记语言(例如,XML)准备了搜索查询,或者搜索查询包括数据结构(例如,JSON),然后模式文件(诸如,基于XSD的模式文件)可与与搜索查询代码或数据结构相关联以对XML代码或JSON代码中的每个标记标签内的数据进行识别和/或验证。
在核查806中,基于用户所提供的查询或应用程序所生成的查询搜索管理器可以确定是否应该执行对数据库和/或查询的一个或更多个字段进行处理。字段处理的非限制性示例可以包括:地址标准化、确定邻近边界和同义词的解释等。在一些实施例中,系统的自动或手动过程可以确定并识别与搜索过程800相关联的任意其他处理需要使用查询的字段中包括的信息。在一些实施例中,一个或更多个搜索管理器可以自动地确定并识别查询的一个或更多个字段中的哪个字段需要进行所期待的处理。
在步骤808中,在核查806中系统确定了期待对一个或更多个字段进行字段处理之后,相应地搜索处理器可以将一个或更多个合适的字段处理技术应用于所期待的字段。
在步骤810中,搜索管理器可以构建与搜索查询相关联的搜索引导器查询。在一些实施例中,可以构建搜索引导器查询以便于系统的多个节点(例如,搜索管理器、搜索引导器、存储节点)根据任意合适的搜索查询执行计划,诸如,基于堆栈的搜索对搜索引导器查询进行处理。应当理解的是,可以使用合适的二进制格式或其他机器可读紧凑格式对搜索查询进行编码。
在步骤812中,一个或更多个搜索管理器向一个或更多个搜索引导器发送一个或更多个搜索引导器查询。在一些实施例中,搜索管理器可以自动地确定哪些搜索引导器应该接收搜索引导器查询然后将这些搜索引导器查询发送至所识别的搜索引导器子集。在这样的实施例中,搜索引导器可以被与某些数据集合预相关联,并且从系统界面接收的搜索查询可以指定待被查询的集合。因此,搜索管理器将搜索引导器查询发送至与一个或更多个搜索查询中指定的集合相关联的搜索引导器。
在步骤814中,搜索引导器将搜索结果返回至相应的搜索管理器。在一些实施例中,搜索结果可以同步地被返回;以及,在一些实施例中,搜索结果可以异步地被返回。同步可以表示这样的实施例:搜索管理器可以阻止结果或停止操作,而等待来自特定搜索引导器的搜索引导器结果。异步可以表示这样的实施例:搜索管理器可以同时,即,以并行方式接收来自多个搜索引导器的结果,而不需要阻止其他结果或停止其他操作。在接收到来自搜索引导器的搜索结果后,搜索管理器可以基于搜索引导器所返回的记录得分将从各个搜索引导器接收到的结果整理成一个或更多个结果列表。
在核查816中,搜索管理器可以基于搜索查询中的指示确定是否应该执行搜索管理器所编译的搜索结果的其他分析处理。在一些情况下,该指示可以包括在用户的搜索查询中。在一些实施例中,系统利用搜索查询中包括的信息确定分析处理是否是必要的。在一些实施例中,一个或更多个搜索管理器可以自动地确定需要进行所期望的分析处理的字段。搜索查询可以在能够将指示和与搜索查询相关的一起传送的软件可编程语言中进行构建。一些编程语言,诸如,标记语言,可以使用被嵌入到代码中的元数据来识别多种类型的数据,诸如,表示是否应该执行分析的布尔值的字段,或者表示执行待执行的特定分析模块和/或寄存特定分析模块的分析代理模块的更复杂的用户定义字段。一些编程语言,诸如,javascript或PHP,可以引用所存储的、包含有用于识别是否执行分析的代码的计算机文件,该编程语言可以是待执行的特定分析模块和/或寄存特定分析模块的分析代理模块的更复杂的用户定义字段。
在步骤818中,如果在核查816中系统确定了需要进行处理,则一个或更多个分析代理将一个或更多个合适的处理技术应用于一个或更多个结果列表。在一种或更多种实施例中,合适的技术包括:将几个记录卷到更复杂的记录中;对结果执行一个或更多个分析,和/或确定关于记录之间的关系的信息等。分析代理然后将一个或更多个经处理的结果列表返回至一个或更多个搜索管理器。
在步骤820中,一个或更多个搜索管理器可以对一个或更多个结果列表解压缩并且发送至发起查询的系统。
图9是描述搜索引导器功能900的流程图,包括步骤902、904、908、910和912以及核查906。
在步骤902中,搜索管理器向一个或更多个搜索引导器发送查询。
在步骤904,搜索引导器针对其加载的分区执行查询,生成候选结果集合。在一种或更多种实施例中,步骤904可以包括一个或更多个索引搜索。在一种或更多种实施例中,搜索引导器使用一个或更多个模式中的信息来执行查询。
在核查906中,搜索引导器基于所指定的查询确定搜索引导器查询中是否已经请求了评分。评分可以在搜索管理器所接收的搜索查询中表示。
如果请求了评分,则在步骤908中,搜索引导器对候选结果进行评分。默认的评分预支可以在模式中进行定义,或者可以包括在步骤902中搜索管理器所发送的搜索引导器查询中。在一种或更多种实施例中,搜索引导器可以使用特定的评分算法进行字段级别的初始评分,所述特定的评分算法中的默认值可以通过一个或更多个其他评分算法进行覆写。可以在搜索查询和/或搜索引导器查询中定义或识别出评分算法,并且可以相应地由搜索引导器执行该评分算法。搜索引导器可以基于这些字段评分给出记录的综合得分。在一些实施例中,搜索引导器可以应用一个或更多个聚集的评分方法,这些聚集的评分方法可以通过将一个或更多个字段得分或其他聚集的得分聚集起来以计算得分。
在步骤910中,然后搜索引导器使用所述得分对候选结果集中的任意剩余的记录进行排序。
在步骤912中,搜索引导器将候选结果集返回至搜索管理器,其中,所返回的结果的数量受到步骤902中搜索管理器所发送的查询中所请求的大小的限制。
图10是描述集合分区1000的流程图,包括步骤1002、1004、1006、1010和1012以及执行核查1008。
在步骤1002中,将一个或更多个集合馈送到一个或更多个分区器中。所述集合结合一个或更多个模式进行馈送使得一个或更多个分区器可以了解如何操作一个或更多个集合中的记录。
在步骤1004中,对一个或更多个集合中的记录进行分段。
在核查1008中,系统针对所给定的数据集合核查模式并且确定是否分区中的每一个字段被分区器所索引。索引可以是任意公知数据库中所使用的字段的任意合适的索引示例,诸如,日期索引或模糊索引(例如,语音的)。
在步骤1010中,如果在核查1008中系统确定分区器索引了分区中的任意子段,则分区器基于模式中的索引定义来索引分区。
在核查1012中,系统针对所给定的数据集合核查模式并且确定是否这些分区被分区所压缩。
在步骤1014中,如果在核查1012中系统确定分区器压缩所述分区,则分区器使用模式中所指定的压缩方法对字段和记录进行压缩,所述压缩方法可以是适用于充分地压缩分区并且还能够进行字段级别的解压缩的任意技术。
在步骤1016中,系统对适合于将分区分分配至一个或更多个搜索引导器的分区评分。
集合分区1000可以创建初始负载、重新加载大数据集合或替换大数据集合。分区器可以将唯一的记录ID指定给集合中的每个记录并且可以将版本号指定给经分区的集合,并且还可以将所需要的集合模式与一个或更多个SM和一个或更多个SC所使用的分区集合版本关联起来。
在第二实施例中,可以通过一个或更多个合适的界面(包括合适的查询界面)将新记录添加至集合。查询界面可以支持经由查询将结果集返回,并且还可以支持将与集合版本相关联的集合模式返回。此外,搜索界面可以使得一个或更多个用于能够使用该集合模式来通过将新记录经由搜索界面提交至搜索管理器的方式将该新记录添加至集合。然后,搜索管理器可以将该新记录分配至合适的搜索引导器以将该新记录添加至集合。在一些实施例中,搜索管理器可以确保给定分区的多个副本之间的最终一致性,并且可以保证非易失性存储器的数据的持久性以确保在系统故障之后仍能够确保数据的可获得性。
在一种或更多种实施例中,可以以类似的方式删除记录。查询的结果集合可以包括对于每个记录的隐晦的、唯一ID。这个唯一ID可以对必要的信息进行编码以唯一地识别集合的给定版本中的指定记录,并且可以包括一个或更多个下列项:集合名称、分区集版本以及唯一的记录ID等。通过合适的权限,查询接口可以接收请求来将与唯一的记录ID相对应的记录删除。该记录可能不会被立即物理删除,可能被标记为删除,还可能不再包括在未来的答案集合中。
在一种或更多种实施例中,可以将新集合模式或删除请求提交至查询界面以相应地创建新集合或者将现有的集合移除。通过这种方式创建的新集合开始可以为空,其中可以使用任意合适的机制,包括上述机制来将记录添加至该新集合中。
图11是描述分区加载1100的流程图,包括步骤1102、1104、1106、1108、1112、1114、1116、1118和1120以及执行核查1110。
在步骤1102中,监管器确定待加载至一个或更多个搜索引导器的一个或更多个分区。
在步骤1104中,监管器向依赖管理器发送配置请求,并且依赖管理器返回与待被加载至一个或更多个搜索引导器的一个或更多个分区相关联的一个或更多个配置包。
在步骤1106中,监管器确定分区待被加载到哪些引导器。在一种或更多种实施例中,监管器确定将使用哪一个或哪些搜索引导器以提供所期望的故障转移能力。在一种或更多种实施例中,监管器确定将使用哪一个或哪些搜索引导器以使得一个或更多个群集所承担的工作负载能够得到更好的平衡。
在步骤1108中,监管器向与包括一个或更多个搜索引导器的节点相关联的一个或更多个节点管理器发送命令。在一种或更多种实施例中,该命令告知一个或更多个节点管理器等待来自监管器的其他指令以用于将分区加载到一个或更多个搜索引导器。在其他实施例中,该命令可以包括与被加载至一个或更多个搜索引导器的一个或更多个分区相关联的一个或更多个配置包。在一个或更多个其他实施例中,该命令可以包括用于准备一个或更多个搜索引导器以将新分区加载至存储器的指令。
在步骤1110中,一个或更多个节点管理器分配加载分区所需要的任意节点资源。
在核查1112中,一个或更多个节点管理器判断加载一个或更多个分区是否需要对一个或更多个软件或数据进行更新。
在步骤1114中,如果一个或更多个节点管理器确定需要对一个或更多个软件或数据进行更新,则一个或更多个节点管理器从适合于存储且分配一个或更多个软件更新的一个或更多个节点中检索出一个或更多个软件和数据更新。一个或更多个节点管理器于是开始安装一个或更多个所检索出的软件或数据更新。
在步骤1116中,一个或更多个节点管理器从适合于存储且分配一个或更多个分区的一个或更多个节点中检索出一个或更多个分区。在一种或更多种实施例中,所检索出的分区之前已经被索引并且被存储,并且一旦所述分区被检索到就将其加载至与一个或更多个引导器相关联的存储器中。在另一实施例中,所检索出的分区没有被索引或者在被检索之间没有被压缩,并且在被加载至与一个或更多个搜索引导器相关联的存储器之前被一个或更多个搜索引导器索引或压缩。
在步骤1118中,一个或更多个搜索引导器向监管器发送心跳,并且监管器确定一个或更多个搜索引导器已经准备好用于系统中。
在步骤1120中,监管器告知一个或更多个搜索管理器:一个或更多个搜索引导器准备好接收搜索请求。
图12A示出了集合1202和集合1202的更新(表示为,集合’1210)。集合1202可以划分为至少第一分区1204至第n分区1206,而集合1210可以划分为至少第一分区’1212至第n分区’1214。
图12B示出了具有第一组第一分区1204至第n分区1206的第一搜索节点1220以及具有第二组第一分区1204至第n分区1206的第二搜索节点1230,其中,第一搜索节点1220和第二搜索节点1230都可以连接至至少一个搜索管理器1240。此外,第一搜索节点1220、第二搜索节点1230和搜索管理器1240可以连接至一个或更多个监管器1250。
图12C示出了由于来自监管器1250的命令而导致与搜索管理器1240断开的第一搜索节点1220,而第二搜索节点1230仍然保持与搜索管理器940的连接。在一种或更多种实施例中,这可以使得在第一搜索节点1220正在更新时,搜索管理器1240能够对集合1202中的记录运行搜索。
图12D示出了被升级成包括集合’1210的第一搜索节点1220。
图12E示出了由于来自监管器1250的命令而导致与搜索管理器1240连接的第一搜索节点1220,该第一搜索节点920具有第一分区’1212至第n分区’1214。监管器1250然后发送命令以将第二搜索节点1230与搜索管理器1240断开。在一种或更多种实施例中,这使得搜索管理器1240能够对集合’1210中的记录运行搜索。
图12F示出了被更新成包括集合’1210的第二搜索节点1230。
图12G示出了具有第一组第一分区’1212至第n分区’1214的第一搜索节点1220以及具有第二组第一分区’1212至第n分区’1214的第二搜索节点1230,其中,由于来自监管器1250的命令使得再次建立了第二搜索节点1230与搜索管理器1240之间的连接。这使得搜索管理器1240能够对第一搜索节点1220或者第二搜索节点1230中的集合’1210中的记录运行搜索。
图13示出了搜索节点集群1300,具有第一搜索节点1302、第二搜索节点1304、第三搜索节点1306、第四搜索节点1308、对于第一集合的第一分区1310、第二分区1312、第三分区1314和第四分区1316,以及对于第二集合的第一分区1320、第二分区1322、第三分区1324和第四分区1326。
搜索节点群集1300可以被布置成能够提供所期望的级别的分区冗余性,其中,可以相应地向系统添加一个或更多个搜索节点或者将一个或更多个搜索节点从系统中移除。此外,一个或更多个搜索节点中所包括的分区随着时间而异,并且这些分区可以通过搜索节点的节点管理器遵循与分区加载1100类似的过程来加载或者卸载。当更新或变更搜索节点群集1300中的分区时,可以使用类似于图12A、12B、12C、12D、12E、12F以及12G可以使用的方法。
图14示出了连接图示1400,该连接图示1400具有:线型A 1402、线型B 1404、线型C1406、线型D 1408、第一网络分段1410、第二网络分段1412、第三网络分段1414、第一搜索管理器1420、第n搜索管理器1422、第一分析代理1430、第n分析代理1432、第一搜索引导器1440、第n搜索引导器1442、分区器1450、第一依赖管理器1460、第n依赖管理器1462、第一监管器1470以及第n监管器1472。
在一种或更多种实施例中,线型A 1402可以表示具有第一带宽层和第一延迟层的连接,线型B 1404可以表示具有第二带宽层和第一延迟层的连接,线型C 1406可以表示具有第三带宽层和第二延迟层的连接,以及线型D 1408可以表示具有第四带宽层和第二延迟层的连接。在一种或更多种实施例中,第一带宽层可以相对于第二带宽层具有更大的带宽,第二带宽层可以相对于第三带宽层具有更大的带宽,第三带宽层可以相对于第四带宽层具有更大的带宽,以及第一带宽层可以相对于第二带宽层具有较低的延迟。
在一种或更多种实施例中,可以使用任意合适的连接(包括,线型A 1402、线型B 1404以及线型C 1406)将第一网络分段1410连接至外部服务器。还可以使用线型A 1402连接将第一网络分段1410链接至第一群集,其中,第一群集包括第一搜索管理器1420至第n搜索管理器1422。
在一种或更多种实施例中,可以使用线型A 1402连接将第二网络分段1412连接至第一群集,其中,第一群集包括第一搜索管理器1420至第n搜索管理器1422。还可以使用线型A1402连接将第二网络分段1412连接至第二群集,还可以使用线型B 1404连接将第二网络分段1412链接至第三群集,还可以使用线型D 1408连接将第二网络分段1412连接至第四群集以及还可以使用线型D 1408连接将第二网络分段1412连接至第五群集,其中,第二群集包括第二分析代理1430至第n分析代理1432,第三群集包括第一搜索引导器1440至第n搜索引导器1442,第四群集包括第一依赖管理器1460至第n依赖管理器1460,以及第五群集包括第一监管器1470至第n监管器1472。
在一种或更多种实施例中,线型A1402的带宽层可以足以确保包括第一搜索管理器1420至第n搜索管理器1422的第一群集能够至少从包括第一搜索引导器1440至第n搜索引导器1442的第三群集中的合适熟练的搜索引导器接收合适量的信息。线型A 1402的延迟层可以足够低以便于至少使得系统能够足够响应地执行所期待的数量的查询。
在一种或更多种实施例中,线型B 1404的带宽层可以足以确保包括第一搜索引导器1440至第n搜索引导器1442的第三群集中的搜索引导器能够至少返回所期望大小的结果。线型B 1404的延迟层可以足够低以便于至少使得系统能够足够响应地执行所期待的数量的查询。
在一种或更多种实施例中,线型D 1408的带宽层可以足以确保包括第依赖管理器1460至第n依赖管理器1462的第四群集中的依赖管理器能够至少接收所期待数量的包查询并且返回所期待数量的包。此外,线型D 1408的带宽层可以足以确保包括第一监管器1470至第n监管器1472的第五群集中的监管器能够至少对所期待数量的节点和模块进行监视和管理。线型D 1408的延迟层可以足够低以便于至少使得系统能够在所期望的时间段内被管理并且提供所期望的监视频率。
在一种或更多种实施例中,可以使用线型C 1406连接将第三网络分段1414连接至第三群集,可以使用线型D 1408连接将第三网络分段1414连接至第四群集,可以使用线型D1408连接将第三网络分段1414连接至第五群集,以及可以使用线型C 1406连接将第三网络分段1414连接至第六群集,其中,第三群集包括第一搜索引导器1440至第n搜索引导器1442,第四群集包括第一依赖管理器1460至第n依赖管理器1460,第五群集包括第一监管器1470至第n监管器1472,以及第六群集包括一个或更多个分区器1450。
在一种或更多种实施例中,线型B 1404的带宽层可以足以确保一个或更多个分区器1450能够至少访问所期望的集合并且在期望的时间段内输出所期望数量的分区。此外,线型B 1404的带宽层可以足以确保包括第一搜索管理器1420至第n搜索管理器1422的第一群集能够至少接收在所期望的时间内下载所期望数量的分区。线型B 1404的延迟层可以足够低以便于至少使得节点使用该连接能够在所期望的时间段内对系统命令做出反应,并且使得系统能够提供所期望的监视频率。
在一种或更多种实施例中,线型D 1408的带宽层可以足以确保包括第依赖管理器1460至第n依赖管理器1462的第四群集中的依赖管理器能够至少接收所期待数量的包查询并且返回所期待数量的包。此外,线型D 1408的带宽层可以足以确保包括第一监管器1470至第n监管器1472的第五群集中的监管器能够至少对所期待数量的节点和模块进行监视和管理。线型D 1408的延迟层可以足够低以便于使得系统能够在所期望的时间段内被管理并且提供所期望的监视频率。
在一种或更多种实施例中,包括第一监管器1470至第n监管器1472的第五群集可以以任何合适数量的节点与一个或更多个节点管理器进行线型D 1408连接。
在一个或更多个其他实施例中,包括一个或更多个其他类型的模块的其他群集可以被连接至第一网络分段1410、第二网络分段1412和/或第三网络分段1414,其中,该连接可以包括:线型A 1402连接、线型B 1404连接、线型C 1406连接和/或线型D 1408连接。
图15示出了容错架构1500,该容错架构1500包括:第一监管器1502、第n监管器1504、第一依赖节点1510、依赖节点管理器1512、依赖管理器1514、第n依赖节点1520、第n依赖节点管理器1522、第n依赖管理器1524、第一节点1530、节点管理器1532、模块1534、第n节点1540、第n节点管理器1542以及第n模块1544。在一些实施例中,诸如,图15中的示例性系统1500可以在逻辑上将节点组织成多个群集。然而,根据需要,一些实施例可以具有一个逻辑群集。
在一种或更多种实施例中,第一群集可以包括第一监管器1502至第n监管器1504。每个监管器1502可以包括网络接口部件(诸如,网络接口卡),该网络接口部件适用于便于监管器1502与第二群集中的一个或更多个节点之间进行通信。第二群集可以包括第一依赖节点1510至第n依赖节点1520,其中,第一依赖节点1510可以包括节点管理器1512和依赖管理器1514,以及第n依赖节点1520可以包括第n节点管理器1522和第n依赖管理器1524。第一群集中的监管器可以附加地具有任意合适数量的连接,这些任意合适数量的连接适合于包括第一节点1530至第n节点1540的第三群集中的一个或更多个节点之间进行通信,其中,第一节点1530可以包括节点管理器1532和任意合适数量的模块1534,以及第n节点1540可以包括第n节点管理器1542和任意合适数量的第n模块1544。
一个或更多个监管器1502可以从一个或更多个依赖节点管理器1512、一个或更多个依赖管理器1514以及任意合适数量的节点管理器1532和任意合适数量的模块1534接收心跳(hearbeat)。在一种或更多种实施例中,这可以使得一个或更多个监管器1502能够对分布式计算系统中的一个或更多个节点和/或模块的状态进行监视。此外,监管器1502可以将一个或更多个合适的命令传送至任意合适数量的依赖节点管理器1512以及任意合适数量的节点管理器。
在一种或更多种实施例中,当在一个或更多个节点1530上安装一个或更多个模块1534时,监管器1502可以向一个或更多个依赖节点1510请求配置包。
图16是根据示例性实施例的示出了节点1600的配置的图示。图16中的节点1600可以包括处理器执行节点管理器1602软件模块和任意数量的附加软件模块1610、1612,这些软件模块可以包括第一软件模块1610至第n软件模块1612。软件模块可以包括任意系统模块,包括,搜索管理器、搜索引导器、分析代理、监管器以及依赖管理器。
根据图16中的示例性配置,节点1600可以经由数据网络通信地耦接至执行监管器模块的第二节点,或监管器节点。通过节点1600安装和执行的节点管理器1602也可以被配置成与监管器节点通信,并且还可以被配置成对节点上安装的软件模块1610、1612(包括第一模块1610至第n模块1612)进行监视。节点管理器1602可以执行从监管器接收的任意合适的命令,并且还可以报告下列项的一个或更多个的状态:节点1600、节点管理器1602以及第一模块1610至第n模块1612。第一模块1610可以链接至一个或更多个监管器并且可以连接至节点中的一个或更多个模块,其中,节点中的其他模块的类型可以不同于第一模块1610的类型或者与第一模块1610的类型相同。此外,第一模块1610可以链接至系统中的一个或更多个其他模块、节点或群集。
图17是故障处理1700的流程图。
监管器对系统中的所有数据集合中的定义和配置进行维护,所述定义和配置可以包括每个集合的设置,该设置指示:对于每个分区需要多少冗余副本、在将失效部件移动至另一节点之前尝试了多少次重启过程等。监管器还对节点管理器所提供的一系列可用节点以及这些节点的资源进行维护。根据该信息,监管器通过将所需要的模块映射至可用节点来计算所期望的系统状态,同时仍然遵配置设置。故障处理1700开始于监管器检测模块故障1702,其中,一个或更多个监管器可以通过将实际系统状态与所期望的系统状态进行比较来检测一个或更多个模块的故障。在一种或更多种实施例中,当来自节点管理器或系统模块的一个或更多个心跳信号不再被检测到时,监管器可以检测到故障。在一种或更多种实施例汇总,来自一个或更多个模块的心跳信号可以包括关于一个或更多个模块的状态信息,该状态信息可以由一个或更多个监管器解释。
监管器可以对数据集合的定义和与数据集合相关联的配置设置进行存储。监管器还可以对由节点管理器所报告的、关于可获得的系统资源的信息进行存储。所述配置信息可以包括每个集合的设置,所述每个集合的设置指示:各个分区所需要的冗余拷贝的数量,在将故障部件移动至其他节点之前尝试重启该故障部件的次数等。根据所有该信息,监管器通过将所需要的模块映射至可用节点来检索所期望的系统状态,同时仍然遵配置设置。所有该信息被表示为JSON对象,该JSON对象可以被存储为磁盘上的JSON文件,或者被存储在IMDB内的预定义的数据集合中。
然后,监管器可以检测相关联的节点管理器是否起作用1704。
如果与一个或更多个故障模块相关联的节点管理器根据需要或者根据现状配置起作用,则在步骤1706中,监管器可以将一个或更多个命令发送至节点管理器以指令节点管理器尝试启动一个或更多个故障模块。
然后监管器核查模块是否恢复1708,以及如果模块恢复则过程进行至结束1710。在一些实施中,任意模块的第一动作目的在于经由心跳信号向一个或更多个可用监管器报告状态。如果确定模块功能没有恢复,则如心跳信号所指示的,监管器可以确定重启阈值是否已经达到1712。尝试阈值数是每个集合的配置设置,该尝试阈值数可以由系统管理员进行设置并且使用监管器进行存储。监管器确定模块已经出现故障并且应该被重启或者移动至其他节点。如果还没有达到尝试次数,则监管器发送命令,节点管理器试图重启模块1706。
如果已经达到阈值,则监管器确定下一个合适的节点来放置模块1714以及监管器请求新的节点上的节点管理器以导入(stage)所有的模块依赖并且启动当前模块1716。
然后监管器核查模块是否恢复1718,以及如果模块恢复则过程进行至结束1710。如果模块没有被恢复,则系统可以核查对于新节点的重启阈值是否已经达到1720。如果没有达到阈值,则监管器请求新的节点上的节点管理器以导入当前模块并且启动当前模块1716。
否则,监管器可以核查是否达到全局节点重试阈值1722。全局节点重试阈值也可以由系统管理员定义并且可以以脚本或者JSON或者相似的数据结构对象的形式由监管器存储。如果没有达到阈值,则监管器确定下一个合适的节点来放置模块1714并且试图启动新的节点上的节点。如果已经达到全局阈值,则系统可以发出指示模块失效的警报1724。
如果监管器基于相应的心跳检测到相关联的节点管理器没有起作用,如缺乏心跳或者来自节点管理器的心跳指示故障状态,则监管器选择与具有故障节点管理器的节点相关联的模块1726。然后,监管器确定下一个合适的节点以放置模块1728。然后,监管器请求新的节点上的节点管理器以导入并且启动当前模块1730。
监管器然后核查模块是否恢复1732。如果模块没有被恢复,则监管器核查对于新节点的重启阈值是否已经达到1734。如果没有达到阈值,则监管器请求新的节点上的节点管理器以导入并且启动当前模块1730。
如果达到阈值,则监管器核查是否已经达到全局节点重试阈值1736。如果没有达到阈值,则监管器确定下一个合适的节点来放置模块1728并且试图启动新的节点上的节点。如果已经达到全局阈值,则系统可以发出指示模块失效的警报1738。
否则,如果模块恢复,则监管器核查是否存储将从故障节点移走的多个模块1740。如所期望的状态中所定义的那样,如果节点发生故障,则监管器被配置成将已经在故障节点上运行的所有服务移走。监管器将计算在没有故障节点1740的情况下的所期望的新的状态并且需要相应地将服务移走。在一些实现中,监管器可以选择与具有故障节点管理器的节点相关联的模块1726并且节点管理器试图导入并启动模块。
如果监管器确定不再有可以被移走的模块,则过程可以结束1710。
图18示出了监管器1802和依赖管理器1804的框图连接1800。通常,监管器1802可以监视系统和/或执行为系统维护操作状态的进程和任务。监管器1802可以接受对系统进行改变的任意合适的配置请求。可以通过执行依赖管理器1804软件模块或监管器1802软件模块的节点来处理软件或数据配置,然而,可以从独立的数据存储机构提供可部署包。独立的数据存储机构是非易失性机器可读存储介质,该非易失性存储介质用于根据配置对准备可部署包所使用的一个或更多个可发布文件进行粗才能。
根据一个实施例,依赖管理器1804可以用作非易失性机器可读存储介质,该非易失性机器可读存储介质包括系统中的任意合适的软件或数据的维护或配置。这些配置可以通过发布过程中的新数据、元数据或软件更新来驱动。
依赖管理器1804可以在系统的一些过程所需要的配置中起作用。因此,依赖管理器1804可以直接地与监管器1802连接以便于提供对于分区的合适的依赖,或者称之为,“包”、“配置”、“部件”和/或“文件”,这可以用于对任意合适的集合进行更新。此外,监管器1802可以被链接至一个或更多个依赖管理器1804并且可以附加地被链接至一个或更多个其他监管器1802,其中,附加的监管器1802可以被链接至系统中的其他部件。
图19是系统中的配置过程的流程图1900。
根据另一实施例,配置过程或维护过程可以包括包括关于模块可以具有哪些依赖从而与模块一起被部署的信息。所需要的文件可以从独立的非易失性机器可读存储器或“数据存储机构(data frame)”中获取。在一些实施例中,该数据存储机构可以是来自系统架构的外部,例如,在第三方供应商提供软件更新的情况下。合适的可部署包中的依赖可以包括不同类型的数据、文件或软件,这些不同类型的数据、文件或软件可以被直接地链接或包裹在正在本配置的模块或分区的周围。该配置过程可以包括不同的步骤,步骤1902、1902、1904、1906、1908、1910以及1912。响应于要求系统对数据或软件部件进行安装或更新的请求,可以开始配置过程1900。
在第一步骤1902中,系统的处理可以自动地对可以触发配置过程1900的顺序/步骤的状况进行检测。
在一些实施例中,在步骤1902中,系统的、执行监管器模块的节点可以轮询(poll)系统的部件,诸如,负责向监管器报告健康更新或“状态”的节点管理器软件模块。在这样的实施例中,监管器可以基于缺乏心跳(HB)信号来检测整个系统的故障,该心跳信号是监管器期望从系统配置中所定义的任意系统模块接收。响应于检测到缺失HB信号,监管器于是可以触发除了其他补救过程以外的配置过程1900。
在一些实施例中,在步骤1902中,当监管器接收到对系统配置进行一个或更多个改变的外部请求(诸如,对部件进行更新或者到新的节点硬件的迁移)时,系统的执行监管器模块的节点可以触发配置过程1900。
在步骤1904中,监管器可以向依赖管理器发送请求,以检索出与待安装到节点上的一个或更多个模块相关联的一个或更多个配置包。可部署包根据依赖管理器定义了满足节点配置的每个文件和/或其他材料。可部署包可以包括所有所炫耀的依赖(包括对于合适的部署所必要的源信息和目的信息)并且可以包括配置或启动模块所需要的模块性能。如依赖管理器中所定义的,特定的依赖可以具有其自身的依赖,并且因此被称为依赖树。
在步骤1906中,监管器可以向依赖管理器发送指令,以从存储有部署包的数据存储机构中获取所需要的部署包。数据存储机构可以是任意非易失性机器可读存储介质,该非易失性机器可读存储介质可以位于与执行依赖管理器的界定啊通信地耦接的任何合适的计算装置上。在一些情况下,当部署包被生成时,该部署包包括正被发送的模块的所有依赖,以及对部署包进行恰当地部署所需要的源信息和目的信息。部署包还可以包括对部署包进行配置或启动所需要的一个或更多个模块性能。部署包可以通过自动或手动过程来生成。在手动示例中,系统管理源可以使用必要的文件和数据识别和/或创建部署包。在自动示例中,监管器或依赖管理器可以使用自动识别的文件来自动地识别和/或生成部署包,这个过程通常通过由依赖管理器生成的测试脚本来完成,从而使得安装速度和分配速率高于人类所能达到的安装速度和分配速率。
在步骤1908中,在依赖管理器接收到来自数据存储机构的部署数据之后,依赖管理器可以将可部署包发送至执行请求部署包的监管器的节点。
在步骤1910中,监管器可以将可部署包发送至需要进行配置的节点的节点管理器。
在步骤1912中,节点管理器可以拷贝文件、对接收自监管器的可部署包进行安装和/或执行,从而实现系统的必要维护、更新或配置。
图20示出了用于对系统进行配置的依赖2000的框图。根据另一实施例,系统的用于维护或配置的过程可以包括不同的部件,诸如,依赖管理器2002、监管器2004、节点管理器2008、以及依赖树2010等。
依赖树2010可以包括不同类型的文件,这些不同类型的文件可以直接地链接或者包裹在模块或分区的周围,使得依赖可以是分区的每个成员对分区的其他成员中的每个成员的依赖的程度。例如,依赖树2010可以包括分区1,该分区1可以取决于语言1.0和压缩1.0;接下来,语言1.0取决于软件库(诸如,处理DDL 1.0和输入DLL 1.0)以及压缩1.0取决于数据表1.0等等。
依赖管理器2002可以对与系统的任何可发布文件相关联的依赖树2010进行存储。在另一实施例中,如果任意合适的软件或数据部件被发布成依赖树2010内所指示的部件,则依赖管理器2002可以从数据存储机构上所存储的一个或更多个文件中创建可部署包。
监管器2004可以被链接至一个或更多个依赖管理器2002,其中,所述一个或更多个依赖管理器2010可以包括对于一个或更多个模块、分区或上述项的合适的组合的一个或更多个依赖树。监管器2004可以附加地链接至一个或更多个监管器2004,其中,附加的监管器2004可以被链接至系统中的其他部件。
图21示出了系统架构2100,该系统架构100具有:系统界面2102,、第一搜索管理器2110、第n搜索管理器2112、第一分析代理2120、第n搜索代理2122、第一搜索引导器2130、第n搜索引导器2132、分区数据2140、分区器2150、第一集合2160、第n集合2162、监管器2170以及依赖管理器2180。
在一种或更多种实施例中,系统界面2102可以将外部系统架构2100所生成的一个或更多个查询馈送至第一群集中的一个或更多个搜索管理器2110、2112,并且第一群集至少包括:包括第一搜索管理器2110的一个节点到包括第n搜索管理器2112的n个节点。在该第一群集中的一个或更多个搜索管理器2110、2112可以与第二群集中的一个或更多个分析代理2120、2122链接,以及第二群集至少包括第一分析代理2120到第n分析代理2122。
第一群集中的搜索管理器2110、2112可以链接至第三群集中的一个或更多个搜索引导器2130、2132。第三群集可以至少包括第一搜索引导器2130至第n搜索引导器2132。每个搜索节点(及,执行搜索管理器2110、2112的节点)可以包括任意适合数量的搜索引导器2130、2132。
第三群集中的搜索引导器2130、2132可以链接至用于存储分区数据2140的一个或更多个数据库节点。分区数据2140可以包括通过节点执行一个或更多个分区器2150所产生的一个或更多个分区(即,从离散的记录集合中分区出来的任意分隔部分的记录),分区器150可以是被配置成至少将一个或更多个集合划分为一个或更多个分区的模块。每个分区对应于至少第一集合2160并且至多第n集合2162。集合2160、2162还可以通过一个或更多个模式文件进行描述,所述一个或更多个模式文件可以对集合2160、2162中的数据进行定义。该一个或更多个模式可以包括如下信息:分区的记录中的字段名称、是否这些字段被索引、使用了什么压缩方法以及对于字段而言哪个评分算法是默认的等。当分区器2150对第一集合2160至第n集合2162进行分区时,可以使用所述模式,并且当第一搜索管理器2110至第n搜索管理器2112对集合执行一个或更多个查询时也可以使用所述模式。
一个或更多个节点可以执行监管器2170软件模块,该软件模块接收系统的其他节点所传送的心跳信号。监管器2170可以被配置成从系统2100的、执行一个或更多个依赖管理器2180软件模块的节点接收数据。依赖管理器2180节点可以存储、更新和引用与一个或更多个模块、分区或尚书巷的合适的组合相关联的依赖树,依赖树可以表示基于相对关系的对于节点、模块和分区的配置依赖。监管器2170还可以链接至系统2100中的执行一个或更多个其他监管器2170的其他节点。在某些情况下,到其他监管器2170的链路可以在系统架构2100的群集之间跨越。
执行分析代理2120、2122的节点可以执行一个或更多个合适的分析模块,所述分析模块符合所指定的应用编程接口(API),该API有利于系统的部件(例如,软件模块、节点)之间的互操作性和数据传输。分析代理2120、2122可以被配置成对搜索引导器2130、2132所返回的聚集查询结构进行处理。例如,搜索管理器2110可以接收搜索查询然后生成搜索引导器查询,搜索管理器2110将该搜索引导器查询发送至一个或更多个搜索引导器2130、2132。在搜索引导器2130、2132执行了各自被指定的搜索引导器查询之后,搜索管理器2110将从所述一个或更多个搜索引导器2130、2132接收所聚集的查询结果的集合。如果根据搜索查询的参数需要对搜索查询结果进行进一步处理,则搜索管理器2110可以将这些搜索查询结果转发至分析代理2120以进行进一步处理。
在一些实施方式中,在搜索管理器2110确定搜索查询已经向分析代理2120请求对从搜索引导器2130、2132接收的一组或多组聚集的结果进行处理,则搜索管理器2110可以向分析代理2120、2122发送数据库模式文件和/或一个或更多个分析参数。在一些情况下,搜索询问可以请求执行特定的分析算法,搜索管理器2110可以使用该分析算法来识别哪个分析代理2120会接收到所聚集的分析结果。在一些情况下,一组或更多个组所聚集的结果可以以经压缩记录的形式传送至分析代理2120、2122,这些经压缩记录包括根据压缩算法所压缩的数据。在一些情况下,可以按照记录的字段来压缩记录的数据,以及,在一些情况下,可以对整个记录进行压缩。
执行分析代理2120、2122的节点具有多个分析模块。分析模块的非限制性示例可以包括:消歧模块、链接模块、和即时(on-the-fly)链接模块、以及其它合适的模块和算法。合适的模块可以包括用于处理任意类型数据的分析方法的任意软件实现。在一些实施例中,特定的分析模块或分析代理2120、2122仅可被内存数据库中所预定的实例、群集、分区和/或实例化对象。
图22是根据实施例的用于将分析模块2200添加至寄存有内存数据库的系统的方法的流程图,该方法包括步骤2202、2204、2206、2208、2210、2212、2214、2216以及2218。
在步骤2202中,可以创建符合合适的API的一个或更多个合适的分析模块,以用于在内存数据库中进行可插拔分析。API可以具有分析模块必须实现的所需要的方法以提供系统互操作性。可以创建分析模块以满足用户的特定需求。
可以将一个或更多个分析模块存储在合适的模块库中。模块库是可以由监管器管理的非易失性机器可读存储介质。根据本实施例,实体、开发者、用户、部件、模块、外部源,和/或负责构建和/或管理分析模块的其他来源可以使用一个或更多个合适的编程语言来开发分析模块。
根据一些实施例,API可以用作软件-软件接口,该API可以包括源代码编程指令集和计算机进行编译和/或执行的标准,诸如,程序的参数或命令行参数、数据结构、对象类和变量。API可以使得系统能够接受来自之后开发的软件模块的数据输入,以及将结果输出至之后开发的软件模块,同时保持对之后开发的模块的所有权、能力或其他特性的不可知,以及数据输入符合数据格式(即,所期待的命令行参数。)负责数据输入和输出的系统API的一些软件例程可以被“暴露”于这样的最近开发或者之后开发的并且通常外部的软件模块。当所暴露的API从软件模块接收、获取或“消耗”数据时,所暴露的API可以验证数据的可接受性。满足系统API的所期待的命令行参数的著作软件源可以使得开发者和其他用户能够开发各种软件模块(诸如,分析模块),以与系统的节点和模块(诸如,分析代理)传送(即,发送、接收)数据。
分析代理可以包括寄存有内存数据库的系统内的一个或更多个节点,其中,每个分析代理的节点可以存储并执行一个或更多个分析模块。API可以使得不同用户开发的分析模块能够与系统中的各个节点和模块以及内存数据库兼容。
在一些实施例中,一个或更多个模块可以是第三方使用任意合适的编程语言开发的、与可用API兼容的外部模块。在这样的实施例中,这些最近开发的模块可以被存储在分析模块库中。
在步骤2204中,可以通过将相对应的定义和任何依赖添加至依赖管理器来将所创建的模块加载至内存数据库,这可以使用能够将恰当的文件和指令部署、上传或存储到依赖管理器的任何合适的自动或手动过程来完成。
在步骤2206中,监管器基于依赖管理器中的模块设置确定是否需要将一个或更多个模块安装到一个或更多个节点上。在许多情况下,依赖管理器中所存储的模块设置将包括所加载的分析模块是“启用”还是“禁用”。例如,如果设置表示分析模块是启用的,则分析模块可以被部署到运行分析代理的每个各个节点上,该分析代理执行该分析模块。然后,监管器向一个更多个节点上的一个或更多个节点管理器发送安装准备指令。
在步骤2208中,节点管理器基于依赖管理器中的模块配置来分配节点的资源,用于运行所述一个或更多个所期望的模块。在一种或更多种实施例中,在监管器不在继续执行该过程一段时间之后,可以中止分配资源。依赖管理器中的模块设置将指示模块所需要多少内存、CPU和/或磁盘。
在步骤2210中,监管器向依赖管理器发送请求,请求得到与待安装到节点上的一个或更多个模块相关联的一个或更多个配置包。例如,自动或手动的过程(例如,系统管理员)可能已经将新模块添加至依赖管理器,依赖管理器还可以对与配置包相对应的任意依赖,诸如,其他软件或元数据进行定义。
在步骤2212中,然后,监管器可以将配置包发送至节点管理器。
在步骤2214中,节点管理器读取所需要的任意软件和数据以对依赖管理器中定义的一个或更多个模块进行运行。
在步骤2216中,节点管理器对步骤2214中获取的所需要的软件和数据进行安装。一旦分析代理被安装,该分析代理可以动态地对模块进行加载和卸载,因此,没有必要重启任何设备或软件并且所安装的一个或更多个模块可能已经准备好被使用。
在步骤2218中,节点管理器执行步骤2216中所安装的软件。在分析代理启动分析模块之后,运行新模块的每个分析代理可以将心跳信号发送至监管器。该心跳信号可以指示该新模块被恰当地启动并且已经可以使用。
图23示出了根据一种示例性实施例的内存数据库2300的系统架构。MEMDB 2300可以包括系统架构:系统界面2302、第一搜索管理器2304、第n搜索管理器2306、第一分析代理2308、第n搜索代理2310、第一搜索引导器2312、第n搜索引导器2314、分区数据2316、第一集合2318、第n集合2320、监管器2322以及依赖管理器2324。
在一种或更多种实施例中,系统界面2302可以将MEMDB 2300的系统结构外部所生成的一个或更多个查询馈送至第一群集中的一个或更多个搜索管理器,并且第一群集至少包括:第一搜索管理器2304到第n搜索管理器2306。在该第一群集中的一个或更多个搜索管理器可以与第二群集中的一个或更多个分析代理链接,以及第二群集至少包括第一分析代理2308到第n分析代理2310。
在该第一群集中的搜索管理器可以与第三群集中的一个或更多个搜索引导器链接,以及第二群集至少包括第一搜索引导器2312到第n搜索引导器2314。第三群集中的搜索引导器可以被链接至一个或更多个分区器2316,其中,可以在一个或更多个时刻即时地将与至少第一集合2318至第n集合2320相对应的分区保存。
MEMDB 2300中所包括的群集中所包括的一个或更多个节点、模块或上述项的合适的组合可以被链接至一个或更多个监管器2322,其中,在所述群集中的一个或更多个节点、模块或合适的结合可以被配置成将至少一个心跳发送至一个或更多个监管器2322。监管器2322可以被链接至一个或更多个依赖管理器2324,其中,所述一个或更多个依赖管理器2324可以包括对于一个或更多个模块、分区或上述项的合适的组合的一个或更多个依赖树。监管器2322可以附加地链接至一个或更多个其他监管器2322,其中,附加的监管器2322可以被链接至MEMDB 2300的系统架构中所包括的群集。
图24是描述了根据示例性实施例的用于非排他性搜索的方法的流程图。用于非排他性搜索的方法2400可以使得系统能够执行搜索并且将来自记录的结果带回,查询中所指定的字段并没有被填充在或者定义在正被搜索的记录汇总。
该过程可以使用搜索管理器2402所接收的查询来开始,其中,由外部源所生成的一个或更多个查询可以通过一个或更多个搜索管理器来接收。在一些实施例中,作为与用户之间的交互,这些查询可以由系统接口2302自动地生成。在一种或更多种实施例中,查询可以通过标记语言或者其他合适的语言来表示,包括:XML、JavaScript、HTML以及用于表示搜索查询的参数的其他合适的语言。在一个或更多个其他实施例中,这些查询可以通过一种结构来表示,其中,包括通过YAML或JSON表示查询的实施例。在一些实施例中,可以通过紧凑或二进制格式来表示查询。
然后,所接收的查询可以通过搜索管理器2404进行解析。这个过程使得系统能够确定是否需要进行字段处理2406。在一种或更多种实施例中,系统可以利用查询中包括的信息确定是否需要进行处理。在一个或更多而过其他实施例中,一个或更多个搜索管理器可以自动地确定查询的一个或更多个字段中的哪个字段需要进行所期待的处理。
如果系统确定需要针对一个或更多个字段进行字段处理,则在搜索管理器处理字段2408期间,一个或更多个搜索管理器可对一个或更多个所需要的字段应用一种或更多种合适的处理技术。在一种或更多种实施例中,合适的处理技术可以包括地址标准化、地理接近或边界、以及昵称解释等。在一些实施例中,合适的处理技术可以包括从字符串中提取前缀并且生成非字面的关键字,该非字面的关键字之后可以用于执行模糊模糊匹配技术。
然后,当S.M.构建搜索查询2410时,一个或更多个搜索管理器可以构建与一个或更多个查询相关联的一个或更多个搜索引导器查询。在一种或更多种实施例中,可以构建搜索引导器查询以便于作为基于堆栈的搜索进行处理。
随后,S.M.可以向S.C.发送搜索引导器查询2412。在一些实施例中,一个或更多个搜索管理器可以向一个或更多个搜索引导器发送一个或更多个搜索查询,其中,所述一个或更多个搜索引导器可以与一个或更多个搜索查询中指定的集合相关联。
然后,一个或更多个搜索引导器可以进行任何合适的布尔搜索操作2414(例如,和、或、异或)和索引搜索,而无需排除目前没有具体字段的记录。搜索引导器可以执行用户所提供的或者应用程序所提供的布尔操作和索引查询。因此,实施例可以执行用于实现模糊索引和“或”操作而不是“和”操作的用户查询,以获得并没有“排除”潜在的良好结果的一组候选记录。对特征进行评分使得最好的结果(即,最相关的)评分最高,而较低相关性的记录评分较低。在一些情况下,存在两个阶段来执行搜索查询。搜索阶段,其中,布尔操作、模糊索引和过来可以返回满足搜索查询的潜在结果中的一组候选结果。评分阶段,接下来的评分阶段可以将一个或更多个用户指定的或应用程序指定的评分软法来对候选集合中的记录进行评分,因此,最好的结果评分最高,低于给定阈值的较差或者不相关的结果可以被排除,从而仅返回合理的结果返回。这可以导致具有需要进行评分的一组非常大的候选记录,然而,内存数据库系统可以足够快地处理对于传统系统而言非常大范围的搜索结果的集合。并且,结果是我们没有错过良好的结果,因为许多字段是空的或者存在一些噪声或大量数据。
如所提及的,搜索引导器可以应用任意合适的搜索滤波器2416,同时不会排除基于错过的字段的记录。一个或更多个搜索引导器可以针对一个或更多个查询对所产生的答案集合记录进行评分,其中,搜索引导器可以对记录的一个或更多个字段的匹配进行评分并且于是可以确定对于记录的所有匹配的得分。搜索引导器能够针对一个或更多个查询对记录进行评分,其中,查询包括被省略的或者没有包括在记录中的字段。在一些实施例中,搜索管理器可以向搜索引导器发送查询,使用给包括相对于查询中所定义的字段而言更少或者不同的字段的模式来在集合中执行该查询。在该情况下,查询可以被重组以对不符合正被搜索的集合的模式的那些字段进行修改,以指示这些字段仅出于评分的目的。在这些情况下,搜索管理器可以生成和/或修改搜索查询。即,搜索管理器可以构建查询计划,该查询计划可以被定做(tailored)或者调整以解释字段丢失,或者字段可能不具有一个或更多个集合中定义的索引。
根据一些实施例,可能不会排除具有与查询的模式不同的模式的集合,可用字段可以关于查询被评分,并且罚分或者较低的得分可以被指定给字段丢失的记录。MEMDB 2300中的集合中的字段可以被标准化,并且每个搜索引导器可以接入标准化字段的字典以便于进行评分赋值过程。可以通过任意合适的手动或自动的过程执行标准化。如果提供搜索查询的用户或应用程序定义了在多个集合中被标准化的字段,则系统可以构建可以被应用于多个集合的查询,甚至如果各个集合不符合完全相同的模式或存储规则的情况下,也是如此。
在一些实施例中,可以应用模糊匹配技术以进一步拓宽可能相关的结果的列表。
系统可以确定所指定的得分是否大于指定的接受阈值,其中该阈值可以是在搜索查询中定义的或者可以是默认值。在一种或更多种实施例中,可以根据待评分的一个或更多个字段来改变默认的得分阈值。如果搜索引导器确定得分超过所期望的阈值,则可以将记录添加至搜索结果。如果搜索引导器确定已经对分区中的最后一个记录进行了处理,则搜索引导器可以产生的结果列表进行分类。然后,搜索引导器可以将结果列表返回至搜索管理器。
当S.M.接收并整理来自S.C.的结果2420时,一个或更多个搜索引导器将一个或更多个搜索结果返回至一个或更多个搜索管理器,其中,在一种或更多种实施例中,可以以异步方式将所述一个或更多个搜索结果返回。然后,一个或更多个搜索管理器可以将来自一个或更多个搜索引导器的结果编译成一个或更多个结果列表。
系统可以确定由一个或更多个搜索管理器所编译的搜索结果是否需要进行分析处理2422。在一种或更多种实施例中,系统利用查询中包括的信息确定处理是否是必要的。在一个或更多而过其他实施例中,一个或更多个搜索管理器可以自动地确定查询的一个或更多个字段中的哪个字段需要进行所期待的处理。
如果系统确定需要进行分析处理2422,则一个或更多个分析代理可以通过一个或更多个合适的处理技术将结果2424处理成一个或更多个结果列表。在一种或更多种实施例中,合适的技术包括:将几个记录卷到更复杂的记录中;对结果执行一个或更多个分析,并且确定关于相邻记录的信息等。在一些实施例中,分析模块可以包括:消歧模块、链接模块、即时(on-the-fly)链接模块、或者任意其它合适的模块和算法。
在根据一些实施例的处理之后,一个或更多个分析代理可以将一个或更多个经处理的结果列表返回至一个或更多个搜索管理器。
搜索管理器可以返回搜索结果2426。在一些实施例中,一个或更多个搜索管理器可以对一个或更多个结果列表解压缩并且发送至发起查询的系统。所返回的结果可以按照多个格式中的一个格式进行格式化,这些格式包括:XML、JSON、RDF或任何其他格式。
图25示出了压缩设备2500,该压缩设备2500包括存储单元2502、RAM 2504和CPU 2506。
在一种或更多种实施例中,数据记录集合中的一个或更多个数据记录、一个或更多个模式、一个或更多个字典、一个或更多个n-gram表以及一个或更多个令牌表可以被存储在压缩设备2500中的硬件存储单元2502中。压缩设备2500中的RAM 2504可以具有将存储单元2502中的任意数据加载到RAM 2504中任意数据、以及任意合适的模块(包括,分段模块、压缩模块以及索引模块等。在一种或更多种实施例中,压缩设备2500可以包括一个或更多个合适的CPU 2506。
图26示出了集合数据表2600。
在一种或更多种实施例中,一个或更多个集合可以包括如集合数据表2600所示的结构化或半结构化数据。在一种或更多种实施例中,结构化数据可以包括任何数量的字段,以及半结构化数据(诸如,使用JSON、BSON、YAML或任意其他合适的格式表示的数据)可以包括任意合适数量的字段、数组或对象。可以使用任意合适的模式描述集合,其中,合适的模式可以对数据结构进行定义,以及按照模式可以对一个或更多个字段执行压缩方法。
在一种或更多种实施例中,一个或更多个字段可以包括数据值,这些数据值可以包括语义相似性。在一种或更多种实施例中,语义上相似的数据可以包括名字、姓氏、出生日期以及国籍等。在一种或更多种实施例中,压缩设备可以使用一种或更多个字方法对一个或更多个字段进行压缩以对字段中所存储的数据的类型进行压缩,其中,压缩设备可以使用定制令牌表。在一种或更多种实施例中,压缩设备可以针对具有与所期望的压缩方法不相关联的数据的任意数量的字段使用n-gram压缩作为默认的压缩方法。
在一种或更多种实施例中,集合的一个或更多个字段中的一个或更多个数据可以包括在被分段后可以更好地被压缩的数据。这种类型的数据通常存在这种情况:每个记录的字段具有多个值,并且压缩设备可以更好地通过将这些记录去标准化为多个记录分段的方式实现匹配和评分。适合于分段的数据的实例可以包括:全名、地址、电话号码以及电子邮件等。在一种或更多种实施例中,压缩设备可以在对一个或更多个数据压缩之前对所述一个或更多个数据进行分段。压缩设备可以将经分段数据连续地存储在同一分区。在一种或更多种实施例中,压缩设备可以使用被分段的记录标识符来识别哪些字段是从那个记录中分段的以确保系统仍然知道有些记录是源自集合中的相同的原始记录。
在一种或更多种实施例中,记录可以包括数据值的数组。数组可以包括零个或多个值,以及数组值可以包括空值以表示缺失值同时保留适当顺序的值。
在一种或更多种实施例中,压缩设备可以将一个或更多个数据字段作为对象进行分组。对象可以包括其他对象或者可以是数组中的元素。压缩设备还可以:通过包括将系统指向分区中包括相同值的另一对象的方式将记录中的对象压缩。当模块可以将数据输出到系统中的其他模块时,所述模块可以将参考对象替代为实际的对象值。
在一种或更多种实施例中,压缩设备可以使用已知的二进制压缩方法将字段中表示数量的一个或更多个数据压缩。
在一种或更多种实施例中,压缩设备可以使用已知的序列天数压缩算法将字段中表示数量的一个或更多个数据压缩。
在一种或更多种实施例中,压缩设备可以在对一个或更多个数据压缩之前对所述一个或更多个数据进行标准化。适合于在压缩之前进行标准化的数据可以包括街道的后缀和前缀、名称后缀和前缀和之后/之前的方位信息(即,东、北、西等)等。
图27示出了令牌表2700。
在一种或更多种实施例中,压缩装置可以使用任意合适的令牌表来对包括具有合适的语义相似性的数据的字段进行压缩,其中,该合适的令牌表与令牌表2700相似。
在一种或更多种实施例中,当一个或更多个记录可以被添加至具有相关联的令牌表的字段中时,系统确定数据是否与令牌表中先前遇到的数据相匹配。在一种或更多种实施例中,如果该数据不匹配,则系统可以使用令牌表之外的其他压缩方法。在一个或更多个其他实施例中,如果该数据不匹配,则系统可以更新其令牌表以包括该数据。
在一种或更多种实施例中,令牌表可以进行周期地更新,并且所存储的数据可以被重新评估以确定是否提高了压缩率。如果已经提高了一个或更多个数据的压缩率,则系统可以对任意合适的数据进行解压缩以及再次压缩。
在一种或更多种实施例中,最频繁出现的值可以被存储在较低编号的索引中,这可以使得最频繁出现的至可以由较少的字节表示。
在一种或更多种实施例中,相对于较短的值,较长的值优选地包括在令牌表中,这可以使得,同样使用相同的索引值,较长的值相对于较短的值而言具有更大的压缩。
在一种或更多种实施例中,特定的索引值可以被预留以指示对于数据值不存在令牌数据。
图28示出了N-gram表2800。
在一种或更多种实施例中,压缩装置可以使用任意合适的N-gram表来对包括具有合适的语义相似性的数据的字段进行压缩,其中,该合适的N-gram表与N-gram表2800相似。
在一种或更多种实施例中,当一个或更多个记录可以被添加至具有相关联的N-gram表的字段中时,系统确定数据是否与N-gram表中先前遇到的数据相匹配。在一种或更多种实施例中,如果该数据不匹配,则系统可以使用N-gram表之外的其他压缩方法。在一个或更多个其他实施例中,如果该数据不匹配,则系统可以更新其N-gram表以包括该数据。
在一种或更多种实施例中,N-gram表可以进行周期地更新,并且所存储的数据可以被重新评估以确定是否提高了压缩率。如果已经提高了一个或更多个数据的压缩率,则系统可以对任意合适的数据进行解压缩以及再次压缩。
在一种或更多种实施例中,最频繁出现的值可以被存储在较低编号的索引中,这可以使得最频繁出现的至可以由较少的字节表示。
在一种或更多种实施例中,特定的索引值可以被预留以指示对于数据值不存在N-gram数据。
图29示出了记录表示2900,该记录表示2900可以表示一种或更多种实施例中的被压缩的数据。
在记录表示2900中,记录索引列中的每个行值可以包括零个或更多个记录描述符字节,这些字节具有关于记录的信息,包括,记录的长度、偏移量或在存储器中的位置等。在一种或更多种实施例中,记录中所显示的每个数据节点(数组、字段或对象)可以包括零个或更多个描述符字节,其中,如果适用,关于节点的合适的信息可以包括节点标识符、所存储的数据的长度以及数组中的元素的数量。遵循所述零个或更多个节点描述符字节,任意合适熟练的字节可以表示与记录相关联的数据。在一种或更多种实施例中,数据可以包括用于描述数据的内容的一个或更多个位(bit),包括数组分离标记位。
在一个或更多个实施例中,与令牌表相关联的字段中的数据可以使用一个或更多个位来表明记录中所存储的信息是否被表示在合适的令牌表中,或者是否使用了另一种合适的压缩方法,诸如,N-gram压缩.
在一种或更多种实施例中,系统可以使用一个或更多个记录描述符字节和/或一个或更多个节点(数组、对象或字段)中包括的长度或偏移量数据来通过被压缩的数据进行导航,而无需对记录或节点(数组、对象或字段)及进行解压缩。
在一种或更多种实施例中,系统中任意合适的模块(包括MEMDB系统中的一个或跟多个搜索引导器或一个或更多个分区器)可以对数据进行索引或压缩。
在一种或更多种实施例中,本文所公开的采用一种或更多种压缩方法的压缩设备使得以与其他著名的压缩方法相同的速率来压缩数据,而同时使得数据能够在节点(数组、对象或字段)级别进行解压缩和/或访问。
在一种或更多种实施例中,本文所公开的采用一种或更多种压缩方法的压缩设备使得系统能够在访问记录中的信息时跳过个别记录和节点(数组、对象或字段)。
在一个或更多个实施例中,本文所公开的采用一种或更多种压缩方法的压缩设备使得系统能够在目标字段被找到时提前退出对记录的解压缩。
在示例#1中,应用了所公开的用于分面搜索的方法。MEMDB对大量语料库中的文档进行分析、提取分面、对所提取的分面进行消除歧义和索引,然后根据分面类型和层次结构将这些分面存储到两个以上集合的不同分区中。在示例#1中,用于在搜索框中键入文字“统一的(united)”并且系统通过分面返回搜索结果。级别为1的分面包括“类”、“位置”、“产品”、“技术”以及“公司”等。每个级别为2的分面的点击数被示出,并且用户能够将至少三以上级别的搜索的范围缩小。
在示例#2中,应用了所公开的用于分面搜索的方法。MEMDB对大量语料库中的文档进行分析、提取分面、对所提取的分面进行消除歧义和索引,然后根据分面类型和层次结构将这些分面存储到两个以上集合的不同分区中。在示例#2中,用于在搜索框中键入字符“板层(ply)”并且系统通过分面自动地生成搜索建议。级别为1的分面包括“类”、“位置”、“产品”、“技术”以及“公司”等。每个级别为2的分面的点击数被示出,并且用户能够将至少三以上级别的搜索的范围缩小。
示例#1是一种内存数据库系统,包括:搜索管理器、分析代理、每个节点上的节点管理器、每个都包括两个搜索引导器的8个搜索节点、监管器、后备监管器、依赖管理器、后备依赖管理器、以及节点上能够存储并分配分区的分区器(其中,节点包括两个集合(集合1和集合2)被划分为四个集合的信息)。当数据库接收到对于集合1中的记录的搜索查询,搜索管理器向具有与集合1相关联的分区器的所有搜索引导器发送查询。这些搜索引导器异步地工作以对每个所压缩的记录进行搜索和评分,使得经压缩结果的列表具有超过查询中所定义的阈值的评分,对结果的列表进行排序以及将压缩记录的列表返回至搜索管理器。在该示例中,搜索引导器仅对待被评分的字段进行解压缩。搜索管理器接收并聚集来自每个搜索引导器的结果的列表,对查询结果进行编译,并且将编译结果发送至分析代理以进行进一步的处理。分析代理对其所确定的充分相关的记录进行组合,并且将经处理的结果的列表返回至搜索管理器。搜索管理器然后通过系统界面返回最终结果。
示例#2是一种内存数据库,该内存数据库可以执行语义查询并且将数据库中没有明确链接关系的数据的链接数据结果返回。数据或记录链接仅仅是分析代理中可以执行的聚集的分析功能的一种示例。该示例是分析代理的内存数据库,该分析代理能够发现未被链接的数据中的数据链接并且执行语义查询以及返回语义结果。未被链接的数据是来自不同的数据源的数据,这些数据没有明确的键值或者与其他数据源的数据没有明确的链接。在该示例中,可插入分析模块可以被开发并部署在分析代理中以基于不同的数据源自身的数据内容来发现/寻找不同的数据源之间的链接。当执行了语义搜索查询时,所有的相关记录被搜索引导器使用非排他搜索检索出并且被发送至分析代理,分析代理基于分析代理模块的特定实施方式和所分配的信任得分来发现记录连接。这些动态链接记录可以使用语义标记(诸如RDF/XML)或其他语义数据表示来表示并且被返回至用户。这种语义搜索方法使得通过使用相同不相关的数据针对不同的查询以不同的方式将不相关的数据能够链接起来。
示例#3是一种内存数据库,该内存数据库可以执行图形查询并且将数据库中图形形式的没有明确链接或表示额数据的链接数据结果返回。该示例是具有分析代理的内存数据库,该分析代理能够发现未链接数据中的数据链接,执行图形查询以及返回图形查询结果。当执行了图形搜索查询时,所有的相关记录被搜索引导器使用非排他搜索检索出并且被发送至分析代理,分析代理基于分析代理模块的特定实施方式和所分配的信任得分来发现记录连接。这些动态链接记录可以以图形形式(诸如,RDF图形、属性图或其他图形数据表示)来表示并且被返回至用户。这种图形搜索方法使得通过使用相同不相关的数据针对不同的查询以不同的方式将不相关的数据能够链接起来。
示例#4是一种寄存有内存数据库的系统,该系统具有以图14中描述的连接设置相似的连接设置。搜索管理器、搜索引导器以及分析代理均直接参与到交互用户查询的过程中。为了减小用户查询的延迟,这些模块可以以最小延迟的连接进行连接。搜索管理器和分析代理适合于所聚集的较大的答案集并且受益于最大的带宽,其中,搜索引导器基于答案集对数以百计的分区进行处理,部件需要较小的带宽。分区器处理大量数据,但以非交互式的速度,因此他们不仅具有适度的延迟还具有适度的带宽连接。监管器和依赖管理器是非交互的并且具有低数据量,因此需要最低的带宽和最高的延迟连接。该配置试图根据实际需要要减小消耗。
因此,在该示例中,线型A是具有40G带宽和1微秒或更少时间的延迟的无限带宽(InfiniBand)连接;线型B是具有20G带宽和1微秒或更少时间的延迟的无限带宽连接;线型C是10Gb的以太网连接;以及线型D是100Mb以太网连接。在该示例中,包括搜索管理器的节点包括能够以每秒2万亿次浮点运算操作的CPU;包括搜索引导器的节点包括能够以每秒4万亿次浮点运算操作的CPU;包括分析代理的节点包括能够以每秒2万亿次浮点运算操作的CPU;以及包括分区器的节点包括能够以每秒2万亿次浮点运算操作的CPU。在该示例中,包括搜索引导器的节点包括32至64GB的RAM,包括分析代理的节点包括32至64GB的RAM,以及包括分区器的6个节点每个都包括64GB的RAM以及10,000RPM的硬盘。
示例#5是一种寄存有内存数据库的系统,该系统具有以图14中描述的连接设置相似的连接设置。搜索管理器、搜索引导器以及分析代理均直接参与到交互用户查询和数据插入的过程中。为了根据交互的、低延迟用于查询来将单独的大容量的后端数据插入网络业务,低延迟用户查询模块是连接使用不同的网络层。该配置使得能够通过利用低延迟网络层(诸如,无限带宽)来进行响应的、交互的用户查询,同时还能够利用独立的高带宽网络层进行大容量数据插入。这两种类型的操作最优化运行,而彼此并不相互干扰。
示例#6示出了如果单个模块出现故障会发生什么,因为将不再能够获得节点上的一些资源,但是节点自身并不会受到不利影响。
在这种情况下,当模块没有心跳时,到监管器的连接会掉线,从而向监管器警报模块发生故障。监管器将试图与模块重连,以核查该故障是否仅为连接问题或者模块故障。在一些实施例中,重连失败被认为是模块故障。
监管器将首先请求相关联的节点管理器恰当地重启该模块。恰当地启动模块不会带来对模块和任意相对应的软件或数据进行重新导入的代价,因此,相对于在其他节点上进行导入和启动,其能够更快的完成。然而,在该示例中,该问题是由于不能获得特定节点上的一些资源,因此,重启也会失败。
在做出了恰当第重启模块的预定次数的尝试之后,监管器将寻找另一合适的节点来在该节点上启动模块。监管器将与依赖管理器模块接触以获取对故障模块进行部署所需要的正确的包。然后,监管器可以针对最近选择的节点将该包传递给节点管理器以导入并运行模块。模块找到新节点上所需要的资源并且创建至监管器的、用于指示模块运行良好的心跳连接。监管器将功能标记为已经恢复并且该事件结束。
示例#7示出了整个节点故障,诸如,电力供应故障。在这种情况下,节点管理器和服务器上的所有模块都断开了与监管器的心跳连接。监管器将这种情况识别为节点完全故障,并且将该节点标记为出现故障并且不可用。然后,监管器对被分配给该节点的模块列表进行检查。针对该列表中的每个模块,监管器将寻找下另一合适的节点来启动这些模块。监管器将与依赖管理器模块接触以获取对当前模块进行部署所需要的正确的包。然后,监管器可以针对最近选择的节点将该包传递给节点管理器以导入并运行模块。模块执行并且创建至监管器的、用于指示模块运行良好的心跳连接。针对该模块,监管器将功能标记为已经恢复。这个过程持续进行,直到所有的模块都被重新分配给新的节点为止,并且该时间结束。
在示例#8中,说明了一种寄存有内存数据库的系统,该内存数据库与图21中所描述的内存数据库相似。在该示例中,内存数据库和系统包括多个分析模块。一个分析模块可以利用加权的模型来执行记录链接,而其他分析模块使用决策树。一些模块可以被优化来对任意可用数据进行操作,而其他的模块被调整以从所限制的一组字段或数据集合中产生所期望的结果。不同的用户组开放并上传了一些模块。每个用户查询可以执行待被应用的不同的分析模块并且针对这些模块使用不同的参数。不同的用户可以使用内存数据库来同时提取信息,甚至可以以几个不同的方式来同时对相同的数据进行处理。一些用户还可以随时插入新的分析模块,而不会对内存数据库的性能或用户体验造成影响。
在示例#9中,应用了所公开的用于非排他性搜索的方法。用户使用下列字段定义查询:FN(名字):John、LN(姓氏):Smith、DOB(生日):05/15/1965以及PH(电话号码):555-1234-7890。系统使用不同的模式对于两种不同的集合执行搜索,并且相关结果中存在两个具有缺失的字段的记录。第一个是来自于集合1001,在该集合中,定义了如下字段,FN:John、LN:Smith、PH:---以及DOB:05/15/1965。第一个是来自于集合8021,在该集合中,定义了如下字段,FN:John、LN:Smith、PH:555-1234-7890以及DOB:---。由于这两个记录中大多数字段具有良好的匹配,没有一个排除在外,因此,它们得到了相似的最终得分并且位于查询的前十个结果中。
在示例#10中,应用了所公开的用于非排他性搜索的方法。用户使用下列字段定义查询:FN(名字):John、LN(姓氏):Smith、DOB(生日):05/15/1965以及PH(电话号码):555-1234-7890。系统使用不同的模式对于两种不同的集合执行搜索,并且相关结果中存在两个具有相似但是不完全匹配字段的记录。第一个是来自于集合1001,在该集合中,定义了如下字段,FN:Jonathan、LN:Smith、PH:1234-7890。第一个是来自于集合8021,在该集合中,定义了如下字段:FN:John、LN:Smyth、PH:555-1234-7890以及DOB:1965。由于这两个记录中大多数字段具有良好的匹配,因此,它们得到的最终得分超过了得分阈值并且位于查询的前十个结果中。
示例#11示出了一种使用压缩装置来压缩名字的方法。在该示例中,数据集包括一百万全名记录的集合,该记录表示了350个独特的名字和300个独特的姓氏。这些记录被分段为名字字段和姓氏字段。
然后,通过这些记录的频率与长度的乘积从高到低对各个令牌进行加权。权重低于某阈值的令牌被丢弃以减小令牌表的大小。
然后,通过使指定索引的过程中的聚集的空间节省最大化的方式来对每个字段生成令牌表,从而针对单个令牌的空间节省为长度总和与所存储的索引长度的差与频率的乘积。
在最大化过程中,与单个字节索引相关联的条目的数量范围为1至255,包括端值。
该算法保证所生成的令牌表是最优的,并且最大存储将达到单个字节所存储的索引条目,而后续的值压缩至两个或更多个字节。短的或罕见的条目可能无法实现存储并且不会包括在令牌表中。这些值回复至其他压缩方法,诸如,n-gram压缩。
示例#12示出了一种使用压缩装置来压缩文字的方法。
在该示例中,针对n-gram的频率对较大主体的文本进行分析,其中,n-gram可以表示连续的字符、文字,或组合或文字的连续序列。文字通常是通过分析大量字段数据来获得的,以便于通过字段水平压缩来实现字段中的柱状压缩结果。
然后,通过这些记录的频率与长度的乘积从高到低对各个n-gram进行加权。权重低于某阈值的n-gram被丢弃以减小令牌表的大小。
然后,通过使指定索引过程中的聚集的空间节省最大化的方式来对字段生成n-gram表,从而对于各个n-gram的空间节省为长度总和与所存储的索引长度的差与频率的乘积。
在最大化过程中,与单个字节索引相关联的条目的数量范围为1至255,包括端值。
该算法保证所生成的n-gram表是最优的,并且最大存储将达到单个字节所存储的索引条目,而后续的值压缩至两个或更多个字节。罕见的条目可能无法实现存储并且不会包括在n-gram表中。这些值回复到基本存储的一些其他方法。
在表中通过该方法生成的一些n-gram的示例如下:
索引 N-gram
1 e
11 th
47 and
800 out of
在压缩过程中,使用贪婪算法对字段对象从头自尾进行压缩以将尽可能地将大量数据替换为被索引的数值,直到整个数据被消耗为止。
示例#13是一种使用压缩设备对JSON文档中的半结构化数据进行压缩的方法。
在该示例中,使用下列模式对JSON输入文档进行压缩,针对题目(Tittle)、名字(FirstName)、姓氏(LastName)、姓名后缀(NameSuffix)以及电话类型(PhoneType)字段进行令牌表压缩,以及针对出生日期(DataOfBirth)字段进行序列天数(Serial Day Number)压缩,以及针对电话号码(PhoneNumber)字段进行数字n-gram压缩。
{"collection":"Example2",
"record":[
{"id":"1","type":"FIELD","name":"Title","compressionMethod":"TitleNameTokenTable"},
{"id":"2","type":"FIELD","name":"FirstName","compressionMethod":"FirstNameTokenTable"},
{"id":"3","type":"FIELD","name":"LastName","compressionMethod":"LastNameTokenTable"},
{"id":"4","type":"FIELD","name":"NameSuffix","compressionMethod":"NameSuffixNameTokenTable"},
{"id":"5","type":"FIELD","name":"DateOfBirth","compressionMethod":"SerialDayNumber"},
{"id":"6","type":"ARRAY","name":"Phones","array":[
{"id":"7","type":"STRUCT","struct":[
{"id":"8","type":"FIELD","name":"PhoneType","compressionMethod":"PhoneTypeTokenTable"},
{"id":"9","type":"FIELD","name":"PhoneNumber","compressionMethod":"NumberNgramTable"},
]}
]}
]}
下面的输入记录需要被呈现在JSON中的266个字节(在移除了不需要的空格之后)。在压缩之后,使用上述模式中的压缩方法,所产生的压缩的记录仅需要44个字节。
{"Title":"Dr.",
"FirstName":"Johnathan",
"LastName":"Patterson",
"NameSuffix":"M.D.",
"DateOfBirth":"19600101",
"Phones":[
{"PhoneType":"Office","PhoneNumber":"1234567890"},
{"PhoneType":"Mobile","PhoneNumber":"2345678901"},
{"PhoneType":"Home","PhoneNumber":"3456789012"}
]}
下面的输入记录需要被呈现在JSON中的108个字节(在移除了不需要的空格之后)。在压缩之后,使用上述模式中的压缩方法,所产生的压缩的记录仅需要13个字节。
{"Title":"Dr.",
"FirstName":"Johnathan",
"LastName":"Patterson",
"NameSuffix":"M.D.",
"DateOfBirth":"19600101"
}
图#14是对记录分段的示例。在该示例中,集合中的低53个记录包括鲍勃和卡罗尔·威尔逊夫妇的数据,该数据具有第一地址和第二地址。在该示例中,记录被分段成如下面的表格所示出的那样。
对记录索引进行维护以确保系统仍然知道记录来自于集合中的相同原始记录。在该示例中,被分段的记录还包括通过包括将系统指向分区中的前一个的记录的数值的数据,即,当系统访问其名字为53.2的记录时,所述数值将系统指向名字为53.1的记录的值。当示例#4中的系统向系统中的其他模块输出数据(即使是以被压缩的格式发送该数据)时,模块将实际的数值替换成所指向的值。
示例#15是用于对归档的半结构化数据进行压缩的示例。在该示例中,使用定义了所有所期望的字段的模式来对来自面向文档的数据库(MongoDB、Cassandra或CouchDB)的JSON文档进行压缩,所期望的字段包括每个JSON文档的唯一标识符。然后对将该唯一标识符映射至被压缩的记录的索引进行创建。可以立即对所产生的被压缩的记录和消耗率低于15%的存储器进行访问,,而无需对不必要的数据进行解压缩,所述存储器是针对面向原始文档的数据库和每个JSON文档或文档的选择字段所需要的。
本文中结合实施例所描述的各个示意性逻辑块、模块、电路以及算法步骤可以实现为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件和软件的这种可互换性,以上主要按照功能对各种说明性的部件、块、模块、电路和步骤进行了说明。这种功能性是实施为硬件还是软件取决于特定应用和施加于整个系统上的设计限制条件。对于每个特定应用,本领域技术人员可以用不同方式实现所描的功能性,但是这种实现决定不应该被解释为导致偏离本发明的保护范围。
各种实施方式可以通过硬件、软件、固件、中间件、微代码、硬件描述语言、和/或它们的组合来实现。可以用过程、函数、子程序、程序、例程、子例程、模块软件包、类、或指令、数据结构或程序语句的任意组合来表示代码段或可执行的机器指令。通过传递和/或接收信息、数据、变元、参数、和/或存储器内容,代码段便可以耦合到另一个代码段或硬件电路。信息、变元、参数、数据等可以通过任何合适的方式被传递、转发或发送,所述方式包括存储器共享、消息传递、令牌传递、网络传输等。
用于实现这些系统和方法的实际软件代码或专用控制硬件不限制本发明。在没有参考具体软件代码的情况下描述了这些系统和方法的操作和性能,应当理解,软件和控制硬件可以被设计成实现基于此处的描述的系统和方法。
当在软件中执行功能时,该功能可作为一条或多条指令或代码存储在计算机可读介质上或借其进行传送。本文所公开的方法或算法的步骤可以体现在处理器可执行模块中,该处理器可执行模块可以驻留在计算机可读或处理器可读存储介质上。非易失性计算机可读介质或处理器可读介质包括计算机存储介质和有形的存储介质二者,所述二者有利于将计算机程序从一个地方转移到另一个地方。非易失性处理器可读介质可以是计算机能够访问的任意可获得的介质。以示例而非限制的方式,该非易失性处理器可读介质可包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储设备、磁盘存储设备或其它磁性存储设备,或可用于携载或存储呈指令或数据结构形式的所期望的程序代码且可由计算机存取的任何其他有形存储介质。本文所使用的磁盘和光盘包括压缩盘(CD)、激光盘、光学盘、数字多功能盘(DVD)、软盘和蓝光盘,其中,磁盘通常以磁的方式再现数据,而光盘采用激光以光学的方式再现数据。上述的组合也应该包含在计算机可读介质的范围内。此外,方法或算法的操作可作为代码和/或指令的一个或任何组合或集合而存在于非易失性处理器可读介质和/或计算机可读介质上,这些介质可以合并到计算机程序产品中。
所公开的实施例的前述说明用于使本领域任何技术人员能够实现或使用本发明。这些实施例的各种修改对于本领域的技术人员来说是明显的,这里定义的一般原理可以被应用于其它实施例中而不使用创造能力。因此,本发明并不局限于这里所示的实施例,而是符合与这里所公开的原则和新颖性特征相一致的最宽的范围。
尽管已经公开了多个方面和实施例,但是也可以考虑其他方面和实施例。所公开的各个方面和实施例仅出于示意性的目的而并非在于限制性的,本发明的真实范围和主旨由上述权利要求进行指示。
所提供的前述方法描述和处理流程图仅作为示例性目的并且并非意在要求或暗示各个实施例中的步骤必须按照所提出的顺序来执行。本领域的技术人员应当理解的是,可以按照任意顺序来执行前述实施例。文字(诸如,“然后”,“接下来”等)并非意在限制步骤的顺序;这些文字仅简单地用于引导读者通过方法的整个描述。尽管处理流程图可能将操作描述为顺序处理,但是多个这些操作可以并行地或同时执行。此外,操作的顺序可以被重新布置。处理可以对应于方法、函数、例程、子例程、子程序等。当处理对应于函数时,该函数的终止可以对应于所述函数返回到调用函数或主函数。
本文中结合实施例所描述的各个示意性逻辑块、模块、电路以及算法步骤可以实现为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件和软件的这种可互换性,以上主要按照功能对各种说明性的部件、块、模块、电路和步骤进行了说明。这种功能性是实施为硬件还是软件取决于特定应用和施加于整个系统上的设计限制条件。对于每个特定应用,本领域技术人员可以用不同方式实现所描的功能性,但是这种实现决定不应该被解释为导致偏离本发明的保护范围。
各种实施方式可以通过硬件、软件、固件、中间件、微代码、硬件描述语言、和/或它们的组合来实现。可以用过程、函数、子程序、程序、例程、子例程、模块软件包、类、或指令、数据结构或程序语句的任意组合来表示代码段或可执行的机器指令。通过传递和/或接收信息、数据、变元、参数、和/或存储器内容,代码段便可以耦合到另一个代码段或硬件电路。信息、变元、参数、数据等可以通过任何合适的方式被传递、转发或发送,所述方式包括存储器共享、消息传递、令牌传递、网络传输等。
用于实现这些系统和方法的实际软件代码或专用控制硬件不限制本发明。在没有参考具体软件代码的情况下描述了这些系统和方法的操作和性能,应当理解,软件和控制硬件可以被设计成实现基于此处的描述的系统和方法。
当在软件中执行功能时,该功能可作为一条或多条指令或代码存储在计算机可读介质上或借其进行传送。本文所公开的方法或算法的步骤可以体现在处理器可执行模块中,该处理器可执行模块可以驻留在计算机可读或处理器可读存储介质上。非易失性计算机可读介质或处理器可读介质包括计算机存储介质和有形的存储介质二者,所述二者有利于将计算机程序从一个地方转移到另一个地方。非易失性处理器可读介质可以是计算机能够访问的任意可获得的介质。以示例而非限制的方式,该非易失性处理器可读介质可包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储设备、磁盘存储设备或其它磁性存储设备,或可用于携载或存储呈指令或数据结构形式的所期望的程序代码且可由计算机存取的任何其他有形存储介质。本文所使用的磁盘和光盘包括压缩盘(CD)、激光盘、光学盘、数字多功能盘(DVD)、软盘和蓝光盘,其中,磁盘通常以磁的方式再现数据,而光盘采用激光以光学的方式再现数据。上述的组合也应该包含在计算机可读介质的范围内。此外,方法或算法的操作可作为代码和/或指令的一个或任何组合或集合而存在于非易失性处理器可读介质和/或计算机可读介质上,这些介质可以合并到计算机程序产品中。
应当理解的是,该各种部件也可配置在分布式网络中的远端部分,例如电话电信网络和/或因特网,或者在专用安全,非安全和/或加密系统中。因此,应当理解的是,系统的部件可以被结合到一个或多个设备中或者被共置在分布式网络的特定节点上,所述分布式网络例如是电信网络。如根据说明书将会理解的,并且出于计算效率的原因,在影响系统的操作的情况下,系统的部件可以被布置在分布式网络内的任何位置处。此外,部件可以被嵌入到专用机器中。
此外,应当理解的是,连接这些单元的各种各样的链路可以是有线或者无线链路,或者其任意的组合,或者任何其它已知的或者稍后开发的单元,该单元能够提供和/或交换信息出入这些连接的单元。本文所使用的术语“模块”可以是任何已知或者以后开发的、能够执行与元件有关的功能的硬件、软件、固件或者其组合体。如本文所使用,术语“确定(determine)”、“运算(calculate)”和“计算(compute)”以及它们的变形被交互使用并且包括任何类型的方法、过程、数学运算或者技术。
所公开的实施例的前述说明用于使本领域任何技术人员能够实现或使用本发明。这些实施例的各种修改对于本领域的技术人员来说是明显的,这里定义的一般原理可以被应用于其它实施例中而不使用创造能力。因此,本发明并不局限于这里所示的实施例,而是符合与这里所公开的原则和新颖性特征相一致的最宽的范围。
上述实施例是示例性的。本领域的技术人员认为:多个可替代部件和实施例可以用于代替本文所描述的特定示例并且仍然属于本发明的保护范围。

Claims (141)

1.一种计算机执行的方法,包括:
计算机从语料库提取一个或更多个分面,所述语料库包括一种或更多种类型的数据中的数据并且包含信息;
所述计算机对从所述语料库提取的所述一个或更多个分面中的每一个进行消除歧义;
所述计算机生成与所述一个或更多个分面分别相关联的一个或更多个索引;
所述计算机基于相关联的索引从分区的记录中检索出所述分面中的每一个,所述分区的记录包括数据库中的一个或更多个记录,其中,所述数据库中的集合包括一个或更多个分区,并且其中,每个相应的分面指示所述数据库中所存储的数据相对于数据的所述一个或更多个记录的层次关系;以及
所述计算机基于所述分面中的每一个生成所建议的搜索查询。
2.一种寄存内存数据库的计算系统,所述系统包括:
包括处理器的分区器节点,该处理器被配置成:响应于接收到数据库的一个或更多个记录的集合,基于与所述集合相关联的机器可读模式文件来确定是否压缩所述集合;根据所述模式文件在逻辑上将所述集合划分成一个或更多个分区;以及根据所述模式文件将所述一个或更多个分区分配至一个或更多个存储节点;
存储节点,包括用于存储从与所述存储节点相关联的分区器所接收的分区的非易失性机器可读主存储器;
包括处理器的搜索管理器节点,该处理器用于从所述系统的客户端设备接收搜索查询;并且响应于从所述客户端设备接收到所述搜索查询,将所述搜索查询作为搜索引导器查询发送至一个或更多个搜索引导器,其中,所述搜索查询是机器可读计算机文件,所述机器可读计算机文件包含与满足所述搜索查询的一个或更多个记录相关联的参数;
搜索引导器节点,所述搜索引导器节点与一个或更多个分区器相关联并且包括处理器,该处理器被配置成:响应于从所述搜索管理器节点接收到搜索引导器查询,查询由所述搜索引导器查询所指示的一组一个或更多个分区;识别该组查询到的分区中所存储的一个或更多个候选记录;使用评分算法针对每个相应的候选记录计算第一得分;以及将包含有满足阈值的一个或更多个候选记录的一组一个或更多个查询结果发送至所述搜索管理器;以及
包括处理器的分析代理节点,该处理器被配置成:响应于识别出从所述搜索管理器节点所接收的该组查询结果,自动地生成包含有一组一个或更多个结果的机器可读计算机文件,该组一个或更多个结果从该组查询结果得到。
3.根据权利要求2所述的系统,其中,所述分析代理节点的处理器还被配置成将一组一个或更多个数据链接发送至所述搜索管理器。
4.根据权利要求2所述的系统,其中,所述搜索管理器的处理器还被配置成根据所述搜索查询执行一个或更多个字段处理算法。
5.根据权利要求2所述的系统,还包括监管器节点,所述监管器节点包括处理器,所述监管器节点的处理器用于:从所述系统的一个或更多个节点接收一个或更多个心跳信号并且基于从每个相应的节点所接收的心跳信号确定所述一个或更多个节点中的每个节点的状态,其中,每个相应的心跳信号表示相应节点的状态。
6.根据权利要求5所述的系统,其中,每个相应的节点包括被配置成监视节点的状态的处理器。
7.根据权利要求5所述的系统,还包括依赖管理器节点,所述依赖管理器节点与所述监管器节点相关联并且包括处理器,所述依赖管理器节点的处理器用于:使用非易失性机器可读存储介质中所存储的机器可读依赖树文件来对所述监管器所监视的节点的节点配置状态进行监视。
8.根据权利要求7所述的系统,其中,所述心跳信号的状态表示所节点配置状态,并且其中,响应于所述依赖管理器确定所述节点配置状态指示所述节点被错误配置,所述监管器节点发送机器可读配置包文件。
9.根据权利要求2所述的系统,其中,所述搜索引导器针对一组一个或更多个更新的结果记录中的每个相应的候选记录计算字段得分,其中,该组更新的结果记录中的每个相应的候选记录的所述第一得分满足所述搜索查询所指示的所述阈值;并且,所述搜索引导器将所述更新的结果记录发送至所述搜索管理器节点。
10.根据权利要求9所述的系统,其中,响应于确定该组更新的结果记录中的候选记录中所存储的数据根据数据压缩算法进行了压缩,所述搜索引导器使用所述数据压缩算法对所述候选结果记录中的所述数据进行解压缩。
11.根据权利要求2所述的系统,还包括包括有执行查询界面模块的处理器的节点,所述查询界面模块接收与一个或更多个集合相关联的新的集合模式文件,其中,至少搜索引导器模块被配置成根据所述新的模式文件对与所述搜索引导器相关联的一个或更多个集合进行自动重新配置。
12.根据权利要求2所述的系统,其中,所述分区器根据所述模式文件向所述集合中存储的每个相应的记录指定唯一记录标识符,并且使用被指定给所述集合中的各个相应的记录的所述唯一记录标识符生成与所述分区中的每个分区相关联的机器可读索引文件。
13.根据权利要求12所述的系统,其中,所述搜索管理器节点向所述搜索引导器节点分配一组一个或更多个新记录;并且其中,响应于接收到该组一个或更多个新记录,所述搜索引导器根据所述模式文件自动地将所述新记录中的每一个添加至集合的分区。
14.根据权利要求12所述的系统,其中,所述一个或更多个搜索管理器还被配置成对将与一组唯一记录标识符相对应的一个或更多个记录删除的请求进行接收和分配,并且将所述请求分配至至少一个搜索引导器;并且其中,所述搜索引导器还被配置成对与该组唯一记录标识符相关联的每个记录进行标记以便删除。
15.根据权利要求14所述的系统,其中,对记录进行标记以便删除将该记录排除在将来的搜索结果记录之外。
16.根据权利要求12所述的系统,其中,与所述记录中的每一个相关联的所述唯一记录标识符包括以下各项中的一个或更多个:唯一标识符编号、集合版本号、集合名称以及分区版本号。
17.根据权利要求12所述的系统,其中,所述搜索管理器节点接收包括一个或更多个新记录的一组一个或更多个新集合,并且根据所述模式文件将一组新集合发送至所述一个或更多个引导器节点,并且其中,响应于接收到所述一个或更多个新集合,每个相应的搜索引导器节点根据所述模式文件自动地使用一组一个或更多个新记录来填充与相应的搜索引导器节点相关联的一个或更多个集合。
18.根据权利要求2所述的系统,其中,所述搜索管理器接收移除集合的请求,所述搜索管理器的处理器被配置成将所述集合删除请求转发给搜索引导器,并且所述搜索引导器还被配置成将所述集合从所述数据库中移除。
19.根据权利要求2所述的系统,其中,所述搜索管理器从所述搜索引导器中的每一个异步地接收搜索结果记录中的每一个。
20.根据权利要求2所述的系统,其中,所述模式根据以下各项中的一个或更多个来对集合进行描述:字段的名称、所述字段是否被索引、所使用的压缩以及用于所述字段的默认评分算法。
21.根据权利要求2所述的系统,其中,所述分析代理还被配置成将多个记录联接成更完整的记录并且确定所述搜索结果记录的相邻记录的信息。
22.根据权利要求2所述的系统,其中,所述搜索引导器基于从所述搜索管理器所接收的所述搜索查询来限制所述搜索结果记录的大小。
23.根据权利要求2所述的系统,其中,所述监管器指令所述分区器压缩集合中的一个或更多个记录。
24.根据权利要求2所述的系统,其中,监管器还被配置成确定待加载的一个或更多个新分区,并且向依赖管理器请求用于节点的节点配置,其中,所述监管器指令所述节点的节点管理器从依赖管理器检索所述节点配置;
其中,所述节点管理器被配置成分配所述节点的存储器资源并且加载新分区;以及
其中,按照所述模式与所述新分区相关联的搜索引导器告知所述监管器该分区已被加载。
25.根据权利要求2所述的系统,其中,所述分析代理节点在从所述搜索管理器节点所接收的该组查询结果中识别出将两个或更多个记录关联的数据链接,并且其中,所述数据链接将第一记录中包含的数据与第二记录中包含的数据关联。
26.一种计算机执行的方法,包括:
寄存内存数据库的系统的搜索管理器计算机接收表示搜索查询的二进制数据,所述搜索查询包含对所述数据库进行查询的参数,其中,所述系统包括一个或更多个存储节点,所述一个或更多个存储节点包括用于存储所述数据库中的一个或更多个集合的主存储器,其中,每个集合包括一个或更多个记录;
所述计算机根据所述搜索查询将所述搜索查询发送至一个或更多个搜索引导器节点,其中,所述搜索查询指示一组一个或更多个待查询的集合;
响应于从所述一个或更多个搜索引导器接收到包含满足所述搜索查询的一个或更多个记录的一组搜索结果,所述计算机基于所述搜索查询将该组搜索结果发送至一个或更多个分析代理节点,其中,该组搜索结果中的每个相应的记录与基于所述搜索查询中的评分算法的得分相关联;以及
响应于所述计算机从所述一个或更多个分析代理节点接收到包含一组一个或更多个数据链接的计算机文件:
所述计算机根据从所述分析代理节点所接收的该组一个或更多个数据链接对该组搜索结果中的所述一个或更多个记录进行更新。
27.根据权利要求26所述的方法,其中,所述计算机异步地从每个相应的搜索引导器接收搜索结果的子组。
28.根据权利要求27所述的方法,其中,从每个相应的搜索引导器所接收的搜索结果的每个子组按照针对每个相应的记录所计算的得分进行排名。
29.根据权利要求26所述的方法,其中,与该组待查询的集合相关联的每个相应的搜索引导器根据所述搜索查询的参数确定包含所述搜索结果的一个或更多个记录的一组一个或更多个搜索结果。
30.一种计算机执行的方法,包括:
计算机根据计算机可读模式文件从搜索引导器接收一个或更多个集合,其中,所述集合中的每一个包括具有一个或更多个字段的一组一个或更多个记录;
所述计算机根据所述模式对每个集合进行分区;
所述计算机根据所述模式对分区中的记录进行压缩;以及
所述计算机将所述分区中的每一个分配至一个或更多个相关联的搜索引导器以将所述分区中的每一个包括在与所述搜索引导器相关联的分区器所对应的每个集合中。
31.根据权利要求30所述的方法,还包括:所述计算机根据所述模式对每组记录中的记录进行分段。
32.根据权利要求30所述的方法,还包括:所述计算机在选自以下各项组成的组中的级别上对所述记录进行解压缩:字段级别、记录级别、分区级别、集合级别以及数据库级别。
33.一种包括寄存有内存数据库的一个或更多个节点的系统,所述系统包括:
多个存储器节点,所述多个存储器节点包括非易失性机器可读存介质,所述非易失性机器可读存储介质用于存储集合的一个或更多个分区,其中,由每个相应的存储器节点所存储的集合包含数据库的一个或更多个记录,并且其中,每个相应的存储器节点的存储介质包括主存储器;
包括处理器的搜索管理器节点,该处理器用于:使用从用户节点所接收的搜索查询来生成一个或更多个搜索引导器查询;根据所述搜索查询将所述一个或更多个搜索引导器查询发送至一个或更多个搜索引导器节点;以及响应于接收到一组或更多组搜索结果,根据所述搜索查询将所述一组或更多组搜索结果转发至一个或更多个分析代理节点;
包括处理器的分析代理节点,该处理器用于:响应于从所述搜索管理器节点接收到一组搜索结果,执行一个或更多个分析算法;
包括处理器的搜索引导器节点,该处理器用于:响应于从所述搜索管理器接收到搜索引导器查询,根据所述搜索引导器查询来查询存储器节点的数据库记录的集合;以及响应于识别出一组一个或更多个搜索结果,将该组的一个或更多个搜索结果发送至所述搜索管理器节点,其中,每个相应的搜索结果与包含满足所述搜索引导器查询的数据的数据库记录相对应;以及
多个网络分段,所述多个网络分段包括一个或更多个节点之间的一个或更多个连接,所述一个或更多个节点通过每个相应的网络分段进行通信,其中,第一网络分段包括所述搜索管理器、所述搜索引导器以及所述分析代理。
34.根据权利要求33所述的系统,其中
其中,每个相应的网络分段基于与通信类型相关联的资源需求包括所述一个或更多个连接,以及
其中,所述通信类型选自以下各项组成的组:搜索查询数据、数据库记录的一个或更多个集合、状态数据以及配置包文件。
35.根据权利要求34所述的系统,其中,每个相应的通信类型的资源需求是根据延迟需求和带宽需求来确定的,其中,所述延迟需求是基于用于通信的允许时间量的,并且其中,所述带宽需求是基于用于通信的数据量的。
36.根据权利要求34所述的系统,其中,所述第一网络分段包括用于传送搜索询问数据的所述一个或更多个连接。
37.根据权利要求36所述的系统,其中,所述第一网络分段包括使用无限带宽技术的物理连接。
38.根据权利要求36所述的系统,还包括一个或更多个分区器节点,所述一个或更多个分区器节点用于对数据库记录的一个或更多个集合进行分区,并且响应于接收到所述一个或更多个集合,根据模式文件将所述一个或更多个集合分配至所述一个或更多个存储器节点,
其中,第二网络分段包括用于将所述一个或更多个集合从每个相应的分区器传送至所述一个或更多个存储器节点的一个或更多个连接。
39.根据权利要求38所述的系统,其中,所述第二网络分段包括使用无限带宽技术的第二物理连接。
40.根据权利要求39所述的系统,其中,所述第二网络分段包括使用以太网的第二物理连接。
41.根据权利要求38所述的系统,还包括包括有处理器的一个或更多个监管器节点,所述一个或更多个监管器节点的处理器持续地对与所述系统的所述一个或更多个节点相关联的一个或更多个状态进行监视,并且被配置成:响应于接收到指示所述一个或更多个节点中的故障节点的故障资源的状态,将配置包文件发送至所述故障节点,
其中,第三网络分段包括用于将每个相应的节点的每个相应的状态传送至所述一个或更多个监管器节点并且将从所述监管器发送的所述配置包文件传送至所述故障节点。
42.根据权利要求41所述的系统,其中,所述第三网络分段包括使用以太网的第三物理连接。
43.根据权利要求41所述的系统,还包括依赖管理器,所述依赖管理器包括:用于存储依赖树和一个或更多个配置包文件的非易失性机器可读存储介质,以及处理器,所述处理器被配置成为所述故障节点确定所述配置包文件,并且响应于来自监管器节点的对配置包文件的请求,基于所述依赖树将所述配置包文件发送至所述监管器节点;
其中,所述第三网络分段还包括传送对所述配置包文件的所述请求的一个或更多个连接。
44.一种计算机执行的方法,包括:
包括有用于执行监管器模块的处理器的计算机监视节点管理器所生成的心跳信号,所述节点管理器用于对节点上所存储的一个或更多个软件模块进行监视,其中,所述心跳信号包含二进制数据,所述二进制数据指示由所述节点管理器所监视的每个相应的软件模块的状态;
所述计算机基于从所述节点的所述节点管理器所接收的所述心跳信号来检测所述节点的所述一个或更多个软件模块中的故障软件模块;
所述计算机自动地将用于指令所述节点恢复所述故障软件模块的命令发送至所述节点的所述节点管理器;以及
所述计算机基于从所述节点管理器所接收的所述心跳信号来确定所述节点管理器是否成功地恢复了所述模块。
45.根据权利要求44所述的方法,还包括:
当所述节点管理器在尝试的阈值次数内没有恢复所述模块时,所述计算机确定故障转移节点以执行所述模块;
所述计算机从依赖管理器节点中检索与所述模块相关联的配置包;
所述计算机将所述配置包发送至与所述故障转移节点相关联的故障转移节点管理器,其中,所述故障转移节点管理器尝试在所述故障转移节点上安装所述模块,并且其中,所述故障转移节点管理器尝试恢复所述模块;
所述计算机确定所述故障转移节点管理器是否成功地在所述故障转移节点上安装了所述模块;以及
所述计算机确定所述故障转移节点管理器是否成功地恢复了所述模块。
46.根据权利要求45所述的方法,还包括:
当所述故障转移节点管理器未能在所述故障转移节点上安装所述模块时或者当所述故障转移节点管理器未能在尝试的阈值次数内恢复所述模块时,所述计算机确定下一个故障转移节点以执行所述模块;
所述计算机将所述配置包发送至与所述下一个故障转移节点相关联的下一个故障转移节点管理器;
所述计算机确定所述下一个故障转移节点管理器是否成功地在所述下一个故障转移节点上安装了所述模块;以及
所述计算机确定所述下一个故障转移节点管理器是否成功地恢复了所述模块。
47.根据权利要求46所述的方法,还包括:在一个或更多个下一个故障转移节点管理器超过恢复所述模块的尝试的全局阈值次数之后,所述计算机生成模块故障警报,其中,所述计算机连续地确定下一个故障转移节点,直到达到了恢复所述模块的尝试的所述全局阈值次数为止。
48.根据权利要求44所述的方法,还包括:
所述计算机检测用于监视所述模块的所述节点管理器的故障;
所述计算机确定故障转移节点以执行所述模块,其中,所述故障转移节点与故障转移节点管理器相关联;
所述计算机从依赖管理器节点中检索与所述模块相关联的配置包;
所述计算机将所述配置包发送至所述故障转移节点管理器,其中,所述故障节点管理器尝试在所述故障转移节点上安装所述模块,并且其中,所述故障转移节点管理器尝试恢复所述模块;
所述计算机确定所述故障转移节点管理器是否成功地在所述故障转移节点上安装了所述模块;以及
所述计算机确定所述故障转移节点管理器是否成功地恢复了所述模块。
49.根据权利要求44所述的方法,还包括:
当所述节点不根据现状起作用时,所述计算机确定所述节点是故障节点;
所述计算机确定由所述故障节点执行的、待从所述故障节点中移走并且待在一个或更多个新节点处进行恢复的一个或更多个模块;
所述计算机从所述依赖管理器节点中检索用于所述一个或更多个模块中的每个模块的配置包;以及
所述计算机将每个配置包发送至所述一个或更多个新节点。
50.根据权利要求44所述的方法,还包括:
所述计算机确定具有一组可用资源的下一个新节点,所述下一个新节点能够安装和执行被从所述故障节点移走的所述一个或更多个模块中的模块;
所述计算机指令用于存储所述模块的新节点的新节点管理器卸载所述模块;以及
所述计算机将所述配置包发送至所述下一个新节点。
51.一种计算机执行的方法,包括:
计算机持续地向监管器节点发送心跳信号;
当接收到恢复命令时,所述计算机恢复故障模块;以及
当所述计算机检测到所述模块被恢复时,所述计算机将已恢复状态信号发送至所述监管器节点。
52.根据权利要求51所述的方法,还包括:当达到恢复尝试的阈值次数时,所述计算机将恢复失败状态信号发送至所述监管器节点。
53.一种容错分布式计算系统,包括
包括处理器的一个或更多个节点,该处理器用于:将心跳信号发送至监管器节点并且对所述节点上安装的一个或更多个软件模块的执行进行监视;以及
包括处理器的一个或更多个监管器节点,该处理器用于:对从所述一个或更多个节点所接收的一个或更多个心跳信号进行监视,并且基于每个相应的心跳信号确定每个相应的节点的状态。
54.根据权利要求53所述的系统,其中,所述节点处理器被配置成:响应于从所述监管器节点接收到恢复所述节点所执行的软件模块的命令,尝试将所述软件模块恢复到现状配置。
55.根据权利要求54所述的系统,还包括包括处理器的故障转移节点,该处理器用于将心跳信号发送至所述监管器节点,所述故障转移节点被配置成执行所述一个或更多个节点中的节点上所安装的软件模块。
56.根据权利要求55所述的系统,还包括依赖管理器节点,所述依赖管理器节点包括非易失性机器可读存储介质,所述非易失性机器可读存储介质用于存储一个或更多个机器可读配置包文件。
57.根据权利要求56所述的方法,其中,所述监管器节点的所述处理器确定恢复所述节点所执行的所述软件模块的尝试的次数,并且其中,响应于确定所述尝试的次数超过恢复所述软件模块的尝试的阈值次数,所述监管器的所述处理器自动地从所述依赖管理器中检索与所述软件模块相关联的配置包文件。
58.根据权利要求57所述的方法,其中,响应于从所述依赖管理器接收到所述配置包文件,所述监管器节点的所述处理器将所述配置包文件发送至故障转移节点,并且所述监管节点的所述处理器指令所述故障转移节点的处理器尝试恢复所述软件模块。
59.根据权利要求56所述的系统,其中,响应于从所述监管器节点接收到识别所述配置包文件的请求,所述依赖管理器节点的处理器将所述配置包文件发送至所述监管器节点。
60.根据权利要求59所述的方法,其中,所述配置包文件与被检测为故障的软件模块相关联,所述故障是根据执行所述软件模块的节点的心跳信号的节点状态被检测出的。
61.根据权利要求60所述的系统,其中,从响应于确定所述故障转移节点的节点状态指示所述故障转移节点不具有足够的资源以恢复所述软件模块,所述监管器节点将资源移动命令发送至所述故障转移节点。
62.根据权利要求61所述的系统,其中,响应于所述资源移动命令,所述故障转移节点的处理器自动地将已安装的软件模块从所述故障转移节点卸载,并且其中,所述故障转移节点尝试安装和恢复从所述监管器节点所接收的所述软件模块。
63.根据权利要求53所述的系统,还包括冗余节点,所述冗余节点包括:非易失性机器可读存储介质,所述非易失性机器可读存储介质用于存储所述一个或更多个软件模块中的软件模块的冗余拷贝;以及处理器,该处理器被配置成:响应于从所述监管器节点接收到恢复所述软件模块的命令,自动地尝试执行所述软件模块的所述冗余拷贝,所述命令用于指令所述冗余节点尝试执行所述软件模块的所述冗余拷贝。
64.一种计算机执行的方法,包括:
分布式计算系统中的计算机向依赖管理器节点发送对与目标节点相关联的机器可读可部署包文件的请求,其中,所述依赖管理器包括非易失性机器可读存储介质,所述非易失性机器可读存储介质用于根据依赖树对与所述系统的一个或更多个节点相关联的一个或更多个可部署包文件进行存储;
响应于从所述依赖节点接收到所述可部署包文件,所述计算机将所述可部署包文件发送至目标节点,其中,与所述目标节点相关联的可部署数据文件包括基于所述依赖树的一组一个或更多个依赖文件;以及
所述计算机指令所述目标节点将所述可部署包中的一组依赖文件安装到所述目标节点上。
65.根据权利要求64所述的方法,其中,依赖选自以下各项组成的组:分区、模块、文件以及数据。
66.根据权利要求64所述的方法,其中,所述依赖管理器节点从一个或更多个数据存储机构中获取依赖并且对所述可部署包进行编译。
67.根据权利要求64所述的方法,其中,所述可部署包文件中的每个相应的依赖文件由所述依赖管理器节点使用与所述目标节点相关联的至少一个依赖树来进行确定。
68.根据权利要求67所述的方法,其中,所述可部署包文件中的每个相应的依赖文件基于所述依赖文件与系统中的一个或更多个节点的子集上安装的相应的依赖文件的比较关系。
69.根据权利要求64所述的方法,还包括:
所述计算机按照预定时间间隔从所述分布式计算系统中的所述一个或更多个节点中的每个节点接收心跳信号,所述心跳信号指示所述各个节点的状态;以及
所述计算机基于每个相应的心跳信号确定每个相应的节点的状态。
70.根据权利要求69所述的方法,还包括:所述计算机根据从所述目标节点所接收的心跳信号对所述目标节点上安装的一个或更多个依赖的故障进行检测,其中,响应于检测到所述故障,所述计算机自动地请求部署包。
71.根据权利要求69所述的方法,还包括所述计算机从与所述系统的节点上安装的依赖文件相关联的供应商服务器接收对具有与所述供应商服务器相关联的所述依赖文件的节点进行更新的提示,其中,所述部署包文件的一个或更多个依赖文件包含与所述供应商服务器相关联的所述依赖文件。
72.一种计算机执行的方法,包括:
响应于从监管器节点接收到配置目标节点的请求,计算机使用与所述目标节点相关联的依赖树来确定待安装到所述目标节点上的一组一个或更多个依赖文件;
所述计算机从至少一个数据存储机构中获取该组一个或更多个依赖文件中的每个依赖文件,所述至少一个数据存储机构包括用于存储一个或更多个依赖文件的非易失性机器可读存储介质;
所述计算机生成包括该组一个或更多个依赖文件的可部署包文件;以及
所述计算机将所述可部署包文件发送至所述监管器节点。
73.根据权利要求72所述的方法,还包括:从第三方依赖源接收到更新所述依赖的请求之后,所述计算机对与所述目标节点相关联的所述依赖树进行更新。
74.根据权利要求73所述的方法,还包括:
所述计算机对与经更新的依赖树相关联的依赖的更新进行检测;以及
所述计算机自动地将包括经更新的依赖的更新部署包发送至具有已经被更新的依赖的每个节点,其中,每个节点的更新部署包基于所述经更新的依赖树。
75.一种数据库管理系统,包括:
一个或更多个节点,所述一个或更多个节点包括:用于存储一个或更多个依赖文件的非易失性机器可读存储器,以及用于监视所述一个或更多个依赖文件的状态的处理器,其中,每个相应的依赖文件是所述节点的部件,所述部件与被安装在第二节点上的相应的部件具有比较关系;
一个或更多个监管器节点,所述一个或更多个监管器节点包括处理器,该处理器用于对所述一个或更多个节点中的每个节点的状态进行监视并且被配置成基于所述节点中的每个节点的状态将包括一组依赖文件的可部署包发送至每个相应的节点;以及
一个或更多个依赖管理器节点,所述一个或更多个依赖管理器节点包括:非易失性机器可读存储介质,所述非易失性机器可读存储介质用于存储与所述一个或更多个节点相关联的一个或更多个依赖树,以及处理器,所述处理器被配置成根据与节点相关联的依赖树来编译可部署包文件,其中,所述可部署包文件包括被存储在至少一个数据存储机构上的一组一个或更多个依赖文件,并且其中,所述依赖管理器节点基于与目的在于接收所述可部署包的节点相关联的依赖树确定所述可部署包中包括的依赖。
76.根据权利要求75所述的系统,还包括外部数据存储机构,所述外部数据存储机构包括非易失性机器可读存储介质,该非易失性机器可读存储介质用于存储与一个或更多个依赖文件相对应的一个或更多个机器可读更新文件,所述一个或更多个机器可读更新文件对第三方所生成的依赖的更新进行安装;以及
处理器,该处理器被配置成向监管器节点发送请求以对具有所述第三方依赖源的所述依赖的一组一个或更多个节点进行更新,
其中,依赖管理器节点对更新依赖包进行编译,所述更新依赖包包括从所述第三方依赖源的数据存储机构所接收的一个或更多个依赖更新。
77.根据权利要求75所述的系统,还包括新节点,所述新节点包括用于执行节点管理器模块的处理器,所述节点管理器模块将新节点状态发送至监管器节点并且根据与所述新节点相关联的依赖树接收一个或更多个可部署包。
78.根据权利要求75所述的系统,其中,当从监管器节点接收到对与节点相关联的依赖树进行更新的请求时,所述依赖管理器节点对所述依赖树进行更新。
79.根据权利要求75所述的系统,其中,依赖选自以下各项组成的组:分区、模块、文件以及数据。
80.一种内存数据库系统,包括:
一个或更多个存储器节点,所述一个或更多个存储节点包括用于存储数据库的一个或更多个记录的非易失性机器可读存储介质,其中,每个相应的存储器节点中的存储介质是该相应的存储器节点的主存储器;
分析代理节点,所述分析代理节点包括处理器,该处理器用于:响应于接收到指示分析模块的分析请求,使用一组查询结果作为输入参数来执行所述分析模块,其中,该组查询结果包含二进制数据,所述二进制数据表示从用于存储一个或更多个记录的所述一个或更多个存储器节点中检索出的所述一个或更多个记录;以及
分析模块数据存储库,所述分析模块数据存储库包括:用于存储一个或更多个分析模块的非易失性机器可读存储介质,以及处理器,所述处理器被配置成将新分析模块发送至一个或更多个分析代理节点。
81.根据权利要求80所述的系统,还包括搜索管理器节点,所述搜索管理器节点包括处理器,该处理器用于:响应于确定搜索查询包含所述分析请求,将该组搜索结果发送至所述分析代理节点。
82.根据权利要求81所述的系统,其中,在将所述搜索查询发送至搜索引导器节点之前,所述搜索管理器节点对所述分析代理节点进行识别。
83.根据权利要求82所述的系统,其中,在将所述搜索查询发送至所述搜索引导器节点之前,所述搜索管理器节点确定待被应用的一个或更多个分析参数。
84.根据权利要求81所述的系统,其中,响应于所述搜索管理器节点确定所述搜索查询包含所述分析请求:对执行由所述分析请求所指示的所述分析模块的一个或更多个分析代理节点进行识别。
85.根据权利要求84所述的系统,还包括搜索引导器节点,所述搜索引导器节点包括处理器,该处理器用于:执行搜索引导器查询,并且响应于从所述搜索管理器节点接收到所述搜索引导器查询,发送查询结果的子集,所述查询结果的子集包含满足所述搜索引导器查询的存储器节点的一个或更多个记录,
其中,所述搜索管理器节点根据所述搜索查询生成一个或更多个搜索引导器查询,并且其中,所述搜索管理器将每个相应的搜索引导器查询发送至每个相应的搜索引导器节点。
86.根据权利要求85所述的系统,其中,所述搜索管理器节点对从各个搜索引导器所接收到的搜索结果的各个子集中的每个子集进行聚集,从而生成该组查询结果。
87.根据权利要求80所述的系统,其中,所述搜索管理器向所述搜索代理发送该组搜索结果中的至少一个记录,该组搜索结果被根据二进制数据压缩算法进行了压缩。
88.根据权利要求80所述的系统,其中,所述分析模块选自以下各项组成的组:消除歧义模块、链接模块、评分模块以及即时链接模块。
89.根据权利要求80所述的系统,还包括系统接口节点,所述系统接口节点包括处理器,该处理器用于:响应于从客户端计算机接收到新分析模块,将所述新分析模块发送至所述分析模块存储库。
90.根据权利要求80所述的系统,还包括系统接口节点,所述系统接口节点包括处理器,该处理器用于根据一个或更多个应用程序编程接口对所述搜索查询的数据进行验证。
91.根据权利要求80所述的系统,还包括系统接口节点,所述系统接口节点用于存储一个或更多个分析代理中的新分析模块并且被配置成基于应用程序编程接口生成一个或更多个新分析模块。
92.根据权利要求80所述的系统,还包括客户端计算机,所述客户端计算机包括处理器,该处理器用于将一个或更多个搜索查询发送至所述搜索管理器。
93.根据权利要求80所述的系统,其中,响应于从客户端计算机接收到新分析模块,所述分析代理节点自动地将心跳信号发送至监管器节点,所述心跳信号指示所述分析代理节点已经接收到所述新分析模块。
94.根据权利要求93所述的系统,还包括一个或更多个监管器节点,所述一个或更多个监管器节点包括处理器,该处理器用于根据依赖管理器节点中所存储的、与新分析代理相关联的依赖树将来自所述分析模块存储库中的新分析模块发送至所述新分析代理。
95.一种系统,包括:
一个或更多个存储器节点,所述一个或更多个存储器节点包括用于存储数据库记录的一个或更多个集合的非易失性机器可读存储介质,其中,每个相应的集合根据模式存储一个或更多个记录,并且其中,所述模式对用于存储每个相应的记录中的一种类型数据的一个或更多个字段进行定义;
搜索管理器,所述搜索管理器包括处理器,该处理器用于:接收搜索查询,所述搜索查询包含与一种或更多种数据类型的数据相关联的搜索参数;确定所述搜索查询中是否请求字段处理;基于所述搜索查询生成一个或更多个搜索引导器查询;以及将所述一个或更多个搜索引导器查询发送至一个或更多个搜索引导器节点;
搜索引导器节点,所述搜索引导器节点包括处理器,该处理器用于:查询与所述搜索引导器相关联的集合,以及响应于从所述搜索管理器节点接收到所述搜索引导器查询,向所述搜索管理器发送一组一个或更多个结果记录,该组一个或更多个结果记录包含满足所述搜索引导器查询的一个或更多个参数的数据。
96.根据权利要求95所述的系统,其中
所述搜索管理器接收第一组搜索结果记录,所述第一组搜索结果记录包含与所述搜索查询的至少一个参数相匹配的数据,其中,所述记录的字段基于第一模式;以及
其中,所述搜索管理器接收第二组搜索结果记录,所述第二组搜索结果记录包含与所述搜索查询的至少一个参数相匹配的数据,其中,所述记录的字段基于第二模式。
97.根据权利要求95所述的系统,其中,所述搜索引导器基于所述一个或更多个记录的相应的字段中的数据的类型与所述搜索查询中的数据的类型的匹配来对满足所述搜索参数的所述一个或更多个记录的每个相应的字段进行匹配。
98.根据权利要求97所述的系统,其中,所述搜索引导器基于每个记录的字段中的数据与所述一个或更多个搜索参数之间的匹配的个数来为每个相应的记录指定得分。
99.根据权利要求98所述的系统,其中,所述搜索引导器基于所述匹配的个数对所述集合的所述记录的每个相应的字段进行评分,并且其中,被指定给每个记录的所述得分基于所述搜索引导器查询所指定的搜索算法。
100.根据权利要求98所述的系统,其中,所述搜索引导器查询指示阈值得分值,并且其中,被指定给该组结果记录的每个相应的记录的得分满足所述阈值得分。
101.根据权利要求98所述的系统,其中,所述搜索引导器基于被指定给与所述搜索引导器相关联的集合的每个相应的记录的得分对该组结果记录进行排序。
102.根据权利要求95所述的系统,其中,响应于确定所述搜索请求中请求了字段处理,所述搜索管理器的处理器根据所述搜索查询对一个或更多个字段执行字段处理。
103.一种计算机执行的方法,包括:
计算机确定所要应用于一组数据元素中所接收的一个或更多个数据元素的压缩技术,其中,所述计算机使用模式基于每个数据元素的数据类型来确定所要应用于该数据元素的所述压缩技术;
所述计算机使用所述模式所定义的所述压缩技术来压缩数据元素,其中,所述压缩技术压缩所述数据元素以使得当响应于搜索查询被返回时,所述数据元素被分别解压缩;
所述计算机将每个经压缩数据元素存储在记录的字段中,所述记录的字段存储所述数据元素的该数据类型的数据;
所述计算机根据模式为每个字段关联参考表中的字段标记,其中,表示性的该标记对字段的数据类型进行标识;
所述计算机在数据库中查询满足从搜索引导器所接收的搜索查询的一组一个或更多个数据元素;以及
响应于识别出满足所述搜索查询的该组一个或更多个数据元素,所述计算机使用所要应用的所述压缩技术对满足所述搜索查询的该组一个或更多个数据元素中的每个元素进行解压缩,其中,不满足所述搜索查询的每个数据元素保持被压缩。
104.根据权利要求103所述的方法,其中,所述计算机使用选自以下各项组成的组中的压缩技术来压缩数据:令牌表、n-gram压缩、序列天数压缩以及二进制数压缩。
105.根据权利要求103所述的方法,还包括:
所述计算机将记录的一个或更多个字段中的数据元素分段成经分段数据,其中,经分段数据是记录的字段中比父数据元素更细粒度的数据元素,并且其中,每个经分段数据与更细粒度的数据库字段相关联;以及
所述计算机将所述经分段数据连续地存储在同一分区中。
106.根据权利要求105所述的方法,还包括:
所述计算机将经分段记录标识符与所述经分段数据中的每一个相关联,其中,所述经分段记录标识符为经分段数据标识父数据元素。
107.根据权利要求103所述的方法,还包括:
所述计算机将包括第一记录的一个或更多个字段中的数据元素的第一数据元素对象替代成数据元素符号对象,所述数据元素符号对象引用了与所述第一数据元素对象等同的第二数据元素对象,其中,所述第二数据元素对象包括第二记录的一个或更多个字段中的数据元素。
108.根据权利要求107所述的方法,还包括:
响应于从软件模块所接收的查询,所述计算机在所述数据库中查询所述第一对象;以及
所述计算机将所述第二对象输出至所述软件模块,所述第二对象由替代所述第一对象的参考对象所引用。
109.根据权利要求103所述的方法,其中,所述计算机使用令牌表技术来压缩所述一个或更多个字段,所述方法还包括:
所述计算机将存储新数据的一个或更多个新字段添加至记录,其中,每个字段与令牌表相关联;
当所述新数据与相关联的令牌表中的现有数据不匹配时,所述计算机对所述新字段进行压缩;以及
所述计算机使用所述新字段中的所述新数据对所述令牌表进行更新。
110.根据权利要求109所述的方法,还包括:
所述计算机对根据过时的技术被压缩的数据进行解压缩;
所述计算机根据改进的压缩技术来压缩所述数据。
111.根据权利要求109所述的方法,还包括:
所述计算机将包括频率乘以长度的较高加权的数据存储在令牌表的较低编号的索引中。
112.根据权利要求104所述的方法,其中,所述计算机使用n-gram表技术来压缩所述一个或更多个字段,所述方法还包括:
所述计算机将存储新数据的一个或更多个新字段添加至记录,其中,每个字段与n-gram表相关联;
当所述新数据与相关联的n-gram表中的现有数据不匹配时,所述计算机对所述新字段进行压缩;以及
所述计算机使用所述新字段中的新数据对所述n-gram表进行更新。
113.根据权利要求112所述的方法,还包括:
所述计算机对根据过时的技术被压缩的数据进行解压缩;以及
所述计算机根据改进的压缩技术来压缩所述数据。
114.根据权利要求112所述的方法,还包括:
所述计算机将包括频率乘以长度的较高加权的数据存储在n-gram表的较低编号的索引中。
115.根据权利要求104所述的方法,还包括:
所述计算机使用记录描述符字节的偏移量来搜索一组字段;
所述计算机在字段级别上解压缩所访问的数据;以及
所述计算机返回所访问的数据。
116.根据权利要求115所述的方法,还包括:
当找到满足查询的一组字段时,所述计算机停止解压缩;
117.一种计算系统,包括:
用于存储一个或更多个集合的一个或更多个节点,每个集合包括一组一个或更多个记录,每个所述记录包括用于存储数据的一组字段;以及
压缩处理器,所述压缩处理器用于根据与集合相关联的模式对一个或更多个字段进行压缩。
118.根据权利要求117所述的系统,所述压缩处理器基于字段中所存储的数据的数据类型对所述一个或更多个字段进行压缩。
119.根据权利要求117所述的系统,其中,所述压缩处理器使用选自以下各项组成的组中的压缩技术来压缩字段:令牌表、n-gram压缩、序列天数压缩以及二进制数压缩。
120.根据权利要求119所述的系统,还包括
一个或更多个分区器,所述一个或更多个分区器用于根据所述模式将相关联的集合划分成一个或更多个分区。
121.根据权利要求120所述的系统,其中,所述压缩处理器将经分段数据存储到记录的一个或更多个字段中,以及
其中,所述压缩处理器将所述经分段数据连续地存储到集合的分区中。
122.根据权利要求121所述的系统,其中,所述经分段数据中的每一个与一个或更多个经分段记录标识符相关联,所述一个或更多个经分段记录标识符对经分段数据的原始记录进行标识。
123.根据权利要求122所述的系统,其中,多个字段存储有语义上相似的数据。
124.根据权利要求117所述的系统,其中,一个或更多个字段存储有包括一组零个或更多个值的数据值矩阵。
125.根据权利要求124所述的系统,其中,记录是包括多个字段的对象,所述多个字段根据所述模式被分组在一起。
126.根据权利要求125所述的系统,其中,分区存储有具有与对象相关联的参考值的值参考表,
其中,所述对象被存储在第一记录中,并且包括多个被分组的字段,以及
其中,第二记录存储有根据所述参考表与所述对象相关联的所述参考值。
127.根据权利要求117所述的系统,还包括
一个或更多个输出处理器,所述一个或更多个输出处理器用于将所述对象的一个或更多个对象值输出至一个或更多个模块处理器。
128.根据权利要求117所述的系统,其中,所述压缩处理器被配置成根据所述第一记录中所存储的经更新对象来对所述第二记录中所存储的所述参考值进行更新。
129.根据权利要求117所述的系统,还包括标准化处理器,所述标准化处理器用于在压缩之前对记录的字段中所存储的数据进行标准化。
130.根据权利要求117所述的系统,还包括
令牌表存储库,所述令牌表存储库用于存储一个或更多个令牌表,每个所述令牌表与字段相关联,其中,所述压缩处理器根据与具有新数据的一个或更多个新字段中的每个新字段相关联的令牌表中的每个令牌表将所述一个或更多个新字段添加至记录。
131.根据权利要求117所述的系统,其中,当新数据与令牌表中现有的数据不匹配时,所述压缩处理器应用第二压缩技术。
132.根据权利要求117所述的系统,其中,当所述新数据与令牌表中现有的数据不匹配时,所述压缩处理器根据所述新数据对令牌表进行更新。
133.根据权利要求117所述的系统,其中,所述压缩处理器周期性地对令牌表进行更新。
134.根据权利要求117所述的系统,其中,包括偏移量数据的一个或更多个描述符字节对字段中的数据进行寻址以用于检索。
135.根据权利要求117所述的系统,其中,所述一个或更多个字段中的数据被搜索引导器处理器根据所述集合的模式进行索引和/或压缩。
136.根据权利要求117所述的系统,其中,所述一个或更多个字段中的数据被分区器根据所述集合的模式进行索引和/或压缩。
137.根据权利要求117所述的系统,其中,搜索引导器处理器在字段级别上获取并且解压缩满足搜索查询的数据。
138.根据权利要求137所述的系统,其中,当满足所述搜索查询的一组数据被返回时,所述搜索引导器处理器被配置成停止对记录的解压缩。
139.根据权利要求117所述的系统,还包括n-gram表存储库,所述n-gram表存储库用于存储一个或更多个n-gram表,每个所述n-gram表与字段相关联,其中,所述压缩处理器根据与具有新数据的一个或更多个新字段中的每个新字段相关联的n-gram表中的每个n-gram表将所述一个或更多个新字段添加至记录。
140.根据权利要求117所述的系统,其中,当所述新数据与n-gram表中现有的数据不匹配时,所述压缩处理器根据所述新数据对n-gram表进行更新。
141.根据权利要求117所述的系统,其中,所述压缩处理器周期性地对n-gram表进行更新。
CN201480073426.8A 2013-12-02 2014-12-02 用于寄存内存数据库的系统及方法 Pending CN106164897A (zh)

Applications Claiming Priority (15)

Application Number Priority Date Filing Date Title
US201361910850P 2013-12-02 2013-12-02
US201361910867P 2013-12-02 2013-12-02
US201361910873P 2013-12-02 2013-12-02
US201361910834P 2013-12-02 2013-12-02
US201361910860P 2013-12-02 2013-12-02
US201361910864P 2013-12-02 2013-12-02
US201361910856P 2013-12-02 2013-12-02
US61/910,860 2013-12-02
US61/910,834 2013-12-02
US61/910,873 2013-12-02
US61/910,850 2013-12-02
US61/910,856 2013-12-02
US61/910,867 2013-12-02
US61/910,864 2013-12-02
PCT/US2014/068002 WO2015099961A1 (en) 2013-12-02 2014-12-02 Systems and methods for hosting an in-memory database

Publications (1)

Publication Number Publication Date
CN106164897A true CN106164897A (zh) 2016-11-23

Family

ID=53479525

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480073426.8A Pending CN106164897A (zh) 2013-12-02 2014-12-02 用于寄存内存数据库的系统及方法

Country Status (6)

Country Link
EP (1) EP3077930A4 (zh)
JP (1) JP2017505936A (zh)
KR (1) KR20160124744A (zh)
CN (1) CN106164897A (zh)
CA (1) CA2932403A1 (zh)
WO (1) WO2015099961A1 (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107480002A (zh) * 2017-07-26 2017-12-15 阿里巴巴集团控股有限公司 消息处理方法及装置、电子设备
CN107784063A (zh) * 2017-07-27 2018-03-09 平安科技(深圳)有限公司 算法的生成方法及终端设备
CN109543712A (zh) * 2018-10-16 2019-03-29 哈尔滨工业大学 时态数据集上的实体识别方法
CN109918432A (zh) * 2019-01-28 2019-06-21 中国平安财产保险股份有限公司 提取任务关系链的方法、装置、计算机设备和存储介质
CN110888714A (zh) * 2019-11-26 2020-03-17 北京京东尚科信息技术有限公司 容器的调度方法、装置和计算机可读存储介质
CN111198711A (zh) * 2020-01-13 2020-05-26 陕西心像信息科技有限公司 基于MongoDB的Collection版本控制方法及系统
CN111914151A (zh) * 2020-08-11 2020-11-10 上海毅博电子商务有限责任公司 一种关联表对象查询优化方法
CN112069192A (zh) * 2019-06-11 2020-12-11 Sap欧洲公司 具有所有权转移的多主
CN112269804A (zh) * 2020-11-06 2021-01-26 厦门美亚亿安信息科技有限公司 一种用于内存数据的模糊检索方法和系统
CN113468232A (zh) * 2017-02-27 2021-10-01 分秒库公司 用于查询时间序列数据的可扩展数据库系统

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9424294B2 (en) 2013-12-02 2016-08-23 Qbase, LLC Method for facet searching and search suggestions
US11138230B2 (en) * 2018-03-26 2021-10-05 Mcafee, Llc Methods, apparatus, and systems to aggregate partitioned computer database data
KR102102313B1 (ko) * 2019-11-27 2020-04-20 주식회사 리얼타임테크 인메모리 데이터베이스 기반의 시계열 데이터 관리시스템
KR102157336B1 (ko) * 2019-11-29 2020-09-17 주식회사 리얼타임테크 데이터베이스 관리시스템에서 json 데이터 저장 및 검색 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7493319B1 (en) * 2007-10-22 2009-02-17 International Business Machines Corporation Computer automated discovery of interestingness in faceted search
CN101395602A (zh) * 2005-12-29 2009-03-25 亚马逊科技公司 用于分布式文件存储和索引服务的方法和装置
CN101496012A (zh) * 2006-07-26 2009-07-29 微软公司 非常大数据库上的数据处理
US20100077001A1 (en) * 2008-03-27 2010-03-25 Claude Vogel Search system and method for serendipitous discoveries with faceted full-text classification

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7428530B2 (en) * 2004-07-01 2008-09-23 Microsoft Corporation Dispersing search engine results by using page category information
US20060294071A1 (en) * 2005-06-28 2006-12-28 Microsoft Corporation Facet extraction and user feedback for ranking improvement and personalization
JP4688111B2 (ja) * 2008-11-28 2011-05-25 インターナショナル・ビジネス・マシーンズ・コーポレーション 情報処理装置、データベース・システム、情報処理方法、およびプログラム
US8694505B2 (en) * 2009-09-04 2014-04-08 Microsoft Corporation Table of contents for search query refinement
US20110125764A1 (en) * 2009-11-26 2011-05-26 International Business Machines Corporation Method and system for improved query expansion in faceted search

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101395602A (zh) * 2005-12-29 2009-03-25 亚马逊科技公司 用于分布式文件存储和索引服务的方法和装置
CN101496012A (zh) * 2006-07-26 2009-07-29 微软公司 非常大数据库上的数据处理
US7493319B1 (en) * 2007-10-22 2009-02-17 International Business Machines Corporation Computer automated discovery of interestingness in faceted search
US20100077001A1 (en) * 2008-03-27 2010-03-25 Claude Vogel Search system and method for serendipitous discoveries with faceted full-text classification

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113468232A (zh) * 2017-02-27 2021-10-01 分秒库公司 用于查询时间序列数据的可扩展数据库系统
CN107480002A (zh) * 2017-07-26 2017-12-15 阿里巴巴集团控股有限公司 消息处理方法及装置、电子设备
CN107480002B (zh) * 2017-07-26 2020-06-30 阿里巴巴集团控股有限公司 消息处理方法及装置、电子设备
CN107784063A (zh) * 2017-07-27 2018-03-09 平安科技(深圳)有限公司 算法的生成方法及终端设备
CN107784063B (zh) * 2017-07-27 2020-03-17 平安科技(深圳)有限公司 算法的生成方法及终端设备
CN109543712A (zh) * 2018-10-16 2019-03-29 哈尔滨工业大学 时态数据集上的实体识别方法
CN109918432A (zh) * 2019-01-28 2019-06-21 中国平安财产保险股份有限公司 提取任务关系链的方法、装置、计算机设备和存储介质
CN109918432B (zh) * 2019-01-28 2024-05-28 中国平安财产保险股份有限公司 提取任务关系链的方法、装置、计算机设备和存储介质
CN112069192A (zh) * 2019-06-11 2020-12-11 Sap欧洲公司 具有所有权转移的多主
CN112069192B (zh) * 2019-06-11 2024-04-16 Sap欧洲公司 具有所有权转移的多主
CN110888714A (zh) * 2019-11-26 2020-03-17 北京京东尚科信息技术有限公司 容器的调度方法、装置和计算机可读存储介质
CN111198711A (zh) * 2020-01-13 2020-05-26 陕西心像信息科技有限公司 基于MongoDB的Collection版本控制方法及系统
CN111914151A (zh) * 2020-08-11 2020-11-10 上海毅博电子商务有限责任公司 一种关联表对象查询优化方法
CN112269804A (zh) * 2020-11-06 2021-01-26 厦门美亚亿安信息科技有限公司 一种用于内存数据的模糊检索方法和系统
CN112269804B (zh) * 2020-11-06 2022-05-20 厦门美亚亿安信息科技有限公司 一种用于内存数据的模糊检索方法和系统

Also Published As

Publication number Publication date
EP3077930A4 (en) 2017-09-27
EP3077930A1 (en) 2016-10-12
CA2932403A1 (en) 2015-07-02
WO2015099961A1 (en) 2015-07-02
JP2017505936A (ja) 2017-02-23
KR20160124744A (ko) 2016-10-28

Similar Documents

Publication Publication Date Title
CN106164897A (zh) 用于寄存内存数据库的系统及方法
US11316727B2 (en) Method and system for clustering event messages and manage event-message clusters
US11194828B2 (en) Method and system for implementing a log parser in a log analytics system
US10817489B2 (en) Content class for object storage indexing system
US9430547B2 (en) Implementation of clustered in-memory database
US11675816B1 (en) Grouping evens into episodes using a streaming data processor
US11676072B1 (en) Interface for incorporating user feedback into training of clustering model
US20220179991A1 (en) Automated log/event-message masking in a distributed log-analytics system
US10275449B1 (en) Identification and parsing of a log record in a merged log record stream
WO2016161381A1 (en) Method and system for implementing a log parser in a log analytics system
Middleton et al. Hpcc systems: Introduction to hpcc (high-performance computing cluster)
US7720884B1 (en) Automatic generation of routines and/or schemas for database management
CN112148578A (zh) 基于机器学习的it故障缺陷预测方法
CN114328759A (zh) 一种数据仓库的数据构建与管理方法及终端
JP2010515981A (ja) ストレージ最適化方法
Ren et al. Application massive data processing platform for smart manufacturing based on optimization of data storage
US20230385181A1 (en) Re-usable web-objects for use with automation tools
US20230055003A1 (en) Method for Organizing Data by Events, Software and System for Same
WO2023097270A1 (en) Detecting idle periods at network endpoints for management actions at processing clusters for managed databases
Annangi Security Log Analysis Using Hadoop
Curtis Pro Oracle GoldenGate for the DBA
Golpayegani The Lightweight Virtual File System
Curtis GoldenGate
THU et al. Building a full-‐text index

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20161123