CN104508656B - 在分布式计算系统中的自动化文档复制 - Google Patents

在分布式计算系统中的自动化文档复制 Download PDF

Info

Publication number
CN104508656B
CN104508656B CN201380040173.XA CN201380040173A CN104508656B CN 104508656 B CN104508656 B CN 104508656B CN 201380040173 A CN201380040173 A CN 201380040173A CN 104508656 B CN104508656 B CN 104508656B
Authority
CN
China
Prior art keywords
document
node
computing system
distributed computing
analysis
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
CN201380040173.XA
Other languages
English (en)
Other versions
CN104508656A (zh
Inventor
I·Q·塞伊德
J·塞谢德里
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.)
Weirui LLC
Original Assignee
VMware 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 VMware LLC filed Critical VMware LLC
Publication of CN104508656A publication Critical patent/CN104508656A/zh
Application granted granted Critical
Publication of CN104508656B publication Critical patent/CN104508656B/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/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms

Landscapes

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

Abstract

在一种在分布式计算系统中的自动化文档复制的方法中,分析分布式计算系统的第一节点处的文档。基于分析,确定文档是否具有多节点紧密性。响应于确定文档具有多节点紧密性,在分布式计算系统的节点之间自动地复制至少一个文档。基于所分析的文档的多节点紧密性的上下文指示所指示的节点。

Description

在分布式计算系统中的自动化文档复制
背景技术
现代分布式计算系统的一些示例包括网服务器和更大的企业系统。这些和其它分布式计算系统经常涉及到数据库,这些数据库包含数据束(bundle),这些数据束可以被视为和被称为“文档”并且可以比如用结构化查询语言来查询和操纵。计算“节点”在分布式计算系统的一个示例中可以被定义为在单个集群中包括虚拟机和主机。以这一方式,可见分布式计算系统的节点经常让它的资源共同位于比如单个数据中心。
在典型分布式计算系统中的文档数目可能经常很大。出于效率目的、可扩展性目的、容错性/冗余性目的、策略目的和/或其它目的,经常跨分布式计算系统的多个计算节点复制和在任何节点可以访问的逻辑资源池中存储分布式计算系统的文档。因此,尽管文档可以未本地存储于节点处,但是它可以存储于另一节点,该另一节点是逻辑资源池的一部分。文档复制经常由于扩展、对于提高效率的尝试或者对于提高容错性/冗余性的尝试而出现。
例如,如果电力成本在水电动力上运行的数据中心更廉价,则可以在这一数据中心的节点上复制许多文档以便在低成本动力环境中利用这一操作效率。如果第一节点位于易于地震的地区中的数据中心,则在该第一节点存储的许多或者所有文档可以在位于不易于地震的地区中的其它节点处被复制,这提供冗余性和容错性二者。此外,当在硬件规模方面向上扩展分布式计算系统时,可以在所有节点之中以平衡分布式计算系统体验的负荷的方式分配文档总量。在一些实例中,可以在分布式计算系统的多个节点处复制文档以便简单地维持一些冗余性。在一些实例中,数据复制策略可以规定需要在从初始地存储文档的地方相距某个距离(例如500英里)的第二位置复制所有文档。也应当注意在节点内或者在多个节点上复制数据时,它可以通过减少延时并且更好地有助于多个用户的访问来帮助改善用户体验。
附图说明
在说明书中结合的并且形成说明书的部分的附图举例说明各种实施例并且与具体实施方式一起用于说明以下讨论的原理。除非具体地指出,否则不应理解在附图说明中参照的附图为按比例绘制。
图1是根据实施例的包括上下文复制引擎的分布式计算系统的示例框图。
图2是根据实施例的图1的上下文复制引擎的扩展框图。
图3是根据各种实施例的举例说明文档复制示例的图1的分布式计算系统的框图。
图4是根据各种实施例的举例说明文档复制示例的图1的分布式计算系统的框图。
图5是根据各种实施例的举例说明文档复制示例的图1的分布式计算系统的框图。
图6是根据各种实施例的在分布式计算系统中的自动化文档复制的方法的流程图。
图7是根据各种实施例的在分布式计算系统中的自动化文档复制的第二方法的流程图。
具体实施方式
现在将具体参照附图,在附图中举例说明这些实施例的示例。尽管这里讨论各种实施例,但是将理解它们并非旨在于限制。恰好相反,呈现的实施例旨在于覆盖可以在各种实施例的如所附权利要求定义的精神实质和范围内包括的备选、修改和等效。另外,在具体实施方式中,阐述许多具体细节以便提供透彻理解。然而无这些具体细节中的一个或者多个具体细节仍然可以实现实施例。在其它实例中,尚未具体描述熟知的方法、过程、部件和电路以免不必要地使描述的实施例的方面变模糊。
符号表示和术语
除非如从以下讨论清楚的那样另有具体地陈述,否则贯穿本具体实施方式,利用术语、比如“分析”、“确定”、“复制”等的讨论经常指分布式计算系统的电子计算设备或者系统、比如虚拟机以及其它部件的动作和过程。电子计算设备/系统传输、接收、存储、操纵和/或变换在电子计算设备/系统的电路、部件、逻辑等表示为物理(电)数量的信号为在电子计算设备/系统内或者在其它电子计算设备/系统内相似地表示为物理电数量的或者向其它电子计算设备/系统传输的其它信号。
讨论概述
如先前在背景技术中描述的那样,文档在分布式计算系统中的节点之间的常规复制主要地由于扩展、防止瓶颈和改善用户体验所包括的操作而出现。这些都是有效操作和目标,但是可以看出,根据这样的常规技术,对要复制哪个文档和何处复制它的实际判决是使分布式计算系统的全部数据高度地可用、高度地分布或者低延时的人为行为。也就是说,常规地,在复制的文档的结构以外做出对要复制哪个文档和在分布式计算系统内何处复制它的判决。如这里描述的那样,“文档”可以是可以存储、链接和复制的任何类型的文件对象。文档的一个非限制示例是在数据库的表中存储的记录。
这里描述用于在分布式计算系统中的自动化文档复制的各种系统、方法和技术,这些系统、方法和技术利用文档的上下文信息以确定是否应当在分布式计算系统的另一节点复制文档或者某个其它文档而如果是则复制应当在哪个节点出现。
讨论始于对包括多个节点和上下文复制引擎的示例分布式计算系统的描述。然后描述分布式计算系统和上下文复制引擎的各种部件的操作。描述在分布式计算系统的节点之间的文档复制的一些示例。结合对在分布式计算系统中的自动化文档复制的各种方法的描述进一步描述上下文复制引擎的各种部件的操作。
示例分布式计算系统
图1是根据实施例的包括上下文复制引擎130的分布式计算系统100的示例框图。如图1中描绘的那样,分布式计算系统100包括节点110-1、110-2和110-n代表的多个节点。虽然这里描绘和描述三个节点110,但是应当理解分布式计算系统100可以包括两个节点110或者多于三个节点110这样多个节点。可以用许多方式定义节点、比如节点110中的任何节点,然而,在一个实施例中,节点110在单个集群中包括虚拟机和主机。以这一方式,可以看出分布式计算系统100的节点110可以经常让所有或者接近所有它的资源共同位于比如单个数据中心。多个节点110可以位于单个数据中心或者设施中,但是分布式计算系统的不同节点110更经常为相互远离。例如在一个实施例中,节点110-1可以位于美国的数据中心处,而节点110-2位于法国的数据中心处,而节点110-n位于日本的数据中心处。
尽管用于给定的节点110(例如110-1)的多数或者所有资源可以共同定位,但是节点110也可以利用逻辑存储系统,该逻辑存储系统跨多个节点延伸并且允许位置跨多个节点的文档被外部实体访问,就如同它们存储于单个存储设备中那样。因此,尽管文档121和122本地存储于节点110-1,但是节点110-1也可以访问本地存储于节点110-2处的文档123和/或访问本地存储于节点110-n处的文档124。
在结构化查询语言中,“连接(join)”是用来组合来自数据库中的两个或者更多表或者位置的文档的查询或者编程阶段。在分布式计算系统中,数据库可以让它的文档和/或表存储于相互不在本地的许多位置。常规地,在如以上描述的情形中,在节点110-1、110-2和110-n相互远离时,在需要在不同节点上的文档之间连接的查询和其它动作中有增加的延时。这是因为将需要在可以处理查询之前从远程节点复制该连接所需要的未本地存储的文档。这一复制引入延时。类似地,对于在节点110-1接收的对于涉及到文档121的动作的用户请求有比对于在节点110-1接收的对于涉及到文档123的动作的用户请求更少的延时。这是因为通常将需要从节点110-2向节点110-1复制文档123,从而节点110-1可以处理涉及到文档123的用户请求;而无这样的复制需要关于文档121出现,因为它已经本地存在于节点110-1。
如图1中描绘的那样,节点110-1包括上下文复制引擎130。上下文复制引擎130操作以基于文档上下文在节点110之间复制文档。利用的上下文可以包括对在给定的文档、比如文档121中存在的其它文档的引用和/或可以包括从与给定的文档关联的元数据确定的上下文。因此,取代文档复制是其它目标的人工行为的是,文档的数据或者与文档关联的数据规定复制哪些文档被复制和在何处复制它们。
虽然被描绘为位于节点110-1,但是应当认识到上下文复制引擎130可以存在于分布式计算系统100内任何处,它可以在该处与对分布式计算系统100中的节点110的文档的逻辑存储通信地耦合。也应当认识到在一些实施例中,在分布式计算系统100中的多个节点110上实施上下文复制引擎130。在一些实施例中,可以实施上下文复制引擎130的一个或者多个方面为虚拟机。
示例上下文复制引擎
图2是根据各种实施例的图1的上下文复制引擎130的扩展框图。如描绘的那样,上下文复制引擎130包括文档分析器231、紧密性(affinity)确定器232和自动文档复制器233。可以用分层方式与产生在节点之间的文档复制的一种或者多种常规技术运用上下文复制引擎130。也就是说,运用如下分层方式,在该分层方式中,上下文复制引擎130在运用产生在分布式处理系统的节点之间的文档复制的一种或者多种常规技术之前或者之后(或者在其之前和之后二者)执行对文档的上下文复制。
文档分析器231对于可以用来指导文档复制的上下文而分析文档、比如分布式计算系统100的文档121。这可以包括对于对其它文档的引用而分析文档的数据内容、然后确定引用的文档是否本地存储于与分析的文档相同的节点处,或者是存储于与分析的文档存储于的节点不同的节点处。在一个示例中,这样的引用被指针或者链接标注,这些指针或者链接显式地定义或者指示在一个文档与另一文档之间的关系。这样的链接的一个非限制示例是在分析的文档内存在XML(可扩展标记语言)中的X链接。可以在一个实施例中根据万维网联盟的格式化推荐来格式化这样的X链接。
附加地或者备选地,在一些实施例中,文档分析器231分析与文档关联的元数据以确定是否有将在文档存储于的节点外部的另一节点访问文档的高可能性。可以分析什么元数据的一些非限制示例包括已经从其访问文档的先前节点、在文档内利用的人类语言、在文档中引用的域的位置(例如电邮地址或者网站的域的位置)和在文档中提到的地理位置的记录。例如,如果先前通过节点、比如位于法国的节点110-2访问文档,则可以认为有将从这一节点再次访问文档的可能性。相似地,如果文档包括对位于日本的域的引用和对日本电邮地址的广泛使用,则可以在一个实施例中认为这一元数据线索组合构成将从位于日本的节点、比如节点110-n访问文档的可能性。应当注意,在一些实施例中,这样对文档的元数据的分析以确定可以从其访问文档的其它节点可以带有与用来解析文档用于确定可用来向文档的用户/查看者提供的广告类型的技术的许多相似性。
分析的文档可以是先前已经向节点110存储或者发布的现有文档或者新接收和向节点110发布的文档。以这一方式,可以在初始地启动节点110时运用上下文复制引擎130作为自举过程的一部分,可以在某个时间之后关于向节点110发布的所有新文档运用上下文复制引擎130,或者可以运用上下文复制引擎130以辅助再平衡分布式计算系统中的一个或者多个现有节点110。
紧密性确定器232操作以确定分析的文档是否具有单节点紧密性或者多节点紧密性。例如基于文档分析器231执行的分析,如果分析的文档并未引用在它存储于的节点外部的其它节点存储的任何文档和/或尚未证实通过除了分析的文档存储于的节点之外的另一节点方式被访问的可能性,则紧密性确定器232将确定它具有单节点紧密性。如果对文档的分析揭示链接、这些链接指向在分析的文档存储于的节点外部的其它节点存储的文档和/或已经证实通过除了分析的文档存储于的节点之外的另一节点访问的可能性,则紧密性确定器232将确定分析的文档具有多节点紧密性。文档分析器231可以在一些实施例中运用从在文档存储于的地方外部的节点访问的可能性的各种等级。例如术语低和高可以基于预设的参数、比如被发现存在的元数据线索的某个阈值数目。这样的等级和阈值也可以是用户可定义或者可调的。在运用这样的等级的实施例中,可以在发现特定等级级别存在时确定多节点紧密性。
在一个实施例中,元数据线索可以基于特定文档的访问时间-频率。例如指示何时和多么经常访问文档的度量可以存储于文档所存储于的存储位置的文档的元数据中。如果这样的度量指示新近地已经或者在某个时间段内多次访问文档,则使文档紧密性分数或者等级级别增加的访问时间-频率可以存在。考虑如下示例,在该示例中,位于日本的人力资源文档存储用于以日本为基地的雇员的雇员信息,并且这一日本人力资源文档经常与来自公司在法国的知识产权摘要系统的文档和公司在美国的社交媒体应用连接。另外考虑社交媒体应用比知识产权摘要系统更频繁得多地访问日本人力资源文档。在一个实施例中,从与人力资源文档关联的元数据推导的与访问有关的元数据线索的时间-频率可以超过如下阈值,该阈值使得多节点紧密性确定器232确定人力资源文档具有与社交媒体应用使用的在美国的节点的多节点紧密性、但是未满足用于具有与知识产权摘要系统使用的在法国的节点的多节点紧密性的阈值。
自动文档复制器233操作以在分布式计算系统的节点之间自动地复制至少一个文档。复制响应于确定分析的文档具有多节点紧密性而出现。该(这些)指示基于分析的文档的多节点紧密性的上下文。自动文档复制器233执行的复制动作基于指示。在一些实施例中,自动文档复制器233通过关于复制哪个(哪些)文档和何处执行该复制而指引现有复制基础设施来与分布式计算系统100的现有复制基础结构协调操作而不是重复这样的基础设施。认识到在一些实施例中,自动文档复制器233作为分布式计算系统100的低优先级部件操作。也就是说,它可以在后台中操作或者利用空闲计算资源来操作。
在一个实施例中,自动文档复制器233操作以在任何如下节点复制分析的文档,对文档的分析提示有将从该节点访问文档并且文档当前未存储于该节点的必然可能性。在一个实施例中,自动文档复制器233附加地或者备选地操作以向分析的文档存储于的节点本地复制分析的文档引用的、但是尚未在与分析的文档相同的节点处存储的任何文档。在一个实施例中,自动文档复制器233附加地或者备选地操作以在分析的文档中引用的文档存储于的任何节点处复制分析的文档。
参照图3-5描述上下文复制引擎130的操作的一些非限制示例。
图3是根据各种实施例的图1的分布式计算系统100的框图并且举例说明文档复制示例。参照图1和3,考虑其中节点110-1位于北美而节点110-n位于日本的示例。在这样的示例中,如果分析揭示高度地可能从日本访问文档121(基于若干日本电邮地址的存在、位于日本的dot-com域和对文档121的先前访问),则在一个实施例中,自动文档复制器233在位于日本的节点、比如节点110-n或者比节点110-1更接近日本的节点上复制文档121。这在通过节点110-n访问文档121的情况下减少延时。
图4是根据各种实施例的图1的分布式计算系统100的框图并且举例说明文档复制的示例。参照图1和4,考虑其中节点110-1包括本地存储于节点110-1的文档121的示例。在一个这样的示例中,分析揭示文档121引用文档122、123和124。如从图1可见,文档122已经本地存储于节点110-1。然而,文档123和124仅分别存储于节点110-2和110-n上。在这样的实施例中,自动文档复制器233在节点110-1处本地复制文档123,并且也在节点110-1处本地复制文档124以有助于对这些引用的文档向文档121的任何连接的本地查询处理。以这一方式,向节点110-1的涉及到文档121的查询将减少与响应于查询而连接文档123和124中的任一文档或者二者与文档121关联的延时。这是因为文档123和124已经本地存储于节点110-1并且将无需在查询时和响应于查询而被本地复制。
图5是根据各种实施例的图1的分布式计算系统100的框图并且举例说明文档复制的示例。参照图1和5,考虑其中节点110-1包括本地存储于节点110-1的文档121的示例。在一个这样的示例中,分析揭示文档121引用文档123和124。如从图1可见,文档123和124分别存在于节点110-2和110-n上。在这样的实施例中,自动文档复制器233可以在节点110-2处复制文档121,并且也在节点110-n上复制文档121以有助于对向节点110-2和110-n的查询所产生的向文档121的连接的本地查询处理。以这一方式,向节点110-2的涉及到文档121的查询将具有与响应于查询而连接文档121与文档123关联的减少的延时;类似地,向节点110-n的涉及到文档121的查询将具有响应于查询而连接文档121与文档124关联的减少的延时。这是因为文档121现在与具有它引用的文档的节点共同定位并且将无需在查询和响应于查询而在节点110-2或者110-n被本地复制。在一些实施例中,上下文复制引擎130也在节点110-2上复制文档124并且在节点110-n上复制文档123以完全地有助于对向节点110-2和110-n的查询所产生的向文档121的任何连接的本地查询处理。由于在文档中的引用通常是单向引用而不是双向引用,所以可以比与图3和4关联的示例描述的复制技术更不频繁地运用根据结合图5描述的这些技术的复制。
认识到可以用各种方式组合在图2-5中所示这些三个示例中的任何示例中描述的复制。作为这样的组合的一个示例,可以组合在与图4和5关联的示例中描述的文档复制,从而在节点110-1本地复制文档123和124而也在节点110-2和110-n中的每个节点处复制文档121。类似地,可以在如下情形中组合与图3和4关联的示例描述的复制,在该情形中,对与文档121关联的元数据的分析指示可能从节点110-n访问它,并且对文档121中的引用的分析指示对文档123和124的引用。在这样的情形中,将在节点110-n复制文档121而将在节点110-1复制文档123和124。
如先前描述的那样,经常跨分布式计算系统的多个计算节点复制和存储分布式计算系统的可以被任何节点访问的文档。这样的现有文档复制可以出于多种原因中的一个或者多个原因而出现,这些原因包括但不限于:效率目的、可扩展性目的、容错性/冗余性目的、策略目的和/或其它目的。这里描述的自动化文档复制在各种文档中以协作方式与这样的现有文档复制结合操作。例如如果出于错误冗余性目的或者由于策略规定必须在从文档存储于的第一位置相距至少数目为X的应力的第二位置复制文档而要求复制文档,则可以通过以这里描述的方式复制文档、从而它存储于在引用它的文档或者它引用的文档附近的位置来满足这些策略之一或者二者。类似地,以这里描述的方式的文档复制可以满足对于效率、可扩展性和/或容错性的要求,这些要求并不大量地关注文档在何处被复制、而是更多地关注或者仅关注它存储于多于单个位置的事实。因此应当认识到可以在许多实例中与用于文档复制的现有原因配合地执行以这里描述的方式的文档复制而未增添复制开销、存储需要、花费的时间或者成本。类似地,应当认识到以这里描述的方式的文档复制可以允许一次满足多个复制目标,例如可以满足冗余性而同时和无附加成本地最大化搜索延时减少。
示例操作方法
以下讨论具体阐述实施例的一些示例操作方法的操作。参照图6和7,流程图600和700举例说明各种实施例使用的示例过程。流程图600和700包括在各种实施例中处理器在计算机可读和计算机可执行指令的控制之下执行的一些过程。以这一方式,这里和结合图600和/或700描述的过程在各种实施例中使用或者可以使用计算机来实现。计算机可读和计算机可执行指令可以驻留在任何有形计算机可读存储介质中。有形计算机可读存储介质的一些非限制示例包括随机存取存储器、只读存储器、磁盘、固态驱动器/“盘”和光盘,可以在分布式计算系统100中运用这些示例中的任何或者所有示例。在有形计算机可读存储介质上驻留的计算机可读和计算机可执行指令用来例如与分布式计算系统100的处理器之一或者某个组合结合控制或者操作。认识到处理器可以是物理或者虚拟的或者某个组合(也应当认识到在物理硬件上实现虚拟处理器)。在流程图600和700中公开具体过程,但是这样的过程是示例。也就是说,实施例很好地适合执行各种其它过程或者在流程图600和/或700中记载的过程的变化。类似地,在一些实施例中,可以按照与呈现的顺序不同的顺序执行流程图600和/或700中的过程和/或可以未执行在这些流程图中的一个或者多个流程图中描述的所有过程。还认识到可以在硬件或者硬件与固件和/或软件的组合中实现在流程图600和/或700中描述的过程。
图6是根据各种实施例的在分布式计算系统、比如分布式计算系统100中的自动化文档复制的方法的流程图600。
在流程图600的过程610,在一个实施例中,在分布式计算系统的第一节点分析文档。在一个实施例中,这包括上下文复制引擎130的文档分析器231以这里先前描述的方式执行这一分析。例如参照图1,在一些实施例中,文档分析器231通过对于对在分布式计算系统100的除了分析的文档、比如文档121被本地存储于其上的节点之外的节点110存储的文档的引用而解析分析的文档来分析它。引用的非限制示例包括指向另一文档的链接,该另一文档将响应于对分析的文档的数据库查询而要求连接链接的文档与分析的文档。在一些实施例中,文档分析器231分析与文档、比如文档121关联的元数据以确定分布式计算系统100的除了分析的文档存储在其上的节点之外的如下附加节点,可能经由这些附加节点访问分析的文档。可以分析的元数据的一些非限制示例包括文档的先前访问历史和在文档中提到的信息,该信息可以提供访问上下文(例如提到的电邮地址、提到的因特网域、利用的语言和提到的地理位置)。
在流程图600的过程620,在一个实施例中,基于在610执行的分析,确定分析的文档是否具有多节点紧密性。在一个实施例中,紧密性确定器232做出关于分析的文档是否具有对于单个节点或者对于多个节点的紧密性的确定。例如如果发现分析的文档、比如文档121引用仅关于节点110-1未本地存储的文档、比如文档123和124,则确定文档121具有多节点紧密性。然而,如果无引用存在于文档121中或者仅对本地存储的文档、比如文档122的引用存在,则在一个实施例中,可以确定文档121具有单节点紧密性。在一个实施例中,紧密性确定器232附加地或者备选地基于文档121的关联元数据确定紧密性。如果可能经由另一节点访问的元数据线索积累超过阈值(可以被预设或者用户修改),则紧密性确定器232确定分析的文档是多节点文档。例如在一个实施例中,如果文档包含提示从法国的可能访问的四个线索(例如法国电邮地址、使用法语、对位于法国的公司的引用和被在法国的知识产权摘要系统的某个新近先前访问),则紧密性确定器232确定可能将从经由在法国的节点访问(例如经由节点110-2访问)分析的文档、比如文档121,即使已经向节点110-1发布文档。即使文档未包括对位于其它节点上的文档的引用,紧密性确定器仍然可以基于元数据确定分析的文档具有多节点紧密性。相似地,如果用于这样基于元数据的多节点紧密性确定的阈值例如是四个线索,并且如果仅指出三个线索,则紧密性确定器232基于对元数据的分析不会确定多节点紧密性存在。例如在一个这样的实施例中,四个或者更多线索将使紧密性确定器232确定文档具有高多节点紧密性并且应当被复制,而三个或者更少线索将使紧密性确定器232确定文档具有低多节点紧密性而未出于紧密性目的而复制。
在流程图600的过程630,在一个实施例中,响应于确定分析的文档具有多节点紧密性,在分布式计算系统的指示的节点之间自动地复制至少一个文档。在一个实施例中,关于在哪个(哪些)节点之间执行复制的指示基于文档的多节点紧密性的上下文。自动文档复制器233基于指示执行复制。例如上下文可以指示多节点紧密性基于分析的文档,该文档引用外部存储于另一个(多个)节点上的一个或者多个文档,因此自动文档复制器233在分析的文档存储于的节点自动地复制任何外部引用的文档。在一个实施例中,基于相同上下文,自动文档复制器233附加地或者备选地在存储在分析的文档中引用的文档的、除了分析的文档已经存储于的节点之外的一个或者多个其它节点上复制分析的文档。
在另一实施例中,上下文可以指示多节点紧密性基于可能外部访问节点(在分析的文档被本地存储于的节点外部)。在这样的情形中,自动文档复制器233向已经通过元数据分析而认为可能经由其访问的任何节点自动地复制分析的文档。
在另一实施例中,上下文可以指示多节点紧密性基于特性组合。例如上下文可以指示分析的文档的多节点紧密性基于可能外部访问节点(在分析的文档存储于的节点外部)和外部文档引用。在一个这样的情形中,自动文档复制器233向分析的文档存储于的节点自动地本地复制外部引用的文档并且也向已经通过元数据分析而认为可能经由其访问的任何节点复制分析的文档。
在一些实施例中,在以在过程610-620中描述的方式处理在第一节点的第一文档之后,相似地处理在第一节点或者在分布式计算系统100内的其它节点的一个或者多个附加文档。
图7是根据各种实施例的在分布式计算系统、比如分布式计算系统100中的自动化文档复制的方法的流程图700。
在流程图700的710,在一个实施例中,在分布式计算系统的第一节点分析文档。在一个实施例中,这包括上下文复制引擎130的文档分析器231以这里先前描述的方式执行这一分析。例如在一个实施例中,文档分析器231通过对于对在分布式计算系统100的除了分析的文档、比如文档121被本地存储于其上的节点之外的节点110存储的文档的引用而解析分析的文档来分析它。引用的非限制示例包括指向另一文档的链接,该另一文档将响应于对分析的文档的数据库查询而要求连接链接的文档与分析的文档。认识到可以在第一节点初始存储或者发布文档时或者在已经向第一节点存储或者发布文档之后执行这样的对文档的分析。因此,这样的分析可以是自举节点、再平衡节点或者整个分布式计算系统的部分和/或作为置于适当处以在某个时间点之后从在节点存储的新文档开始的策略的部分。
在流程图700的720,在一个实施例中,基于分析,确定第一文档是否引用在第一节点外部存储的文档。在一个实施例中,紧密性确定器232做出关于分析的文档是否在分析的文档存储于其上的节点外部的确定。例如参照图1,如果发现分析的文档、比如文档121引用仅关于节点110-1未本地存储的文档、比如文档123和124,则确定文档121具有多节点紧密性并且引用在节点110-1外部存储的文档。然而,考虑其中引用存在于分析的文档、比如文档121内或者仅对本地存储的文档、比如文档122的引用存在的一个实施例。在一个这样的实施例中,可以确定文档121具有单节点紧密性,因为未引用在节点110-1外部的文档。
在流程图700的730,在一个实施例中,响应于确定第一文档引用在第一节点外部的文档,在分布式计算系统100的指示的节点之间自动地复制至少一个文档以便有助于对向第一文档的任何连接的本地查询处理。基于(在)第一文档(内)的外部引用来指示在其执行复制的节点。在任何指示的节点的复制由上下文复制引擎130执行。
在一个实施例中,情境复制引擎130在第一节点自动复制第一文档引用的尚未在第一节点本地存储的第一文档。参照图1,如果文档121是分析的第一文档并且它外部引用文档123和124,则在一个实施例(如图4中所示)中,上下文复制引擎130在节点110-1复制文档123并且也在节点110-1复制文档124。
在另一实施例中,上下文复制引擎130在除了第一文档中引用的文档在其中被复制的第一节点之外的所有节点复制第一文档。例如参照图1,如果文档121是分析的第一文档并且它外部引用文档123和124,则然后在一个实施例(如图5中所示)中,上下文复制引擎130在节点110-2和110-n复制文档121。
在一些实施例中,在以在过程710-730中描述的方式处理在第一节点的第一文档之后,相似地处理在第一节点或者在分布式计算系统100内的其它节点的一个或者多个附加文档。
作为发明内容,本文已经至少公开以下广义概念。
概念1.一种在分布式计算系统中的自动化文档复制的方法,所述方法包括:
在分布式计算系统的第一节点处分析文档;
基于所述分析确定所述文档是否具有多节点紧密性;以及
响应于确定所述文档具有所述多节点紧密性,在所述分布式计算系统的指示的节点之间自动地复制至少一个文档,所述指示的节点基于所述文档的所述多节点紧密性的上下文来指示。
概念2.根据概念1所述的方法,其中所述在分布式计算系统的第一节点处分析文档包括:
对于对在所述分布式计算系统的除了所述第一节点之外的其它节点存储的文档的引用而分析所述文档。
概念3.根据概念1所述的方法,其中所述在分布式计算系统的第一节点处分析文档包括:
分析与所述文档关联的元数据以确定可能在其访问所述文档的除了所述第一节点之外的附加节点。
概念4.根据概念1所述的方法,其中所述在所述分布式计算系统的指示的节点之间自动地复制至少一个文档包括:
在与所述文档关联的元数据指示可能在其访问所述文档的、所述分布式计算系统的除了所述第一节点之外的任何附加节点处自动地复制所述文档。
概念5.根据概念1所述的方法,其中所述在所述分布式计算系统的指示的节点之间自动地复制至少一个文档包括:
在所述第一节点处自动地复制由所述文档引用的、尚未在所述第一节点处存储的所有文档。
概念6.根据概念1所述的方法,其中所述在所述分布式计算系统的指示的节点之间自动地复制至少一个文档包括:
在所述文档中引用的文档所位于的、除了所述第一节点之外的节点上自动地复制所述文档。
概念7.一种在分布式计算系统中的自动化文档复制的方法,所述方法包括:
在分布式计算系统的第一节点处分析第一文档内的引用;
基于所述分析来确定所述第一文档是否引用在所述第一节点外部存储的文档;以及
响应于确定所述第一文档引用在所述第一节点外部的文档,在所述分布式计算系统的指示的节点之间自动地复制至少一个文档,以便有助于对向所述第一文档的任何连接的本地查询处理,所述指示的节点基于所述第一文档的外部引用来指示。
概念8.根据概念7所述的方法,其中所述在分布式计算系统的第一节点处分析第一文档内的引用包括:
在所述第一节点处初始存储时分析所述第一文档。
概念9.根据概念7所述的方法,其中所述在分布式计算系统的第一节点处分析第一文档内的引用包括:
分析所述第一文档作为对所述分布式计算系统的再平衡的一部分。
概念10.根据概念7所述的方法,其中所述在分布式计算系统的第一节点处分析第一文档内的引用包括:
分析所述第一文档作为对所述第一节点的自举的一部分。
概念11.根据概念7所述的方法,其中所述在所述分布式计算系统的指示的节点之间自动地复制至少一个文档以便有助于对向所述第一文档的任何连接的本地查询处理包括:
在所述第一节点处自动地复制由所述第一文档引用的、尚未在所述第一节点处存储的所有文档。
概念12.根据概念7所述的方法,其中所述在所述分布式计算系统的指示的节点之间自动地复制至少一个文档以便有助于对向所述第一文档的任何连接的本地查询处理包括:
在所述第一文档中引用的文档所位于的、除了所述第一节点之外的节点上自动地复制所述第一文档。
概念13.一种分布式计算系统,包括:
多个节点,其中跨所述多个节点分布对文档的存储;以及
上下文复制引擎,包括:
文档分析器,被配置用于分析所述分布式计算系统的文档;
紧密性确定器,被配置用于基于所述分析来确定所述文档是否具有单节点紧密性或者多节点紧密性;以及
自动文档复制器,被配置用于响应于确定所述文档具有多节点紧密性而在所述分布式计算系统的指示的节点之间自动地复制至少一个文档,所述指示的节点基于所述文档的所述多节点紧密性的上下文来指示。
概念14.根据概念13所述的分布式计算系统,其中所述文档被初始地存储于所述分布式计算系统中。
概念15.根据概念13所述的分布式计算系统,其中所述文档是所述分布式计算系统的先前存储的文档。
概念16.根据概念13所述的分布式计算系统,其中所述文档分析器被配置为分析所述文档内的引用。
概念17.根据概念13所述的分布式计算系统,其中所述文档分析器被配置为分析与所述文档关联的元数据。
概念18.根据概念13所述的分布式计算系统,其中所述自动文档复制器被配置为作为所述分布式计算系统的低优先级部件来操作。
概念19.根据概念13所述的分布式计算系统,其中所述自动文档复制器被配置用于在所述分布式计算系统的所述指示的节点之间自动地复制所述至少一个文档,以便有助于对到所述文档的任何连接的本地查询处理
概念20.根据概念13所述的分布式计算系统,其中所述自动文档复制器被配置用于在所述文档的元数据指示可能在其访问所述文档的、所述分布式计算系统的任何节点处复制所述文档。
这样描述主题内容的示例实施例。虽然已经用结构特征和/或方法动作特有的语言描述本发明的各种实施例,但是将理解所附权利要求未必限于以上描述的具体特征或者动作。实际上,公开以上描述的具体特征和动作作为实施权利要求及其等效物的示例形式。

Claims (14)

1.一种在分布式计算系统中的自动化文档复制的方法,所述方法包括:
在分布式计算系统的第一节点处分析第一文档的数据内容内的引用;
基于所述分析来确定所述第一文档是否引用在所述第一节点外部存储的文档;以及
响应于确定所述第一文档引用在所述第一节点外部的文档,在所述分布式计算系统的指示的节点之间自动地复制至少一个文档,以便有助于对到所述第一文档的任何连接的本地查询处理,所述指示的节点基于所述第一文档的外部引用来指示。
2.根据权利要求1所述的方法,其中所述在分布式计算系统的第一节点处分析第一文档的数据内容内的引用包括:
在所述第一节点处初始存储时分析所述第一文档。
3.根据权利要求1所述的方法,其中所述在分布式计算系统的第一节点处分析第一文档的数据内容内的引用包括:
分析所述第一文档作为对所述分布式计算系统的再平衡的一部分。
4.根据权利要求1所述的方法,其中所述在分布式计算系统的第一节点处分析第一文档的数据内容内的引用包括:
分析所述第一文档作为对所述第一节点的自举的一部分。
5.根据权利要求1所述的方法,其中所述在所述分布式计算系统的指示的节点之间自动地复制至少一个文档以便有助于对到所述第一文档的任何连接的本地查询处理包括:
在所述第一节点处自动地复制由所述第一文档引用的、尚未在所述第一节点处存储的所有文档。
6.根据权利要求1所述的方法,其中所述在所述分布式计算系统的指示的节点之间自动地复制至少一个文档以便有助于对到所述第一文档的任何连接的本地查询处理包括:
在所述第一文档中引用的文档所位于的、除了所述第一节点之外的节点上自动地复制所述第一文档。
7.一种分布式计算系统,包括:
多个节点,其中跨所述多个节点分布对文档的存储;以及
上下文复制引擎,包括:
文档分析器,被配置用于分析所述分布式计算系统的第一节点处的第一文档的数据内容内的引用;
紧密性确定器,被配置用于基于所述分析来确定所述第一文档是否引用在所述第一节点外部存储的文档;以及
自动文档复制器,被配置用于响应于确定所述第一文档引用在所述第一节点外部的文档而在所述分布式计算系统的指示的节点之间自动地复制至少一个文档,所述指示的节点基于所述第一文档的外部引用来指示。
8.根据权利要求7所述的分布式计算系统,其中所述第一文档被初始地存储在所述分布式计算系统中。
9.根据权利要求7所述的分布式计算系统,其中所述第一文档是所述分布式计算系统的先前存储的文档。
10.根据权利要求7所述的分布式计算系统,其中所述文档分析器被配置为分析所述第一文档内的引用。
11.根据权利要求7所述的分布式计算系统,其中所述文档分析器被配置为分析与所述第一文档相关联的元数据。
12.根据权利要求7所述的分布式计算系统,其中所述自动文档复制器被配置为作为所述分布式计算系统的低优先级部件来操作。
13.根据权利要求7所述的分布式计算系统,其中所述自动文档复制器被配置用于在所述分布式计算系统的所述指示的节点之间自动地复制所述至少一个文档,以便有助于对到所述第一文档的任何连接的本地查询处理。
14.根据权利要求7所述的分布式计算系统,其中所述自动文档复制器被配置用于在所述第一文档的元数据指示可能在其中访问所述第一文档的、所述分布式计算系统的任何节点处复制所述第一文档。
CN201380040173.XA 2012-09-28 2013-08-29 在分布式计算系统中的自动化文档复制 Active CN104508656B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/630,353 US9619539B2 (en) 2012-09-28 2012-09-28 Automated document replication in a distributed computing system
US13/630,353 2012-09-28
PCT/US2013/057384 WO2014051928A1 (en) 2012-09-28 2013-08-29 Automated document replication in a distributed computing system

Publications (2)

Publication Number Publication Date
CN104508656A CN104508656A (zh) 2015-04-08
CN104508656B true CN104508656B (zh) 2017-12-01

Family

ID=50386172

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380040173.XA Active CN104508656B (zh) 2012-09-28 2013-08-29 在分布式计算系统中的自动化文档复制

Country Status (4)

Country Link
US (1) US9619539B2 (zh)
EP (1) EP2901310A4 (zh)
CN (1) CN104508656B (zh)
WO (1) WO2014051928A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9900386B2 (en) 2015-04-09 2018-02-20 International Business Machines Corporation Provisioning data to distributed computing systems
US11409714B2 (en) * 2019-06-21 2022-08-09 International Business Machines Corporation Evaluating pending object replication rules
US20230315750A1 (en) * 2022-03-31 2023-10-05 Lenovo (United States) Inc. Restriction-compliant data replication

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5588147A (en) * 1994-01-14 1996-12-24 Microsoft Corporation Replication facility
CN101689182A (zh) * 2007-06-29 2010-03-31 微软公司 用于分布式文件系统的高效更新
CN101918927A (zh) * 2008-01-18 2010-12-15 Tivo有限公司 分布式备份和获取系统
CN101999113A (zh) * 2008-04-04 2011-03-30 威睿公司 存储复制的方法和系统

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5440727A (en) * 1991-12-18 1995-08-08 International Business Machines Corporation Asynchronous replica management in shared nothing architectures
US5787441A (en) 1996-01-11 1998-07-28 International Business Machines Corporation Method of replicating data at a field level
US5832514A (en) * 1996-06-26 1998-11-03 Microsoft Corporation System and method for discovery based data recovery in a store and forward replication process
US6424992B2 (en) * 1996-12-23 2002-07-23 International Business Machines Corporation Affinity-based router and routing method
US5933593A (en) * 1997-01-22 1999-08-03 Oracle Corporation Method for writing modified data from a main memory of a computer back to a database
US5996088A (en) * 1997-01-22 1999-11-30 Oracle Corporation High-speed database checkpointing through sequential I/O to disk
US6167438A (en) * 1997-05-22 2000-12-26 Trustees Of Boston University Method and system for distributed caching, prefetching and replication
US6125371A (en) * 1997-08-19 2000-09-26 Lucent Technologies, Inc. System and method for aging versions of data in a main memory database
US6289424B1 (en) * 1997-09-19 2001-09-11 Silicon Graphics, Inc. Method, system and computer program product for managing memory in a non-uniform memory access system
US6070191A (en) 1997-10-17 2000-05-30 Lucent Technologies Inc. Data distribution techniques for load-balanced fault-tolerant web access
US6195680B1 (en) * 1998-07-23 2001-02-27 International Business Machines Corporation Client-based dynamic switching of streaming servers for fault-tolerance and load balancing
KR100390853B1 (ko) * 2000-06-07 2003-07-10 차상균 주 메모리 트랜잭션 처리 시스템에서 병렬적 회복 연산을 위한 디퍼런셜 로깅 방법 및 장치
US7231494B1 (en) * 2000-10-03 2007-06-12 Ironport System, Inc. Storage and retrieval system for WEB cache
US7305421B2 (en) * 2001-07-16 2007-12-04 Sap Ag Parallelized redo-only logging and recovery for highly available main memory database systems
US8090717B1 (en) 2002-09-20 2012-01-03 Google Inc. Methods and apparatus for ranking documents
US7739240B2 (en) * 2002-12-09 2010-06-15 Hewlett-Packard Development Company, L.P. Replication and replica management in a wide area file system
US7500020B1 (en) * 2003-12-31 2009-03-03 Symantec Operating Corporation Coherency of replicas for a distributed file sharing system
US7167880B2 (en) * 2004-04-14 2007-01-23 Hitachi, Ltd. Method and apparatus for avoiding journal overflow on backup and recovery system using storage based journaling
US7587429B2 (en) * 2004-05-24 2009-09-08 Solid Information Technology Oy Method for checkpointing a main-memory database
EP1601163A1 (en) * 2004-05-28 2005-11-30 moxite GmbH System and method for replication, integration, consolidation and mobilisation of data
US7509307B2 (en) * 2005-01-19 2009-03-24 International Business Machines Corporation Redundant version information in history table that enables efficient snapshot querying
US7814065B2 (en) * 2005-08-16 2010-10-12 Oracle International Corporation Affinity-based recovery/failover in a cluster environment
US20070294319A1 (en) * 2006-06-08 2007-12-20 Emc Corporation Method and apparatus for processing a database replica
JP2007331312A (ja) * 2006-06-16 2007-12-27 Canon Inc 印刷装置、印刷制御方法、プログラム、記憶媒体
US8910060B2 (en) * 2006-06-22 2014-12-09 Rohit Chandra Method and apparatus for highlighting a portion of an internet document for collaboration and subsequent retrieval
US20080126430A1 (en) * 2006-11-28 2008-05-29 Garrett Andrew J Intermediary document for critical change control
JP2008171336A (ja) 2007-01-15 2008-07-24 Nippon Telegr & Teleph Corp <Ntt> 文書クラスタ処理装置、文書クラスタ処理方法およびプログラム
US8868504B2 (en) * 2007-03-07 2014-10-21 Oracle International Corporation Database system with active standby and nodes
US8799264B2 (en) * 2007-12-14 2014-08-05 Microsoft Corporation Method for improving search engine efficiency
WO2009144688A2 (en) 2008-05-28 2009-12-03 France Telecom System, method and device for locally caching data
US8046467B2 (en) * 2008-08-29 2011-10-25 Microsoft Corporation Maintaining client affinity in network load balancing systems
US8832023B2 (en) * 2009-01-30 2014-09-09 Apple Inc. System for managing distributed assets and metadata
US8874663B2 (en) * 2009-08-28 2014-10-28 Facebook, Inc. Comparing similarity between documents for filtering unwanted documents
US7716205B1 (en) 2009-10-29 2010-05-11 Wowd, Inc. System for user driven ranking of web pages
EP2372570B1 (en) * 2010-03-30 2019-06-19 Telefonaktiebolaget LM Ericsson (publ) Secure and flexible access to electronic documents in databases
KR101662173B1 (ko) 2010-07-21 2016-10-04 에스케이텔레콤 주식회사 분산 파일 관리 장치 및 방법
US9152736B2 (en) * 2011-03-11 2015-10-06 Google Inc. Efficient indexing and searching of access control listed documents

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5588147A (en) * 1994-01-14 1996-12-24 Microsoft Corporation Replication facility
CN101689182A (zh) * 2007-06-29 2010-03-31 微软公司 用于分布式文件系统的高效更新
CN101918927A (zh) * 2008-01-18 2010-12-15 Tivo有限公司 分布式备份和获取系统
CN101999113A (zh) * 2008-04-04 2011-03-30 威睿公司 存储复制的方法和系统

Also Published As

Publication number Publication date
US9619539B2 (en) 2017-04-11
US20140095435A1 (en) 2014-04-03
EP2901310A1 (en) 2015-08-05
WO2014051928A1 (en) 2014-04-03
CN104508656A (zh) 2015-04-08
EP2901310A4 (en) 2016-04-27

Similar Documents

Publication Publication Date Title
Kleppmann Designing data-intensive applications: The big ideas behind reliable, scalable, and maintainable systems
Holzschuher et al. Performance of graph query languages: comparison of cypher, gremlin and native access in neo4j
Gollub et al. Ousting ivory tower research: towards a web framework for providing experiments as a service
US11314717B1 (en) Scalable architecture for propagating updates to replicated data
Wang et al. RiMOM results for OAEI 2010
US9508048B2 (en) System and method for integrated real time reporting and analytics across networked applications
AU2023203202A1 (en) Method and system for automatically extracting relevant tax terms from forms and instructions
CN110827008A (zh) 一种区块链节点和交易方法
CN102640151A (zh) 信息系统中转换后的数据的高吞吐量、可靠复制
CN104933173B (zh) 一种用于异构多数据源的数据处理方法、装置和服务器
Hasani et al. Lambda architecture for real time big data analytic
US8539457B2 (en) Partial on-demand lazy semantic analysis
CN109558444A (zh) 数据检索方法及装置
Silva et al. Integrating big data into the computing curricula
Silberstein et al. Pnuts in flight: Web-scale data serving at yahoo
CN105278945A (zh) 程序可视化装置、程序可视化方法及程序可视化程序
CN104508656B (zh) 在分布式计算系统中的自动化文档复制
CN105550351B (zh) 旅客行程数据即席查询系统及方法
CN107220363B (zh) 一种支持全局复杂检索的跨地域查询方法及系统
Kvet et al. Study on effective temporal data retrieval leveraging complex indexed architecture
Soundarapandian et al. Certified mergeable replicated data types
US20100185631A1 (en) Techniques for data aggregation, analysis, and distribution
Yang et al. Organizing bibliographical data with RDA: How far have we stridden toward the Semantic Web?
Wu et al. HAMR: A dataflow-based real-time in-memory cluster computing engine
Acharya Apache Ignite Quick Start Guide: Distributed data caching and processing made easy

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP03 Change of name, title or address

Address after: California, USA

Patentee after: Weirui LLC

Country or region after: U.S.A.

Address before: California, USA

Patentee before: VMWARE, Inc.

Country or region before: U.S.A.

CP03 Change of name, title or address