CN101198937A - 安全存储管理系统和方法 - Google Patents
安全存储管理系统和方法 Download PDFInfo
- Publication number
- CN101198937A CN101198937A CNA2006800217549A CN200680021754A CN101198937A CN 101198937 A CN101198937 A CN 101198937A CN A2006800217549 A CNA2006800217549 A CN A2006800217549A CN 200680021754 A CN200680021754 A CN 200680021754A CN 101198937 A CN101198937 A CN 101198937A
- Authority
- CN
- China
- Prior art keywords
- data
- storer
- control module
- storage
- address
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/176—Support for shared access to files; File sharing support
- G06F16/1767—Concurrency control, e.g. optimistic or pessimistic approaches
- G06F16/1774—Locking methods, e.g. locking methods for file systems allowing shared and concurrent access to files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/526—Mutual exclusion algorithms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
Abstract
本发明提供了一种用于管理多个进程和一个公共存储器之间的存取的存储管理系统和方法。根据本发明,每个单独的进程包括数据处理部件、用于临时存储由所述数据处理部件产生的数据的高速缓冲存储器、以及用于管理所述高速缓冲存储器和公共存储器之间的数据传送的控制单元。所述控制单元包括:管理器,用于监视所述存储器中接收和存储数据的存储位置的可用性以及用于将数据分配到可用的存储位置;接口,用于将所分配的数据传送到所述可用的存储位置;以及锁定装置,用于在数据传送期间锁定所述存储器,以确保排他存取,从而保持数据的完整性。
Description
技术领域
本发明涉及用于数据存储的安全管理的安全数据存储管理系统和方法。
背景技术
在数据存储领域,在多个参与方(party)存取单个存储器(store)的情况下,需要以保持数据的完整性及一致性的方式管理多个参与方和存储器之间的通信链接以及管理向各个参与方分配存储器内的存储空间。
不同的参与方可以例如是单独的个人计算机、在计算机网络中的单独机器、在计算机网络中的单独的操作系统、或在单个操作系统中的不同的进程。下文中将所有的这些参与方称为“进程(process)”。
为了确保存储的数据的完整性,已知在传统的存储管理系统中采用公共存储器管理器来管理进程和存储器之间的进程间通信。这样的传统存储管理系统的框图如图1所示。如图所示,该系统包括多个进程10,称为进程1、进程2...进程N,它们通过各自的通信链接14经由存储器管理器进程16来与存储器12进行通信。存储器管理器进程16通过通信链接14从进程10接收请求,以向存储器12读写数据,并且负责处理向保持数据完整性的连续请求的单个队列的多个并发请求。在实际中,存储器管理器进程16采用高速缓冲存储器18作为临时存储器容量并且将仅在数据提交周期(commitcycle)结束时更新存储器12。由于高速缓冲存储器与存储器12相比是相对快速的器件,因此这具有提高处理速度的优点。
图1所示的存储管理系统的一个缺点是在这种类型的系统中的进程间通信一般不安全,因而数据有可能被拦截和操纵。
图1所示的存储管理系统的另一个缺点是它需要存储器管理器进程的形式的单独的附加进程,与相关的高速缓冲存储器共同管理数据存储。
这样的存储器管理器进程消耗整个系统的中央处理单元的资源和周期,需要将来自不同进程10的所有的读写请求引导进单独的附加进程中,所有这些降低了整个系统的操作的性能和速度。此外,向存储器管理器进程的通信需要通信协议,这又增加了性能开销。也可能存在提供存储器管理器进程16不经济或不实际的情况,例如,在一种现有的计算机系统中,其具有可以向其中添加新进程10的存储器12,但当前却不存在存储器管理器进程16。
发明内容
本发明的一个目的是提供一种存储管理系统和方法,其中避免了对于辅助存储器管理器进程的需要。
本发明的另一个目的是提供一种存储管理系统和方法,其能够管理从多个进程存取单个数据存储器的并发请求。
本发明的另一个目的是提供一种存储管理系统和方法,其能够以保持数据完整性和提供安全存储的方式来管理从多个进程存取单个数据存储器的并发请求。
本发明的另一个目的是至少以其优选形式提供一种容错的存储管理系统和方法。
本发明的另一个目的是至少以其优选形式提供一种存储管理系统和方法,其中用于管理在共享存储器中的存储的部件包括在基本进程内。
根据本发明,提供了一种存储管理系统,包括:数据处理部件、用于临时存储由所述数据处理部件产生的数据的高速缓冲存储器、以及用于管理所述高速缓冲存储器和公共存储器之间的数据传送的控制单元,所述控制单元包括:管理器,用于监视所述存储器中接收和存储数据的存储位置的可用性以及用于将数据分配到可用的存储位置;接口,用于将所分配的数据传送到所述可用的存储位置;以及锁定装置,用于在数据传送期间锁定所述存储器,以确保排他存取,从而保持数据的完整性。
本发明也提供了一种共享网络,包括:多个进程、公共存储器、以及每个进程各自的存储管理系统,所述存储管理系统包括:数据处理部件、用于临时存储由所述数据处理部件产生的数据的高速缓冲存储器、以及用于管理所述高速缓冲存储器和公共存储器之间的数据传送的控制单元,所述控制单元包括:管理器,用于监视所述存储器中接收和存储数据的存储位置的可用性以及用于将数据分配到可用的存储位置;接口,用于将所分配的数据传送到所述可用的存储位置;以及锁定装置,用于在数据传送期间锁定所述存储器,以确保排他存取,从而保持数据的完整性。
此外,本发明提供了存储管理的方法,包括:通过数据处理单元产生数据;在高速缓冲存储器中临时存储由所述数据处理单元产生的数据;以及通过以下步骤来管理所述高速缓冲存储器和公共存储器之间的数据传送,所述步骤包括:监视所述存储器中接收和存储数据的存储位置的可用性;将数据分配到可用的存储位置;将所分配的数据传送到所述可用的存储位置;以及在数据传送期间锁定所述存储器,以确保排他存取,从而保持数据的完整性。
附图说明
通过参照附图仅以示例的方式来进一步描述本发明,其中:
图1是传统的存储管理系统的框图;
图2是根据本发明的存储管理系统的框图;
图3是图2中所示的并采用了本发明的存储管理单元的框图;
图4是示出图3中的存储器的内容的图解视图;
图5a、5b和5c是表示图3的存储管理单元的基本例程(routine)的流程图;
图6是图5a中的例程的子例程的流程图;
图7是图6的子例程中的子例程的流程图;
图8到10是图5a的例程中的子例程的流程图;
图11到14是图10的子例程中的子例程的流程图;
图15是在图5b的例程中的子例程的流程图;
图16是在图13的子例程中的子例程的流程图;以及
图17是在图5c的例程中的子例程的流程图。
具体实施方式
现在将参照图中所示的实施例来描述本发明。应当理解,所描述的实施例仅仅是示范性的,各种修改都是可能的,在以下的描述中会提到这样的一些修改。
现在将首先参照附图中的图2来描述本发明的优选实施例。根据该优选实施例,存储管理系统包括多个进程20,称为进程1、进程2,...,进程N。在进行存储器存取时,进程20的每一个通过操作系统与数据存储器22进行通信,由线路24标明。为了管理共享存取,每个进程20包括各自的多可寻址容错安全存储(MAFTSS)控制单元26,其被配置为与关联的高速缓冲存储器28合作管理对存储器22的存取和存储器22的利用。
更具体地,采用块存储来管理数据并将其存储在存储器22中,控制单元26提供数据的加密和验证以及在存储器22之内的数据存储块的管理,以使得在多个用户进程间能够共享存储器22。
图2示出了具有关联的高速缓冲存储器28的多个进程20和单个存储器22。应当理解,整个系统可以是单个操作系统的一部分、或者除存储器22以外的系统可以是具有外部存储器22的单个操作系统的一部分、或者每个进程20和关联的高速缓冲存储器28可以是每个都与单个外部存储器22相关的各个操作系统的一部分。在最后一种情况中,每个进程20和关联的高速缓冲存储器28可以包括单个计算机,从而多个进程在分离的机器中。此外,存储器22可以是任意一种存储器,包括快闪存储器或机械存储器。但是,在每种情况下,该系统必须包括用于排他地锁定存储器22的构造(provision),如下所述。
在本实施例中,进程20和MAFTSS控制单元26都是软件程序,其中控制单元26是软件算法的形式。但是,进程20和/或控制单元26可能是硬件产品的形式,例如各个进程20包括其中嵌入包括控制单元26的硬件部件的硬件设备。
现在将参照图3来描述控制单元26的每一个,随后将参照图4到15描述使用该控制单元26的数据存储的管理。由于所有的控制单元26的基本结构和操作都是相同的,因此仅描述一个就已足够。
参照图3,控制单元26包括多个处理例程和具有不同功能的子例程。更具体地,控制单元26包括用于管理存储器22中的地址的分配和对存储器22中的地址的存取的地址表管理器30。该地址表管理器30与块管理器32合作来指定并使用存储器22中的特定存储块。
为此,块管理器32包括块映射322,其代表当前存在于存储器22中的所有的存储块,而不管是否已分配。该存储器基于使用基地址和相对地址来存储数据而进行操作,因此块映射322是有效的偏移和块尺寸的映射。块管理器32还包括:空闲(free)块映射324,其代表存储器22中尚未被分配的那些块;以及空闲锁定块映射326,其代表先前已被分配过并且不再需要但是由于以下说明的一些原因而暂时不可用的那些块。地址表管理器30包括地址映射302,其代表已被分配的所有块。换句话说,地址映射302包含用于已分配的块的地址列表。地址表管理器30还包括空闲地址列表304,其代表先前已被分配过并且不再需要的那些块的地址,因而这些地址现在是空闲的以便再次使用。地址表管理器也包括下一地址计数器306、地址存取器特性(trait)308和地址类型特性310,用于分别指定要被分配的下一空闲地址的编号和位置以及用于该下一空闲地址的地址版本。
包括在控制单元26中的进一步的功能是用于加密数据的块编码器特性34、用于校验数据(具体来说,用于检测数据损坏)的块校验器特性36、以及代表存储器22并通过简单应用程序接口(API)使能对存储器22的存取的块存储器特性38。关于块校验器特性36,可检测的数据损坏的类型依赖于所采用的校验算法的特性。
在任一方面,控制单元26确保在存储系统中存在来自进程20的两组工作的进程数据,即当前进程数据和在当前进程数据之前的先前进程数据。此外,控制单元26在存储器22内存储一组管理数据,该管理数据代表由控制单元26自身所采用的数据并且包括:
偏移和尺寸的映射(在块映射322中的数据)
空闲偏移列表(在空闲块映射324中的数据)
锁定空闲偏移列表(在空闲锁定块映射326中的数据)
地址映射(在地址映射302中的数据)
空闲地址列表(在空闲地址列表304中的数据)
由从0开始的数字所代表的最大分配地址(基于在下一地址计数器306中的数据和在地址存取器和地址类型特性308、310中的数据)
图4示出了数据如何存储在存储器22中。存储器22包括:包含每组数据的基地址的首部(header)40、通过其偏移和其尺寸而定位的一系列分配的数据块42、通过其偏移和其尺寸而定位的一系列空闲块44。首部、分配的块42和空闲块44包括存储器22中的文件(file),在该文件之后的空闲存储空间可以在其它进程20存取存储器22时由所述其它进程20使用。
图5a、5b和5c分别示出了控制单元26的基本使用,包括用于向存储器22写入数据、用于从存储器22读出数据以及释放存储器22中的地址的例程。在这些例程中的每一个例程中,系统的过程代码使用用于控制单元26的代码来初始化并控制事件序列,如图所示。应当理解,这些事件可以不是一个紧接着一个,而是可以在它们之间过去了真实的时间后发生。
根据图5a所示的进程,在用于控制单元26的代码的控制下,过程代码首先将数据写入到关联的高速缓冲存储器28中,然后将该数据从高速缓冲存储器28传送到存储器22。根据图5b所示的进程,在用于控制单元26的代码的控制下,过程代码首先从存储器22中读出数据,然后将该数据传送到关联的高速缓冲存储器28中。根据图5c所示的进程,过程代码通过验证不再需要在存储器22中先前被分配过的地址中的数据并通过将该地址添加到空闲地址列表304中来释放该地址。
具体地,现在参照图5a,当从进程20中的一些部分接收到写指令时,在步骤500开始将数据写入到存储器22的过程。过程代码进入步骤502并通过如下图6所示的子例程来锁定存储器22。锁定存储器22确保在写例程持续期间进程20排他地存取存储器22,没有其它的进程20能够在数据可能损坏时进行存取。这样,保证了数据的完整性。在锁定存储器22后,过程代码进入从空闲地址列表304中分配存储器22中的地址的步骤504以及将要被输入的数据写入到所述地址中的步骤506。实际上,在这个阶段,与已被分配的地址有关的信息和用于写入到那个地址中的数据被存储于高速缓冲存储器28中。如下所述,图8和9示出了用于地址分配和数据写入的子例程。接着,过程代码进入步骤508,并将数据从高速缓冲存储器28传送到存储器22中所分配的地址中,其后,过程代码通过如下所述、图10中所示的子例程来解锁存储器22。数据写入例程进入步骤510并且完成。
转到图5b,在步骤512中,当从进程20接收到读指令时,读例程开始。过程代码进入到步骤514,并通过如下所述、图13示出的子例程来从存储器22中给定的地址中读取数据。将读取的数据从存储器22传送到高速缓冲存储器28,然后过程代码进入到步骤516,意味着读例程已完成。在该例程中需要锁定存储器22,但是以与图5a所示的不同的方式进行锁定,如将在下面参照图15来描述的。
接着参照图5c,将描述分配地址的过程。当由于用户不再需要已被写入存储器22中的数据而要将其删除时,进程20在步骤518中指示不再需要所述数据,并且指示可以将存储器22中的相关地址释放并使该相关地址可重用。过程代码接着进入到步骤520,在该步骤中通过如下在图6中所示的、与在图5a的步骤502中所采用的相同的例程来锁定存储器22。过程代码随后进行至释放存储器22中的相关地址,并通过高速缓冲存储器28将该地址添加到控制单元26中的地址列表304,如在下面描述的图17中所示。最后,过程代码在步骤524中使用与图5a的步骤508和图10示出的相同的子例程来解锁存储器22。过程代码现在进入到步骤526,意味着释放地址的例程已完成。
现在将参照图6到17描述图5a至5c中示出的子例程的各个细节。首先参照图8和9描述分配存储器22中的地址的步骤和将该地址分配给在高速缓冲存储器28中的数据的步骤,接着参照图14和15描述读取在存储器中的地址的步骤。接着,将参照图17描述释放存储器22中的地址的子例程,最后将参照图6、7和10到14描述锁定和解锁存储器22以及向/从存储器22传送数据的、根据本发明的主要子例程。
图8示出了在图5a的步骤504中的分配地址的过程,并在进程单元20发出分配存储器22中的地址以写数据的指令时从步骤800开始。在步骤802中,控制单元26询问空闲地址列表304特定的现有地址是否空闲。如果回答为否,则控制单元26将下一地址计数器306中的计数值增加1。当步骤802的结果为是时,表明现有空闲地址已被定位,则控制单元26进入到步骤806并从空闲地址列表304中移除该地址。接着,控制单元26进入到步骤808,并将该新地址添加到地址映射302中,同时向地址类型特性添加一个该地址的修订号。控制单元26接着进入步骤810并返回存储器22中数据将要被写入的地址。
如图9所示,在步骤506中的写数据随着进程单元20发出写地址命令在步骤900进行。控制单元26进入到步骤902并询问已在步骤810中返回的地址是否是有效地址,即,该地址是否将在地址映射302中找到以及该地址的修订号是否与地址类型特性中所示的匹配。如果回答为否,则控制单元26在步骤904中记录一条失败的写入结果。另一方面,如果在步骤902中认为地址是有效的,则控制单元26在步骤906中将该地址和要被写入的数据添加到高速缓冲存储器28的写入部分。控制单元26然后在步骤908中记录一条成功的写入结果。
参照图5b中的步骤514所述的从存储器22中读取数据和将数据从存储器22传送到高速缓冲存储器28在图15中示出,并且随着在步骤1500中进程单元20发出读地址指令、给出存储器22中的一个选定的地址而开始。在步骤1502中,控制单元26锁定存储器22,在步骤1504中,控制单元26询问给定的地址是否是有效的,即,其是否是在存储器22中包含可读数据的地址。如果对步骤1504的询问的回答为否,则控制单元26进入到步骤1506并解锁存储器22,并在步骤1508中记录一条失败的读取地址尝试。另一方面,如果在步骤1504中的询问的结果为是,则控制单元26进入到步骤1510,并询问该地址的内容是否将在高速缓冲存储器28中找到。如果回答为是,则控制单元26进入到步骤1512并解锁存储器22,以及在步骤1520中从高速缓冲存储器28中返回数据。另一方面,如果对在步骤1510中的询问的回答为否,则控制单元26进入到步骤1514,并获取对于相关地址在存储器22中的偏移值。控制单元26接着在步骤1516中使用图16所示的子例程从相关数据的地址中存取各自的存储器偏移并读取数据,并在步骤1518中将该数据传送到高速缓冲存储器28。控制单元26然后回到步骤1512并解锁存储器22,然后在步骤1520中返回来自高速缓冲存储器28的相关数据。
如图16中所示,在步骤1516中用于从存储器读取数据的子例程随着步骤1600中从存储器22读取数据的指令而开始。在步骤1602中,控制单元26读取在存储器22中的给定偏移处的加密的数据,然后在步骤1604中通过来自块编码器特性34的密钥来解码该加密的数据。在步骤1606,控制单元26接着使用块校验器特性36询问该解码的数据是否是有效的,即不是损坏的。但是,如果步骤1606的询问结果为是,则控制单元26返回到步骤1518,并将该解码的数据从存储器22传送到高速缓冲存储器28。
图5c的步骤522中指示的用于检测数据并释放存储器22中的地址的子例程如图17所示,并且现在将对其进行描述。当在步骤1700中控制单元26从检测单元20接收到释放地址的指令时,控制单元26在步骤1702中检查该地址的位置是否是有效的,即给定地址是否携带可读取的数据。如果回答为否,表明该地址不包含任何有用的信息且可以被覆写,则控制单元26在步骤1704中从地址映射302中移除对于该偏移的地址。但是,如果在步骤1702中询问的结果为是,表明该地址尽管可重用但是由于一些下面将说明的原因而仍然需要先前的数据,因此该地址仍然包含不能被覆写的信息,则控制单元进入到步骤1708并将该地址添加到空闲锁定块映射326中。控制单元26接着如前所述进入步骤1704。接下来,控制单元26在步骤1708中增大关于该地址的修订号,以代表在相关地址中的数据的当前修订号。接着,在步骤1710中,控制单元26将该地址添加到地址表管理器30中的空闲地址列表304中。控制单元26接着进入到步骤1712,并从高速缓冲存储器28的读写部分中移除该数据,然后在步骤1714中指示该地址已被释放。
根据本发明,当从高速缓冲存储器28向存储器22传送数据以及当更改存储器22中的数据时,存储器22是锁定的。为此用于锁定存储器的子例程如图5的步骤502和520所示,而用于随后解锁存储器22的子例程则如图5的步骤508和524所示。现在将描述这些子例程,先从图6和7所示的锁定子例程开始。
图6是代表在图5的步骤502和520以及在图15的1502中的锁定子例程中的步骤的流程图。首先,在步骤600中进程单元20发出锁定命令。在步骤602中,控制单元26利用唯一标识符产生互斥量(mutex)并采用这个互斥量来完成对存储器22的全局锁定。控制单元26接着进入到步骤604并检查在高速缓冲存储器28中的数据是否是有效的。换句话说,控制单元26检查高速缓冲存储器28是否包含存储器22中的相关进程和管理数据的最新的表示。如果回答为是,则控制单元26进入到步骤606,并且锁定子例程完成。另一方面,如果对步骤604的问题的回答为否,则控制单元26进入到步骤608并将相关数据从存储器22加载到高速缓冲存储器28中,以使得在锁定周期的保持期间,控制单元26能够与高速缓冲存储器28中的数据一起工作。随后,控制单元26从步骤608进入到步骤606,并且锁定子例程完成。
用于加载管理数据组的子例程608如图7所示,并且下面将对其进行描述。当在图6中的步骤604指示在高速缓冲存储器28中的管理数据不是最新的时,控制单元26在步骤700发出加载最新的管理数据的指令。控制单元26然后进入到步骤702以读取存储器22中的首部40,其后接着进入步骤704以读取并解密在存储器22中的分配的块42中的当前数据组。在步骤704之后,控制单元26在步骤706中通过检查管理数据的首部以确定该文件是否是无效的以及是否包含损坏的数据或例如通过指明解密失败,来询问读取是否失败。如果读取未失败并且因而完成,则控制单元26进入到步骤708,并将下一数据管理例程中需要的任何数据从存储器22加载到高速缓冲存储器28中。将这样的数据加载到高速缓冲存储器的首部,而将对于下一数据管理例程来说是多余的数据保留在存储器22中。如果由于任何原因在步骤706中判定存储器22中的当前数据组的数据读取失败,则控制单元26进入到步骤710并开始读取保留在存储器22中的先前的数据组。当读完先前的数据组时,控制单元26再次在步骤712中询问读取是否失败。如果回答为否,则控制单元26返回到步骤708并将存储在存储器22中的先前的数据中的真正需要的数据加载到高速缓冲存储器28中。另一方面,如果控制单元26在步骤712中判定先前数据组的读取失败,则控制单元26进入到步骤714并删除整个存储器22,在这之后,控制单元26在步骤716中为存储器22写入新的首部。最后,控制单元26适当地从步骤708或步骤716进入到步骤718,表示存储器22中的数据组在一个可用的情况下已被加载到高速缓冲存储器28中。
已描述了在图5a和5c中的步骤502和520中所示的锁定子例程。现在将参照图10到14描述在图5a和5c中的步骤508和524的解锁子例程。
基本解锁子例程如图10所示并且开始于步骤1000。当使用高速缓冲存储器28以及处于锁定状态的存储器22完成需要的任何数据管理例程时,进程单元20在步骤1000发出解锁指令。在这一点上,在解锁能够发生之前,来自保留在高速缓冲存储器28中的最近的数据管理例程的所有信息将需要传送到存储器22。因此,控制单元26进入到步骤1002并检查是否有任何数据已被写入到高速缓冲存储器28中。更特别地,控制单元26询问写入高速缓冲存储器(为写入分配的高速缓冲存储器的部分)是否为空以及是否有任何进程数据已被写入到该写入高速缓冲存储器。
如果对于询问写入高速缓冲存储器28是否为空的回答为否,则控制单元进入到步骤1004并为包含在写入高速缓冲存储器28中的进程数据分配存储器22中的块。接着,在步骤1006,控制单元26开始将这样的进程数据写入到存储器22中。在步骤1008,控制单元26询问在存储器22中是否已存在对于此特定进程数据的有效的原有位置。如果回答为是,则在步骤1010中控制单元26将该位置添加到空闲锁定块映射326,以便临时保留这一先前数据组,然后进入到步骤1012。如果对步骤1008中的询问的回答为否,则控制单元26直接进入到步骤1012。在步骤1012中,控制单元26更新块映射322,以便为当前进程数据指定存储器22中的新位置。控制单元26然后进入到步骤1014并询问在该高速缓冲存储器中是否有多个进程项要写入到存储器22中,并且如果回答为是,则返回到步骤1004,以便为这些更多的进程数据分配存储器22中的新的块。如果回答为否,则控制单元26进入到步骤1016。
返回到步骤1002,如果控制单元26发现写入高速缓冲存储器为空,则控制单元26直接进入到步骤1016,并估计在高速缓冲存储器28中的管理数据组的大小,然后在步骤1018中为该管理数据在存储器22中分配一个或多个合适的块44。在步骤1020,控制单元26检查在存储器22的末尾处的空闲块。如果没有找到空闲块,则控制单元直接进入到步骤1022。另一方面,如果找到任何这样的空闲块,则控制单元26丢弃它们从而减小存储器22的尺寸。控制单元26接着再次进入到步骤1022,在该步骤中,控制单元26询问在此周期中已变为空闲但是由于它们包含先前的数据而至今不能被覆写的偏移的空闲锁定块映射326是否为空。如果对于步骤1022中的询问的回答为是,则控制单元26进入到步骤1026并将新的数据组写入到存储器22中,该新的数据组代表其尺寸在步骤1016中进行估计的当前管理数据组。另一方面,如果步骤1022的结果是空闲锁定块映射326不为空,则控制单元26进入到步骤1028,并释放存储器22中现在可用的块中的第一个。这意味着该块在此周期中不能被覆写,并且其将在下一周期中包含来自先前数据组的数据,在这之后,其能够被覆写。控制单元26接着进入到步骤1030,并询问空闲锁定块映射326是否仍为空或是否存在更多的块要释放。如果回答为是,则控制单元26返回到步骤1028并释放另一个块。如果回答为否,则控制单元26进入到步骤1026并且现在将管理数据组写入到存储器22中。在完成了这步后,控制单元26在步骤1032中解锁存储器22并在步骤1034中发出解锁过程已完成的指示。
在步骤1006中将进程数据写入到存储器22中的子例程;在步骤1018中控制单元26为管理数据分配块的子例程;在步骤1028中释放可用块的子例程;以及在步骤1026中将管理数据写入到存储器22中的子例程分别如图11到14所示,现在将对其进行描述。
图11示出了用于将进程数据写入到存储器22中的子例程。当在步骤1006中在高速缓冲存储器28中存在要被写入到存储器22中的进程数据时,控制单元26在步骤1100中发出写入到存储器中的指令,然后在步骤1102中产生要加到该数据的校验和值(checksum)以用于随后的数据有效性的监测。该校验和值由块管理器32参照块校验器特性36产生。接着,控制单元26进入到步骤1104并使用包含在块编码器特性34中的加密算法来加密高速缓冲存储器28中的数据。在步骤1106中,控制单元26计算加密数据的尺寸,并将尺寸值和所述校验和值添加到该加密数据的首部中。接着,在步骤1108中,控制单元26将数据从高速缓冲存储器28传送到存储器22并将数据存储于其中。然后在步骤1110中发出数据写入成功指示。
图12示出了用于为管理数据分配块的步骤1018的子例程和用于为进程数据分配块的步骤1004的子例程,并且在控制单元26发出分配块的指令时从步骤1200开始。控制单元26进入到步骤1202并在块映射322中搜索与要被写入的数据形成最佳匹配的空闲块。在这种情况下,最佳匹配表明该块的尺寸与数据尺寸精确匹配或者表明该块大于所需的尺寸但是小于或等于空闲块映射326中的任何其它空闲块。控制单元26接着进入到步骤1204并询问是否找到了合适的空闲块。如果回答为否,则控制单元26进入到步骤1206并将存储器22的尺寸增加对于要被分配的块来说所必需的量,在这之后,控制单元26在步骤1208中将新创建的块添加到块映射322中。控制单元26接着进入到步骤1210。另一方面,如果对步骤1204中的询问的回答为是,则控制单元26进入到步骤1212并询问空闲块的尺寸是否是精确匹配的。如果回答为是,则控制单元26在步骤1214中从空闲块映射324中移除该块,并进入到步骤1210。如果对于步骤1212中的询问回答为否,则控制单元26在步骤1216中将该新找到的块分成两部分,以使得一部分(块X)的尺寸与相关数据精确匹配。在步骤1218中,控制单元26将另一个(块Y)添加到空闲块映射324中,并进入到步骤1220,在该步骤中从空闲块映射324中移除第一块X。在步骤1210中完成该子例程,在该步骤中发出块已被分配的指示。
用于释放可用块的步骤1028的子例程如图13所示,并且在控制单元26发出释放相关块Z的指令时从步骤1300开始。在步骤1302中,控制单元26将该块Z添加到空闲块映射324中,并且在步骤1304中,控制单元26找出存储器22中紧接在此空闲块之后的块,并将该块指定为块A。在步骤1306中,控制单元26询问块A是否是空闲的,如果回答为是,则在步骤1308中通过将块A的尺寸加到空闲块Z的尺寸来将块A与空闲块Z合并。控制单元26进入到步骤1310并从空闲块映射324中以及从块映射322中删除块A,从而新的空闲块此时就是合并的块,指定为Z’。控制单元26接着进入到步骤1312。如果对步骤1310中的询问回答为否,则控制单元26直接进入到步骤1312。在步骤1312中,控制单元26搜索存储器中紧邻在原始空闲块Z之前的块,其也是紧邻在合并块Z’之前的块,并将该块指定为块B。控制单元26进入到步骤1314并询问块B是否是空闲的。如果回答为是,则控制单元26进入到步骤1316并将空闲块Z’的尺寸加到块B的尺寸,创建新的合并块B’。控制单元26进入到步骤1318并从空闲块映射324中以及从块映射322中删除块Z’。控制单元26接着进入到步骤1320。如果对步骤1314中的询问回答为否,则控制单元26直接进入到步骤1320,在该步骤中,发出该块已被释放的指示。
现在转到图14,将描述图10中的步骤1026的子例程。在该步骤中,管理数据组将从高速缓冲存储器28写入到存储器22中,并且控制单元26在步骤1400中利用写入数据组指令而开始该子例程。控制单元26接着进入到步骤1402并在存储器22中将已成为存储器22中的当前管理数据组的管理数据组重新指定为新的先前管理数据组。控制单元26接着在步骤1404中将高速缓冲存储器28中的当前管理数据组写入到存储器22中作为新的当前管理数据组。在这之后,控制单元26在步骤1406中对于该新的当前管理数据组更新存储器22中的偏移细节,并在步骤1408中将计数值加1,以指示当前管理数据的当前版本已增加了一个版本。最后,在步骤1410中,控制单元26更新存储器22中的首部40,并在步骤1412中发出已写入管理数据组的指示。
本发明提供了一种存储管理系统,其可以用于任何类型的存储器,其采用基于版本的地址,并且如果检测到错误则后退到前一个已知状态,并且其还采用通过收回不再需要的存储位置的无用单元收集策略以便减小存储器的尺寸。因而,任何时候存储器都包含任何特定数据组的两个版本,所述数据是管理数据或者是进程数据(但必须是如果在实际中这两组进程数据相同,则系统仅保留一组这样的数据),并且如果校验和值指示发生错误,则错误检测配置允许返回到先前数据组。
如上所述,本发明提供了一种高效安全的、从多个不同的进程20中的各个进程在单个存储器22中存取和管理数据的过程。本发明的优点是每个进程20管理其自己的对存储器22的存取,同时防止干扰另一个进程20对存储器22的存取,并且不需要附加的存储器管理器进程。因此各个进程20监视它们自己的数据管理和数据完整性,并且对此的控制能够包括在出售的软件包(package)中。因此,能够在网络上实现进程20,而不论存储器管理器进程是否已存在,并且如果不是已经存在存储器管理器进程,也不需要单独进行购买。
Claims (37)
1.一种存储管理系统,包括:
数据处理部件,
高速缓冲存储器,用于临时存储由所述数据处理部件产生的数据,以及
控制单元,用于管理所述高速缓冲存储器和公共存储器之间的数据传送,所述控制单元包括:
管理器,用于监视所述存储器中接收和存储数据的存储位置的可用性以及用于将数据分配到可用的存储位置,
接口,用于将所分配的数据传送到所述可用的存储位置,以及
锁定装置,用于在数据传送期间锁定所述存储器,以确保排他存取,从而保持数据的完整性。
2.根据权利要求1所述的系统,其中,所述管理器包括容错装置,用于在发生数据错误时恢复未损坏的数据。
3.根据权利要求1所述的系统,其中,所述控制单元还包括数据校验器,用于检测数据的损坏。
4.根据权利要求3所述的系统,其中,所述管理器被配置为与所述数据校验器合作以取消损坏的数据。
5.根据权利要求1所述的系统,其中,所述控制单元采用对于数据存储的版本控制,并且其中,所述管理器包括数据版本管理器,用于确保存储于所述存储器中的数据包括当前数据组和先前数据组。
6.根据权利要求5所述的系统,其中,所述控制单元包括数据校验器,用于检查数据损坏,并且其中,所述管理器响应于该数据校验器来取消损坏的数据并返回到该数据的先前版本。
7.根据权利要求1所述的系统,其中,所述控制单元还包括数据编码器,用于加密数据。
8.根据权利要求1所述的系统,其中,所述控制单元将该数据分成数据块,以传送到公共存储器中,并且其中,所述管理器确定数据块的尺寸并将该数据块分配到存储器中的选定地址和偏移。
9.根据权利要求1所述的系统,其中,所述控制单元包括至少一个代表该存储器内的存储位置的映射。
10.根据权利要求9所述的系统,其中,所述至少一个映射包括代表存储器内的存储块的块映射和代表已分配的存储块的地址的地址映射。
11.根据权利要求9所述的系统,还包括至少一个代表该存储器内的当前可用的存储位置的列表。
12.根据权利要求11所述的系统,其中,所述至少一个列表包括空闲锁定列表,其代表存储器中先前已被分配且不再需要、但是当前被锁定因而不能被覆写的块。
13.根据权利要求11所述的系统,其中,所述至少一个列表包括代表该存储器中尚未被分配的块的空闲偏移列表,以及代表存储器中先前已被分配且现在空闲可重用的块的地址的空闲地址列表。
14.根据权利要求1所述的系统,其中,所述控制单元采用无用单元收集策略。
15.一种共享的接入网络,包括:
多个进程,
公共存储器,以及
每个进程各自的存储管理系统,所述存储管理系统包括:
数据处理部件,
高速缓冲存储器,用于临时存储由所述数据处理部件产生的数据,以及
控制单元,用于管理所述高速缓冲存储器和公共存储器之间的数据传送,所述控制单元包括:
管理器,用于监视所述存储器中接收和存储数据的存储位置的可用性以及用于将数据分配到可用的存储位置,
接口,用于将所分配的数据传送到所述可用的存储位置,以及
锁定装置,用于在数据传送期间锁定所述存储器,以确保排他存取,从而保持数据的完整性。
16.根据权利要求15所述的网络,其中,所述管理器包括容错装置,用于在发生数据错误时恢复未损坏的数据。
17.根据权利要求15所述的网络,其中,所述控制单元还包括数据校验器,用于检测数据的损坏。
18.根据权利要求17所述的网络,其中,所述管理器被配置为与所述数据校验器合作以取消该损坏的数据。
19.根据权利要求15所述的网络,其中,所述控制单元采用对于数据存储的版本控制,以及其中,所述管理器包括数据版本管理器,用于确保存储于所述存储器中的数据包括当前数据组和先前数据组。
20.根据权利要求19所述的网络,其中,所述控制单元包括数据校验器,用于检查数据损坏,以及其中,所述管理器响应于该数据校验器来取消损坏的数据并返回到该数据的先前版本。
21.根据权利要求15所述的网络,其中,所述控制单元还包括数据编码器,用于加密数据。
22.根据权利要求15所述的网络,其中,所述控制单元将该数据分成数据块,以传送到所述存储器中,以及其中,所述管理器确定数据块的尺寸并将该数据块分配到存储器中的选定地址和偏移。
23.根据权利要求15所述的网络,其中,所述控制单元包括至少一个代表存储器内的存储位置的映射。
24.根据权利要求23所述的网络,其中,所述至少一个映射包括代表存储器内的存储块的块映射和代表已分配的存储块的地址的地址映射。
25.根据权利要求23所述的网络,还包括至少一个代表该存储器内当前可用的存储位置的列表。
26.根据权利要求25所述的网络,其中,所述至少一个列表包括空闲锁定列表,其代表该存储器中之前已被分配且不再需要、但是当前被锁定因而不能被覆写的块。
27.根据权利要求25所述的网络,其中,所述至少一个列表包括代表该公共存储器中尚未被分配的块的空闲偏移列表,以及代表存储器中之前已被分配且现在空闲可重用的块的地址的空闲地址列表。
28.根据权利要求15所述的网络,其中,所述控制单元采用无用单元收集策略。
29.一种存储管理的方法,包括:
通过数据处理单元产生数据,
在高速缓冲存储器中临时存储由所述数据处理单元产生的数据,以及
通过以下步骤来管理所述高速缓冲存储器和公共存储器之间的数据传送,所述步骤包括:
监视所述存储器中接收和存储数据的存储位置的可用性,
将数据分配到可用的存储位置,
将所分配的数据传送到所述可用的存储位置,以及
在数据传送期间锁定所述存储器,以确保排他存取,从而保持数据的完整性。
30.根据权利要求29所述的方法,还包括:当发生数据错误时,恢复损坏的数据。
31.根据权利要求29所述的方法,其中,所述控制单元还包括数据检验步骤,用于检测数据的损坏。
32.根据权利要求31所述的方法,还包括取消损坏的数据的步骤。
33.根据权利要求31所述的方法,还包括:对于数据存储采用版本控制,以及在所述存储器中存储当前数据组和先前数据组。
34.根据权利要求33所述的方法,还包括数据检验步骤,用于检查数据损坏,以及如果数据损坏,则取消损坏的数据并返回到先前数据组。
35.根据权利要求29所述的方法,还包括加密将要存储的数据。
36.根据权利要求29所述的网络,还包括:将数据分成数据块以传送到所述存储器中,以及确定数据块的尺寸并将该数据块分配到存储器中的选定地址和偏移。
37.根据权利要求29所述的方法,采用无用单元收集策略以减小存储器的尺寸。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/156,093 | 2005-06-17 | ||
US11/156,093 US8516211B2 (en) | 2005-06-17 | 2005-06-17 | Secure storage management system and method |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101198937A true CN101198937A (zh) | 2008-06-11 |
Family
ID=37570998
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2006800217549A Pending CN101198937A (zh) | 2005-06-17 | 2006-06-09 | 安全存储管理系统和方法 |
Country Status (8)
Country | Link |
---|---|
US (2) | US8516211B2 (zh) |
EP (1) | EP1899817A4 (zh) |
JP (1) | JP2008547089A (zh) |
KR (1) | KR20080033276A (zh) |
CN (1) | CN101198937A (zh) |
AU (1) | AU2006259661A1 (zh) |
CA (1) | CA2608282A1 (zh) |
WO (1) | WO2006138178A2 (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102209955A (zh) * | 2008-11-07 | 2011-10-05 | 松下电器产业株式会社 | 多处理器下资源的排他控制方法、排他控制系统及其相关技术 |
CN102346682A (zh) * | 2010-07-30 | 2012-02-08 | 株式会社东芝 | 信息处理装置及信息处理方法 |
WO2012075753A1 (zh) * | 2010-12-10 | 2012-06-14 | 中兴通讯股份有限公司 | Cache存取的控制方法及装置 |
CN103562879A (zh) * | 2011-05-26 | 2014-02-05 | 国际商业机器公司 | 透明文件系统迁移到新物理位置 |
CN105739959A (zh) * | 2014-12-10 | 2016-07-06 | 厦门雅迅网络股份有限公司 | 一种应用编程时对外部存储器管理操作的方法 |
CN108196966A (zh) * | 2018-01-29 | 2018-06-22 | 天津芯海创科技有限公司 | 多数据源的数据比对方法、装置和芯片 |
CN108877859A (zh) * | 2017-05-15 | 2018-11-23 | 拉碧斯半导体株式会社 | 半导体存储装置、存储器控制器及存储器的监视方法 |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
BRPI0517026A (pt) | 2004-10-25 | 2008-09-30 | Rick L Orsini | método e sistema analisador de dados seguros |
US8516211B2 (en) * | 2005-06-17 | 2013-08-20 | Flexera Software Llc | Secure storage management system and method |
CN101401341B (zh) | 2005-11-18 | 2016-06-01 | 安全第一公司 | 安全数据解析方法和系统 |
US8209305B2 (en) * | 2006-04-19 | 2012-06-26 | Microsoft Corporation | Incremental update scheme for hyperlink database |
US9411542B2 (en) * | 2014-02-21 | 2016-08-09 | Analog Devices Global | Interruptible store exclusive |
CN104111898A (zh) * | 2014-05-26 | 2014-10-22 | 中国能源建设集团广东省电力设计研究院 | 基于多维数据相似性的混合存储系统及数据管理方法 |
US9996463B2 (en) * | 2015-11-10 | 2018-06-12 | International Business Machines Corporation | Selection and placement of volumes in a storage system using stripes |
CN107885671B (zh) | 2016-09-30 | 2021-09-14 | 华为技术有限公司 | 一种非易失性内存的持久化方法和计算设备 |
EP3333714B1 (en) * | 2016-12-07 | 2020-02-12 | Commissariat A L'energie Atomique Et Aux Energies Alternatives | A computer-implemented method and a system for encoding a stack application memory state using shadow memory |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5913213A (en) * | 1997-06-16 | 1999-06-15 | Telefonaktiebolaget L M Ericsson | Lingering locks for replicated data objects |
US6658417B1 (en) * | 1997-12-31 | 2003-12-02 | International Business Machines Corporation | Term-based methods and apparatus for access to files on shared storage devices |
US6173293B1 (en) * | 1998-03-13 | 2001-01-09 | Digital Equipment Corporation | Scalable distributed file system |
US6564215B1 (en) * | 1999-12-16 | 2003-05-13 | International Business Machines Corporation | Update support in database content management |
US6502169B1 (en) * | 2000-06-27 | 2002-12-31 | Adaptec, Inc. | System and method for detection of disk storage blocks containing unique values |
US7362868B2 (en) * | 2000-10-20 | 2008-04-22 | Eruces, Inc. | Hidden link dynamic key manager for use in computer systems with database structure for storage of encrypted data and method for storage and retrieval of encrypted data |
US6959337B2 (en) * | 2001-04-23 | 2005-10-25 | Hewlett-Packard Development Company, L.P. | Networked system for assuring synchronous access to critical facilities |
US6832297B2 (en) * | 2001-08-09 | 2004-12-14 | International Business Machines Corporation | Method and apparatus for managing data in a distributed buffer system |
US7194467B2 (en) * | 2002-03-29 | 2007-03-20 | Panasas, Inc | Using whole-file and dual-mode locks to reduce locking traffic in data storage systems |
US7143288B2 (en) * | 2002-10-16 | 2006-11-28 | Vormetric, Inc. | Secure file system server architecture and methods |
JP4170080B2 (ja) * | 2002-11-28 | 2008-10-22 | 富士通株式会社 | マルチプロセッサシステム |
US7173863B2 (en) * | 2004-03-08 | 2007-02-06 | Sandisk Corporation | Flash controller cache architecture |
US8516211B2 (en) * | 2005-06-17 | 2013-08-20 | Flexera Software Llc | Secure storage management system and method |
-
2005
- 2005-06-17 US US11/156,093 patent/US8516211B2/en active Active
-
2006
- 2006-06-09 AU AU2006259661A patent/AU2006259661A1/en not_active Abandoned
- 2006-06-09 KR KR1020087001358A patent/KR20080033276A/ko not_active Application Discontinuation
- 2006-06-09 CA CA002608282A patent/CA2608282A1/en not_active Abandoned
- 2006-06-09 JP JP2008516954A patent/JP2008547089A/ja active Pending
- 2006-06-09 CN CNA2006800217549A patent/CN101198937A/zh active Pending
- 2006-06-09 EP EP06772750A patent/EP1899817A4/en not_active Withdrawn
- 2006-06-09 WO PCT/US2006/022558 patent/WO2006138178A2/en active Application Filing
-
2013
- 2013-08-06 US US13/960,750 patent/US9251162B2/en active Active
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102209955A (zh) * | 2008-11-07 | 2011-10-05 | 松下电器产业株式会社 | 多处理器下资源的排他控制方法、排他控制系统及其相关技术 |
CN102346682A (zh) * | 2010-07-30 | 2012-02-08 | 株式会社东芝 | 信息处理装置及信息处理方法 |
US8645612B2 (en) | 2010-07-30 | 2014-02-04 | Kabushiki Kaisha Toshiba | Information processing device and information processing method |
WO2012075753A1 (zh) * | 2010-12-10 | 2012-06-14 | 中兴通讯股份有限公司 | Cache存取的控制方法及装置 |
CN103562879A (zh) * | 2011-05-26 | 2014-02-05 | 国际商业机器公司 | 透明文件系统迁移到新物理位置 |
CN103562879B (zh) * | 2011-05-26 | 2016-09-07 | 国际商业机器公司 | 透明文件系统迁移到新物理位置的方法和系统 |
CN105739959A (zh) * | 2014-12-10 | 2016-07-06 | 厦门雅迅网络股份有限公司 | 一种应用编程时对外部存储器管理操作的方法 |
CN105739959B (zh) * | 2014-12-10 | 2019-11-26 | 厦门雅迅网络股份有限公司 | 一种应用编程时对外部存储器管理操作的装置 |
CN108877859A (zh) * | 2017-05-15 | 2018-11-23 | 拉碧斯半导体株式会社 | 半导体存储装置、存储器控制器及存储器的监视方法 |
CN108877859B (zh) * | 2017-05-15 | 2024-01-19 | 拉碧斯半导体株式会社 | 半导体存储装置、存储器控制器及存储器的监视方法 |
CN108196966A (zh) * | 2018-01-29 | 2018-06-22 | 天津芯海创科技有限公司 | 多数据源的数据比对方法、装置和芯片 |
Also Published As
Publication number | Publication date |
---|---|
US20060288181A1 (en) | 2006-12-21 |
AU2006259661A1 (en) | 2006-12-28 |
US8516211B2 (en) | 2013-08-20 |
EP1899817A4 (en) | 2009-05-20 |
WO2006138178A3 (en) | 2007-04-26 |
US9251162B2 (en) | 2016-02-02 |
US20140040221A1 (en) | 2014-02-06 |
WO2006138178A2 (en) | 2006-12-28 |
CA2608282A1 (en) | 2006-12-28 |
EP1899817A2 (en) | 2008-03-19 |
JP2008547089A (ja) | 2008-12-25 |
KR20080033276A (ko) | 2008-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101198937A (zh) | 安全存储管理系统和方法 | |
CN108804112B (zh) | 一种区块链落账处理方法及系统 | |
US8464101B1 (en) | CAS command network replication | |
Mu et al. | Consolidating concurrency control and consensus for commits under conflicts | |
CN102460376B (zh) | 无约束事务存储器(utm)系统的优化 | |
US5151988A (en) | Intersystem data base sharing journal merge method | |
EP2810164B1 (en) | Managing partitions in a scalable environment | |
CN100462930C (zh) | 备份数据协调方法和系统 | |
JP4771378B2 (ja) | ファイル・システム逐次化再初期設定の装置、システム、および方法 | |
US7529902B2 (en) | Methods and systems for locking in storage controllers | |
CN1770110B (zh) | 对I/O完成进行无锁InfiniBand轮询的方法和系统 | |
US20110289049A1 (en) | Scaleable fault-tolerant metadata service | |
US11809707B2 (en) | File operations in a distributed storage system | |
CN107656834A (zh) | 基于事务日志恢复主机访问 | |
CN103493021A (zh) | 虚拟机高可用性 | |
KR100922584B1 (ko) | 객체 기반 분산 공유 시스템 및 그의 방법 | |
CN116383227B (zh) | 一种分布式缓存和数据存储一致性处理系统及方法 | |
US8830831B1 (en) | Architecture for balancing workload | |
CN113239098B (zh) | 一种数据管理方法、计算机及可读存储介质 | |
CN100543743C (zh) | 多机文件存储系统和方法 | |
US9292562B2 (en) | Scatter-gather list usage for a configuration database retrieve and restore function and database blocking and configuration changes during a database restore process | |
CN109144947A (zh) | 一种虚拟化系统的集群文件系统的控制方法和装置 | |
US20080250421A1 (en) | Data Processing System And Method | |
US6092084A (en) | One system of a multisystem environment taking over log entries owned by another system | |
US20140052826A1 (en) | Techniques for performing processing for database |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20080611 |