意图和具有意图的锁制造技术

技术编号:17654563 阅读:47 留言:0更新日期:2018-04-08 08:05
一种计算设备请求对来自远程存储系统的应用对象的访问,以便在本地执行应用功能性而无需主存应用资源。被访问对象与存储系统中的意图相关联并被锁住。锁住对象与意图相组合阻止不执行该意图的计算设备访问该对象。意图定义要用被请求对象执行的一个或多个操作,这些操作被序列化为意图步骤并存储在存储系统中。在执行意图步骤之后,该计算设备在该存储系统处存储表示该步骤的完成的日志条目。被锁对象维持被锁,直到该日志条目指示每个意图步骤完成为止。不同计算设备可通过执行与被锁对象相关联的意图的任何未完成步骤来解锁被锁对象。

【技术实现步骤摘要】
意图和具有意图的锁背景随着计算技术进步,分布式存储系统已成为用于部署应用的流行选择。分布式存储系统,诸如云存储系统,通过简单的应用编程接口(API)提供了可靠的存储服务,该API隐藏底层存储的分布式性质。此隐藏的分布式性质缓解了应用开发者处理分布式系统问题(诸如数据分区、故障容忍、以及负载平衡)的需要。在分布式计算环境中,应用数据可被存储在存储系统处而应用计算被位于该存储系统远程的一个或多个计算设备执行。尽管存储系统提供者通常执行故障容忍协议,然而这些存储系统并非没有自己的问题。例如,不同的计算设备、计算设备程序、以及计算设备虚拟机经常同时请求对单一存储系统对象的访问。在访问对象时,执行应用计算的计算设备可能失败,设备上的应用进程可能崩溃,且将计算设备连接到存储系统的网络可能丢失或重排序通信。为了解决这些问题和其它问题,存储系统可在存储对象被计算设备访问期间锁住存储对象。然而,锁也并非没有自己的问题。一个此类问题是:访问被锁对象的计算设备可能无法完成执行与被锁对象相关联的功能性,从而引起存储系统无限地锁住对象。而且,存储服务往往提供有限的、低水平的API,这些API约束了对存储区域内的对象的应用操作。从而,针对分布式计算环境开发应用仍旧困难。概述提供本概述以便以简化的形式介绍以下在详细描述中进一步描述的一些概念。本
技术实现思路
并不旨在标识所要求保护主题的关键特征或必要特征,也不旨在用于限制所要求保护主题的范围。根据一个或多个方面,一种计算设备向存储系统传递访问对象的请求。该计算设备向存储系统提供与该对象相关联的意图。响应于提供与该对象相关联的意图,该计算设备引起该存储系统锁住被请求对象并获得对被请求对象的访问。使用所获得的对象,该计算设备随后执行该意图的一个或多个步骤。被执行的一个或多个步骤的结果被传递到该存储系统。在完成该意图的所有步骤之后,该计算设备引起该存储系统解锁被锁对象。根据一个或多个方面,一种计算设备查明存储系统中的对象被锁住。该计算设备查明与被锁对象相关联的意图。该计算设备查明该对象是否被锁住达阈值时间量。如果该对象尚未被锁住达阈值时间量,该计算设备等待直到该阈值时间量流逝。响应于确定该对象已被锁住达阈值时间量,该计算设备查明与被锁对象相关联的意图的一个或多个未完成步骤并执行该一个或多个未完成步骤。该计算设备将被执行的步骤的结果传递给该存储系统。在执行所有未完成步骤并将与被锁对象相关联的意图的被执行的步骤的结果传递给该存储系统之后,该计算设备引起该存储系统解锁该被锁对象。根据一个或多个方面,一种存储系统接收来自计算设备的访问对象的请求。该存储系统接收来自该计算设备的与被请求对象相关联的意图。响应于接收与被请求对象相关联的意图,该存储系统锁住被请求对象并向该计算设备提供对被请求对象的访问。该存储系统接收与该被请求对象相关联的意图已完成的指示。响应于查明与该被请求对象相关联的意图已完成,该存储系统解锁该被锁对象。附图简述参考附图来描述具体实施方式。在附图中,附图标记最左边的数字标识该附图标记首次出现的附图。在说明书和附图的不同实例中使用相同的附图标记可指示相似或相同的项目。附图中所表示的各实体可指示一个或多个实体并且因而在讨论中可互换地作出对各实体的单数或复数形式的引用。图1解说根据一个或多个实施例的实现具有用于执行应用计算的意图的锁的示例系统。图2解说根据一个或多个实施例的示例的具有意图的锁系统。图3是解说根据一个或多个实施例的用于获得具有相关联的意图的存储系统对象上的锁的示例过程的流程图。图4是解说根据一个或多个实施例的用于解锁被锁住的具有相关联意图的存储系统对象的示例过程的流程图。图5是解说根据一个或多个实施例的用于锁住所请求的存储系统对象直到与该对象相关联的意图完成的示例过程的流程图。图6示出包括示例计算设备的示例系统,该示例计算设备代表可实现本文所描述的各种技术的一个或多个系统和/或设备。详细描述本文讨论了用于在分布式计算环境中执行应用功能性的存储系统抽象技术。多个计算设备经由网络连接至存储系统并被配置成针对存储在存储系统处的应用执行操作。在一个或多个实施例中,多个计算设备中的个体计算设备被配置成使用多个程序实例或者在计算设备上运行的虚拟机来执行操作。当计算设备执行应用操作时,计算设备请求对存储在存储系统处的一个或多个应用对象的访问。如本文讨论的,应用对象,或简称对象,是指存储系统存储器中的位置。对象可包括数据、变量、可被用于执行应用的功能或方法的可执行代码、或其组合。在许多情形中,计算设备在执行应用操作时更改被访问的存储系统对象中的应用数据。例如,计算设备可引起存储系统创建附加对象、删除现有对象、或更新对象的值。应用计算模块被实现在每个计算设备上,其使用从存储系统访问的应用对象来执行应用功能性。具有意图的锁(LWI)系统由连接至存储系统的每个计算设备实现。LWI系统提供存储系统的API和底层存储能力和组织的抽象表示。计算设备通过假定存储系统提供由LWI系统表示的接口来与存储系统交互。为了允许与一定范围的不同存储系统的通信,LWI系统向计算设备上的应用揭示一组API,该组API在该范围的不同存储系统中被支持。这些API使得计算设备能够请求来自存储系统的对象并且将与对象相关联的操作的结果传递回存储系统。当计算设备请求对存储系统对象的访问以便执行应用功能性时,计算设备使用LWI系统来将与被请求对象相关联的意图传递给存储系统。如本文讨论的,意图是被配置成包含与对象相关联的存储系统操作和计算设备操作两者的任意代码片段。例如,意图可以是具有“run”方法和串行化例程的类的对象。从而,意图指示要用被请求对象执行以执行应用功能性的一个或多个动作或操作。与意图相关联的每个动作或操作也可被称为“步骤”,且单一意图可要求多个步骤的完成。使用LWI系统,计算设备请求对存储系统对象的访问并引起存储系统存储与被请求对象相关联的意图标识符。该意图标识符向存储系统和可能请求对被请求对象的访问的其它计算设备指示与被请求对象相关联的意图。使用LWI系统,计算设备可引起存储系统将锁与意图相关联,这将被请求对象锁住,直到该意图的一个或多个步骤完成为止。这确保在原始请求该对象的计算设备正执行与该意图相关联的步骤时,一不同计算设备不访问被锁对象。传统上,锁约束了对保持锁的单一计算设备的访问,从而确保一不同计算设备不能访问被锁对象,直到单一计算设备完成执行与被锁对象相关联的应用功能性为止。为了解决与传统锁相关联的问题,计算设备使用LWI系统来创建和更新存储系统处的意图表,其监听与对象相关联的意图。具体而言,当计算设备请求对一对象的访问并指示与被请求对象相关联的意图时,意图被添加至存储系统中的意图表。意图表中的每个意图与意图标识符相关联,该意图标识符对应于与被请求对象相关联的意图标识符,如同上面所讨论的。意图表从而列出与存储系统中的对象相关联的所有意图。以此方式,LWI系统使得计算设备能够查明与对象相关联的意图,即使在该对象被锁住时。LWI系统还通过使用分布式原子化亲和力记录(DAAL)将每个计算设备的意图步骤的执行记录在存储系统上的执行日志中。对于意图中的每个步骤,LWI系统在存储系统中的执行表中输入唯一日志条目本文档来自技高网...
意图和具有意图的锁

【技术保护点】
一种在计算设备中实现的方法,所述方法包括:向存储系统传递访问对象的请求;向所述存储系统提供与所述对象相关联的意图;响应于提供与所述对象相关联的意图,获得对所述对象的访问;执行与所述对象相关联的意图的一个或多个步骤;以及向所述存储系统传递与所述对象相关联的意图的所述一个或多个步骤的结果,使得所述存储系统能够记录所述一个或多个步骤已被执行并且确保所述意图中的每个步骤执行恰好一次。

【技术特征摘要】
1.一种在计算设备中实现的方法,所述方法包括:向存储系统传递访问对象的请求;向所述存储系统提供与所述对象相关联的意图;响应于提供与所述对象相关联的意图,获得对所述对象的访问;执行与所述对象相关联的意图的一个或多个步骤;以及向所述存储系统传递与所述对象相关联的意图的所述一个或多个步骤的结果,使得所述存储系统能够记录所述一个或多个步骤已被执行并且确保所述意图中的每个步骤执行恰好一次。2.如权利要求1所述的方法,其特征在于,与所述对象相关联的意图的所述一个或多个步骤描述要用至少所述对象执行的一个或多个计算设备操作或存储系统操作。3.如权利要求1所述的方法,其特征在于,所述对象包括所述存储系统的存储器中的位置,所述位置包括所述存储系统中的表、所述存储系统中的表的分区、或所述存储系统中的表的行之一的至少一部分。4.如权利要求1所述的方法,其特征在于,提供与所述对象相关联的意图包括:向所述存储系统提供与所述对象相关联的意图的意图标识符;引起所述存储系统更新与所述对象相关联的元数据以包括与所述对象相关联的意图的意图标识符;以及引起所述存储系统将与所述对象相关联的意图的所述一个或多个步骤的序列化列表包括在意图表中。5.如权利要求1所述的方法,其特征在于,传递与所述对象相关联的意图的所述一个或多个步骤的结果包括引起所述存储系统生成包括一个或多个条目的执行日志,其中所述一个或多个条目中的个体条目指示所述计算设备已完成执行与所述对象相关联的意图的所述一个或多个步骤的相应个体步骤。6.如权利要求1所述的方法,其特征在于,进一步包括引起所述存储系统锁住所述对象,作为所述意图的第一步骤的执行的一部分。7.如权利要求6所述的方法,其特征在于,引起所述存储系统锁住所述对象阻止不请求对所述对象的访问以执行与所述对象相关联的意图的所述一个或多个步骤的计算设备访问所述对象,直到与所述对象相关联的意图的执行完成为止。8.如权利要求6所述的方法,其特征在于,引起所述存储系统锁住所述对象允许请求对所述对象的访问以执行与所述对象相关联的意图的所述一个或多个步骤的一个或多个不同计算设备访问所述对象。9.一种在计算设备中实现的方法,所述方法包括:查明存储在存储系统中的对象被锁住;查明与被锁对象相关联的意图;查明与所述被锁对象相关联的意图的一个或多个未完成步骤;执行所述意图的所述一个或多个未完成步骤;将所述意图的被执行的一个或多个步骤的结果传递至所述存储系统;以及响应于将所述意图的被执行的一个或多个步骤的结果传递至所述存储系统而引起所述存储系统解锁所述对象。10.如权利要求9所述的方法,其特征在于,查明存储在所述存储系统中的对象被锁住是响应于请求对所述对象的访问而执...

【专利技术属性】
技术研发人员:L·周P·K·帕特尔J·R·洛齐S·塞蒂J·任
申请(专利权)人:微软技术许可有限责任公司
类型:发明
国别省市:美国,US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1