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

用于限制对版本存储资源使用的方法和系统技术方案

技术编号:2853799 阅读:156 留言:0更新日期:2012-04-11 18:40
用于限制对版本存储的资源使用的方法和系统。限制指示了可以由进行中的事务所消耗的资源的总量。维护了剩余资源的数量的累计。在一个新的事务启动之前,作出关于是否存在剩余的足够资源来完成该新的事务的判断。如果是,那么该事务启动且调整该累计。如果否,那么该事务等待直到更多资源可用。当一个事务完成时,如果它是进行中的最老的事务,那么释放资源。否则,与该事务相关联的资源不被释放直到在该事务之前启动的所有事务完成。这保证了版本存储的一个客户机不会超过可由进行中的事务所消耗的资源的限制。

【技术实现步骤摘要】

本专利技术一般涉及计算机,尤其涉及资源使用。
技术介绍
每次客户机启动与诸如数据库的版本存储的一事务,就要消耗一定数量的资源。即使在该事务提交或放弃后,这些资源仍可能继续被消耗,直到先于该事务启动的所有事务也都已经结束。在诸如文件复制系统(FRS)的高频率更改版本存储中,或在相比并发的事务含有少量资源的版本存储中,在进行中的事务所需的资源可以超过可用的资源数量。需要一种用于限制对版本存储资源使用的方法和系统
技术实现思路
本专利技术简要地提供了一种用于限制对版本存储的资源使用的方法和系统。限制指示了可以由正在进行的事务所消耗的资源的总量。剩余资源的累计被维护。在新的事务开始之前,作出关于是否存在足够的剩余资源来完成新的事务的判断。如果是的,那么该事务开始并调整累计。如果不是,那么该事务等待直到有更多资源可用。当一个事务完成时,如果它是最老的进行中的事务,那么释放资源。否则,与该事务关联的资源不被释放直到在该事务前开始的所有事务都已经完成。这保证了,版本存储的客户机不会超过可以由进行中的事务所消耗的资源的限制。当结合附图,由下文具体实施方式,其它优点会变得明显,附图中附图说明图1是表示可在其中包含本专利技术的计算机系统的框图;图2是根据本专利技术的多个方面,表示可使用来实现本专利技术的示例性版本存储的框图;图3是示出根据本专利技术的多个方面的示例性数据机构的框图;图4是根据本专利技术的多个方面,一般表示为启动一个事务在获取资源中可能发生的动作的流程图;图5是根据本专利技术的多个方面,一般表示在一个事务完成后释放资源之前可能发生的动作的流程图;图6是根据本专利技术的多个方面,表示可在其中实现本专利技术的示例性环境的框图;图7是根据本专利技术的多个方面,表示可在其中实现本专利技术的另一个示例性环境的框图。具体实施例方式示例性操作环境图1示出了可在其上实现本专利技术的合适的计算系统环境100的示例。计算系统环境100只是合适的计算环境的一个示例,并不旨在对本专利技术的使用范围或功能提出任何限制。也不应该把计算环境100解释为对示例性操作环境100中示出的任一组件或其组合有任何依赖性或要求。本专利技术可用众多其它通用或专用计算系统环境或配置来操作。适合在本专利技术中使用的公知的计算系统、环境和/或配置的示例包括,但不限于,个人计算机、服务器计算机、手持或膝上型设备、多处理器系统、基于微控制器的系统、机顶盒、可编程消费者电子产品、网络PC、小型机、大型机、包含上述系统或设备中的任一个的分布式计算机环境等。本专利技术可在诸如由计算机执行的程序模块等的计算机可执行指令的通用语境下描述。一般而言,程序模块包括例程、程序、对象、组件、数据结构等,它们执行特定任务或实现特定抽象数据类型。本专利技术也可以在分布式计算环境下实现,其中任务由通过通信网络连接的远程处理设备执行。在分布式计算环境中,程序模块可以位于包括存储器存储设备在内的本地和远程计算机存储介质中。参考图1,用于实现本专利技术的一个示例性系统包括计算机110形式的通用计算设备。计算机110的组件可以包括,但不限于,处理单元120、系统存储器130和将包括系统存储器在内的各种系统组件耦合至处理单元120的系统总线121。系统总线121可以是若干类型的总线结构中的任一种,包括存储器总线或存储器控制器、外围总线和使用各种总线体系结构中的任一种的局部总线。作为示例,而非限制,这样的体系结构包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、扩展的ISA(EISA)总线、视频电子技术标准协会(VESA)局部总线和外围部件互连(PCI)总线(也被称为Mezzanine总线)。计算机110通常包括各种计算机可读介质。计算机可读介质可以是能够被计算机110访问的任何可用介质,且包括易失性和非易失性介质、可移动和不可移动介质。作为示例,而非限制,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以任何方法或技术实现的用于存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括,但不限于,RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光盘存储、磁带盒、磁带、磁盘存储或其它磁性存储设备、或能用于存储所需信息且可以由计算机110访问的任何其它介质。通信介质通常具体化为诸如载波或其它传输机制等已调制数据信号中的计算机可读指令、数据结构、程序模块或其它数据,且包含任何信息传递介质。术语“已调制数据信号”指的是这样一种信号,其一个或多个特征以在信号中编码信息的方式被设定或更改。作为示例,而非限制,通信介质包括有线介质,诸如有线网络或直接线连接,以及无线介质,诸如声学、RF、红外线和其它无线介质。上述中任一个的组合也应包括在计算机可读介质的范围之内。系统存储器130包括易失性或非易失性存储器形式的计算机存储介质,诸如只读存储器(ROM)131和随机存取存储器(RAM)132。基本输入/输出系统133(BIOS)包含有助于诸如启动时在计算机110中元件之间传递信息的基本例程,它通常存储在ROM 131中。RAM 132通常包含处理单元120可以立即访问和/或目前正在操作的数据和/或程序模块。作为示例,而非限制,图1示出了操作系统134、应用程序135、其它程序模块136和程序数据137。计算机110也可以包括其它可移动/不可移动、易失性/非易失性计算机存储介质。仅作为示例,图1示出了从不可移动、非易失性磁介质中读取或向其写入的硬盘驱动器141,从可移动、非易失性磁盘152中读取或向其写入的磁盘驱动器151,以及从诸如CD ROM或其它光学介质等可移动、非易失性光盘156中读取或向其写入的光盘驱动器155。可以在示例性操作环境下使用的其它可移动/不可移动、易失性/非易失性计算机存储介质包括,但不限于,盒式磁带、闪存卡、数字多功能盘、数字录像带、固态RAM、固态ROM等。硬盘驱动器141通常由不可移动存储器接口,诸如接口140连接至系统总线121,磁盘驱动器151和光盘驱动器155通常由可移动存储器接口,诸如接口150连接至系统总线121。以上描述和在图1中示出的驱动器及其相关联的计算机存储介质为计算机110提供了对计算机可读指令、数据结构、程序模块和其它数据的存储。例如,在图1中,硬盘驱动器141被示为存储操作系统144、应用程序145、其它程序模块146和程序数据147。注意,这些组件可以与操作系统134、应用程序135、其它程序模块136和程序数据137相同或不同。操作系统144、应用程序145、其它程序模块146和程序数据147在这里被标注了不同的标号是为了说明至少它们是不同的副本。用户可以通过输入设备,诸如键盘162和定点设备161(通常指鼠标、跟踪球或触摸垫)向计算机110输入命令和信息。其它输入设备(未示出)可以包括麦克风、操纵杆、游戏垫、圆盘式卫星天线、扫描仪、手持PC或其它书写板的触敏屏等。这些和其它输入设备通常由耦合至系统总线的用户输入接口160连接至处理单元120,但也可以由其它接口或总线结构,诸如并行端口、游戏端口或通用串行总线(USB)连接。监视器191或其它类型的显示设备也经由接口,诸如视频接口本文档来自技高网...

【技术保护点】
一种含有计算机可执行指令的计算机可读介质,包括:跟踪在完成与版本存储相关的多个事务中潜在会使用的资源数量;在启动一个新事务之前,确定是否有足够的资源可用于完成所述新事务;如果有足够的资源可用,则启动所述新事务;以及如果没有足够的资源可用,则等待直到有更多的资源可用。

【技术特征摘要】
US 2004-10-7 10/960,6751.一种含有计算机可执行指令的计算机可读介质,包括跟踪在完成与版本存储相关的多个事务中潜在会使用的资源数量;在启动一个新事务之前,确定是否有足够的资源可用于完成所述新事务;如果有足够的资源可用,则启动所述新事务;以及如果没有足够的资源可用,则等待直到有更多的资源可用。2.如权利要求1所述的计算机可读介质,其特征在于,所述多个事务中的至少一个是在进行中的。3.如权利要求1所述的计算机可读介质,其特征在于,还包括对所述多个事务潜在会使用的资源数量设置限制。4.如权利要求1所述的计算机可读介质,其特征在于,所述版本存储在每一事务启动之前创建数据库的一个新快照。5.如权利要求4所述的计算机可读介质,其特征在于,所述快照在日志文件中作为差异来维护。6.如权利要求4所述的计算机可读介质,其特征在于,所述数据库在创建所述新快照之前含有第一状态,且所述第一状态是可从所述日志文件中连同所述数据库的第二状态一起创建的。7.如权利要求1所述的计算机可读介质,其特征在于,所述等待直到有更多的资源可用包括阻塞一个线程直到资源可用。8.如权利要求1所述的计算机可读介质,其特征在于,还包括获取跟踪在完成与版本存储相关的多个事务中潜在会使用的资源的数量的数据结构的锁;修改所述数据结构以包含关于所述新事务的信息;以及之后释放所述锁。9.如权利要求8所述的计算机可读介质,其特征在于,所述数据结构包括一双向链表,且其中,修改所述数据结构以包括关于所述新事务的信息包括添加一个节点至所述数据结构。10.如权利要求8所述的计算机可读介质,其特征在于,所述数据结构将所述事务按时间排序。11.如权利要求1所述的计算机可读介质,其特征在于,还包括完成一个事务,且如果所述事务在仍在进行中的其它事务中的任何一个之前启动,那么修改在完成所述多个事务时潜在使用的资源的数量。12.如权利要求1所述的计算机可读介质,其特征在于,还包括完成一个事务,且如果所述事务在仍在进行中的其它事务中的任何一个之后启动,那么不修改潜在使用的资源的数量。13.如权利要求12所述的计算机可读介质,其特征在于,还包括修改与进行中的前一事务相关联的数据来添加已经完成的事务潜在使用的资源的数量。14.如权利要求13所述的计算机可读介质,其特征在于,还包括完成所述前一事务,并且修改潜在使用的资源数量来释放由所述数据指示的一些资源。15.如权利要求1所述的计算机可读介质,其特征在于,跟踪在完成与版本存储相关的多个事务时潜在会使用的资源数量包括在一个信号上阻塞。16.一种用于限制资源使用的方法,包括设置指示可以由进行中的事务消耗的资源总量的限制;维护指示仍可由任何新的事务使用的剩余资源量的累计;以及基于所述累计和完成一个新事务潜在所需的资源的需求数量,来确定是否存在足够的资源来完成所述的新事务。17.如权利要求16所述的方法,其特征在于,还包括,将所述累计初始化为所述限制。18.如权利要求16所述的方法,其特征在于,还包括,如果存在足够的资源来启动所述新事务,则启动所述...

【专利技术属性】
技术研发人员:R普迪佩迪
申请(专利权)人:微软公司
类型:发明
国别省市:US[美国]

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

1