CN112334891B - 用于搜索服务器的集中式存储 - Google Patents

用于搜索服务器的集中式存储 Download PDF

Info

Publication number
CN112334891B
CN112334891B CN201880094735.1A CN201880094735A CN112334891B CN 112334891 B CN112334891 B CN 112334891B CN 201880094735 A CN201880094735 A CN 201880094735A CN 112334891 B CN112334891 B CN 112334891B
Authority
CN
China
Prior art keywords
index information
search
shared storage
local cache
search server
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201880094735.1A
Other languages
English (en)
Other versions
CN112334891A (zh
Inventor
I·金兹伯格
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.)
Shuo Power Co
Original Assignee
Shuo Power Co
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 Shuo Power Co filed Critical Shuo Power Co
Publication of CN112334891A publication Critical patent/CN112334891A/zh
Application granted granted Critical
Publication of CN112334891B publication Critical patent/CN112334891B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2272Management thereof
    • 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

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)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

公开了涉及基于在多个搜索服务器之间共享的存储装置中存储的索引信息来服务于搜索请求的技术。在一些实施方案中,第一搜索服务器维持本地缓存并且使本地缓存与共享存储装置同步,所述本地缓存包括可用来服务于接收到的搜索请求的索引信息。所述同步包括:从共享存储装置取得指示共享存储装置中的索引信息的元数据;以及基于元数据来确定本地缓存中的索引信息是否与共享存储装置不同。响应于确定本地缓存中的索引信息与共享存储装置中的索引信息不同,第一搜索服务器用共享存储装置中的索引信息更新本地缓存中的索引信息。第一搜索服务器然后可以提供使用经更新的索引信息来确定的一个或多个搜索结果。

Description

用于搜索服务器的集中式存储
背景
技术领域
本公开文本总体上涉及计算***,并且更具体地涉及促进服务于搜索请求的计算***。
背景技术
维持大量信息的计算***可以实现搜索功能,以便允许用户快速找到期望的信息。例如,组织的***可以为各个雇员维持大量的联系人记录,并且允许用户通过提供诸如雇员的姓氏等一个或多个词语来搜索一个特定的联系人记录。为了实现这种功能,***可以使用搜索服务器(诸如Apache SolrTM服务器)来服务于搜索信息的请求。这样的服务器可以对接收到的文档进行索引以产生索引数据结构,在接收到搜索请求时对该索引数据结构进行访问以确定搜索结果。在接收到搜索时,使用索引数据结构可以允许比针对各个词语扫描每个文档更快地执行搜索。
附图说明
图1是展示在多个搜索服务器之间共享的存储装置中维持索引信息的搜索***的一个实施方案的框图。
图2是展示共享存储装置内的内容的一个实施方案的框图。
图3是展示搜索服务器从共享存储装置拉取索引信息的一个实施方案的框图。
图4是展示搜索服务器将索引信息推送到共享存储装置的一个实施方案的框图。
图5A和图5B是展示处理本地和存储装置损坏的搜索***的实施方案的框图。
图6A至图6C是展示由搜索***执行的方法的实施方案的流程图。
图7是展示示例性计算机***的一个实施方案的框图。
本公开文本包括对“一个实施方案”或“实施方案”的引用。短语“在一个实施方案中”或“在实施方案中”的出现不一定指代同一实施方案。特定特征、结构或特性可以通过与此公开文本一致的任何合适的方式组合。
在本公开文本内,不同的实体(可以不同地称为“单元”、“电路”、其他组件等)可以被描述或要求保护为“被配置成”执行一个或多个任务或操作。这种格式——被配置成[执行一个或多个任务]的[实体]——在本文中用于指代结构(即,某种物理事物,诸如电子电路)。更具体地,这种格式用于指示此结构被布置为在操作期间执行该一个或多个任务。结构可以被称为“被配置成”执行一些任务,即使该结构当前未***作。“被配置成存储索引信息的存储装置”旨在覆盖例如在操作期间执行此功能的一个或多个计算机***,即使所讨论的计算机***当前未被使用(例如,电源未与其连接)。因此,被描述或叙述为“被配置成”执行一些任务的实体指代某种物理事物,诸如存储可执行以实现任务的程序指令的设备、电路、存储器等。此短语在本文中不用于指代某种无形事物。因此,“被配置成”构造在本文中不用于指代软件实体,诸如应用编程接口(API)。
术语“被配置成”不旨在意指“可配置成”。例如,未编程的FPGA将不被视为“被配置成”执行一些特定功能,尽管其可以是“可配置成”执行该功能并且可以是在编程之后“被配置成”执行该功能。
在所附权利要求中叙述结构“被配置成用于”执行一项或多项任务明确旨在对于该权利要求元素援引35U.S.C.§112(f)。因而,本申请中所提交的权利要求均不旨在被解释为具有装置加功能(means-plus-function)元素。如果申请人希望在审查期间援引章节112(f),则将使用“用于[执行功能]的装置”构造来叙述权利要求元素。
如本文中所使用的,术语“第一”、“第二”等被用作它们所先于的名词的标签,并且不暗示任何类型的排序(例如,空间的、时间的、逻辑的等),除非明确说明。例如,在具有多个搜索服务器的计算机集群中,术语“第一”和“第二”搜索服务器可以用于指代搜索服务器中的任两个。换言之,例如,“第一”和“第二”搜索服务器不限于加入集群的最初的服务器。
如本文中所使用的,术语“基于”用于描述影响确定的一个或多个因素。该术语不排除附加因素可能影响确定的可能性。即,确定可以仅基于指定因素或基于指定因素以及其他未指定因素。考虑短语“基于B确定A”。该短语指明B是用于确定A或者影响A的确定的因素。此短语不排除A的确定也可基于某一其他因素,诸如C。该短语还旨在覆盖仅基于B来确定A的实施方案。如本文中所使用的,短语“基于”因此与短语“至少部分地基于”同义。
具体实施方式
当计算***连续地接收大量搜索查询时,可以使用多个搜索服务器来分布查询处理。为了促进这种分布式处理,给定服务器可以负责维持索引的至少一部分,该部分被本地存储或者被存储在专用于该服务器的存储装置中。然而,这种存储方案具有一些缺陷。各个服务器易于崩溃,这可能导致索引信息的丢失,因为服务器负责维持索引的一部分。由于新添加的搜索服务器可能对其他服务器造成负担以获得当前索引信息的副本,所以基于需求加减搜索服务器的数量也可能更加繁琐。为了减轻这种潜在的性能损失,可以配置额外的搜索服务器,但是如果需求尖峰不频繁,则它们可能未被充分利用。此外,跨大量搜索服务器分布索引信息更新可能消耗网络带宽并且浪费服务器的性能,因为其尝试联系其他服务器来分布每个更新。
本公开文本描述了用于多个搜索服务器的索引信息替代地被维持在这些服务器之间共享的存储装置中的实施方案。如下文将在各种实施方案中更详细地描述的,搜索服务器可以在与共享存储装置周期性地同步的本地缓存中维持索引信息。因而,如果服务器接收到搜索请求,则服务器可以使用本地缓存中存储的索引信息来服务于该请求。如果服务器接收到索引项目的请求,则服务器可更新其本地缓存并且将经更新的索引信息推送到共享存储装置,其中其他搜索服务器可以获得经更新的索引信息并更新其相应的缓存。如果添加了新的服务器,则该新的服务器可以直接从共享存储装置配置其本地缓存。
以此方式存储索引信息可以提供显著的优点。首先,分布索引信息的更新的服务器只可以将经更新的信息写入共享存储装置,而不是更繁琐的联系每个服务器来直接提供经更新的信息。第二,假设索引信息被维持在共享存储装置中,各个服务器的损失变得可忽略,因为由那些服务器维持的任何状态已经被维持在共享存储装置中。更进一步地,在一些实施方案中,可以实现额外的可靠性,因为共享存储装置可以实现高可用性和/或灾难恢复(不可能由本地存储装置实现的技术)。第三,基于需求的加减可以更快速和/或频繁地发生,因为新的服务器从共享存储装置配置其本地缓存而不是打扰其他服务器。
现在转到图1,描绘了搜索***10的框图。在所展示的实施方案中,***10包括经由互连150耦接在一起的应用服务器110、包括搜索服务器120和本地缓存130的虚拟机102、以及共享存储装置140。在一些实施方案中,搜索***10可以与所示不同地实现。例如,应用服务器110可以不是***10的一部分,可以使用共享存储装置140的多个实例等。
在所展示的实施方案中,应用服务器110可操作以呈现提供具有搜索功能的用户界面的应用。因而,应用可以呈现允许用户输入要搜索的一个或多个词语的输入字段并且呈现显示根据搜索确定的一个或多个结果的界面。此应用可以对应于任何合适的应用。例如,在一些实施方案中,应用促进客户关系管理(CRM)并且可以在数据库***中维持各种CRM数据。这样的应用可以例如呈现允许用户搜索此CRM数据(诸如搜索各种联系人信息、产品信息等)的用户界面。作为另一个实施例,应用可以呈现用户可访问的文档数据库的界面,并且允许用户搜索文档中的一些特定的文档。在各种实施方案中,服务器110是通过向客户端设备提供网页来呈现应用内容的网络服务器。尽管被描述为服务器110,但组件110还可以是本地执行应用并直接与用户交互的客户端设备。如图1所示,应用服务器110可以向服务器120发送搜索请求112和索引请求114。
在所展示的实施方案中,搜索服务器120可执行以响应于接收到搜索请求112来执行搜索。如图所示,每个服务器120可以利用相应的机器102来执行。在一些实施方案中,机器102是分开的物理机器102,因此,服务器120在使用不同的相应硬件上执行。在其他实施方案中,机器102是如图1所示的虚拟机,或一些其他形式的容器,诸如Dynos、容器(LXC)、/>容器、控制组(Cgroup)、命名空间等。在这样的实施方案中,在容器内配置搜索服务器120可以允许底层硬件的更大利用率,因为可以由多个容器共享同一硬件。在一些实例中,服务器120还可以更快速地部署,因为可以将额外的服务器120部署到现有的底层硬件上,而不是引入新的硬件。更进一步地,在一些实施方案中,机器102可以在实现基于云的平台的计算机群集上实例化以执行容器。
如上所述,在各种实施方案中,搜索服务器120基于在机器102的相应本地缓存130中维持的索引信息132来服务于搜索请求。这种索引信息132可以定义由服务器120用于基于在给定请求112中指定的词语来确定搜索结果的一个或多个索引数据结构。例如,如果服务器120支持文档搜索,则索引信息132可以定义将作者姓名映射到特定文档的索引数据结构。因此,如果接收到的搜索请求112指定姓名“Smith”,则服务器120可以引用索引数据结构以确定由“Smith”著作的文档。在各种实施方案中,搜索服务器120可以响应于接收到索引一个或多个项目的索引请求114而生成索引信息。例如,服务器120可以接收对“Smith”著作的新文档进行索引的请求114,并且可以将索引信息132添加到索引数据结构中,使得响应于对“Smith”的搜索来标识新文档。在各种实施方案中,搜索服务器120通过执行拉取操作134和/或推送操作136来使其相应的本地缓存130中存储的索引信息132与共享存储装置140中存储的索引信息142同步,这将在下面关于图3和图4更详细地讨论。
在所展示的实施方案中,共享存储装置140被配置成用作维持搜索服务器120的索引信息的主存储装置。存储装置140可以对应于任何合适形式的网络存储装置,诸如网络附加存储(NAS)、存储区域网络(SAN)等。在一些实施方案中,存储装置140是由实现云存储的计算机群集提供的服务(诸如Amazon的简单存储服务(Simple Storage ServiceTM)),该服务可以通过广域网提供给服务器120。在一些实施方案中,存储装置140实现高可用性(HA)和灾难恢复(DR)以进一步保存索引信息142。在各种实施方案中,存储装置140被共享,使得其可由多个搜索服务器120同时访问,以便使得能够并行访问索引信息142。如下面将关于图2更详细描述的,存储装置140中的索引信息142也可以被组织成多个段文件。存储装置140还可以维持用于促进从存储装置140拉取索引信息142和向存储装置140推送索引信息132的各种元数据。
现在转到图2,描绘了共享存储装置140中的内容的框图。在所展示的实施方案中,共享存储装置140包括多个段文件210A-N和元数据文件220。元数据文件220进一步包括提交点信息222、映射224、大小及校验和226以及已删除文件列表228。在一些实施方案中,存储装置140可以被实现为不同于所示出的,例如,存储装置140可以包括对应于不同索引的索引信息142的多个实例,元数据文件220可以包括比所示出的更多(或更少)的信息等。
在所展示的实施方案中,段文件210包含索引信息142的部分,该部分定义在执行搜索时由搜索服务器120引用的索引数据结构。在一些实施方案中,使用写入时复制(copy-on-write)存储方案来写入文件210,在该方案中,每当如索引请求114所请求的那样添加、更新或删除新信息142时写入新文件210。例如,如果要更新文件210B中的值,则用新值来写入新文件210,但文件210B保持不变。可以执行这样的方案以保存记录在文件210中的数据,并且与其中数据在其驻留的文件210内被更新或删除的就地写入存储(write-in-place)方案形成对比。(在其他实施方案中,文件210可以使用就地写入存储方案来记录。)为了标识写入文件的顺序(并且因此确定何种信息142是当前相关的),可以向段文件210分配序列号(例如,递增计数值),该序列号指示文件210写入存储装置140的排序。(在一些实施方案中,此排序可以反映文件210最初写入本地缓存130的排序,因为文件210可以在被推送到存储装置140之前被写入缓存130。)
在一个实施方案中,文件210可以使用分配给它们的序列号来命名。然而,在一些实例中,使用这种命名方案可能潜在地导致文件210被覆写。例如,如果两个服务器120尝试使用相同的序列号写入文件210,则这些文件将具有产生冲突的相同名称。服务器120也可能关于当前序列号产生错误并且覆写具有该序列号的现有文件210。在一些实施方案中,为了解决这种潜在的问题,文件210可以被分配有唯一的名称,该名称可以独立于它们的序列号。因而,在所展示的实施方案中,文件210被分配有唯一标识符(UID)名称212,其中每个名称的至少一部分包括随机生成的数字,以便降低潜在的文件名称冲突的可能性。
在所展示的实施方案中,元数据文件220包括由搜索服务器120用来促进本地缓存130与共享存储装置140同步的各种元数据。在各种实施方案中,文件220被写入存储装置140中的跨搜索服务器120已知的一致位置(例如,具有一致的文件名称并且驻留在一致的目录路径中),以便简化服务器120的读取。在一些实施方案中,文件220是多个文件220之一,每个文件与由索引信息142定义的相应索引数据结构相关联。然而,在其他实施方案中,元数据文件220可以包括由索引信息142定义的多个索引数据结构的元数据。
在所展示的实施方案中,提交点信息222标识构成定义索引数据结构的索引信息142的最新版本(即,当前版本)的文件210。在一些实施方案中,一旦文件210具有陈旧/过时的索引信息142,就可以将其从元数据222中移除。在其他实施方案中,具有陈旧索引信息142的文件210仍可以在信息222中被标识,但被指示为不构成索引信息142的最新版本。在一些实施方案中,信息222基于其相应的序列号来标识文件210。信息222还可以包括标识存储装置140何时被更新的时间戳信息。如将关于图3描述的,尝试在其本地缓存130的同步期间拉取信息142的搜索服务器120可以读取信息222(以及映射224)以确定哪些段文件210是不同的(例如,与任何先前同步相比是新的)并且应从存储装置140取得。如将关于图4描述的,尝试在同步期间推送信息132的搜索服务器120可以类似地读取信息222,以确定应将哪些段文件210从其缓存130写入存储装置140。
在所展示的实施方案中,序列号到UID的映射224是序列号到文件210的文件名称的映射。因而,尝试拉取最新文件220的搜索服务器120可以最初读取信息222以确定它们的序列号,并然后引用映射224以确定要拉取的文件220的具体文件名称。在不使用UID名称212的实施方案中,映射224可以不同地实现以反映不同的命名方案(或者不根据命名方案来实现)。
在所展示的实施方案中,大小及校验和226是为段文件210生成的文件大小及校验和的列表。在搜索服务器120将段文件210写入存储装置140时,此元数据226可以被记录在存储装置140中,并且可以用于确定该文件210(以及更一般的信息142)稍后是否变为损坏。如下面将关于图5A所描述的,搜索服务器120可以确定其缓存130中的索引信息132已经变为损坏并且尝试用来自存储装置140的信息142将其替换。如果确定信息142被损坏(例如,如基于元数据226确定的),则搜索服务器120可以请求另一个服务器120用来自其缓存130的索引信息132替换索引信息142,如下面将关于图5B所描述的。
在所展示的实施方案中,删除文件列表228是被调度用于删除(但可能尚未被删除)的文件210的列表。在一些实施方案中,服务器120可以确定应该删除特定文件210(例如,因为其不再包括当前信息),并且当不在当时删除文件210的情况下在列表228中存储该文件210的指示和时间戳。在稍后的时间点,尝试使其本地缓存130与共享存储装置140同步的服务器120(其可以是同一服务器120或不同的服务器120)可以读取列表228以及存储在列表228中的时间戳。如果有任何时间戳满足时间阈值,则服务器120可以删除对应于那些较旧的时间戳的文件210。这样的删除方案可以允许在已经对删除信息做出确定之后暂时保留索引信息(例如,用于恢复目的)。
现在转到图3,描绘了用于使本地缓存130与共享存储装置140同步的拉取操作134的框图。如上所述,此操作134可以在搜索服务器120被添加到服务器120的集群之后执行,例如,响应于用添加的服务器120实例化虚拟机102。在各种实施方案中,搜索服务器120还可以按规则间隔执行拉取操作134,以便确保其缓存130与存储装置140同步。在一些实施方案中,更新存储装置140的搜索服务器120可以使用分布式协调应用(诸如ApacheZooKeeperTM)来通知其他服务器120何时发生更新,以便使其执行拉取操作134。在一些实施方案中,如果服务器120接收到使用尚未由其本地缓存130中存储的段文件210定义的索引数据结构来执行搜索的搜索请求112,则也可以发起拉取操作134。
如图所示,假设已经执行了同步,搜索服务器120可以已经包括本地元数据310和一些索引信息132,该索引信息可以包括一个或多个段文件210。在所展示的实施方案中,本地元数据310标识本地缓存130中存储的段文件210,并且可以包括以上关于元数据文件220讨论的元数据222-228中的任何一个。例如,在一些实施方案中,本地元数据310可以包括标识哪些文件210被存储在缓存130中的一组序列号。
在各种实施方案中,拉取操作134可以开始于搜索服务器120读取元数据文件220以确定缓存130中的索引信息132是否不同于共享存储装置140中的索引信息142。在一些实施方案中,这种确定可以包括将本地元数据310中的序列号与元数据文件220中(具体地在以上讨论的提交点信息222中)的序列号进行比较,以确定存储装置140中的哪些段文件210不存在于缓存130中。在一个实施方案中,这种比较可以最初包括将如在元数据310中指示的最近存储的段文件210的序列号与如在元数据文件220中指示的最近存储的段文件210的序列号进行比较。如果这些序列号相同,则搜索服务器120可以确定缓存130与存储装置140同步,并且不采取进一步的动作。如果它们不同,则意味着缓存130和存储装置140不同步,则搜索服务器120可以比较元数据310和元数据文件220中的每个序列号以标识不同的段文件210。
一旦搜索服务器120已经标识了与其索引信息132不同的索引信息142,搜索服务器120就可以将这条不同的索引信息142拉取到其本地缓存130中。在一些实施方案中,这可以包括拉取被确定为与信息132不同的任何信息142。然而,在其他实施方案中,这可以包括仅拉取由搜索服务器120使用的索引数据结构的段文件210。例如,如果搜索服务器120存储定义索引XYZ的段文件210并且已经接收到使用索引ABC执行搜索的搜索请求112,则搜索服务器120可以拉取用于索引数据结构XYZ和ABC的段文件210,但是不拉取该服务器120未使用的索引DEF的段文件210。
现在转到图4,描绘了使共享存储装置140与本地缓存130同步的推送操作136的框图。如上所述,搜索服务器120可以接收索引请求114,以添加、修改或删除在由索引信息132和142定义的索引数据结构中引用的项目。响应于接收到索引请求114,搜索服务器120可以生成新的段文件210并且将文件210的第一实例存储在其本地缓存130中。在一些实施方案中,还可以通过将来自多个文件210的索引信息合并到单个文件210来创建新的段文件210。一旦新的段文件210已经被存储在本地缓存130中,搜索服务器120就可以执行推送136以将新的段文件210的第二实例存储在存储装置140中,以便促进将其分布到其他服务器120。
如同拉取操作134,推送操作136可以开始于搜索服务器120读取元数据文件220以确定缓存130中的哪些段文件210是共享存储装置140中的新的相对段文件210。如果有任何文件210不同,则搜索服务器120可以建立不同文件210的列表并且将那些不同文件210从其本地缓存130推送到共享存储装置140。(在一些实施方案中,搜索服务器120还可以从共享存储装置140拉取被确定为从本地缓存130丢失的文件210。)一旦新的段文件210已经被成功地推送到存储装置140,搜索服务器120就可以更新元数据文件220以反映新文件210已经被提交到共享存储装置140。在一些实施方案中,搜索服务器120还可以向其他服务器120通知更新的索引信息142;然而,在其他实施方案中,其他服务器120可以在其最终执行拉取134时学习经更新的索引信息142。
在一些实施方案中,推送操作136被同步地执行。即,一旦将段文件210的第一实例存储在本地缓存130中,就执行推送操作136以将段文件210的第二实例存储在共享存储装置140中。在其他实施方案中,推送操作136被异步地执行。例如,执行索引的搜索服务器120可以按规则间隔发起推送操作136,以将缓存130中的任何新创建的段文件210推送到存储装置410。替代性地,搜索服务器120可以等待,直到其在缓存130中生成了阈值数量的新段文件210为止,并然后执行批量同步,在该批量同步其将一组新文件210推送到存储装置140。
现在转到图5A,描绘了修复本地损坏500A的框图。如上所述,搜索服务器120可以确定其本地缓存130中的索引信息132已经变为损坏。响应于确定索引信息132损坏,搜索服务器120可以执行拉取134以用来自共享存储装置140的未损坏索引信息142替换索引信息132。然而,如果确定共享存储装置140中的索引信息142损坏,则搜索服务器120可以如接下来根据图5B所讨论的那样继续进行。
现在转到图5B,描绘了修复存储装置损坏500B的框图。如上所述,在一些实例中,搜索服务器120可以确定共享存储装置140中的信息142已经变为损坏。如果搜索服务器120在其缓存130中的索引信息132未损坏,则该搜索服务器可以执行其信息132的推送136以替换索引信息142。然而,如果其索引信息132损坏(如图5B中的情况),则搜索服务器120可以经由共享存储装置140向其他服务器120发送关于损坏的通知。因而,在所展示的实施方案中,搜索服务器120A设置损坏标志510以向另一个服务器120B通知所确定的损坏。响应于读取标志510,搜索服务器120B然后可以通过从其缓存130推送其本地索引信息132来替换共享存储装置140中的索引信息142(假设此信息未被破坏)。然而,在其他实施方案中,搜索服务器120可以使用其他技术(诸如直接彼此联系)来向彼此通知损坏。
现在转到图6A,描绘了用于基于存储在多个搜索服务器之间共享的存储装置中的索引信息来服务于搜索请求的方法600的流程图。方法600是由诸如搜索服务器120的一个或多个搜索服务器执行的方法的一个实施方案。在一些实例中,执行方法600可以提供更大的可靠性和/或可扩展性。
在步骤605中,第一搜索服务器维持本地缓存(例如,本地缓存130),该本地缓存包括可用来服务于接收到的搜索请求(例如,搜索请求112)的索引信息(例如,索引信息132)。在各种实施方案中,方法600包括:使包括第一搜索服务器的容器(例如,虚拟机102A)实例化;以及在容器内执行第一搜索服务器。在一些实施方案中,方法600包括:确定由该多个搜索服务器正经受的负载;以及使包括另一个搜索服务器的另一个容器(例如,虚拟机102N)实例化,该另一个搜索服务器可执行以从共享存储装置取得索引信息和服务于搜索请求。
在步骤610中,第一搜索服务器使本地缓存与共享存储装置(例如,共享存储装置140)同步。在各种实施方案中,所述同步包括:从共享存储装置取得指示共享存储装置中的索引信息的元数据(例如,元数据文件220);基于元数据确定本地缓存中的索引信息是否与共享存储装置不同;以及响应于确定本地缓存中的索引信息与共享存储装置中的索引信息不同,用共享存储中的索引信息更新本地缓存中的索引信息。在一些实施方案中,本地缓存中的索引信息分布在第一组段文件(例如,段文件210)中。在这样的实施方案中,所取得的元数据标识共享存储装置中的(例如,提交点信息222中的)第二组段文件,并且该确定包括将第一组段文件与第二组段文件进行比较以标识共享存储装置中的不被包括在本地缓存中的段文件。
在步骤615中,第一搜索服务器接收进行搜索的搜索请求。
在步骤620中,第一搜索服务器响应于搜索请求,提供使用经更新的索引信息来确定的一个或多个结果。在一些实施方案中,方法600进一步包括:第一搜索服务器响应于对一个或多个项目进行索引的请求而生成索引信息;将所生成的索引信息的第一实例存储在本地缓存中(所生成的索引信息的第一实例可由第一搜索服务器用来服务于对该一个或多个项目的搜索请求);以及将所生成的索引信息的第二实例存储在共享存储装置中(所生成的索引信息的第二实例可由该多个搜索服务器中的第二搜索服务器用来服务于对该一个或多个项目的搜索请求)。在一些实施方案中,方法600进一步包括:第一搜索服务器确定本地缓存中的索引信息已经变为损坏;以及响应于确定本地缓存中的索引信息已经变为损坏,尝试用共享存储装置中的索引信息替换本地缓存中的索引信息。在一些实施方案中,方法600进一步包括:第一搜索服务器确定共享存储装置中的索引信息已经变为损坏;以及将指示共享存储装置中的索引信息已经变为损坏的通知(例如,损坏标志510)存储在共享存储装置中。在这样的实施方案中,该通知致使该多个搜索服务器中的第二搜索服务器用来自由第二搜索服务器维持的本地缓存的索引信息替换共享存储装置中的索引信息。在一些实施方案中,方法600进一步包括:第一搜索服务器确定删除共享存储装置中的存储索引信息的一个或多个段文件;以及在共享存储装置中存储该一个或多个段文件要被删除的指示(例如,删除文件列表228)。在这样的实施方案中,第二搜索服务器响应于确定自从存储指示起已经过去了阈值时间量,删除该一个或多个段文件。
现在转到图6B,描绘了用于将索引信息分布到在多个搜索服务器之间共享的存储装置的方法630的流程图。方法630是由搜索服务器(诸如搜索服务器120)执行的方法的另一个实施方案。在一些实例中,执行方法630可以提供更大的可靠性和/或可扩展性。
在步骤635中,搜索服务器接收对一个或多个项目进行索引以使得该一个或多个项目可响应于执行的搜索被标识为搜索结果的请求(例如,索引请求114)。
在步骤640中,搜索服务器响应于请求,基于该一个或多个项目生成索引信息。
在步骤645中,搜索服务器将所生成的索引信息的第一实例添加到第一搜索服务器可访问的本地缓存(例如,本地缓存130)中存储的索引信息(例如,索引信息132)中。
在步骤650中,搜索服务器将所生成的索引信息的第二实例添加到共享存储装置(例如,共享存储装置140)中存储的索引信息(例如,索引信息142)中,使得所生成的索引信息可由该多个搜索服务器访问。在一些实施方案中,添加第二实例包括:将序列元数据(例如,提交点信息222)存储在共享存储装置中,该序列元数据标识所生成的索引信息的第二实例相对于共享存储装置中存储的其他索引信息被存储的排序,所标识的排序可由该多个搜索服务器中的一些搜索服务器用来确定是否取得所生成的索引信息的第二实例。在一些实施方案中,添加所生成的索引信息的第二实例包括:将包括所生成的索引信息的第二实例的段文件(例如,段文件210)存储在共享存储装置中;以及向段文件分配包括随机生成的值的文件名称(例如,UID名称212)。在一些实施方案中,添加所生成的索引信息的第二实例包括:在共享存储装置中存储包括所生成的索引信息的第二实例的段文件;以及将可用来验证段文件的校验和(例如,大小及校验和226)存储在共享存储装置中。在一些实施方案中,添加所生成的索引信息的第二实例包括:将所生成的索引信息的第二实例异步推送到共享存储装置。
在步骤655中,搜索服务器执行搜索,包括将该一个或多个项目中的一个项目标识为基于本地缓存中存储的所生成的索引信息的第一实例而确定的搜索结果。在一些实施方案中,方法630进一步包括:搜索服务器使本地缓存与共享存储装置同步,所述同步包括从共享存储装置取得标识索引信息被存储到共享存储装置的排序的序列信息(例如,提交点信息222);基于排序来确定本地缓存中的索引信息是否与共享存储装置不同;以及响应于确定,用共享存储装置中的索引信息来更新本地缓存中的索引信息。在一些实施方案中,方法630进一步包括:搜索服务器确定共享存储装置包括来自该多个搜索服务器中的另一个搜索服务器的指示共享存储装置中的索引信息已经变为损坏的通知(例如,损坏标志510);以及响应于通知,将来自本地缓存的索引信息存储在共享存储装置中。在一些实施方案中,方法630进一步包括:搜索服务器确定共享存储装置包括来自该多个搜索服务器中的另一个搜索服务器的指示共享存储装置中的段文件要被删除的通知(例如,在删除文件列表228中);响应于通知,确定自从通知被存储在共享存储装置起的时间量;以及响应于时间量满足阈值,删除段文件。
现在转到图6C,描绘了用于服务于搜索请求的方法660的流程图。方法660是由搜索服务器(诸如搜索服务器120)执行的方法的另一个实施方案。在一些实例中,执行方法660可以提供更大的可靠性和/或可扩展性。
在步骤665中,搜索服务器将用于服务于接收到的搜索请求(例如,请求112)的索引信息(例如,索引信息132)存储在本地缓存(例如,本地缓存130)中。
在步骤670中,搜索服务器使本地缓存中的索引信息与共享存储装置(例如,共享存储装置140)中的索引信息(例如,索引信息142)同步。在各种实施方案中,该同步包括:从共享存储装置取得指示共享存储装置中的索引信息的元数据(例如,元数据文件220);基于元数据标识共享存储装置中的与本地缓存中的索引信息不同的索引信息;以及在共享存储装置中用所标识的索引信息更新本地缓存中的索引信息。在各种实施方案中,标识包括基于元数据将本地缓存中存储的第一组段文件与共享存储装置中存储的第二组文件进行比较。在一些实施方案中,元数据指定共享存储装置中最近存储的段文件的序列号(例如,提交点信息222),并且标识包括将序列号与本地缓存中最近存储的段文件的序列号进行比较。
在步骤675中,响应于搜索请求,搜索服务器提供使用经更新的索引信息(例如,不同的索引信息142)确定的一个或多个结果。在一些实施方案中,方法660进一步包括:对一个或多个项目进行索引,以产生可用来在搜索中标识该一个或多个项目的索引信息;将所产生的索引信息存储到本地缓存中,以促进由搜索服务器进行的后续搜索;以及将所产生的索引信息(例如,作为新的段文件210)存储在共享存储装置中以促进由该多个搜索服务器中的其他搜索服务器进行的后续搜索。在一些实施方案中,方法660进一步包括:确定共享存储装置中的索引信息变为损坏;以及响应于确定,设置致使该多个搜索服务器中的另一个搜索服务器用来自该另一个搜索服务器的本地缓存(例如,本地缓存130B)的索引信息替换共享存储装置中的索引信息的损坏标志(例如,损坏标志510)。
示例性计算机***
现在转到图7,描绘了可以实现元件102-104中的一个或多个元件的功能的示例性计算机***700的框图。计算机***700包括经由互连760(例如,***总线)耦接到***存储器720和一个或多个I/O接口740的处理器子***780。一个或多个I/O接口740耦接到一个或多个I/O设备750。计算机***700可以是各种类型的设备中的任一种,包括但不限于服务器***、个人计算机***、台式计算机、膝上型或笔记本计算机、大型计算机***、平板计算机、手持式计算机、工作站、网络计算机、诸如移动电话、音乐播放器或个人数据助理(PDA)等消费者设备。尽管为方便起见在图7中示出了单个计算机***700,但是***700还可以被实现为一起操作的两个或更多个计算机***。
处理器子***780可以包括一个或多个处理器或处理单元。在计算机***700的各种实施方案中,处理器子***780的多个实例可以耦接到互连760。在各种实施方案中,处理器子***780(或780内的每个处理器单元)可以包含缓存或其他形式的板上存储器。
***存储器720可用于存储可由处理器子***780执行以致使***700执行本文中描述的各种操作的程序指令。***存储器720可以使用不同的物理存储器介质来实现,诸如,硬盘存储装置、软盘存储装置、可移除盘存储装置、闪存、随机存取存储器(RAM-SRAM、EDO RAM、SDRAM、DDR SDRAM、RAMBUS RAM等)、只读存储器(PROM、EEPROM等)等。计算机***700中的存储器不限于诸如存储器720等主存储装置。而是,计算机***700还可以包括其他形式的存储装置,诸如,处理器子***780中的缓存存储器和I/O设备750上的辅助存储装置(例如,硬盘驱动器、存储阵列等)。在一些实施方案中,这些其他形式的存储装置还可以存储可由处理器子***780执行的程序指令。在一些实施方案中,存储器720可以包括用于元件102-140中的一个或多个元件的程序指令。
根据各种实施方案,I/O接口740可以是被配置成耦接到其他设备并且与其他设备通信的各种类型的接口中的任何接口。在一个实施方案中,I/O接口740是从前侧到一个或多个后侧总线的桥式芯片(例如,南桥(Southbridge))。I/O接口740可以经由一个或多个对应的总线或其他接口耦接到一个或多个I/O设备750。I/O设备750的实施例包括存储设备(硬盘驱动器、光盘驱动器、可移除闪存驱动器、存储阵列、SAN或其相关联的控制器)、网络接口设备(例如,到局域网或广域网)或其他设备(例如,图形、用户接口设备等)。在一个实施方案中,计算机***700经由网络接口设备750耦接到网络(例如,被配置成通过WiFi、蓝牙、以太网等进行通信)。
尽管以上已经描述了特定实施方案,但这些实施方案不旨在限制本公开文本的范围,即使在关于特定特征仅描述单个实施方案的情况下。除非另有说明,否则本公开文本中所提供的特征的实施例旨在是说明性的而不是限制性的。以上描述旨在覆盖此类替代、修改和等效物,如受益于本公开文本的本领域技术人员将清楚的。
本公开文本的范围包括本文中所公开的任何特征或特征的组合(明确地或隐含地)、或其任何概括,无论其是否缓解了本文中所解决的任何或所有问题。因而,在本申请(或要求其优先权的申请)的审查过程中可以针对特征的任何此类组合制定新的权利要求。具体地,参考所附权利要求,来自从属权利要求的特征可以与独立权利要求的特征组合,并且来自各个独立权利要求的特征可以以任何适当的方式组合,而不仅仅是在所附权利要求中列举的特定组合中。

Claims (20)

1.一种基于在多个搜索服务器之间共享的存储装置中存储的索引信息来服务于搜索请求的方法,所述方法包括:
由所述多个搜索服务器中的第一搜索服务器维持本地缓存,所述本地缓存包括能用来服务于接收到的搜索请求的索引信息;
由所述第一搜索服务器使所述本地缓存与共享存储装置同步,其中,所述同步包括:
从所述共享存储装置取得指示所述共享存储装置中的索引信息的元数据;
基于所述元数据来确定所述本地缓存中的索引信息是否与所述共享存储装置不同;以及
响应于确定所述本地缓存中的索引信息与所述共享存储装置中的索引信息不同,用所述共享存储装置中的索引信息更新所述本地缓存中的索引信息;
由所述第一搜索服务器接收进行搜索的搜索请求;以及
响应于所述搜索请求,由所述第一搜索服务器提供使用经更新的索引信息来确定的一个或多个结果。
2.根据权利要求1所述的方法,其中,所述本地缓存中的索引信息分布在第一组段文件中;
其中,所取得的元数据标识所述共享存储装置中的第二组段文件;并且
其中,所述确定包括将所述第一组段文件与所述第二组段文件进行比较,以标识所述共享存储装置中的未被包括在所述本地缓存中的段文件。
3.根据权利要求1所述的方法,其进一步包括:
响应于对一个或多个项目进行索引的请求,由所述第一搜索服务器生成索引信息;
由所述第一搜索服务器将所生成的索引信息的第一实例存储在所述本地缓存中,其中,所生成的索引信息的所述第一实例能由所述第一搜索服务器用来服务于对所述一个或多个项目的搜索请求;以及
由所述第一搜索服务器将所生成的索引信息的第二实例存储在所述共享存储装置中,其中,所生成的索引信息的所述第二实例能由所述多个搜索服务器中的第二搜索服务器用来服务于对所述一个或多个项目的搜索请求。
4.根据权利要求1所述的方法,其进一步包括:
由所述第一搜索服务器确定所述本地缓存中的索引信息已经变为损坏;以及
响应于确定所述本地缓存中的索引信息已经变为损坏,所述第一搜索服务器尝试用所述共享存储装置中的索引信息替换所述本地缓存中的索引信息。
5.根据权利要求4所述的方法,其进一步包括:
由所述第一搜索服务器确定所述共享存储装置中的索引信息已经变为损坏;以及
由所述第一搜索服务器将指示所述共享存储装置中的索引信息已经变为损坏的通知存储在所述共享存储装置中,其中,所述通知致使所述多个搜索服务器中的第二搜索服务器用来自由所述第二搜索服务器维持的本地缓存的索引信息替换所述共享存储装置中的索引信息。
6.根据权利要求1所述的方法,其进一步包括:
由所述第一搜索服务器确定删除所述共享存储装置中的存储索引信息的一个或多个段文件;
由所述第一搜索服务器将所述一个或多个段文件要被删除的指示存储在所述共享存储装置中;以及
由所述多个搜索服务器中的第二搜索服务器响应于确定自从存储所述指示起已经过去了阈值时间量,删除所述一个或多个段文件。
7.根据权利要求1所述的方法,其进一步包括:
使包括所述第一搜索服务器的容器实例化;以及
在所述容器内执行所述第一搜索服务器。
8.根据权利要求7所述的方法,其进一步包括:
确定由所述多个搜索服务器正经受的负载;以及
使包括另一个搜索服务器的另一个容器实例化,所述另一个搜索服务器能执行以从所述共享存储装置取得索引信息和服务于搜索请求。
9.一种非暂时性计算机可读介质,其上存储有程序指令,所述程序指令能够致使多个搜索服务器中的第一搜索服务器实现用于将索引信息分布到在所述多个搜索服务器之间共享的存储装置的操作,所述操作包括:
接收对一个或多个项目进行索引以使得所述一个或多个项目能响应于执行的搜索被标识为搜索结果的请求;
响应于所述请求,基于所述一个或多个项目生成索引信息;
将所生成的索引信息的第一实例添加到所述第一搜索服务器能访问的本地缓存中存储的索引信息中;
将所生成的索引信息的第二实例添加到共享存储装置中存储的索引信息中,使得所生成的索引信息能由所述多个搜索服务器访问;以及
执行搜索,包括将所述一个或多个项目中的一个项目标识为基于所述本地缓存中存储的所生成的索引信息的所述第一实例而确定的搜索结果。
10.根据权利要求9所述的计算机可读介质,其中,添加所述第二实例包括:
将序列元数据存储在所述共享存储装置中,所述序列元数据标识所生成的索引信息的所述第二实例相对于在所述共享存储装置中存储的其他索引信息被存储的排序,其中,所标识的排序能由所述多个搜索服务器中的一些搜索服务器用来确定是否取得所生成的索引信息的所述第二实例。
11.根据权利要求9所述的计算机可读介质,其中,添加所生成的索引信息的所述第二实例包括:
将包括所生成的索引信息的所述第二实例的段文件存储在所述共享存储装置中,其中,所述存储包括向所述段文件分配包括随机生成的值的文件名称。
12.根据权利要求9所述的计算机可读介质,其中,添加所生成的索引信息的所述第二实例包括:
将包括所生成的索引信息的所述第二实例的段文件存储在所述共享存储装置中;以及
将能用来验证所述段文件的校验和存储在所述共享存储装置中。
13.根据权利要求9所述的计算机可读介质,其中,添加所生成的索引信息的所述第二实例包括:
将所生成的索引信息的所述第二实例异步推送到所述共享存储装置。
14.根据权利要求9所述的计算机可读介质,其中,所述操作进一步包括:
使所述本地缓存与所述共享存储装置同步,其中,所述同步包括:
从所述共享存储装置取得序列信息,所述序列信息标识索引信息被存储到所述共享存储装置的排序;
基于所述排序来确定所述本地缓存中的索引信息是否与所述共享存储装置不同;以及
响应于所述确定,用所述共享存储装置中的索引信息更新所述本地缓存中的索引信息。
15.根据权利要求9所述的计算机可读介质,其中,所述操作进一步包括:
确定所述共享存储装置包括来自所述多个搜索服务器中的另一个搜索服务器的指示所述共享存储装置中的索引信息已经变为损坏的通知;以及
响应于所述通知,将来自所述本地缓存的索引信息存储在所述共享存储装置中。
16.根据权利要求9所述的计算机可读介质,其中,所述操作进一步包括:
确定所述共享存储装置包括来自所述多个搜索服务器中的另一个搜索服务器的指示所述共享存储装置中的段文件要被删除的通知;
响应于所述通知,确定自从所述通知被存储在所述共享存储装置中起的时间量;以及
响应于所述时间量满足阈值,删除所述段文件。
17.一种非暂时性计算机可读介质,其上存储有程序指令,所述程序指令能够致使搜索服务器实现用于基于在多个搜索服务器之间共享的存储装置中存储的索引信息来服务于搜索请求的操作,所述操作包括:
将用于服务于接收到的搜索请求的索引信息存储在本地缓存中;
使所述本地缓存中的索引信息与共享存储装置中的索引信息同步,其中,所述同步包括:
从所述共享存储装置取得指示所述共享存储装置中的索引信息的元数据;
基于所述元数据来标识所述共享存储装置中的与所述本地缓存中的索引信息不同的索引信息;以及
用所述共享存储装置中的所标识的索引信息更新所述本地缓存中的索引信息;以及
响应于搜索请求,提供使用经更新的索引信息来确定的一个或多个结果。
18.根据权利要求17所述的计算机可读介质,其中,所述元数据指定所述共享存储装置中的最近存储的段文件的序列号,其中,所述段文件包括索引信息;并且
其中,所述标识包括将所述序列号与所述本地缓存中的最近存储的段文件的序列号进行比较。
19.根据权利要求17所述的计算机可读介质,其中,所述操作进一步包括:
对一个或多个项目进行索引,以产生能用来在搜索中标识所述一个或多个项目的索引信息;
将所产生的索引信息存储在所述本地缓存中,以促进由所述搜索服务器进行的后续搜索;以及
将所产生的索引信息存储在所述共享存储装置中以促进由所述多个搜索服务器中的其他搜索服务器进行的后续搜索。
20.根据权利要求17所述的计算机可读介质,其中,所述操作进一步包括:
确定所述共享存储装置中的索引信息变为损坏;以及
响应于所述确定,设置损坏标志,所述损坏标志致使所述多个搜索服务器中的另一个搜索服务器用来自所述另一个搜索服务器的本地缓存的索引信息替换所述共享存储装置中的索引信息。
CN201880094735.1A 2018-06-22 2018-06-22 用于搜索服务器的集中式存储 Active CN112334891B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/IB2018/000937 WO2019243859A1 (en) 2018-06-22 2018-06-22 Centralized storage for search servers

Publications (2)

Publication Number Publication Date
CN112334891A CN112334891A (zh) 2021-02-05
CN112334891B true CN112334891B (zh) 2023-10-17

Family

ID=63517930

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880094735.1A Active CN112334891B (zh) 2018-06-22 2018-06-22 用于搜索服务器的集中式存储

Country Status (5)

Country Link
US (1) US11687533B2 (zh)
EP (1) EP3811225A1 (zh)
JP (1) JP7038864B2 (zh)
CN (1) CN112334891B (zh)
WO (1) WO2019243859A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11373019B2 (en) * 2018-07-16 2022-06-28 Xplicit Computing, Inc. Scalable convention for data properties in numerical computing
US12008041B2 (en) * 2021-09-15 2024-06-11 International Business Machines Corporation Shared cache for multiple index services in nonrelational databases
US11704043B1 (en) 2022-01-31 2023-07-18 Salesforce, Inc. Backup and/or restore as a service
KR102571197B1 (ko) * 2022-12-07 2023-08-30 성균관대학교산학협력단 클러스터 파일시스템의 캐시 일관성 유지방법

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1804831A (zh) * 2005-01-13 2006-07-19 陈翌 网络缓存管理的***和方法
CN101447937A (zh) * 2009-02-27 2009-06-03 北京理工大学 一种基于路径划分与多分布目录的快速数据定位方法
CN102163210A (zh) * 2010-02-12 2011-08-24 微软公司 索引元数据的快速更新
CN102737133A (zh) * 2012-06-27 2012-10-17 北京城市网邻信息技术有限公司 一种实时搜索的方法
CN102955792A (zh) * 2011-08-23 2013-03-06 崔春明 一种实时全文搜索引擎事务处理的实现方法
CN105117502A (zh) * 2015-10-13 2015-12-02 四川中科腾信科技有限公司 一种基于大数据的检索方法
WO2017197012A1 (en) * 2016-05-10 2017-11-16 Nasuni Corporation Versioning using event reference number in a cloud-based data store and local file systems

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5117351A (en) 1988-10-21 1992-05-26 Digital Equipment Corporation Object identifier generator for distributed computer system
US6516337B1 (en) * 1999-10-14 2003-02-04 Arcessa, Inc. Sending to a central indexing site meta data or signatures from objects on a computer network
US7181581B2 (en) * 2002-05-09 2007-02-20 Xiotech Corporation Method and apparatus for mirroring data stored in a mass storage system
GB2417342A (en) * 2004-08-19 2006-02-22 Fujitsu Serv Ltd Indexing system for a computer file store
US7783689B2 (en) * 2006-10-26 2010-08-24 Microsoft Corporation On-site search engine for the World Wide Web
US7797295B2 (en) * 2007-01-04 2010-09-14 Yahoo! Inc. User content feeds from user storage devices to a public search engine
US7827168B2 (en) * 2007-05-30 2010-11-02 Red Hat, Inc. Index clustering for full text search engines
WO2009132261A1 (en) * 2008-04-25 2009-10-29 Vmware, Inc. Updating a file using differences and file format therefor
US8335776B2 (en) 2008-07-02 2012-12-18 Commvault Systems, Inc. Distributed indexing system for data storage
US8346722B2 (en) * 2009-11-23 2013-01-01 Sap Ag Replica placement strategy for distributed data persistence
US8429447B2 (en) * 2010-03-23 2013-04-23 Ca, Inc. System and method for providing indexing with high availability in a network based suite of services
US9483489B2 (en) * 2013-01-14 2016-11-01 Commvault Systems, Inc. Partial sharing of secondary storage files in a data storage system
US9201889B1 (en) * 2013-03-15 2015-12-01 Emc Corporation Integrated search for shared storage
JP6507486B2 (ja) * 2013-05-10 2019-05-08 株式会社リコー 情報処理装置、プログラム、情報管理方法及び情報処理システム
US20160110406A1 (en) * 2014-10-16 2016-04-21 Microsoft Technology Licensing, Llc Validation of data across multiple data stores
US9886443B1 (en) * 2014-12-15 2018-02-06 Nutanix, Inc. Distributed NFS metadata server
US10417213B1 (en) * 2015-01-23 2019-09-17 Violin Systems Llc Metadata updating
US10104021B2 (en) * 2015-11-18 2018-10-16 Oracle International Corporation Electronic mail data modeling for efficient indexing
US20180089324A1 (en) * 2016-09-26 2018-03-29 Splunk Inc. Dynamic resource allocation for real-time search

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1804831A (zh) * 2005-01-13 2006-07-19 陈翌 网络缓存管理的***和方法
CN101447937A (zh) * 2009-02-27 2009-06-03 北京理工大学 一种基于路径划分与多分布目录的快速数据定位方法
CN102163210A (zh) * 2010-02-12 2011-08-24 微软公司 索引元数据的快速更新
CN102955792A (zh) * 2011-08-23 2013-03-06 崔春明 一种实时全文搜索引擎事务处理的实现方法
CN102737133A (zh) * 2012-06-27 2012-10-17 北京城市网邻信息技术有限公司 一种实时搜索的方法
CN105117502A (zh) * 2015-10-13 2015-12-02 四川中科腾信科技有限公司 一种基于大数据的检索方法
WO2017197012A1 (en) * 2016-05-10 2017-11-16 Nasuni Corporation Versioning using event reference number in a cloud-based data store and local file systems

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
A group-based data-driven approach for data synchronization in unstructured mobile P2P systems;ChuanMing Liu等;Wireless Network;2465-2482 *
G/S模式下G端缓存机制研究;肖在昌;中国优秀硕士学位论文全文数据库 信息科技辑(第2期);I137-16 *
Strategies for Efficiently Keeping Local Linked Open Data Caches Up-To-Date;Renata Dividino 等;The Semantic Web - ISWC 2015;356–373 *
大规模空间数据的高性能查询处理关键技术研究;刘义;中国博士学位论文全文数据库 信息科技辑(第1期);I138-39 *

Also Published As

Publication number Publication date
US11687533B2 (en) 2023-06-27
EP3811225A1 (en) 2021-04-28
WO2019243859A1 (en) 2019-12-26
JP2021529379A (ja) 2021-10-28
JP7038864B2 (ja) 2022-03-18
CN112334891A (zh) 2021-02-05
US20210263919A1 (en) 2021-08-26

Similar Documents

Publication Publication Date Title
US11153380B2 (en) Continuous backup of data in a distributed data store
US9946735B2 (en) Index structure navigation using page versions for read-only nodes
EP3283963B1 (en) Backup and restore in a distributed database utilizing consistent database snapshots
US10437721B2 (en) Efficient garbage collection for a log-structured data store
US10534768B2 (en) Optimized log storage for asynchronous log updates
US20180046552A1 (en) Variable data replication for storage implementing data backup
KR101827239B1 (ko) 분산 데이터 시스템들을 위한 전 시스템에 미치는 체크포인트 회피
CN112334891B (zh) 用于搜索服务器的集中式存储
US8620861B1 (en) Preserving file metadata during atomic save operations
US9547706B2 (en) Using colocation hints to facilitate accessing a distributed data storage system
US20220114064A1 (en) Online restore for database engines
US10310904B2 (en) Distributed technique for allocating long-lived jobs among worker processes
EP3788489B1 (en) Data replication in a distributed storage system
CN115599747B (zh) 一种分布式存储***的元数据同步方法、***及设备
US10152493B1 (en) Dynamic ephemeral point-in-time snapshots for consistent reads to HDFS clients
US11960442B2 (en) Storing a point in time coherently for a distributed storage system
US9934240B2 (en) On demand access to client cached files
US10387384B1 (en) Method and system for semantic metadata compression in a two-tier storage system using copy-on-write
US10628391B1 (en) Method and system for reducing metadata overhead in a two-tier storage architecture
US11914571B1 (en) Optimistic concurrency for a multi-writer database
CN113204520A (zh) 一种基于分布式文件***的遥感数据快速并发读写方法
US10185759B2 (en) Distinguishing event type
US20240256486A1 (en) Storing a point in time coherently for a distributed storage system

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information
CB02 Change of applicant information

Address after: California, USA

Applicant after: Shuo Power Co.

Address before: California, USA

Applicant before: SALESFORCE.COM, Inc.

GR01 Patent grant
GR01 Patent grant