数据访问控制的制作方法

文档序号:6416401阅读:124来源:国知局
专利名称:数据访问控制的制作方法
领域本申请涉及数据访问控制。
背景在一个传统的分布式数据库系统中,多个客户端计算机通过局域网(LAN)耦合至多个服务器计算机。该系统还包括各服务器能够访问的数据库存储器。
在该传统系统中,客户端计算机可通过向服务器计算机发出访问请求消息来请求对存储于数据库存储器中的数据进行访问,该访问请求消息请求这种访问。响应于该消息,服务器计算机可对服务器计算机之间所共享的访问特权和访问锁闭信息进行检查,以确定请求对数据库存储器中的数据进行访问的客户端计算机是否已被准许能够访问该数据的特权,以及是否由于对数据的访问被锁闭而不能准许客户端计算机访问数据,例如支持当前被准许对数据进行独占访问的另一客户端计算机。从而,在该传统系统中,服务器计算机的一部分处理资源可用来检查共享的特权和访问锁闭信息,并用于从中确定是否向客户端计算机准许访问数据库存储器中的数据的许可,以及管理对访问该数据的闭锁。
附图简述随着下面的详细说明的进行,以及基于对附图的参考,所要求保护的主题的实施例的特征和优点将变得清楚,附图中相同的参考标号表示相同的部分,附图中

图1是说明系统实施例的示图。
图2是说明根据一个实施例的数据库访问管理设备的构造的示图。
图3是说明可根据一个实施例进行的操作的流程图。
虽然下面的详细说明将参考示例性的实施例进行,但是它们的许多替代、修改和变型对于本领域的技术人员来说将是显而易见的。因此,应更为宽泛地解释所要求保护的主题,并且仅如所附权利要求中提出的那样来定义。
详细说明图1是系统实施例100的图。系统100包括例如电气耦合到通信网络120的多个客户端计算机节点130A、130B、……、130N。系统100还包括例如电气耦合到另一通信网络120的多个服务器计算机节点140A、140B、……、140N。网络110和120可以通过网络段220和230互相电气耦合。网络段220可包括例如访问管理设备计算机节点170。网络段210可包括诸如路由器节点210之类的网络间路由器。可选地,网络段230可包括例如网络转接节点(未示出)或网桥节点(也未示出),不包括路由器节点210,而不背离本实施例。
图1中所示的客户端节点130A、130B、……、130N和服务器节点140A、140B、……、140N的各自数量仅仅是出于说明的目的。从而,系统100中的客户端节点130A、130B、……、130N和服务器节点140A、140B、……、140N的各自数量可变化,而不背离该本实施例。此外,系统中客户端节点130A、130B、……、130N的数量可以与服务器节点140A、140B、……、140N的数量不同,而不背离本虽然图中未示出,但是客户端节点130A、130B、……、130N、路由器计算机节点210和服务器节点140A、140B、……、140N的各自数量中的每一个可包括各自的计算机可读存储器,用于存储包括与这里所描述的由节点130A、130B、……、130N、节点210、以及节点140A、140B、……、140N执行的操作和/或功能相关联或用于执行这些操作和/或功能的各自的网络通信协议程序和数据结构。此外,节点130A、130B、……、130N、节点210、以及节点140A、140B、……、140N中的每一个可包括可执行这些软件程序和/或操作这些数据结构的各自的处理器和/或通信电路(如各自的网络接口电路)。节点130A、130B、……、130N、节点210、以及节点140A、140B、……、140N中的这些各自的处理器和/或通信电路对这些软件程序的执行和/或对这些数据结构的操作,可导致节点130A、130B、……、130N、节点210、以及节点140A、140B、……、140N执行如这里所描述的由节点130A、130B、……、130N、节点210、以及节点140A、140B、……、140N执行的操作和/或功能。
在该实施例中,每个网络110和120可包括一个或多个各自的局域网和/或广域网,它们利用一个或多个已知的网络通信协议,例如以太网协议、传输控制协议/网际协议(TCP/IP)、和/或光纤信道(FC)协议。例如,网络110可包括将客户端节点130A、130B、……、130N电气耦合在一起的LAN,网络120可包括将服务器节点140A、140B、……、140N电气耦合在一起的LAN。这可允许客户端节点130A、130B、……、130N和服务器节点140A、140B、……、140N彼此之间按照或遵循一个或多个这样的协议来交换分组和/或帧。这些分组和/或帧可包括含命令和/或数据的消息。
如果在网络110和/或网络120中使用以太网协议,它可与2000年10月20日出版的电气和电子工程师协会(IEEE)802.3标准2000版中描述的协议相符合或兼容。如果在网络110和/或网络120中使用TCP/IP协议,它可与1981年9月出版的因特网工程任务组(IETF)标准草案(RFC)791和793相符合或兼容。如果在网络110和/或网络120中使用FC协议,它可与ANSI标准光纤信道(FC)物理和信令接口-3 X3.3031998规范相符合或兼容。当然,网络110和/或120中可使用其它网络通信协议而不背离该实施例。
每个服务器计算机节点140A、140B、……、140N可与各数据库存储器150A、150B、……、150N相关联,与之电气耦合以及控制它们的各自的操作。每个数据库存储器150A、150B、……、150N可包括各自的大容量存储器152A、152B、……、152N。每个大容量存储器152A、152B和152N可包括例如各自的一组一个或多个磁盘、光盘、固态、和/或半导体大容量存储设备(未示出),包括例如各自的(未示出)冗余阵列廉价磁盘(RAID)。服务器计算机节点140A、140B、……、140N可分别与数据库存储器150A、150B、……、150N交换数据和/或命令,这会导致大容量存储器152A、152B、……、152N分别存储数据库数据154A、154B、……、154N,和/或服务器节点140A、140B、……、140N分别访问数据库存储器150A、150B、……、150N,以分别访问数据库数据154A、154B、……、154N。
访问管理设备节点170可与数据库访问管理存储器180相关联,与之耦合,并控制其操作。存储器180可包括大容量存储器190。大容量存储器190可包括例如一组一个或多个磁盘、光盘、固态和/或半导体大容量存储设备(未示出),包括例如冗余阵列廉价磁盘(RAID)。设备节点170可与存储器180交换数据和/或命令,这会导致大容量存储器190存储访问准许和/或锁闭信息200,和/或节点170访问存储器180以访问信息200。
图2是说明根据一个实施例的数据库访问管理设备节点170的构造的示图。如图2所示,设备节点170可包括工作电路400。电路400可包括诸如电路卡402、404和406之类的工作电路。卡402、404和406可电气耦合到(例如通过未示出的各自的总线扩展槽)总线408。这里所称的“总线”是指在两个或多个设备之间传送数据的电路;这种电路可包括例如一个或多个通信介质,通过它们,一个或多个信号可在这些设备之间传播。
卡402可包括工作电路,该工作电路可包括I/O处理器410和计算机可读存储器412。在该实施例中,卡402中的该工作电路可电气耦合到网络110。
卡404可包括工作电路,该工作电路可包括I/O处理器414和计算机可读存储器416。在该实施例中,卡404中的该工作电路可电气耦合到存储器180。
卡4046可包括工作电路,该工作电路可包括I/O处理器418和计算机可读存储器420。在该实施例中,卡406中的该工作电路可电气耦合到网络120。
总线408可包括符合从美国俄勒冈州波特兰市的PCI专用业务组可获得的1998年12月18日的修订版2.2的外设部件互连(PCI)局部总线规范的总线系统(下文中称为是“PCI总线”)。可选地,总线408可包括符合从美国勒冈州波特兰市的PCI专用业务组可获得的2000年7月24日修订版1.0a的PCI-X规范的总线系统(下文中称为是“PCI-X总线”)。可选地,总线408可包括其它类型和配置的总线系统,而不背离本实施例。可在例如计算机主板(未示出)中包含总线408,计算机主板可包括总线扩展槽,用于将卡402、404和406的各工作电路耦合到总线408。例如,卡402、404和406可被构造成插入于这些总线扩展槽中;当卡402、404和406如此插入于这些总线扩展槽中时,卡402、404和406的各工作电路可成为电气上与总线408耦合。
根据具体的实施例,计算机可读存储器412、416和420中的每一个可包括下列类型的计算机可读存储器中的一个或多个半导体固件存储器、可编程存储器、非易失性存储器、只读存储器、电可编程存储器、随机存取存储器、高速缓冲存储器、闪存存储器、磁盘存储器和/或光盘存储器。此外,应理解,计算机可读存储器412、416和420中的每一个还可包括或替代地可包括其它的和/或将来开发的类型的计算机可读存储器。处理器410、414和418中的每一个可包括集成电路芯片组中包含的集成电路芯片(未示出),例如商业上可从本申请的受让人获得的那些芯片(例如,Intel80310芯片组)。可选地,处理器410、414和418中的每一个可包括其它集成电路芯片(如Intel80960 RM/RN I/O处理器、Intel80321处理器、和/或可从本申请的受让人之外的来源获得的其它类型的处理器),或不背离所要求保护的主题的该实施例的其它类型的处理器/集成电路。
当然,卡402、404和406中的各工作电路不需要包含于卡402、404和406中。相反,在不背离本实施例的情况下,可包含于耦合于总线408并以这里所述的方式与系统100的其它组件交换数据和/或命令的其它结构、系统和/或器件中。可选地,卡402、404和406中的各工作电路可包含于可耦合于总线408的单个电路卡(未示出)中。
此外,卡402、404和406中的各工作电路可不限于这里已描述的包含于卡402、404和406中的各工作电路。相反,在不背离本实施例的情况下,卡402、404和406的各工作电路可包括其它额外的和/或替代的电路,可允许和/或促进卡402、404和406执行这里所述的由卡402、404和406执行的操作和/或额外的和/或其它的操作。
虽然图中未示出,但是,在不背离本实施例的情况下,工作电路400还可包括例如将主处理器、系统存储器、以及用户接口系统互相耦合或耦合到总线408的主网桥/集线器系统。设备节点170还可包括可将主网桥/总线系统耦合到总线408的I/O网桥/集线器系统(未示出)。主处理器可包括例如商业上可从本申请的受让人处获得的Intel奔腾III或奔腾IV微处理器。当然,可选地,主处理器12可包括其它类型的微处理器。用户接口系统可包括例如键盘、定点设备、以及显示系统,可允许人类用户向设备节点170输入命令,以及监控其操作。
各组计算机可读程序指令可存储于计算机可读存储器412、416和420中。这些指令集可分别由处理器410、414和418访问和执行。当由处理器410、414和418执行时,这些各指令集可导致处理器410、414和418分别执行这里所述的由处理器410、414和418执行的操作。根据一个实施例,将参考图3描述可在系统中100中执行的这些和其它操作500。
更具体地来说,在系统100中,当客户端节点130A、130B、……、130N中的一个(如客户端节点130B)的人类用户希望访问存储于数据库存储器150B中的数据库数据154B的一部分(例如部分160)时,该用户可通过例如未示出的用户接口向该客户端节点130B发出命令,以访问数据库数据154B的该部分160。如这里所使用的,“访问”数据可包括读取、写入、更新和/或修改数据。响应于该命令,客户端节点130B可向设备节点170产生并发出访问请求消息300,如图3中操作502所例示出的那样。如这里所使用的,“消息”意味着用于传递信息的数据值的一个序列,并可包括例如符合例如先前所述的一个或多个通信协议的一个或多个帧、分组和/或数据报。消息300可包括和/或指示出来自客户端节点130B的请求,请求设备节点170准许客户端节点130B访问数据库数据154B的部分160。更为具体地,消息300可包括和/或指示出可识别和/或指定信息的一个或多个值,例如客户端节点130B的人类用户、客户端节点130、被请求访问的数据库数据154B的部分160、对被请求的部分160的访问类型(如读共享、排他读、更新/修改、排他写、写共享、和/或删除访问等等)、请求保持部分160的一贯性的数据访问锁闭、和/或超时周期,在该超时周期后,对部分160的任何请求的访问准许和/或访问锁闭都期满和/或不保持有效。此后,由可包含于消息300和/或由消息300指示出的这些一个或多个值识别和/或指定的信息被称为“请求消息信息”。
可根据例如可识别和/或指定数据库数据154B中的一个或多个对应记录和/或数据库存储器150B和/或大容量存储器152B中的一个或多个地址范围的一个或多个值,在消息300中识别和/或指定部分160。根据包含于部分160中的数据库数据的类型,消息300中可请求的数据访问锁闭的类型的例子可包括,例如下列类型的数据访问锁闭中的一个或多个行级锁闭、页面级锁闭、表级锁闭、共享访问锁闭、排他访问锁闭、以及带有改变到排他访问的当前共享访问的锁闭(currently-shared-with-intent-to-change-to-exclusive access lock)。
在从客户端节点130B发出之后,消息300可通过网络110传送到网络段220,然后传送到设备节点170。设备节点170中的卡402的工作电路可接收来自网络110的消息300。至少部分地响应于卡402中的工作电路对消息300的接收,卡402中的该工作电路可向处理器410发信号。这会导致处理器402经过总线408向处理器414发信号。这会导致处理器414判断是否准许包含于信息300中的请求(即,请求设备节点170准许客户端节点130B访问数据库数据154B的部分160),如图3中的操作504所例示出的那样。
例如,作为操作504的结果,处理器414可检查消息300,并可从中确定可包含于其中、从其中指定和/或规定的请求信息。至少部分地根据该请求信息和访问准许和锁闭信息200,处理器414可判断是否准许客户端节点130B访问由请求信息请求的部分160。又,至少部分地根据该请求信息和访问准许和锁闭信息200,处理器414可判断是否向客户端节点130B准许这种请求信息中请求的任何数据访问锁闭。
也就是说,访问准许和锁闭信息200可包括可将例如客户端节点130A、130B、……、130N和/或客户端节点130A、130B、……、130N的人类用户与对数据库数据154A、154B、……、154N的各部分的访问特权相关联的数据。这些访问特权可指示出和/或指定例如对数据库数据154A、154B、……、154N的各部分,例如数据库数据154B的部分160,的访问类型(如读共享、排他读、更新/修改、排他写、写共享、和/或删除访问等等),可允许各客户端节点130A、130B、……、130N和/或客户端节点130A、130B、……、130N的各人类用户被设备节点170准许这种访问。访问准许和锁闭信息200还可包括可将例如当前被准许的数据访问和数据访问锁闭与可能经受这种当前被准许的数据访问和数据访问锁闭的数据库数据154A、154B、……、154N的各部分(例如一个或多个记录)以及各超时周期相关联的数据,在超时周期后,这种当前被准许的数据访问和数据访问锁闭可能期满和或不保持有效。信息200还可将当前被准许的数据访问和/或数据访问锁闭与各客户端节点130A、130B、……、130N和/或当前可能被准许这种数据访问和/或数据访问锁闭的人类用户、以及这种当前被准许的数据访问和/或数据访问锁闭的类型相关联。信息200还可将这些数据库数据154A、154B、……、154N的各部分与各数据库存储器150A、150B、……、150N和/或大容量存储器152A、152B、……、152N地址和/或可包括这些数据库数据154A、154B、……、154N的各部分的数据库数据记录相关联。在信息200中,这些数据库数据154A、154B、……、154N的各部分还可与各服务器节点14A、140B、……、140N相关联,各服务器节点可与包括这些各部分的各数据库存储器150A、150B、……、150N相关联。
例如,信息200可包括散列表(未示出)。该散列表可包括指针数组,指向各双重链表的头节点。这些双重链表中的每个节点可代表至少一个客户端节点130A、130B、……、130N和/或至少一个人类用户当前被准许访问的和/或经受当前数据访问锁闭的数据库数据154A、154B、……、154N的各部分(例如包括一个或多个记录)。根据和/或按照常规的散列函数,这些双重链表中的每个这样的节点可与给定的一个链表130A、130B、……、130N相关联或可包含于其中,所述散列函数可将可按照数据库存储器150A、150B、……、150N中的一个或多个对应的数据库记录和/或一个或多个地址范围来识别这些数据库数据154A、154B、……、154N的各部分的一个或多个值映射到指针数组中的索引。这些双重链表中的各节点还可包括例如一个或多个各自的值,可指示出和/或指定由各节点所代表的数据库154A、154B、……、154N的各部分、数据库数据154A、154B、……、154N的各部分当前经受的数据库访问和/或访问锁闭的类型、以及系统100中准许这种访问和/或对其有利而已被准许这种锁闭的客户端节点。此外,这些双重链表中的各节点中的一个或多个各自的值可指示出和/或指定例如各自的超时周期,在所述超时周期之后,这种当前被准许的数据访问和/或数据访问锁闭可能期满和/或不保持有效,以及这些当前被准许的数据访问和/或数据访问锁闭被准许和/或设备节点170可能已接收到请求准许的请求消息的时间。
处理器414可从消息300中的请求信息判断出可识别和/或指定发出消息300的客户端节点130B、该客户端节点130B的人类用户、客户端节点130B正在请求访问的数据库数据154B的各部分160、客户端节点130B请求的访问和访问锁闭的类型的一个或多个值。处理器414然后可对信息200中指示出的客户端节点130B和/或客户端节点130B的人类节点的数据库访问特权(如果有的话)进行比较,以判断客户端节点130B和/或客户端节点130B的人类用户是否由足够的特权来被准许消息300中请求的访问和访问锁闭的类型。如果处理器414判断出客户端节点130B和/或客户端节点130B的人类用户不具有足够的特权来被准许消息300中请求的访问和访问锁闭的类型,处理器414可判断不准许消息300中请求的访问和访问锁闭,并且处理器414可向处理器410发信号。这会导致卡402的工作电路产生并通过网络110向客户端节点130B发出访问回答消息(未示出),该消息可指示出客户端节点130B和/或客户端节点130B的人类用户未被准许消息300中请求的访问和访问锁闭,因为客户端节点130B和/或该人类用户缺少被准许该访问和访问锁闭的足够特权。
相反,如果处理器414判断出客户端节点130B和/或客户端节点130B的人类用户具有足够的特权被准许消息300中请求的访问和访问锁闭,则处理器414可利用常规的散列操作,至少部分地根据消息300中可识别部分160的一个或多个值,来产生对信息200中的散列表的索引。处理器414可在该散列表中定位可能与该索引有关的链表,并可检查该链表来判断该链表中是否存在代表部分160的节点。
如果这种节点存在,处理器414可检查该节点的内容,以确定当前可对部分160准许的数据访问的类型和/或部分160当前可能经受的访问锁闭的类型。处理器414然后可将当前可对部分160准许的数据访问的各类型和/或部分160当前可能经受的数据锁闭的类型与消息300中请求的数据访问和访问锁闭的类型相比较,以判断消息300中请求的数据访问和访问锁闭的类型是否与当前可对部分160准许的数据访问的各类型和/或部分160当前可能经受的数据锁闭的类型中任一个相冲突。如果处理器414判断出存在冲突,则处理器414至少暂时地不会准许消息300中请求的数据访问和访问锁闭,如图3中操作506所例示出的那样。此后,处理器414可对消息300中指示出的数据访问和访问锁闭请求进行排队,以用于可能的将来的准许(例如在可能与消息300中请求的数据访问和锁闭冲突的任何当前准许的访问和访问锁闭期满之后),如操作508所例示出的那样。例如,在先前准许的访问或访问锁闭期满之后,处理器414可向存储器180发信号。这导致存储器180更新信息200中的散列表,以删除对期满的被准许的访问或访问锁闭的引用,并且在这种更新之后,如果在散列表中的给定节点中没有指示出对由该节点表示的数据库数据的部分的当前被准许的访问或访问锁闭,存储器180可从散列表中删除该节点。在可能与消息300中请求的数据访问和访问锁闭冲突的任何当前被准许的访问和访问锁闭期满之后,操作504可再次进行,以判断是否要准许消息300中请求的数据访问和访问锁闭。
作为操作504的结果,如果处理器414判断出散列表中不存在代表部分160的节点,或判断出散列表中没有指示出的当前被准许的访问和访问锁闭与消息300中的数据访问和访问锁闭请求相冲突,则作为操作506的结果,处理器414可准许消息300中的数据访问和锁闭请求。这会导致存储器414向存储器180发信号。这会导致存储器180更新信息200以反映出设备节点170准许消息300中请求的数据访问和访问锁闭,如图3中操作510所例示出的那样。例如,作为操作504的结果,如果处理器414判断出散列表中不存在代表部分160的节点,则处理器414可向存储器180发信号。这会导致存储器180在散列表中包含代表部分160的节点,该节点包括信息,指示出客户端节点130B和/或客户端节点130B的人类用户已被准许消息300中请求的访问类型、部分160已受制于消息300中请求的访问锁闭、以及该访问和访问锁闭的准许和期满(如果有的话)时间。又,例如,如果作为操作504的结果,处理器414判断出散列表中存在代表部分160的节点,但是该节点中没有指示出当前被准许的访问和访问锁闭与消息300中的数据访问和锁闭请求相冲突,则处理器414可向存储器180发信号。这会导致存储器180在散列表中当前存在的代表部分160的节点中包含信息,指示出客户端节点130B和/或客户端节点130B的人类用户已被准许消息300中请求的访问类型、部分160已受制于消息300中请求的访问锁闭、以及该访问和访问锁闭的准许和期满(如果有的话)时间。
此后,处理器414可向处理器418发信号。这会导致处理器418向卡406中的工作电路发信号。这会导致卡406中的工作电路产生并通过网络120向与包含数据库数据154B的部分160的数据库存储器150B相关联的服务器节点140B发出访问准许消息,如图3中操作512所例示出的那样。可选地,作为操作512的一部分,除了向服务器节点140B发出访问准许消息310之外,卡402中的工作电路还可通过网络110向客户端节点130B发出相应的访问准许消息310。访问准许消息310可包括和/或指定令牌,该令牌可指定和/或指示出一个或多个值,所述一个或多个值可指定和/或识别出例如部分160、作为操作506的结果而对部分160准许的访问和访问锁闭的类型、客户端节点130B、服务器节点140B、以及访问和访问锁闭的准许和期满时间(如果有的话)。
至少部分地响应于服务器节点140B对访问准许消息310的接收,服务器节点140B可向数据库存储器150B发信号。这会导致数据库存储器150B向服务器节点140B发送数据库数据154B的部分160。在服务器节点140B接收数据库数据154B的部分160之后,服务器节点140B可产生并通过网络120、网络段230和网络110向客户端节点130B发送可包括部分160的一个或多个消息(在这里统称和/或单称为“消息320”),如图3中操作514所例示出的那样。例如,消息320可包括头部322和数据净荷324。净荷324可包括例如部分160的副本。可选地,或者除此之外,净荷324可包括例如指示出写入了部分160的确认。头部322可包括网络路由信息,可指定和/或指示出从服务器节点140B到客户端节点130B传播、转送和/或路由消息320的路径350。例如,在该实施例中,路径350可穿过网络120、网络段230和网络110。然而,路径350可绕过(即不包括)网络段220。这可导致从服务器节点140B经过绕过包括设备节点170的网络段220的网络路由350将消息320路由到客户端节点130B。在客户端节点130B接收消息320之后,客户端节点130B可存储包含于消息320中的数据库数据154B的部分160的副本。客户端节点130B可先前已在客户端节点130B中保留和/或存储了访问准许消息310中包含和/或指定的令牌;这允许客户端节点130B保留可能已由所述令牌指定和/或指示出的访问特权等。例如,这可允许客户端节点130B的人类用户能够察看和/或修改存储于客户端节点130B中的部分160的副本。
此后,客户端节点130B可修改存储于客户端节点130B中的数据库数据154B的部分160的副本,如图1的操作516所例示出的那样。例如,客户端节点130B的人类用户可通过未示出的用户接口向客户端节点130B发出可导致客户端节点130B修改客户端节点130B中的部分160的副本的一个或多个命令。此后,为了启动对存储于存储器150B中的数据库数据154B的部分160的更新,以反映出对客户端节点130B中的部分160的副本作出的修改(例如,以便修改存储于存储器150B中的部分160,从而与存储于客户端节点130B中的部分160的副本相同),客户端节点130可产生并通过网络110向设备节点170发出额外的访问请求消息330,如图1中操作518所例示出的那样。消息330可包含先前所述的可包含于消息300中的类型的请求消息信息。消息300中的请求消息信息可请求例如准许客户端节点130B访问数据库存储器150B中数据库154B的部分160,以便对存储器150B中的部分160进行写,以及把排他的数据修改访问锁闭施加于存储器150B的部分160上,准许客户端节点130B排他访问存储器150B中的部分160,直到客户端节点130B完成了对存储器150B中的部分160的写为止。如果由设备节点施加,则该请求的访问锁闭可防止系统100中除了客户端节点130B之外的任何客户端节点被准许对存储器150B中的部分160的任何其它访问,而对存储器150B中的部分160的读取除外。
在从客户端节点130B发出之后,消息330可通过网络110发送到网络段220,随后发送到设备节点170。设备170中的卡402的工作电路可接收来自网络110的消息330。至少部分地响应于卡402中的工作电路对消息330的接收,卡402中的工作电路可向处理器410发信号。这会导致处理器402通过总线408向处理器414发信号。这会导致处理器414判断是否要准许包含于消息330中的数据访问和访问锁闭请求(例如,客户端节点130B被准许对数据库存储器150B中的数据库154B的部分160的访问,以便对存储器150B中的部分160进行写,以及把排他访问锁闭施加于存储器150B中的部分160上,准许客户端节点130B排他访问存储器150B中的部分160,直到客户端节点130B完成了对存储器150B中的部分160的写为止),如图3中操作520所例示出的那样。可在系统100中执行操作520的方式可以是例如与系统100中执行操作504的方式相等同。
作为操作520的结果,如果处理器414判断出不准许消息330中包含的数据访问和访问锁闭请求,则处理器414至少暂时不会准许消息330中包含的数据访问和访问锁闭请求,如操作522所例示的那样。此后,处理器414可对消息300中指示出的数据访问和访问锁闭请求进行排队,以用于可能的将来的准许(例如在可能与消息330中的数据访问和锁闭请求冲突的任何当前准许的访问和访问锁闭期满之后),如操作524所例示出的那样。可在系统100中执行操作522的方式可以是例如与系统100中执行操作506的方式相等同。此外,可在系统100中执行操作524的方式可以是例如与系统100中执行操作508的方式相等同。
相反,作为操作520的结果,如果处理器414判断要准许包含于消息330中的数据访问和访问锁闭请求,则如操作522所例示出的那样,处理器414可准许包含于消息330中的数据访问和访问锁闭请求。这会导致处理器414向存储器180发信号。这会导致存储器180更新信息200,以反映出设备节点170准许消息330中请求的数据访问和访问锁闭,如图3中操作526所例示出的那样。可在系统100中执行操作526的方式可以是例如与系统100中执行操作510的方式相等同。
此后,处理器414可向处理器410发信号。这会导致处理器410向卡402中的工作电路发信号。这会导致卡402中的工作电路产生并通过网络110向客户端节点130B发出另一访问准许消息340,如图3中操作528所例示出的那样。可选地,作为操作528的一部分,除了向客户端节点130B发出其它访问准许消息340之外,卡406中的工作电路还可通过网络120向服务器节点140B发出相应的访问准许消息340。访问准许消息340可包含和/或指定一个或多个值,所述一个或多个值可指定和/或识别出例如部分160、作为操作522的结果而对部分160准许的访问和访问锁闭的类型、服务器节点140B、客户端节点130B、以及准许的访问和访问锁闭的准许和期满时间(如果有的话)。
至少部分地响应于客户端节点130B对访问准许消息340的接收,客户端节点130B可产生并向服务器节点140B发送可包含由客户端节点130B修改的部分160的副本的一个或多个消息(这里统称和/或单称为“消息351”),如图3中操作530所例示出的那样。例如,消息351可包括头部354和数据净荷352。净荷352可包括例如客户端节点130B修改的部分160的副本。头部354可包括网络路由信息,可指定和/或指示出消息351从客户端节点130B到服务器节点140B传播、转送和/或路由的路径350。如先前所述,在该实施例中,路径350可穿过网络120、网络段230和网络110;然而,路径350可绕过(即不包括)网络段220。这可导致消息351从客户端节点130B经由绕过包括设备节点170的网络段220的网络路由350路由到服务器节点140B。至少部分地根据服务器节点140B对消息351的接收,服务器节点140B可向数据库存储器150B发信号。这会导致存储器150B用客户端节点130B修改的部分160的副本重写数据库数据154B的部分160。这会导致数据库数据154B的部分160的更新,以反映出客户端节点130B对存储于客户端节点130B中的部分160的副本作出的修改,同样如图3中操作530所例示出的那样。
此后,服务器节点140B可产生并通过网络120向设备节点170发出更新消息360,如图3中操作532所例示出的那样。消息360可包括一个或多个值,所述一个或多个值可指示出和/或指定已经按照包含于消息330中的访问请求更新了数据库存储器150B中的部分160,并因此,可取消作为操作522的结果而准许的访问和访问锁闭。在从服务器节点140B发出之后,可通过网络120将消息360发送到网络段220,然后到设备节点170。设备170中卡406中的工作电路可接收来自网络120的消息360。至少部分地响应于卡406中的工作电路对消息360的接收,卡406中的工作电路可向处理器418发信号。这会导致处理器418通过总线408向处理器414发信号。这会导致处理器414向存储器180发信号。这会导致存储器180更新信息200以从信息200中删除有关作为操作506和522的结果而准许的访问和访问锁闭的指示,如操作534所例示出的那样。例如,作为操作534的结果,存储器180可更新信息200中的散列表,以删除对作为操作506和522的结果而准许的访问或访问锁闭的引用,此后,如果散列表中代表部分160的节点不包含存在对部分160的任何当前准许的访问或访问锁闭的任何指示,则存储器180可从散列表中删除该节点。
此后,处理器414可向处理器410发信号。这会导致处理器414向卡402中的工作电路发信号。这会导致卡402的工作电路产生并通过网络110向客户端130B发出处理完成消息370,如图3中操作536所例示出的那样。可选地,除了向客户端节点130B发出消息370之外,卡406中的工作电路可向服务器节点406发出相应的处理完成消息370。这可指示出操作500的结束。
总之,在一个系统实施例中,第一节点可包括耦合至至少一个客户端节点和至少一个服务器节点的电路。该电路可能够至少部分地响应于该电路接收的第一消息来判断是否准许所述至少一个客户端节点访问该至少一个客户端节点能够访问的数据。该第一消息至少部分地可包括准许该至少一个客户端节点访问所述数据的请求。在该系统实施例中,如果所述电路判断出准许访问数据,则所述电路还可能够产生并发出至少部分地指示出已准许所述至少一个客户端节点访问的第二消息。该电路还可能够修改该电路可访问的信息,以指示出已准许所述至少一个客户端节点访问。有利的是,根据该系统实施例,服务器节点的处理资源中没有部分可被用于判断是否准许客户端节点访问数据和/或更新和/或管理指示出已准许客户端节点这种访问的信息。
这里所采用的术语和表述是按照说明的范围来使用的,而非限制,而且,在使用这些术语和表述时,不打算排除所示和所描述的任何等价物(或其部分),并且,认识到各种修改在权利要求的范围内都是可能的。例如,设备节点170可加以准许的访问锁闭的类型可包括例如“读共享”、“写共享”、“排他读”、“排他写”、“更新/修改”和/或“删除”类型的访问锁闭。与数据库数据的各部分有关的读共享类型的访问锁闭的准许,可表示为了其利益而已准许锁闭的一个或多个客户端节点可读取但不能修改或删除数据的各部分。与数据库数据的各部分有关的读写享类型的访问锁闭的准许,可表示为了其利益而已准许锁闭的一个或多个客户端节点可对数据的各部分进行写。与数据库数据的各部分有关的排他读类型的访问锁闭的准许,可表示为了其利益而已准许锁闭的仅单个客户端节点可读取数据的各部分。与数据库数据的各部分有关的排他写类型的访问锁闭的准许,可表示为了其利益而已准许锁闭的仅单个客户端节点可对数据的各部分进行写。与数据库数据的各部分有关的更新/修改或删除类型的访问锁闭的准许,可表示为了其利益而已准许锁闭的单个客户端节点可分别更新或修改、或删除数据。然而,设备节点170可加以准许的访问锁闭的类型可不同于上述类型的访问锁闭,而不背离本实施例。
又,例如,虽然图中未示出,但是系统100可包括主设备节点170以及具有与节点170相同结构的未示出的冗余设备节点。该冗余设备节点可利用传统的故障检测和/或故障容错技术,来判断主节点170是否不再按照所期望的那样工作。如果冗余设备节点判断出主节点170不再按照所期望的那样工作,则冗余设备节点可利用传统的故障复原技术,来承担主节点170在系统100中先前进行的操作。
其它修改也是可能的。因此,旨在将权利要求解释为覆盖所有这样的修改。
权利要求
1.一种方法,其特征在于,所述方法包括通过第一节点处的电路至少部分地响应于第一节点处接收的第一消息,来判断是否准许第二节点访问第三节点可访问的数据,所述第一消息至少部分地包括准许第二节点访问所述数据的请求;以及如果所述电路判断出准许访问数据从所述电路产生并发出第二消息,该第二消息至少部分地指示出已准许第二节点进行访问;以及所述电路修改所述电路可访问的信息,以指示出已准许所述第二节点进行访问。
2.如权利要求1所述的方法,其特征在于,所述方法还包括所述电路判断是否当前准许访问;以及如果所述电路判断出当前准许访问,则在所述电路处对请求进行排队,直到所述电路判断出准许所述请求为止。
3.如权利要求2所述的方法,其特征在于,所述电路判断是否当前准许访问是至少部分地根据所述信息进行的。
4.如权利要求1所述的方法,其特征在于,所述请求请求的访问包括对数据的读和修改中的至少一个。
5.如权利要求1所述的方法,其特征在于,所述请求请求的访问包括对数据的修改;以及所述方法还包括还由所述电路修改所述信息以指示出已排他地准许所述第二节点进行访问。
6.如权利要求1所述的方法,其特征在于,向所述第三节点发出所述第二消息;以及至少部分地响应于所述第二消息,所述第三节点通过绕过包括所述第一节点的至少一个网络段的网络路由,向所述第二节点发出所述数据。
7.如权利要求1所述的方法,其特征在于,向所述第二节点发出所述第二消息;以及至少部分地响应于所述第二消息,所述第二节点通过绕过包括所述第一节点的至少一个网络段的网络路由,向所述第三节点发出所述数据的经修改的版本。
8.如权利要求1所述的方法,其特征在于,所述信息包括指示出是否对所述数据的访问被锁闭的锁闭信息;以及所述电路至少部分地根据所述锁闭信息判断是否准许访问。
9.一种装置,其特征在于,所述装置包括第一节点处的电路,所述电路能够至少部分地响应于第一节点处接收的第一消息,来判断是否准许第二节点访问第三节点可访问的数据,所述第一消息至少部分地包括准许第二节点访问所述数据的请求;以及如果所述电路判断出准许访问数据,所述电路还能够产生并发出第二消息,该第二消息至少部分地指示出已准许第二节点进行访问;以及修改所述电路可访问的信息,以指示出已准许所述第二节点进行访问。
10.如权利要求9所述的装置,其特征在于,所述电路还能够判断是否当前准许访问;以及如果第一节点判断出当前准许访问,则所述电路能够对请求进行排队,直到所述电路判断出准许所述请求为止。
11.如权利要求10所述的装置,其特征在于,所述电路能够至少部分地根据所述信息判断是否当前准许访问。
12.如权利要求9所述的装置,其特征在于,所述请求请求的访问包括对数据的读和修改中的至少一个。
13.如权利要求9所述的装置,其特征在于,所述请求请求的访问包括对数据的修改;以及所述电路还能够修改所述信息以指示出已排他地准许所述第二节点进行访问。
14.如权利要求9所述的装置,其特征在于,向所述第三节点发出所述第二消息;以及至少部分地响应于第二消息,所述第三节点通过绕过包括所述第一节点的至少一个网络段的网络路由,向所述第二节点发出所述数据。
15.如权利要求9所述的装置,其特征在于,向所述第二节点发出所述第二消息;以及至少部分地响应于所述第二消息,所述第二节点通过绕过包括所述第一节点的至少一个网络段的网络路由,向所述第三节点发出所述数据的经修改的版本。
16.如权利要求9所述的装置,其特征在于,所述信息包括指示出是否对所述数据的访问被锁闭的锁闭信息;以及所述电路能够至少部分地根据所述锁闭信息判断是否准许访问。
17.一种物品,其特征在于,所述物品包括其上存储有指令的存储介质,当由机器执行指令时,导致下述通过第一节点处的电路至少部分地响应于第一节点处接收的第一消息,来判断是否准许第二节点访问第三节点可访问的数据,所述第一消息至少部分地包括准许第二节点访问所述数据的请求;以及如果所述电路判断出准许访问数据从所述电路产生并发出第二消息,该第二消息至少部分地指示出已准许第二节点进行访问;以及所述电路修改所述电路可访问的信息,以指示出已准许所述第二节点进行访问。
18.如权利要求17所述的物品,其特征在于,当执行所述指令时还导致所述电路判断是否当前准许访问;以及如果所述电路判断出当前准许访问,则在所述电路处对请求进行排队,直到所述电路判断出准许所述请求为止。
19.如权利要求18所述的物品,其特征在于,所述电路判断是否当前准许访问是至少部分地根据所述信息进行的。
20.如权利要求17所述的方法,其特征在于,所述请求请求的访问包括对数据的读和修改中的至少一个。
21.如权利要求17所述的方法,其特征在于,所述请求请求的访问包括对数据的修改;以及当机器执行所述指令时还导致所述电路修改所述信息以指示出已排他地准许所述第二节点进行访问。
22.如权利要求17所述的物品,其特征在于,向所述第三节点发出所述第二消息;以及至少部分地响应于第二消息,所述第三节点通过绕过包括所述第一节点的至少一个网络段的网络路由,向所述第二节点发出所述数据。
23.如权利要求17所述的物品,其特征在于,向所述第二节点发出所述第二消息;以及至少部分地响应于所述第二消息,所述第二节点通过绕过包括所述第一节点的至少一个网络段的网络路由,向所述第三节点发出所述数据的经修改的版本。
24.如权利要求17所述的物品,其特征在于,所述信息包括指示出是否对所述数据的访问被锁闭的锁闭信息;以及所述电路至少部分地根据所述锁闭信息判断是否准许访问。
25.一种系统,其特征在于,所述系统包括第一节点处的电路,所述电路耦合到至少一个客户端节点和至少一个服务器节点,所述电路能够至少部分地响应于所述电路接收的第一消息,来判断是否准许所述至少一个客户端节点访问所述至少一个服务器节点可访问的数据,所述第一消息至少部分地包括准许所述至少一个客户端节点访问所述数据的请求;以及如果所述电路判断出准许访问数据,所述电路还能够产生并发出第二消息,该第二消息至少部分地指示出已准许所述至少一个客户端节点进行访问;以及修改所述电路可访问的信息,以指示出已准许所述至少一个客户端节点进行访问。
26.如权利要求25所述的系统,其特征在于,所述至少一个服务器节点可访问的数据库存储器包括所述数据;以及所述系统还包括耦合至所述至少一个客户端节点的第一网络,和耦合至所述至少一个服务器节点的第二网络。
27.如权利要求26所述的系统,其特征在于,还包括将所述第一网络耦合至第二网络的第一网络段;所述第一网络段包括所述电路;以及所述电路包括耦合至所述第一网络的第一处理器,以及耦合至所述第二网络的第二处理器。
28.如权利要求27所述的系统,其特征在于,所述处理器包括各自的输入/输出(I/O)处理器。
29.如权利要求27所述的系统,其特征在于,每个服务器节点与各数据库存储器相关联。
30.如权利要求25所述的系统,其特征在于,所述电路包括耦合至第一网络的第一处理器、耦合至第二网络的第二处理器、以及耦合至存储器的第三处理器。
全文摘要
一个实施例中,提供了一种方法。该实施例的该方法包括通过第一节点处的电路至少部分地响应于第一节点处接收的第一消息,来判断是否准许第二节点访问第三节点可访问的数据。所述第一消息至少部分地包括准许第二节点访问所述数据的请求。如果所述电路判断出准许访问数据,该实施例的该方法还包括从所述电路产生并发出第二消息,该第二消息至少部分地指示出已准许第二节点进行访问;以及所述电路修改所述电路可访问的信息,以指示出已准许所述第二节点进行访问。
文档编号G06F9/46GK1682188SQ03821843
公开日2005年10月12日 申请日期2003年9月10日 优先权日2002年9月23日
发明者H·史密斯, A·古普塔, K·耶德林 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1