当前位置: 首页 > 专利查询>微软公司专利>正文

应用程序实例和查询存储制造技术

技术编号:6922703 阅读:166 留言:0更新日期:2012-04-11 18:40
本发明专利技术揭示了应用程序实例和查询存储。可发出用于更新应用程序的实例的状态的实例持久保存命令。响应于该持久保存命令,可启动关于实例存储的事务。作为事务的部分,可将更新的第一表示存储到实例存储中,并可将更新的第二表示存储到队列中。在存储第一和第二表示之后可提交该事务。在提交事务之后,可处理第二表示以将更新的第三表示存储到查询存储中。无需锁定实例存储就可对查询存储中的应用程序实例状态信息进行更新和查询,使得查询存储中的这样的操作可与实例存储中的操作异步地执行。

【技术实现步骤摘要】

本专利技术涉及持久保存,尤其涉及应用程序实例和查询存储
技术介绍
长期运行的应用程序实例,诸如例如工作流应用程序的实例,通常得益于周期性地持久保存其工作以允许应用程序实例在错误、崩溃或机器失效之后恢复。持久保存工作还可允许应用程序临时地空闲并且使它们的资源得到重新分配。为了持久保存工作,应用程序主机可对应用程序实例的持久保存的状态和该实例的运行时状态进行协调以保证一致的检查点被创建。例如,实例的持久保存的状态可能需要与应用程序事务、消息通知、锁、 本地状态高速缓存等进行协调。一个或多个实例的持久保存的状态的权威性版本可被存储到此处被称为实例存储的存储中。在持久保存应用程序实例状态之后,可在实例存储中查询持久保存的实例状态的各方面,例如支持用于系统管理、诊断、健康监控、业务流程跟踪、报告、可视化或分析的应用程序工具。如此处使用的,查询及类似的术语泛指读取已存储的数据。独立于正在执行实例的主应用程序来构想和实现应用程序工具。
技术实现思路
此处描述的工具和技术通过还将对应的表示存储到一个或多个查询存储中可增强对实例存储中持久保存的状态表示的使用。这可提供好处,诸如允许应用程序工具在查询存储中查询应用程序状态而无需锁定实例存储。在一个实施例中,工具和技术可包括发出用于更新应用程序的实例的状态的实例持久保存命令。响应于该持久保存命令,可启动关于实例存储的事务。作为事务的一部分, 可将更新的第一表示存储到实例存储中,并可将更新的第二表示存储到队列中。在存储第一和第二表示之后可提交该事务。在提交事务之后,可处理第二表示以将更新的第三表示存储到查询存储中。如此处使用的,术语队列是指用于正在等待被处理的数据的存储。例如,它可指用于正在等待被发布的数据的存储。队列可以是各种形式中的任一种,诸如数据库或数据库的部分。此外,队列可使用各种队列处理技术中的任一种,诸如先进先出技术或某些其他技术。在工具和技术的另一个实施例中,可从查询服务接收对应用程序实例状态更新的结果的订阅请求。订阅请求可包括过滤器。可从结果队列接收一组应用程序实例状态更新的结果。此外,过滤器可被应用于来自结果队列的该组结果。可向查询服务发布满足过滤器的一组要求的该组结果。此外,可将与被发布到查询服务的结果相对应的应用程序实例状态更新的表示存储到查询存储中。如此处使用的,术语“结果”及类似的术语是指对应用程序实例的状态进行的更新的表示。例如,“结果”可指示创建或删除实例、为变量赋予特定的值等。结果可与实例存储中存储的表示相同,或者它们可以是某些其他形式。例如,结果可(例如,通过指示变量的当前值)指示当前状态和/或(例如,通过指示变量被改变之前的值和变量被改变之后的值)指示所作出的改变。类似地,状态更新的表示可指当前状态的表示和/或已对状态所作出的改变的表示。为方便起见,术语结果通常用来指正在被传输的表示,而术语表示通常用来指正在被存储的表示。在工具和技术的又一个实施例中,应用程序主机可被配置为运行一个或多个应用程序实例。实例存储可连接到应用程序主机,并且结果队列可通过实例存储连接到应用程序主机。应用程序主机、实例存储以及结果队列可被配置为响应于实例持久保存命令而参与事务,该实例持久保存命令用于更新运行在应用程序主机上的应用程序的实例的状态。 每个这样的事务可包括响应于用于更新应用程序实例的状态的实例持久保存命令启动事务;将更新的第一表示存储到实例存储中;将更新的第二表示存储到结果队列中;并且提交事务。发布方可连接到队列,并且查询服务可连接到发布方。发布方可被配置为处理结果队列中的更新表示,并且向一个或多个查询服务发布来自队列的结果。无需锁定实例存储就可实现上述处理和发布。查询存储可连接到查询服务,并且查询服务中的每一个可被配置为通过将与接收到的结果相对应的更新的表示存储到查询存储中来响应接收到的结果。提供本
技术实现思路
是为了以简化的形式介绍一些概念。这些概念将在以下具体实施方式中进一步描述。本
技术实现思路
并不旨在标识所要求保护主题的关键特征或必要特征,也不旨在用于限制所要求保护主题的范围。类似地,本专利技术不限于解决在
技术介绍
具体实施方式、或附图中讨论的特定技术、工具、环境、缺点、或优点的实现。附图说明图1是其中可实现所描述的各实施例中的一个或多个的适合的计算环境的框图。图2是实例和查询存储系统的示意图。图3是实例和查询存储系统的部分的示意图。图4是实例和查询存储系统的部分的示意。图5是实例和查询存储技术的流程图。图6是另一个实例和查询存储技术的流程图。具体实施例方式此处描述的各实施例涉及用于应用程序实例状态信息的改进的存储和/或查询的技术和工具。这样的改进可源于分开或组合地使用各种技术和工具。这样的技术和工具可包括响应于用于更新应用程序实例的状态的实例持久保存命令,启动关于实例存储的事务。事务可包括将更新的第一表示存储到实例存储中,将更新的第二表示存储到队列中,并且随后提交该事务。这可包括将命令的结果传输到队列,并且可使用第一表示中没有的应用程序数据来补充那些结果。在提交事务之后,可处理更新的第二表示以将更新的第三表示存储到查询存储中。无需锁定实例存储就可实现这个处理, 并且无需锁定实例存储还可对查询存储中的信息实现查询。因此,可实现对查询存储的更新和查询而不会降低实例存储的性能。这可进而改善正被持久保存的应用程序的性能,因为这样的应用程序可花费更少的时间等待将在实例存储中执行的操作。可使用发布-订阅技术来处理队列中的表示。例如,每个连接到不同的查询存储的查询服务可向连接到队列的发布方进行订阅。查询服务可向过滤器提供其订阅信息。发布方可根据订阅信息将来自队列的表示作为结果发布到查询服务。响应于这些发布,查询服务使用对应用程序实例状态的更新的表示来更新对应的查询存储。如果查询存储不同步 (例如,由于存储已崩溃、仅最近订阅、或者其订阅中已发生变化),则还可使用将查询存储与实例存储进行同步的技术。所附权利要求中定义的主题不必限于本文描述的益处。本专利技术的特定实现可提供本文描述的益处的全部、一些、或未提供本文描述的益处。尽管本文出于呈现的目的以特定的顺序次序描述了用于各种技术的操作,但应理解除非要求特定的排序,否则这种描述方式涵盖了操作顺序上的重新安排。例如,在某些情况下,可以重新安排或并发执行顺序地描述的操作。本文参照流程图描述的技术可被用于本文描述的一个或多个系统和/或用于一个或多个其他系统。例如,本文描述的各种过程可用硬件或软件、或两者的组合来实现。此外,为了简单起见,流程图可能未示出可结合其他技术来使用特定技术的各种方式。I.示例性计算环境图1示出其中可实现所描述的各实施例中的一个或多个的合适的计算环境(100) 的通用示例。例如,一个或多个这样的计算环境可用于托管此处讨论的各种模块,诸如应用程序主机、持久保存提供方、实例存储、结果队列、发布方、查询服务、查询存储、和/或应用程序工具。一般而言,可使用各种不同的通用或专用计算系统配置。适用于此处所描述的工具和技术的公知计算系统配置的示例包括,但不限于,服务器场和服务器群集、个人计算机、服务器计算机、手持式或膝上型设备、多处理器系统、基于微处理器的系统、可编程消费电子产品、网络PC、小型机、大型计算机、包括上述本文档来自技高网
...

【技术保护点】
1.一种计算机实现的方法,包括:发出用于更新应用程序的实例的状态的实例持久保存命令(222);响应于所述持久保存命令(222),启动关于实例存储(220)的事务;作为所述事务的一部分,将所述更新的第一表示(244)存储到所述实例存储(220)中;以及作为所述事务的一部分,将所述更新的第二表示(246)存储到队列(240)中;在存储所述第一表示(244)和所述第二表示(246)之后提交所述事务;以及在提交所述事务之后,处理所述更新的所述第二表示(246)以将所述更新的第三表示(282)存储到查询存储(280)中。

【技术特征摘要】
2010.07.27 US 12/843,8881.一种计算机实现的方法,包括发出用于更新应用程序的实例的状态的实例持久保存命令022);响应于所述持久保存命令022),启动关于实例存储Q20)的事务;作为所述事务的一部分,将所述更新的第一表示(M4)存储到所述实例存储(220)中;以及作为所述事务的一部分,将所述更新的第二表示(M6)存储到队列O40)中; 在存储所述第一表示(M4)和所述第二表示(M6)之后提交所述事务;以及在提交所述事务之后,处理所述更新的所述第二表示046)以将所述更新的第三表示 (282)存储到查询存储(280)中。2.如权利要求1所述的方法,其特征在于,所述事务包括锁定所述实例存储的至少一部分,但实现对所述更新的所述第二表示的处理无需锁定所述实例存储。3.如权利要求1所述的方法,其特征在于,还包括在所述查询存储中查询所述第三表示而无需锁定所述实例存储。4.如权利要求1所述的方法,其特征在于,所述更新的所述第二表示不同于所述更新的所述第一表示。5.如权利要求4所述的方法,其特征在于,处理所述更新的所述第二表示以将所述更新的第三表示存储到查询存储中包括将过滤器应用到所述第二表示中。6.一个或多个具有收录于其上的计算机可执行指令的计算机可读存储介质,所述指令在由至少一个处理器执行时使所述至少一个处理器执行以下动作从查询服务(260)接收对应用程序实例状态更新的结果的订阅请求,所述订阅请求包括过滤器;从结果队列(MO)接收一个或多个应用程序实例状态更新的一组结果074) 将所述过滤器应用到来自所述结果队列(MO)的该组结果(274); 将满足所述过滤器的一组一个或多个要求的该组一个或多个结果发布到所述查询服务Q60)以及将与被发布到所述查询服务(260)的一个或多个结果(276)相对应的一个或多个应用程序实例状态更新的一个或多个表示存储到查询存储O80)中。7.如权利要求6所述的一个或多个计算机可读存储介质,其特征在于,所述动作还包括将与该组结果相对应的应用程序实例状态更新的表示存储到实例存储中,其中实现发布到所述查询服务以及存储到所述查询存储无需锁定所述实例存储。8.如权利要求7所述的一种或多种计算机可读存储介质,其特征在于,所述动作还包括从所述查询服务接收与所述实例存储进行同步的请求; 响应于对同步的所述请求,从所述实例存储请求同步信息; 从所述实例存储接收所请求的同步信息;以及将所述同步信息的至少一部分转发给所述查询服务。9.如权利要求8所述的一种或多种计算机可读存储介质,其特征在于,所述动作还包括,使用所述同步信息的至少一部分来对查询存储的至少一部分和所述实例存储的至少一部分进行同步。10.如权利要求6所述的一种或多种计算机可读存储介质,其特征在...

【专利技术属性】
技术研发人员:N·A·艾伦J·A·泰勒K·帕拉玛斯万姆D·舒克拉
申请(专利权)人:微软公司
类型:发明
国别省市:US

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

1