【技术实现步骤摘要】
【国外来华专利技术】分布式节点之间的存储器共享优先权声明本申请要求2013年3月14日提交的、标题为“MemorySharingAcrossDistributedNodes”、序列号为13/828,555的美国申请的优先权,该申请要求2012年10月2日提交的、标题为“TechniquesForAcceleratingDatabaseOperations”、序列号为61/709,142的美国临时申请的权益。这些申请的全部内容通过引用并入本文。
本公开总地涉及计算系统,更具体地讲,涉及一种用于使得存储器能够在分布式节点之间共享的方法和设备。
技术介绍
可通过互联网或者通过公司网络获得的许多功能和服务由一个或多个分布式计算节点集群提供。例如,用于运行大型业务的数据库可以由在形成集群的多个分布式计算节点上运行的多个数据库服务器维护,并且通过这些数据库服务器变得可用。使用计算节点集群提供功能或服务可以产生若干个优点。例如,就集群而言,添加另一个节点来提高系统的容量以满足增长的需求是相对容易的。集群还使得可以在各个节点之间均衡负荷,以使得如果一个节点变得负担过重,则工作可以分配给其他节点。另外,集群使得可以容忍故障,以使得如果一个或多个节点发生故障,功能或服务仍然可用。由于这些原因和其他原因,大型关键任务服务通常由一个或多个分布式节点集群提供。集群中的节点通常需要彼此交换/共享信息。例如,为了使节点一起工作以进行一个或多个事务、均衡负荷、实现故障预防和恢复等,这个信息共享可能是必要的。通常,集群中的节点使用请求-响应消息传送模型来彼此共享信息。不幸的是,现有的消息传送模型中的许多模型需 ...
【技术保护点】
在包括第一节点和第二节点的分布式系统中,其中,所述第一节点具有第一主存储器,所述第二节点具有第二主存储器,并且其中,所述第二主存储器中的第二存储器位置镜像在第一主存储器中的第一存储器位置中,一种由所述第一节点执行的方法包括:由所述第一节点上的处理器执行从第一主存储器的第一存储器位置加载数据的加载指令,其中,所述加载指令是与特定执行线程有关的一组程序指令的一部分;由所述处理器确定第一存储器位置中的数据是否是有效的;响应于确定第一存储器位置中的数据是无效的,使所述加载指令俘获,这使所述处理器暂停执行所述一组程序指令,并且开始执行一组俘获处理指令;在执行所述一组俘获处理指令时,所述处理器使:有效数据从第二主存储器的第二存储器位置获得并且存储到第一主存储器的第一存储器位置中;以及有效性指示符更新为指示第一存储器位置中的数据是有效的;以及由所述处理器重新开始执行所述一组程序指令。
【技术特征摘要】
【国外来华专利技术】2012.10.02 US 61/709,142;2013.03.14 US 13/828,5551.一种在包括第一节点和第二节点的分布式系统中执行的方法,其中,所述第一节点具有第一主存储器,所述第二节点具有第二主存储器,所述方法由所述第一节点执行,所述方法包括:将第一主存储器中的第一存储器位置中的一个或多个存储器地址映射到第二主存储器中的第二存储器位置中的一个或多个存储器地址;由所述第一节点上的处理器执行从第一主存储器的第一存储器位置加载数据的加载指令,其中,所述加载指令是与特定执行线程有关的一组程序指令的一部分;其中,执行所述加载指令包括由所述处理器确定第一存储器位置中的数据是否是有效的;响应于确定第一存储器位置中的数据是无效的,使所述加载指令俘获,这使所述处理器暂停执行所述一组程序指令,并且开始执行一组俘获处理指令;由所述处理器执行所述一组俘获处理指令,其中,执行所述一组俘获处理指令使得:从第二主存储器的第二存储器位置获得有效数据并且将所述有效数据存储到第一主存储器的第一存储器位置中;以及将有效性指示符更新为指示第一存储器位置中的数据是有效的;以及由所述处理器重新开始执行所述一组程序指令。2.根据权利要求1所述的方法,其中,所述第一节点包括协处理器,并且其中,使有效数据从第二主存储器的第二存储器位置获得并且存储到第一主存储器的第一存储器位置中包括:所述处理器将一个或多个指令提供给所述协处理器,使得所述协处理器从第二主存储器的第二存储器位置获得有效数据并且将所述有效数据存储到第一主存储器的第一存储器位置中。3.根据权利要求1所述的方法,其中,所述第一节点包括第一协处理器,所述第二节点包括第二协处理器,并且其中,使有效数据从第二主存储器的第二存储器位置获得并且存储到第一主存储器的第一存储器位置中包括:所述处理器将一个或多个指令提供给第一协处理器,使得第一协处理器通过与第二协处理器的交互从第二主存储器的第二存储器位置获得有效数据并且将所述有效数据存储到第一主存储器的第一存储器位置中。4.根据权利要求1所述的方法,其中:在执行所述一组俘获处理指令时,所述处理器进一步使:与第二节点的第二主存储器的第二存储器位置相关联的目录条目被锁定,其中,所述目录条目存储在第二节点上;所述目录条目中的信息更新为指示第一节点是第二主存储器的第二存储器位置的有效共享者;以及所述目录条目被解锁。5.根据权利要求1所述的方法,其中:在执行所述一组俘获处理指令时,所述处理器进一步使:更新数据从第一节点上的存储缓冲器获得,其中,所述更新数据意图存储在第二节点的第二主存储器的第二存储器位置中,但是尚未传播到第二节点;以及所述更新数据被存储到第一主存储器的第一存储器位置中。6.根据权利要求1所述的方法,其中:在执行所述一组俘获处理指令时,在使所述有效数据从第二主存储器的第二存储器位置获得并且存储到第一主存储器的第一存储器位置中之前,所述处理器使:更新数据从第一节点上的存储缓冲器获得,其中,所述更新数据意图存储在第二节点的第二主存储器的第二存储器位置中,但是尚未传播到第二节点;以及所述更新数据传播到第二节点并且存储到第二主存储器的第二存储器位置内以产生表示有效数据的更新的一组数据。7.一种在包括第一节点和第二节点的分布式系统中执行的方法,其中,所述第一节点具有第一主存储器,所述第二节点具有第二主存储器,所述方法由所述第一节点执行,所述方法包括:将第一主存储器中的第一存储器位置中的一个或多个存储器地址映射到第二主存储器中的第二存储器位置中的一个或多个存储器地址;由所述第一节点上的第一处理器执行将更新数据存储到第一主存储器的第一存储器位置中的存储指令,其中,所述存储指令是与特定执行线程有关的一组程序指令的一部分;使所述存储指令俘获,这使第一处理器暂停执行所述一组程序指令并且开始执行一组俘获处理指令;由所述处理器执行所述一组俘获处理指令,其中,执行所述一组俘获处理指令使得:基于所述映射,将所述更新数据传播到第二节点以存储在第二主存储器的第二存储器位置内;以及由所述第一处理器重新开始执行所述一组程序指令。8.根据权利要求7所述的方法,其中,所述方法还包括:在执行所述一组俘获处理指令时,所述第一处理器:将所述更新数据存储到第一主存储器的第一存储器位置中;并且其中,使所述更新数据传播到第二节点包括:将所述更新数据存储到存储缓冲器中以供传播到第二节点。9.根据权利要求7所述的方法,其中,使所述更新数据传播到第二节点包括:将所述更新数据存储到存储缓冲器中以供传播到第二节点。10.根据权利要求9所述的方法,其中,将所述更新数据存储到存储缓冲器中以供传播到第二节点包括:确定所述存储缓冲器是否包含目的地为第二主存储器的第二存储器位置的现有的更新数据;以及响应于确定所述存储缓冲器包含目的地为第二主存储器的第二存储器位置的现有的更新数据,将所述更新数据与所述存储缓冲器中的现有的更新数据合并。11.根据权利要求9所述的方法,还包括:在重新开始执行所述一组程序指令之后,以及在执行所述一组程序指令时,所述第一处理器:从所述存储缓冲器检索所述更新数据;以及使所述更新数据传播到第二节点并且存储在第二主存储器的第二存储器位置内。12.根据权利要求9所述的方法,还包括:第二处理器从所述存储缓冲器检索所述更新数据;并且所述第二处理器使所述更新数据传播到第二节点并且存储在第二主存储器的第二存储器位置内;其中,所述第二处理器能够为第一处理器或第一节点上的另一个处理器。13.根据权利要求12所述的方法,其中,所述第一节点包括第一协处理器,所述第二节点包括第二协处理器,并且其中,使所述更新数据传播到第二节点并且存储在第二主存储器的第二存储器位置内包括:所述第二处理器将一个或多个指令提供给第一协处理器,使得第一协处理器与第二协处理器进行交互以使所述更新数据传播到第二节点并且存储在第二主存储器的第二存储器位置内。14.根据权利要求9所述的方法,所述分布式系统还包括第三节点,其中,所述第三节点具有第三主存储器,其中,所述第二主存储器中的第二存储器位置也镜像在第三主存储器中的第三存储器位置中,并且其中,所述方法还包括:第二处理器从所述存储缓冲器检索所述更新数据;并且所述第二处理器使:所述更新数据传播到第二节点并且存储在第二主存储器的第二存储器位置内;以及当前存储在第三节点的第三主存储器的第三存储器位置中的数据失效;其中,所述第二处理器能够为第一处理器或第一节点上的另一个处理器。15.根据权利要求14所述的方法,其中,所述第一节点包括第一协处理器,所述第三节点包括第二协处理器,并且其中,使当前存储在第三节点的第三主存储器的第三存储器位置中的数据失效包括:所述第二处理器将一个或多个指令提供给第一协处理器,使得第一处理器与第二协处理器进行交互以使当前存储在第三主存储器的第三存储器位置中的数据失效。16.根据权利要求9所述的方法,还包括:第二处理器从所述存储缓冲器检索所述更新数据;并且所述第二处理器使:与第二主存储器的第二存储器位置相关联的目录条目被锁定,其中,所述目录条目存储在第二节点上;和所述更新数据传播到第二节点并且存储在第二主存储器的第二存储器位置内;以及所述目录条目被解锁;其中,所述第二处理器能够为第一处理器或第一节点上的另一个处理器。17.根据权利要求9所述的方法,其中,所述分布式系统还包括第三节点,其中,所述第三节点具有第三主存储器,其中,所述第二主存储器中的第二存储器位置也镜像在第三主存储器中的第三存储器位置,并且其中,所述方法还包括:第二处理器从所述存储缓冲器检索所述更新数据;并且所述第二处理器使:与第二主存储器的第二存储器位置相关联的目录条目被锁定,其中,所述目录条目存储在第二节点上,并且其中,所述目录条目中的信息指示第三节点当前是第二主存储器的第二存储器位置的有效共享者;所述更新数据传播到第二节点并且存储在第二主存储器的第二存储器位置内;存储在第三节点的第三主存储器的第三存储器位置中的数据失效;所述目录条目中的信息更新为使得所述信息不再指示第三节点为第二主存储器的第二存储器位置的有效共享者;以及所述目录条目被解锁;其中,所述第二处理器能够为第一处理器或第一节点上的另一个处理器。18.根据权利要求7所述的方法,其中,所述方法还包括:在执行所述一组俘获处理指令时,所述第一处理器:将所述更新数据存储到第一主存储器的第一存储器位置中;并且其中,使所述更新数据传播到第二节点包括:使所述更新数据传播到第二节点并且存储在第二主存储器的第二存储器位置内。19.根据权利要求7所述的方法,其中,所述方法还包括:在执行所述一组俘获处理指令时,所述第一处理器:使当前存储在第一主存储器的第一存储器位置中的数据失效;并且其中,使所述更新数据传播到第二节点包括:使所述更新数据传播到第二节点并且存储在第二主存储器的第二存储器位置内。20.一种用于在分布式计算系统中使用的第一节点,所述第一节点包括:第一主存储器,其中,所述第一主存储器中的第一存储器位置中的一个或多个存储器地址被映射到所述分布式计算系统的第二节点上的第二主存储器中的第二存储器位置中的一个或多个存储器地址;一组俘获处理指令;和包括第一处理器的一个或多个处理器,所述第一处理器可操作为执行从第一主存储器的第一存储器位置加载数据的加载指令,其中,所述加载指令是与特定执行线程有关的一组程序指令的一部分,并且其中执行所述加载指令包括确定第一主存储器的第一存储器位置中的数据是否是有效的,并且响应于确定第一主存储器的第一存储器位置中的数据是无效的,使所述加载指令俘获,这将使第一处理器暂停执行所述一组程序指令,并且开始执行所述一组俘获处理指令;并且其中,所述一组俘获处理指令在被第一处理器执行时将使得第一处理器:基于所述映射使得有效数据从第二主存储器的第二存储器位置获得并且存储到第一主存储器的第一存储器位置中;以及使得有效性指示符更新为指示第一存储器位置中的数据是有效的;以及使得所述一组程序指令的执行重新开始。21.根据权利要求20所述的第一节点,其中,所述第一节点还包括第一协处理器;并且其中,所述一组俘获处理指令在被第一处理器执行时通过将一个或多个指令提供给第一协处理器来使得第一处理器从第二主存储器的第二存储器位置获得有效数据并且将其存储到第一主存储器的第一存储器位置中;并且其中,所述第一协处理器可操作为通过经由与第二节点上的第二协处理器的交互从第二主存储器的第二存储器位置获得有效数据,并且将所述有效数据存储到第一主存储器的第一存储器位置中来响应所述一个或多个指令。22.根据权利要求20所述的第一节点,其中,所述一组俘获处理指令在被第一处理器执行时使第一处理器进一步使得:与第二节点的第二主存储器的第二存储器相关联的目录条目被锁定,其中,所述目录条目存储在第二节点上;所述目录条目中的信息更新为指示第一节点是第二主存储器的第二存储器位置的有效共享者;以及所述目录条目被解锁。23.根据权利要求20所述的第一节点,其中,所述第一节点还包括存储缓冲器;并且其中,所述一组俘获处理指令在被第一处理器执行时将使第一处理器进一步使得:更新数据从所述存储缓冲器获得,其中,所述更新数据意图存储在第二节点的第二主存储器的第二存储器位置中,但是尚未传播到第二节点;和所述更新数据存储到第一主存储器的第一存储器位置中。24.根据权利要求20所述的第一节点,其中,所述第一节点还包括存储缓冲器;并且其中,所述一组俘获处理指令在被第一处理器执行时,在使有效数据从第二主存储器的第二存储器位置获得并且存储到第一主存储器的第一存储器位置中之前,将使第一处理器使得:更新数据从所述存储缓冲器获得,其中,所述更新数据意图存储在第二节点的第二主存储器的第二存储器位置中,但是尚未传播到第二节点;以及所述更新数据传播到第二节点并且存储在第二主存储器的第二存储器位置内以产生表示有效数据的更新的一组数据。25.一种用于在分布式计算系统中使用的第一节点,所述第一节点包括:第一主存储器,其中,所述第一主储存器中的第一存储器位置中的一个或多个存储器地址被映射到所述分布式计算系统的第二节点上的第二主存储器中的第二存储器位置中的一个或多个存储器地址;一组俘获处理指令;和包括第一处理器的一个或多个处理器,所述第一处理器可操作为执行存储指令以将更新数据存储到第一主存储器的第一存储器位置中,其中,所述存储指令是与特定执行线程有关的一组程序指令的一部分,并且其中,所述第一处理器包括电路系统,所述电路系统可操作为使所述存储指令俘获,这将使第一处理器暂停执行所述一组程序指令并且开始执行所述一组俘获处理指令;并且其中,所述一组俘获处理指令在被第一处理器执行时将使第一处理器:基于所述映射使所述更新数据传播到第二节点以存储在第二主存储器的第二存储器位置内;和重新开始执行所述一组程序指令。26.根据权利要求25所述的第一节点,其中,所述第一节点还包括存储缓冲器;其中,所述俘获处理指令在被第一处理器执行时将进一步使第一处理器:将所述更新...
【专利技术属性】
技术研发人员:P·N·洛文斯坦因,J·G·约翰逊,A·凯瑟噶玛,Z·拉多维奇,
申请(专利权)人:甲骨文国际公司,
类型:发明
国别省市:美国;US
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。