映射信息的异步处理的制作方法

文档序号:12071173阅读:223来源:国知局
映射信息的异步处理的制作方法与工艺

在线和其他远程数据存储解决方案通常包括远程存储系统,其中客户提交远程存储数据的请求。远程存储系统可包括记录特定客户已通过远程存储系统存储的数据部分的物理位置的映射信息。因此,随着大量数据被存储,映射信息的量增加以解决存储信息的增加。

然而,虽然远程存储系统可以能够相对快速地处理和存储大量数据,但是可根据用于计算和更新存储数据的物理位置的可用资源来更慢地处理映射信息。此外,随着用于任何特定客户的存储请求的量作为每秒事务(TPS)的度量而增加,如果用于处理映射信息的可用资源未缩放来处理较高的TPS,那么存储请求可被拒绝,触发数据处理错误,或者可被节流以允许映射信息被即时成功处理。然而,可能难以缩放用于处理映射信息的计算资源来处理存储请求的高TPS突发。

本文所作的公开内容正是对于这些和其他考虑而呈现。

附图说明

图1是示出用于异步处理映射信息的说明性计算系统的各方面的软件架构图,包括本文公开的若干软件和硬件部件;

图2A是示出根据本文公开的一种配置的异步处理服务的操作的各方面的流程图,所述异步处理服务被配置用于与用于异步处理映射信息的计算系统集成;

图2B是示出根据本文公开的一种配置的异步处理服务的操作的各方面的流程图,所述异步处理服务被配置用于与用于异步处理映射信息的计算系统集成;

图3是示出本文描述的用于异步处理映射信息的一种配置中的客户计算系统的操作的各方面的流程图;

图4是示出在本文描述的一种配置中的异步处理服务的操作的操作的各方面的流程图;

图5是示出用于本文公开的各种技术的说明性操作环境的系统和网络图,所述环境包括可配置来实现本文描述的功能的各方面的服务提供商网络;

图6是示出可用于实现本文公开的概念和技术的各方面的数据中心的配置的计算系统图;

图7是示出在本文公开的一种配置中可能由服务提供商网络提供和在服务提供商网络内利用的若干服务的各方面的系统和网络图;并且

图8是示出用于实现可利用来实现本文所呈现的各种技术的各方面的计算装置的说明性计算机硬件架构的计算机架构图。

具体实施方式

以下详细描述涉及用于提供异步处理服务的技术。利用本文描述的技术,可实现异步处理服务,其提供用于排队和处理唯一存储键以用于异步更新相关键映射的功能。当许多存储请求被接收、处理并且相关联的存储对象被存储时,可与存储对象的实际存储相关地来异步处理物理位置信息。以这种方式,可快速地物理存储存储对象,而可在稍后的时间完成映射信息的处理。通过利用这种异步处理服务,远程存储系统或分布式计算系统可处理相对大量的TPS,而不一定必须扩展计算资源以便即时处理映射信息。

根据本文呈现的一种配置,提供在服务提供商网络内或者与服务提供商网络结合操作的异步处理服务。异步处理服务是提供用于建立一个或多个异步处理队列的功能的网络服务,所述异步处理队列持久地存储将要异步处理的唯一键和存储信息。一个或多个异步处理队列可通过异步处理服务来管理。

如下文将更详细地描述的,异步处理服务还提供用于在成功完成相关联的存储对象的存储操作之后并且与之独立地对唯一键进行出队的功能。如果资源可用于处理映射信息,那么异步处理服务还提供用于确定是否可以异步方式处理一些存储请求的功能,如果存储请求包括指示异步优先级信息的标头信息,那么则进一步延迟映射信息的处理,并且提供其他相关功能。下文将关于图1至图8来呈现关于上述用于实现用于映射信息的异步处理服务的各种部件和过程的另外细节。

应理解,本文所呈现的主题可实现为计算机过程、计算机控制的设备、计算系统或如计算机可读存储介质的制品。尽管在一个或多个计算装置上执行的程序模块的一般上下文中呈现了本文所描述的主题,但是本领域的技术人员应认识到可组合其他类型的程序模块执行其他实现。通常,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、部件、数据结构以及其他类型的结构。

本领域的技术人员还将理解,本文所描述的主题的各方面可在除了本文所描述的这些之外的其他计算机系统配置上实践或者可结合所述其他计算机系统配置实践,所述其他计算机系统配置包括:多处理器系统、基于微处理器的或可编程的消费电子产品、小型计算机、大型计算机、手持计算机、个人数字助理、电子阅读器、移动电话装置、平板电脑装置、专用硬件装置、网络设备等。如以上简要提及的,可在分布式计算环境中实践本文所描述的配置,在所述分布式计算环境中可由通过通信网络链接的远程计算装置来执行任务。在分布式计算环境中,程序模块可位于本地和远程存储器存储装置两者中。

在以下详细描述中,对形成本文的一部分并通过说明示出具体配置或实例的附图进行参考。本文的附图未按比例绘制。贯穿若干图式(其在本文中可称为“图(FIG.)”或“图(FIGS.)”),相同的数字表示相同的元件。

图1是示出说明性计算系统100的各方面的软件架构图,其包括本文公开的用于异步处理映射信息的若干软件和硬件部件。系统100可包括被配置来提供多种网络服务的服务提供商网络120,下文参照图5至图8对其进行更全面的描述。如图1所示,系统100还可包括从服务提供商网络120的内部部署的存储服务121。存储服务121可包括下文更详细描述的多个单独的软件部件和/或服务。

系统100还可包括按需数据处理部件102,其被配置来以同步方式处理从客户131和/或客户计算系统132接收的数据存储请求122,同时以异步方式更新相关联的映射信息。按需数据处理部件102可在一种配置中被实现为网络服务。如下文更详细地描述的,按需数据处理部件102请求诸如获取、复制、删除和/或放置的存储操作,并且提交从存储请求122检索的存储对象104以便存储在永久性存储装置105中。

按需数据处理部件102可为被配置来同步处理存储和/或访问数据的请求的计算资源的集合。按需数据处理部件102可使用使得按需数据处理部件102能够快速定位和检索数据的计算资源(例如,数据库)来操作,以便允许响应于对数据的请求来提供数据。例如,按需数据处理部件102可维持存储的数据,其方式使得当检索到对数据对象的请求时,可响应于所述请求来提供数据对象(或者可开始数据对象的流式传输)。如下文更全面地描述的,由按需数据处理部件102存储的数据可被组织到存储对象104中。除了可能对大小进行某些约束之外,存储对象104可具有任意大小。因此,按需数据处理部件102可存储不同大小的多个存储对象104。

客户131可为订阅或利用服务提供商网络120的用户或实体。客户计算系统132可包括被配置来例如通过合适的数据通信网络128与服务提供商网络120通信的任何合适的主计算机设备。下文参照图8更全面地描述合适的计算机设备的一个特定的非限制性实例。

永久性存储装置105可包括任何合适的存储装置,包括但不限于被配置来接收和存储存储对象104并返回相关联的定位器值106或其他唯一标识信息的物理介质。根据一种实现,永久性存储装置105可包括基于网络的基于桶的存储模型,其中用于各种存储对象104的定位器值106可分组成用于管理、安全或其他目的的“桶”。基于桶的存储模型可基于客户131的客户标识、定位器值106、相关联的桶标识和/或任何其他合适的信息来组织。

在一些配置中,永久性存储装置105可确定定位器值106,存储存储对象104,并且将定位器值106发送到按需数据处理部件102。由永久性存储装置105确定的定位器值106对于存储对象104是唯一的。定位器值包括描述永久性存储装置105中的相关联的存储对象104的位置的数据以及相关数据或元数据。例如,定位器值106可包括偏移或其他位置值。

按需数据存储部件102可将定位器值106和与存储对象104相关的任何相关存储信息(例如,存储操作和/或桶的描述)(例如,作为唯一键和存储信息112)提供给键映射处理部件110。键映射处理部件110是被配置来利用服务提供商网络120的资源来处理定位器值106以创建、更新或以其他方式修改映射信息的键映射/索引108的软件部件。例如,根据一种配置,键映射处理部件110被配置来在接收到定位器值106时根据定位器值106以及任何相关联的存储信息来更新键映射/索引108。

键映射/索引108可为数据库、动态数据结构或者被配置来存储用于存储在永久存储装置105中的每个存储对象104的各自键映射条目的另一类型的数据结构。对于给定的存储对象104,各自的键映射条目包括定位器值106和由对应于存储的存储对象104的客户131提供的唯一键。此外,根据一种配置,键映射/索引108是基于存储对象的底层的基于桶的组织来排序的排序索引。更新键映射/索引108可包括在存储新的存储对象104之后基于键映射/索引108的特定排序来确定在何处包括定位器值106和相关联的唯一键。键映射/索引108的更新还可包括当执行复制存储操作时根据需要来进行重新排序。更新键映射/索引108还可包括当执行删除存储操作时移除定位器值106和相关联的唯一键。此外,取决于特定存储请求122(例如,获取请求、复制请求、放置请求、删除请求及其他)的性质,键映射/索引108的更新可包括任何其他合适的操作。

如图1进一步所示,异步处理服务114与按需数据处理部件102操作性地通信。根据一种配置,异步处理服务114被配置来从按需数据处理部件102而不是键映射处理部件110接收唯一键和存储信息112。例如,按需数据处理部件102可确定应当以异步方式更新或修改键映射/索引108。在这种情况下,异步处理服务将唯一键和存储信息112在一个或多个异步处理队列116中排队,而不是键映射处理部件110接收唯一键和存储信息112用于与存储请求122同时处理。在异步处理队列116中接收的唯一键和存储信息112包括例如由客户131提供的唯一键以及描述通过存储请求122和相关联的定位器值104所请求的存储操作的信息。还可包括其他存储信息,并且根据一种配置,应当至少包括适当地更新键映射/索引108所需的信息。

异步处理队列116是持久数据结构,其被配置来接收和排队唯一键和存储信息112,以便由键映射处理部件116进行异步处理。如本文所使用的,与数据结构相关的术语“持久”是指具有相对较低的丢失或不可恢复概率的数据结构。根据一种配置,持久数据结构具有小于丢失或不可恢复的第一阈值的概率。根据其他配置,持久数据结构至少包括擦除码以确保信息的可恢复性,被存档以确保信息的可恢复性,和/或在一个或多个存储位置处被复制以确保信息的可恢复性。根据异步处理队列116的特定实现,持久性的其他实现也可适用。

异步处理队列116可组织成先进先出(FIFO)队列。异步处理服务114可引导异步处理队列116独立于由按需数据处理部件102对存储请求122的处理来将唯一键和存储信息112发送到键映射处理部件110。此后,键映射处理部件110可以上述方式处理唯一键和存储信息112,同时与在永久存储装置105中的存储对象104的存储相比是异步的。在成功更新键映射/索引108之后,存储通知124可随后发送到客户131或客户计算系统132。存储通知124可包括存储请求122成功完成的指示以及任何其他合适或期望的信息。存储通知124不发送到客户计算系统132,直到存储对象104上的存储操作(即创建、删除、复制)已完成并且键映射/索引108已相应地更新。

如上所述,异步处理服务114利用一个或多个持久队列116来进行将存储为键映射/索引108的映射信息的处理。下文参考图2-图4提供关于存储服务121、异步处理服务114、按需数据处理部件102和键映射处理部件110的操作的另外细节。

根据一种配置,图2A是示出方法200的流程图,所述方法200示出异步处理服务114的操作的各方面,并且图2B是示出方法210的流程图,所述方法210示出异步处理服务113的操作的各方面。如图2A所示,在方框201处,方法200包括接收用于一个或多个存储操作的存储请求122。存储请求122可包括存储对象104、存储对象104的唯一键以及存储操作的描述。存储操作可包括放置请求、复制请求、删除请求、获取请求和其他存储相关操作。因此,如果存储请求包括复制请求、删除请求和/或获取请求,那么存储对象104实际上可不包括在请求122中,而是可包括存储对象104的描述、唯一键和/或其他标识信息。

响应于接收到存储请求122,在方框203处,按需数据处理部件102可引导永久性存储装置105执行由存储请求122描述的一个或多个存储操作。此后,在方框205处,异步处理服务114可创建、更新或以其他方式操纵异步处理队列116。此后,在方框207处,异步处理服务114将唯一键和存储信息112在一个或多个异步处理队列116中进行排队。

如上所述,异步处理队列116允许包含在键映射/索引108中的映射信息关于在方框203处存储操作的执行来异步地处理。因此,方法200可独立于在异步处理队列116中排队的唯一键和存储信息112的处理来迭代通过方框201、203、205和207。下文参考图2B更全面地描述映射信息和/或键映射/索引108的异步更新。

如图2B所示,方法210包括确定资源是否应当被缩放以允许更快速地处理在异步处理队列116中排队的信息。例如,由于由异步处理服务114提供的异步和独立功能,对键映射处理部件110可用的资源可被缩放,而不影响图2A所示的存储操作的处理。因此,如果在异步处理队列116中排队的信息的大小、优先级或其他属性需要或以其他方式认为需要附加资源,那么在方框217处可扩展这些资源。此外,如果附加资源不是必需的,或者如果例如期望异步处理队列116的惰性处理,那么在方框217处可缩减资源。

可替代地,如果不期望或者不需要缩放(扩展或缩减),那么在方框213处,可通过异步处理服务114使唯一键和存储信息112异步地出队。此后,在方框215处,键映射/索引108可由键映射处理部件110更新。此外,在方框219处,向提交请求122的客户131通知完成请求。方法210可通过使在异步处理队列116处排队的所有唯一键和存储信息112出队并且更新键映射/索引108以反映所有出队的唯一键和存储信息来连续迭代。

应当指出,方法200和210可独立地运行,并且因此提供映射信息的异步处理。此外,尽管示出为在方框207处最初加入,但是异步处理队列116可在参考方框207描述的排队功能之前已在其中排队有若干其他唯一键和相关存储信息。应当理解,与由永久性存储装置105和/或按需数据处理部件102执行的相关存储操作相比,这些先前排队的请求可全部进行异步处理。

因此,如上所述,异步处理服务114可实现从按需数据处理部件102接收的唯一键和存储信息112的异步处理。然而,其他功能也可通过按需数据处理部件102的智能操作来实现。例如,一些存储请求122可包括键映射/索引108的异步处理,而其他存储请求可包括取决于存储请求122中包含的信息和/或其他因素的键映射/索引108的大体上的同步处理。此外,一些存储请求122可为在大量事务或高数量的TPS期间的请求。这在下文参照图3和图4更充分地描述。

图3是示出根据一种配置的示出客户计算系统132的操作的各方面的方法300的流程图。如图3所示,方法300包括在方框301处确定存储请求122的存储操作的优先级。客户计算系统132、客户131和/或由客户计算系统132处理的任何计算机可执行代码可分析特定存储操作以确定优先级或完成所需的时间。例如,如果存储对象104的特定集合需要在存储之后相对快速地通过服务提供商网络120访问,那么这些存储对象104可具有高优先级。然而,如果存储对象104的特定集合在存储之后不需要相对快速地访问,例如如果这些存储对象是档案的一部分,那么这些存储对象104可具有低优先级。应当理解,可为一个或多个存储对象104或其集合建立许多不同级别的优先级。

在方框301处确定优先级信息时,客户计算系统132可在方框303创建包括一个或多个存储对象104的存储请求122,并且可在方框305将优先级信息附加到存储请求122。根据一种配置,优先级信息可包括标头值或标志,其指示应当异步地处理针对存储请求122的映射信息。根据其他配置,优先级信息可包括用于存储请求122的映射信息的处理中的适当延迟的值或值的集合。

优先级信息、标头值和/或标志可以任何合适的方式布置。例如,如果存储请求122被格式化成包括标头,那么标头可包括“async:true”以指示应异步地处理存储请求122的映射信息,或者包括“async:false”以指示应尽快处理存储请求122的映射信息。作为附加实例,标头可包括“async_time:<time delay value>”以指示对于存储请求122的映射信息的异步处理可接受的适当的时间延迟。

根据任何特定实现,其他标头信息、优先级信息的更细粒度和/或任何其他合适的信息也可以是适当的。此外,任何合适的通信协议可用来创建存储请求122,并且因此应理解,诸如表示状态传输(REST)、超文本传输协议(HTTP)或其他协议的协议可为适用的。因此,本文公开的特定实例不应被解释为限制所有可能的实现。在方框305处附加任何适当的优先级信息之后,在方框307处将存储请求122发送到服务提供商网络120,并且方法300可在方框309处停止。以下参考图4更全面地描述包括具有标头信息、高TPS的确定和/或其他优先级或异步指示的存储请求的存储请求122的处理。

图4是示出根据一种配置的示出异步处理服务114的操作的各方面的方法400的流程图。如图4所示,方法400包括在方框401处接收一个或多个存储请求122。存储请求122可为以高或相对高的TPS速率发送的存储请求,和/或可包括如上文参考图3所描述的标头信息和/或其他优先级信息。此后,在方框403处,按需数据处理部件102确定映射信息的异步处理是否是适当的、期望的、请求的和/或必要的。例如,在方框405处,如果发生TPS的相对低或稳定的速率,或者如果在存储请求122中没有映射信息的异步处理的指示,那么按需数据处理部件102可引导永久性存储装置105执行存储请求122。此后,键映射处理部件110在接收到适当的唯一键和存储信息112时更新键映射/索引108。此后,在方框409处,向提交请求122的客户131通知完成请求。

可替代地,如果按需数据处理部件102确定映射信息的异步处理被指示或以其他方式是适当的,那么在方框413处,按需数据处理部件102引导永久性存储装置105执行存储请求122。例如,在方框403处,相对高速率的TPS可触发对异步处理的需要或期望。可通过将TPS的当前速率与阈值进行比较来确定相对高速率的TPS。如果使用多于一个异步队列116,那么可实现多于一个阈值比较。此外,在方框403处,标头值或标志可触发对异步处理的需要或期望。因此,根据存储请求122中包含的特定信息以及TPS的速率,按需处理部件102可确定是否异步地处理请求。此后,在方框415处,异步处理服务114将唯一键和存储信息在一个或多个异步处理队列116中进行排队。

如上所述,异步处理的指示可包括高/低的优先级指示、时间延迟指示和/或包括TPS速率的其他信息。因此,根据特定优先级,唯一键和存储信息112的排队可基于特定优先级。例如,异步处理队列116可包括高优先级队列和低优先级队列。因此,高优先级异步存储请求可具有排队到高优先级队列中的相关联的唯一键和存储信息112。类似地,低优先级异步存储请求可具有排队到低优先级队列中的相关联的唯一键和存储信息112。此后,异步处理服务114可在方框416处以高于低优先级队列的速率使高优先级队列出队,并且因此根据出队顺序(例如,遵循相关联的优先级)更新键映射/索引108。

此外,根据一种配置,可根据用于处理映射信息的时间延迟来组织异步处理队列116。组织可基于时间延迟的分组,诸如一小时延迟、一天延迟、一周延迟或其他延迟。因此,指示特定可接受延迟的异步存储请求122被排队到相关联的异步处理队列中,并且通过异步处理服务114强制执行队列的时间延迟。以这种方式,在相关联的存储请求122中指示的特定延迟时段内处理指示特定延迟的映射信息的异步处理。

此外,异步处理队列116可被配置来基于当前的TPS速率排队有唯一键和存储信息112。例如,如果超过TPS的阈值速率,那么可异步地处理唯一键和存储信息。此外,可实现多于一个阈值。因此,如果超过第一阈值和第二阈值,那么可开始具有不同处理优先级的附加异步队列116。更多或更少的阈值也是可应用的,并且因此这些特定实例不应被解释为限制性的。

根据本文描述的功能的任何期望的实现,异步处理的其他形式的优先化和确定也是适用的。因此,虽然已描述TPS速率阈值、高/低优先级队列和/或基于时间延迟的队列的特定实例,但是应理解,修改以包括更多或更少的优先级、不同的时间延迟的粒度和/或其他类似属性被认为在本公开的范围内。以下更详细地描述能够实现上述一个或多个特征的不同硬件配置和操作环境。

图5是示出根据本文公开的一种配置的用于包括服务提供商网络120的本文公开的配置的一种说明性操作环境的系统和网络图,所述服务提供商网络120可被配置来以上述方式提供异步处理服务114。如上文简要讨论的,服务提供商网络120可提供计算资源,诸如用于键映射/索引108的处理、永久性存储装置105的实现的资源或其他资源。

由服务提供商网络120提供的计算资源可包括各种类型的计算资源,诸如数据处理资源、数据存储资源、网络资源、数据通信资源等。每种类型的计算资源可以是通用的,或者可用于许多特定配置中。例如,数据处理资源可用作多个不同配置中的物理计算机或虚拟机实例。虚拟机实例可被配置来执行应用,包括Web服务器、应用服务器、媒体服务器、数据库服务器以及其他类型的应用。数据存储资源可包括文件存储装置、块存储装置等。服务提供商网络120还可被配置来提供各种网络服务。

在一种实现中,由服务提供商网络120提供的计算资源由一个或多个数据中心504A-504N(其在本文中可单数形式称为“数据中心504”和以复数形式称为“数据中心504”)实现。数据中心504是用以容纳并操作计算机系统和相关联部件的设施。数据中心504通常包括冗余和备用电力、通信、冷却以及安全系统。数据中心504还可位于地理上不同的位置。以下将关于图7来描述用于数据中心504的一种说明性配置,所述说明性配置实现本文所公开的用于在服务提供商网络120中集成异步处理服务114的一些技术。

服务提供商网络120的客户和其他用户可通过网络506(诸如广域网(WAN))访问由服务提供商网络120提供的计算资源。例如但不限于,客户计算系统132可用于通过网络506访问服务提供商网络120。应理解,可利用将数据中心504连接到远程客户131和其他用户的局域网(“LAN”)、因特网或本领域中已知的任何其他联网拓扑结构。还应理解,也可利用此类网络的组合。

图6是示出根据本文公开的一种配置的数据中心504的一种配置的计算系统图,所述数据中心504实现本文公开的用于实现异步处理服务114的概念和技术的各方面。图6中所示的示例性数据中心504包括用于提供计算资源608A-608E的若干服务器计算机602A-602F(其在本文中可单数形式称为“服务器计算机602”或以复数形式称为“服务器计算机602”)。

服务器计算机602可为适当配置用于提供本文描述的计算资源的标准塔、机架安装或刀片式服务器计算机。如上所述,计算资源可为诸如虚拟机实例或硬件计算系统的数据处理资源、数据存储资源、数据库资源、网络资源等。服务器602中的一些还可被配置来执行能够实例化和/或管理计算资源的资源管理器604。例如,在数据存储服务的情况下,资源管理器604可为被配置来使得能够在计算资源608上执行基于桶的存储模型的程序,例如。数据中心504中的服务器计算机602还可被配置来提供网络服务和其他类型的服务,其中一些在下文关于图7进行详细描述。

图6所示的数据中心504还包括可用于执行上述软件部件中的一些或全部的服务器计算机602F。例如但不限于,服务器计算机602F可被配置来执行上文已详细描述的异步处理服务114。服务器计算机602F还可被配置来执行其他部件和/或存储数据,以用于提供本文描述的功能中的一些或全部,包括按需数据处理部件102、键映射处理部件110、键映射索引108和/或永久性存储装置105。

在图6所示的示例性数据中心504中,利用适当的LAN 606来使服务器计算机602A-602F互连。LAN 606还连接到图5所示的网络506。应理解,图1-图6所示的配置和网络拓扑结构已被极大地简化,并且可利用更多的计算系统、软件部件、网络和联网装置来使本文所公开的各种计算系统互连并且提供以上描述的功能。适当的负载平衡装置或其他类型的网络基础设施部件也可用于平衡数据中心504A-504N的每一个之间、每个数据中心504中的服务器计算机602A-602F中的每一个之间、以及潜在地数据中心504中的每个中的计算资源之间的负载。应理解,关于图6描述的数据中心504的配置仅仅是说明性的,并且可利用其他实现。

图7是示出在本文公开的一种配置中可能由服务提供商网络120提供和在服务提供商网络内利用的若干服务702的各方面的系统和网络图。具体地,图7示出在一个实例中客户计算系统132通过网络506连接到服务提供商网络120的实例。如上文简要讨论的,服务提供商网络120可向服务提供商网络120的客户提供各种服务702,包括但不限于异步处理服务114。

应理解,服务提供商网络120的客户131可为可利用由服务提供商网络120提供的服务的组织。此外,服务提供商网络120的客户可为利用由服务提供商网络120提供的服务的个人。如图7所示,客户131可通过网络506与服务提供商网络120通信,网络506可为诸如因特网、内联网或因特网服务提供商(ISP)网络的通信网络。从客户计算系统132到服务提供商网络120的通信可使得由服务提供商网络120提供的服务根据所描述的配置或其变化来操作。

如上文简要讨论的,服务提供商网络120可向其客户131提供各种类型的网络服务。在此实例中,由服务提供商网络120提供的服务包括虚拟计算机系统服务702A、块级数据存储服务702B、密码服务702C、通知服务702E、认证服务702F、策略管理服务702G、任务服务702H以及潜在地其他服务702I。服务提供商网络120还可提供存储服务121和异步处理服务114,以供内部和外部客户使用。此外,尽管未具体示出,但应理解,按需数据处理部件102可与键映射处理部件110和/或异步处理服务114组合配置成单个可标识服务,或者可以其他方式抽象为服务702中的一个或多个。

应当指出,并非所有描述的配置都包括参考图7描述的服务702A-702I,并且除了明确描述的服务之外或作为其替代,可提供附加服务。服务702A-702I中的每一个可包括使得呼叫者能够通过web服务请求向各种服务提交适当配置的API调用的web服务接口。此外,每种服务可包括服务接口,所述服务接口使服务能够访问彼此(例如,使虚拟计算机系统服务702A的虚拟计算机系统能够将数据存储在按需数据存储服务702D中或检索来自按需数据存储服务702D的数据,和/或访问由块级数据存储服务702B提供的块级数据存储装置)。现在将提供关于图7中所示的服务702A-702H的附加细节。

虚拟计算机系统服务702A可为被配置来实例化虚拟机实例的计算资源的集合。例如,服务提供商网络120的客户131可与虚拟计算机系统服务702A(通过适当配置和认证的API调用)交互,以提供和操作在由服务提供商网络120托管和操作的物理计算装置上实例化的虚拟计算机系统。虚拟计算机系统可用于各种目的,诸如作为支持网站的服务器来操作、操作业务应用,或者一般地,充当客户的计算资源。用于虚拟计算机系统的其他应用可用来支持数据库应用、电子商务应用、业务应用和/或其他应用。虽然在图7中示出虚拟计算机系统服务702A,但是可在服务提供商网络120中利用任何其他计算机系统或计算机系统服务,诸如不采用虚拟化或实例化而是在专用或共享计算机/服务器和/或其他物理装置上提供计算资源的计算机系统或计算机系统服务。

块级数据存储服务702B可包括计算资源,所述计算资源共同操作以使用块级存储装置(和/或其虚拟化)来存储数据。块级数据存储服务702B的块级存储装置可以(例如)可操作地附接到由虚拟计算机系统系统服务702A提供的虚拟计算机系统,以用作所述计算机系统的逻辑单元(例如虚拟驱动器)。块级存储装置能够永久存储由对应的虚拟计算机系统使用/产生的数据,其中虚拟计算机系统服务702A可只提供临时性数据存储。

服务提供商网络120还可包括密码服务702C。密码服务702C可利用服务提供商网络120的存储服务来以加密形式存储加密键,由此所述键可用于解密仅可由密码服务702C的特定装置访问的客户键。密码服务702C还可提供本文未具体提及的其他类型的功能。

在一些配置中,服务提供商网络120还可提供通知服务702E。通知服务702E可包括共同配置来提供web服务或其他接口和基于浏览器的管理控制台的计算资源的集合。管理控制台可用于配置客户寻求以接收通知的主题、配置应用(或人员)、客户端订阅主题、发布消息或配置通过客户端选择的协议(即HTTP、电子邮件和短消息服务(SMS)等)的消息递送。通知服务702E可使用“推送”机制为客户端提供通知,而不需要为新信息和更新定期检查或“轮询”。通知服务702E还可用于各种目的,诸如监控虚拟计算机系统服务702A中执行的应用、工作流程系统、对时间敏感的信息的更新、移动应用和许多其他应用。

如图7所示,在各种配置中,服务提供商网络120包括认证服务702F和策略管理服务702G。在一个实例中,认证服务702F是被配置来执行涉及对客户的用户进行认证的操作的计算机系统(即,计算资源集合)。例如,服务702A-702E和702G-702I中的一个可从用户向认证服务702F提供信息,以作为回报接收指示用户提交的请求是否是可信的信息。

在一个实例中,策略管理服务702G是被配置来代表服务提供商网络120的客户或内部用户来管理策略的计算机系统。策略管理服务702G可包括使得客户能够提交与策略管理有关的请求的接口。这类请求可为(例如)添加、删除、更改或另外修改用于客户的策略的请求,或针对其他管理动作(诸如提供现有策略的库存等)的请求。

在各种配置中,服务提供商网络120还被配置有任务服务702H。任务服务702H被配置来接收任务包并且使得能够如任务包所指示地执行任务。任务服务702H可被配置来使用服务提供商网络120的任何资源(诸如实例化的虚拟机或虚拟主机)来执行任务。任务服务702H可配置实例化的虚拟机或虚拟主机以根据指定的要求使用所选择的操作系统和/或选择的执行应用来操作。

服务提供商网络120可另外至少部分地基于其客户的需求来维护其他服务702I。例如,在一些配置中,服务提供商网络120可维护数据库服务。数据库服务可为共同操作以创建、维护和允许对存储在服务提供商网络120内的数据库执行查询的计算资源的集合。例如,服务提供商网络120的客户可通过利用适当配置的API调用来操作和管理来自数据库服务的数据库。这进而可允许客户维护并潜在地缩放数据库中的操作。其他服务包括对象级归档数据存储服务、管理和/或监视其他服务的服务。服务提供商网络120还可配置有本文未具体提及的其他服务。

图8示出能够以上述方式执行用于实现异步处理服务114和其他部件的程序部件的计算机800的示例性计算机架构。图8所示的计算机架构示出常规的服务器计算机、工作站、台式计算机、膝上型计算机、平板电脑、网络设备、电子阅读器、智能手机或其他计算装置,并且可用于执行本文呈现的任何软件部件。例如,图8中所示的计算机架构可用于执行用于提供异步处理服务114和/或相关功能的软件部件。图8中所示的计算机架构还可用于实现客户计算系统132或本文所述的任何其他计算系统。

计算机800包括基板802、或“母板”,它是大量部件或装置可通过系统总线或其他电子通信路径连接到的印刷电路板。在一种说明性配置中,一个或多个中央处理单元(CPU)804结合芯片组806操作。CPU 804可为执行计算机800的操作所必要的算术和逻辑操作的标准可编程处理器。

CPU 804通过从一个离散的物理状态转换到下一个来执行操作,其操纵区分并且改变这些状态的切换元件来进行。切换元件大体上可包括维持两种二进制状态中的一种的电子电路(诸如触发器),和基于一个或多个其他切换元件的状态的逻辑组合来提供输出状态的电子电路(诸如逻辑门)。可组合这些基本的切换元件来创建更复杂的逻辑电路,包括寄存器、加减器、算术逻辑单元、浮点单元等。

芯片组806提供基板802上CPU 804与剩余部分部件和装置之间的接口。芯片组806可提供至RAM 808的接口,其作为主存储器在计算机800中使用。芯片组806还可提供到计算机可读存储介质诸如用于存储有助于启动计算机800并且在各种部件与装置之间转移信息的基本例程的只读存储器(ROM)810或非易失性RAM(NVRAM)的接口。根据本文所述的配置,ROM 810或NVRAM还可存储计算机800的操作所必需的其他软件部件。

计算机800可使用通过网络(诸如局域网606)到远程计算装置和计算机系统的逻辑连接在网络化的环境中操作。芯片组806可包括用于通过NIC812(诸如千兆比特以太网适配器)提供网络连通性的功能。NIC 812能够通过网络820将计算机800连接到其他计算装置。应理解,多个NIC 812可存在于计算机800中,将计算机连接到其他类型的网络和远程计算机系统。

计算机800可连接到为计算机提供非易失性存储的大容量存储装置818。大容量存储装置818可存储系统程序、应用程序、其他程序模块和数据,这在本文中已更详细地描述过。大容量存储装置818可通过连接到芯片组806的存储控制器814连接到计算机800。大容量存储装置818可由一个或多个物理存储单元组成。存储控制器814可通过串行附接SCSI(SAS)接口、串行高级技术附接(SATA)接口、光纤通道(FC)接口或其他类型的接口与物理存储单元对接以便物理连接计算机和物理存储单元并且在它们之间转移数据。

计算机800可通过转换物理存储单元的物理状态来反映存储的信息来将数据存储在大容量存储装置818上。在本说明书的不同的实现中,物理状态的具体转变可取决于各种因素。这类因素的实例可包括但不限于用于实现物理存储单元的技术,不管大容量存储装置818是表征为主要还是次要存储等。

例如,计算机800可通过存储控制器814发布指令将信息存储到大容量存储装置818来改变磁盘驱动单元内的特定位置的磁性特性、光学存储单元中的特定位置的反射或折射特性、或者固态存储单元中的特定电容器、晶体管、或其他离散部件的电子特性。在不脱离本说明书的范围和精神的情况下,物理介质的其他转换是可能的,其中前述实例仅提供来促进此说明书。计算机800可通过检测物理存储单元内的一个或多个特定位置的物理状态或特性来进一步从大容量存储设装置818读取信息。

除了上述大容量存储装置818之外,计算机800可访问其他计算机可读存储介质来存储并检索信息,诸如程序模块、数据结构或其他数据。本领域的技术人员应理解,计算机可读存储介质是提供用于非暂时性数据存储并且可通过计算机800访问的任何可用介质。

通过举例的方式,并且非限制性的,计算机可读存储介质可包括以任何方法或技术实现的易失性和非易失性、可移除和不可移除的介质。计算机可读存储介质包括但不限于:RAM、ROM、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪存或其他固态存储技术、压缩光盘ROM(CD-ROM)、数字通用光盘(DVD)、高清晰度DVD(HD-DVD)、蓝光光碟(BLU-RAY)或其他光学存储装置、磁带盒、磁带、磁盘存储装置或其他磁性存储装置或者可用于以非暂时性的方式来存储所需要的信息的任何其他介质。

大容量存储装置818可存储用来控制计算机800的操作的操作系统830。根据一种配置,操作系统包括LINUX操作系统。根据另一种配置,操作系统包括来自微软公司的SERVER操作系统。根据另外的配置,操作系统可包括UNIX操作系统或其变型之一。应理解的是,也可利用其他操作系统。大容量存储装置818可存储由计算机800使用的其他系统或应用程序和数据,诸如存储服务121、异步处理服务114、按需数据处理部件102、键映射处理部件110和/或上述任何其他软件部件和数据。大容量存储装置818还可存储本文未具体标识的其他程序和数据。

在一种配置中,大容量存储装置818或其他计算机可读存储介质被编码成具有计算机可执行指令,所述计算机可执行指令当加载到计算机800中时将计算机从通用计算系统转变成能够实现本文所描述的配置的专用计算机。如上所述,这些计算机可执行指令通过指定CPU 804如何在各状态之间转变来转换计算机800。根据一种配置,计算机800具有对存储计算机可执行指令的计算机可读存储介质的访问权,所述计算机可执行指令当由计算机800执行时,执行以上相对于图2、图3和图4所描述的各种例程。计算机800还可包括用于执行本文所描述的任何其他的计算机实现的操作的计算机可读存储介质。

计算机800还可包括用于接收和处理来自大量输入装置诸如键盘、鼠标、触摸板、触摸屏、电子笔或其他类型的输入装置的输入的一个或多个输入/输出控制器816。类似地,输入/输出控制器816可提供输出到显示器,诸如计算机监视器、平板显示器、数字投影仪、打印机、绘图仪或其他类型的输出装置。将理解,计算机800可不包括图8中所示的所有部件,可包括图8中未明确示出的其他部件,或者可利用与图8中所示完全不同的架构。

基于上述内容,应理解,在此已给出用于提供映射信息的异步处理的技术。此外,尽管已经用专用于计算机结构特征、方法论行为和计算机可读介质的语言对本文所呈现的主题进行了描述,但应当理解,所附权利要求中定义的发明不一定限制于本文所描述的具体的特征、行为或介质。相反,具体的特征、行为和介质是作为实现权利要求书的示例性形式而公开。

上述主题是仅通过说明的方式提供的并且不应被解释为限制性的。此外,所要求保护的主题并不局限于解决本公开中任何部分所记录的任何或所有缺点的实现。可在不遵循所示和所述示例性配置和应用的情况下、并且在不背离以下权利要求书中阐述的本发明的真实精神和范围的情况下对本文所描述的主题作出各种修改和改变。

本公开的实施方案可鉴于以下条款来描述:

1.一种异步处理存储在永久性存储装置中的存储对象的映射信息的计算机实现的方法,所述方法包括:

接收包括存储对象的标识和存储操作的描述的存储请求,所述存储操作是将要对所述存储对象执行的操作;

响应于接收到所述存储请求来对所述存储对象执行所述存储操作;

生成描述所述存储对象的唯一标识信息和描述所述执行的存储操作的信息;

将所述唯一标识信息和描述所述执行的存储操作的所述信息在异步处理队列中进行排队;

与所述执行所述存储操作相比,使所述唯一标识信息和描述所述执行的存储操作的所述信息异步地出队;以及

利用所述出队的唯一标识信息和描述所述执行的存储操作的所述信息来更新所述映射信息。

2.如条款1所述的计算机实现的方法,其中执行所述存储操作包括:

在接收到所述存储请求时以同步方式将所述存储对象存储在永久性存储装置中,并且其中所述永久性存储装置是基于桶的存储系统,其中所述存储对象被分组到相关联的存储桶中。

3.如条款2所述的计算机实现的方法,其中生成所述唯一标识信息包括:

确定描述所述永久性存储装置中的所述存储对象的位置的定位器信息。

4.如条款1所述的计算机实现的方法,其中所述异步处理队列是具有排队信息的先进先出顺序的数据结构。

5.如条款1所述的计算机实现的方法,其中所述映射信息包括动态数据结构,所述动态数据结构中存储有对应于存储在所述永久性存储装置中的存储对象的唯一键和定位器值的排序顺序。

6.一种用于异步处理用于存储在永久性存储装置中的存储对象的键映射中的映射信息的设备,所述设备被配置来:

接收描述存储对象的唯一标识信息和描述将要对所述存储对象执行的存储操作的信息;

将所述唯一标识信息和描述所述存储操作的所述信息在异步处理队列中进行排队;

使所述唯一标识信息和描述所述存储操作的所述信息异步地出队;以及

响应于所述异步出队来请求所述键映射的更新。

7.如条款6所述的设备,其中所述设备还被配置来:

确定已满足或超过存储请求的阈值速率;以及

响应于确定已满足或超过存储请求的所述阈值速率,将所述唯一标识信息和描述所述存储操作的所述信息在所述异步处理队列中进行排队。

8.如条款6所述的设备,其中所述异步处理队列包括独立于为所述存储对象执行的所述存储操作而运行的先进先出队列。

9.如条款6所述的设备,其中所述键映射包括对应于存储在所述服务提供商网络中的存储对象的唯一键和定位器值的排序顺序。

10.如条款6所述的设备,其中所述设备还被配置来

接收描述所述存储对象和所述存储操作的存储请求;以及

响应于接收到所述存储请求来对所述存储对象执行所述存储操作。

11.如条款10所述的设备,其中所述设备还被配置来在接收到所述存储请求时以同步方式将所述存储对象存储在所述永久性存储装置中,并且其中所述永久性存储装置是基于桶的存储系统。

12.如条款10所述的设备,其中所述设备还被配置来响应于执行所述存储操作来生成所述唯一标识信息。

13.如条款10所述的设备,其中使所述唯一标识信息和描述所述存储操作的所述信息异步地出队包括独立于对所述存储对象执行所述存储操作,使所述唯一标识信息和描述所述存储操作的所述信息出队。

14.一种上面存储有计算机可执行指令的非暂时性计算机可读存储介质,所述计算机可执行指令当由计算机执行时引起所述计算机:

接收包括存储对象的标识和存储操作的描述的存储请求;

响应于接收到所述存储请求来对所述存储对象执行所述存储操作;以及

异步地更新用于所述执行的存储操作的映射信息。

15.如条款14所述的非暂时性计算机可读存储介质,其中异步地更新所述映射信息包括独立于执行所述存储操作来对用于基于桶的存储系统的映射信息进行重新排序。

16.如条款14所述的非暂时性计算机可读存储介质,其中异步地更新所述映射信息包括独立于执行所述存储操作来使描述所述存储对象的唯一标识信息出队。

17.如条款14所述的非暂时性计算机可读存储介质,其中所述存储请求还包括与所述映射信息的处理相关的优先级信息。

18.如条款17所述的非暂时性计算机可读存储介质,其中异步地更新所述映射信息包括:

将描述所述存储对象的信息和描述所述存储操作的所述信息在异步处理队列中进行排队,所述异步处理队列被配置来基于所述优先级信息来运行;以及

使描述所述存储对象的信息和描述所述存储操作的所述信息异步地出队。

19.如条款14所述的非暂时性计算机可读存储介质,其中执行所述存储操作包括:

在接收到所述存储请求时将所述存储对象存储在永久性存储装置中,其中所述永久性存储装置是基于桶的存储系统,其中所述存储对象被分组到相关联的存储桶中。

20.如条款14所述的非暂时性计算机可读存储介质,其还包括计算机可执行指令,所述计算机可执行指令在由所述计算机执行时引起所述计算机发送所述映射信息的成功更新的通知。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1