CN1153142C - 通过事务对多个文件实现原子更新的事务文件系统 - Google Patents

通过事务对多个文件实现原子更新的事务文件系统 Download PDF

Info

Publication number
CN1153142C
CN1153142C CNB001292196A CN00129219A CN1153142C CN 1153142 C CN1153142 C CN 1153142C CN B001292196 A CNB001292196 A CN B001292196A CN 00129219 A CN00129219 A CN 00129219A CN 1153142 C CN1153142 C CN 1153142C
Authority
CN
China
Prior art keywords
journal entries
affairs
file
file system
transaction
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.)
Expired - Fee Related
Application number
CNB001292196A
Other languages
English (en)
Other versions
CN1289966A (zh
Inventor
金井达德
矢野浩邦
岐津俊树
矢尾浩
前田诚司
鸟井修
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Publication of CN1289966A publication Critical patent/CN1289966A/zh
Application granted granted Critical
Publication of CN1153142C publication Critical patent/CN1153142C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/466Transaction processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1471Saving, restoring, recovering or retrying involving logging of persistent data for recovery
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1865Transactional file systems
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99943Generating database or data structure, e.g. via user interface
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability

Abstract

这里发明的是一种能够实现由事务对多个文件的原子更新的事务文件系统。在该事务文件系统中,为事务从处理开始到执行、在缓冲区上所更新的一个或多个文件产生一个日志条目,该日志条目包含一种信息,用于验证某个事务在一种稳定的存储器设备上集体所做的所有更新。然后,在执行该事务时将该日志条目写到稳定的存储器设备中。

Description

通过事务对多个文件实现 原子更新的事务文件系统
技术领域
本发明涉及根据文件操作的请求更新文件的一种事务文件系统(transactional file system)。
背景技术
通常,信息系统响应从终端设备或者网络收到的处理要求,执行所需的处理并且返回处理结果。执行以某种方式被激活的处理的这样一种流将被称作事务。这样的一种信息系统的处理将被称作事务处理,并且,执行该事务处理的系统将被称作事务处理系统。
在该事务处理系统中,根据某个事务处理过程的需要,读出各种数据并且修改其内容或者写入新的数据。这样一种数据更新,在处理被执行之后,即,在处理正常完成并且其处理结果返回之后,不应该因为故障或者类似的原因而丢失。相反地,当在处理过程中由于故障或者差错而导致该事务不能被正常完成时,应该通过放弃该事务,即删除到该点为止时所更新的数据,使数据的一致性得到保持。必须对事务进行管理使得这些要求能得到满足,即使是在同时并行地处理多个事务的时候。
在常规的事务处理系统中,计算机的文件系统提供了数据库管理系统以便执行事务,并且通过数据库管理系统访问将要更新的数据,以便满足事务处理系统中的这些要求。
一般来说,通用计算机上都提供操作系统,而操作系统都有一个用于管理文件的文件系统。应用程序将使用文件以各种复杂的结构来记录数据。
作为用于构造不容易出故障的文件系统的一种方法,使用了一种称为期刊(journaling)或者日志(logging)的方法。按照这种方法,在修改文件系统的元信息的情况下,即,记录在诸如硬盘的一种稳定的存储器设备上的文件的位置信息,或者诸如位图或类似的区域管理信息,其变化(区别)作为日志(或者期刊)被集体地写在稳定存储器设备上的一个连续的区域中,此后,这些变化实际上被运用于硬盘上的元信息。由于被文件的操作改变的这些元信息被依次地写入到日志中,因此,文件系统的状态能在故障发生之后再激活时迅速被恢复,通过从预先记住的位置上读出日志,并且反映元信息中的变化。
还有一种日志结构文件系统,其中,日志不仅包含文件的元信息,而且还包括文件的内容信息,即,由用户程序写到文件中的数据,并且内容信息和元信息全都被管理,仅仅出现在该日志中。
在执行事务处理的系统中,其中,事务更新多个数据,数据库管理系统常规地管理目标数据。然而,数据库管理系统只能通过某种具体的访问方法来处理诸如表格这样特定类型的数据,这对事务处理开发程序的方法造成了严重的限制。
目前,各种事务处理要求通过因特网被交换,并且,具有各种复杂结构的数据经常被使用,诸如文档数据,多媒体数据,设计数据,目录数据,电子商务数据等等,因此,象以往那样仅仅使用常规的数据库管理系统,就很难有效地实现事务处理。
另一方面,文件系统能有效地处理称为文件的一般和灵活的数据。特别是使用期刊或者日志的文件系统,具有从故障的健壮性的观点来看的一种极好的属性。然而,由通用计算机的操作系统提供的文件系统并不管理由单独事务更新的文件状态,因此不可能实现原子的更新,即,根据每个事务的更新是否执行或者放弃,在一种一致的状态中保持和管理文件系统。
发明内容
因此,本发明的一个目的是提供一种事务文件系统,通过事务实现多个文件的原子更新。
根据本发明的一个方面,提供一种事务文件管理方法,包括步骤:(a)为该事务从处理开始直到执行(commit)期间在某个缓冲区上更新的一个或多个文件产生一个日志条目,其包含验证所有更新的信息,这些更新是由某个事务在某个稳定的存储器设备上集体进行的;并且(b),在事务执行时将该日志条目写入稳定存储器设备。
根据本发明的另一个方面,提供用于管理被储存在稳定的存储器设备上的文件的事务文件系统,并且提供由事务处理的文件,包括:用于为该事务从处理开始到执行在某个缓冲区上所更新的一个或多个文件产生日志条目的日志条目发生器,该日志条目包含验证由某个事务在稳定的存储器设备上所集体进行的所有更新的信息;以及一个日志条目写入器,用于在事务执行时将日志条目写入稳定存储器设备。
根据本发明的另一个方面,提供由多个事务文件系统形成的一个合成的事务文件系统,用于管理被储存在稳定的存储器设备上的文件,并且提供事务处理的文件,每个事务文件系统包括:用于为事务从处理开始直到执行期间在某个缓冲区上更新的一个或多个文件产生日志条目的日志条目发生器,该日志条目包含验证由某个事务在稳定的存储器设备上所集体进行的所有更新的信息,以及一个日志条目写入器,用于在事务执行时将日志条目写入稳定存储器设备。其中,当一个事务更新超过一个事务文件系统中的多个文件时,每个事务文件系统的日志条目发生器都对该事务从处理开始到执行在某个缓冲区上所更新的一个或多个文件产生这样的日志条目,包括由所述每个事务文件系统中的所述一个事务更新的一个或多个文件的所述信息,并且,每个事务文件系统的日志条目写入器将日志条目写入对应所述每个事务文件系统的稳定存储器设备中,通过把用于识别在另一个事务文件系统中被产生的所述一个事务的另一个日志条目的另一个信息嵌入该日志条目中。
通过以下结合附图所进行的描述,本发明的其他特性和优点将变得更加明显。
附图说明
图1是一个简图,表示根据本发明一个实施例的事务处理系统的一种示范性配置。
图2说明用在图1的事务处理系统中的一个事务管理。
图3说明用在图1的事务文件系统中的硬盘区域管理。
图4说明图1的事务处理系统中的文件和段之间的对应关系。
图5表示用在图1的事务处理系统中的段管理信息的一个例子。
图6表示用在图1的事务处理系统中的文件安排信息的一个例子。
图7说明用在图1的事务处理系统中的日志条目结构。
图8说明用在图1的事务处理系统中的元信息区别。
图9是一个流程图,表示在图1的事务处理系统中恢复处理的一个示范性过程。
图10说明事务的日志条目,在图1的事务处理系统中被预先写入。
图11说明在利用图1事务处理系统中预先写入的情况下元信息的区别。
具体实施方式
现在参看图1到图11,根据本发明的事务文件系统的一个实施例将详细地被描述。
图1表示根据本发明一个实施例的事务处理系统的一种示范性的配置。
注意到,在下面对该实施例的描述中,硬盘将被用作一种稳定的存储器设备,但是,当然也可以使用任何其它合适的存储器设备作为一种稳定的存储器设备。同时,在下面对该实施例的描述中,事务将由用户程序产生,但是,事务显然也可以由用户程序以外的其他东西产生。
如图1所示,该实施例的事务文件系统6包括操作单元61,根据从用户程序2中接收到的对某个文件的操作要求,执行必要的处理;临时存储文件的缓冲区63;在缓冲区63和硬盘10之间传输文件的数据的输入与输出管理单元62;以及事务管理表64,管理由当前正在被执行的每个事务所更新的一个文件列表。
首先将描述事务文件系统6的轮廓。
事务文件系统6管理一个或多个硬盘10上的区域,并且记录其中多个文件的内容信息和元信息。
在这里,文件的内容信息是由用户程序2写入文件的数据,而元信息是关于诸如为文件系统管理所需要的文件位置的信息的这样一类信息,以及管理硬盘10上的区域的信息。
在用户程序2希望读取或者写文件的情况下,通过首先向事务文件系统指定该文件的名称来命令打开文件。
当被指定的文件不在缓冲区63中时,操作单元61要求输入与输出管理单元62把那个文件读取到缓冲区63中。当这个打开处理完成时,文件被读入缓冲区63中,此后,接收到对该文件进行数据读写操作命令的操作单元62将对缓冲区63中文件的数据执行读写操作,在创建一个新文件的情况下,文件的数据(内容信息)将首先在缓冲区63上被创建。
然后,输入与输出管理单元62在一个规定的时序把缓冲区63上的文件写回到硬盘10中。这个回写时序常规上按固定的时间间隔来设置,或者当缓冲区变得不足时,采用随机或者规定的时序。相比之下,在本实施例中,这个回写时序是在事务执行时被设置的,如下所述。
在本实施例中,当用户程序2向事务文件系统6请求诸如打开或者读写文件的处理时,同时也指定了事务标识符。这个事务标识符是从事务管理器8中发出的,响应用户程序2的事务处理开始时的请求,这是在使用其中带有事务管理器8的事务处理系统配置的情况下,如图1所示。除此之外,也可以采取这样的模式,用户程序2自己产生对应该事务标识符的信息,而不必使用事务管理器8。
事务文件系统6引用附加在用户程序2的处理请求上的事务标识符,并且利用事务管理表64来管理由每个事务更新的文件。图2表示为此目的的一个示范性管理模式。
在图2的例子中,我们假定用户程序#0正在执行事务标识符为0的处理,用户程序#1正在执行事务标识符为1的处理,如此等等,用户程序#n正在执行事务标识符为n的处理。将要被每个事务访问的文件,或者从硬盘10中被读出并且被拷贝到缓冲区63上,或者在一个新近建立的文件的情况下,在缓冲区63中直接创建其实体。在缓冲区63上的文件中,由一些事务更新或者创建的那些文件将在事务管理表64上记录其对应关系。事务管理表64管理每个事务和由该事务更新、创建或者删除的文件列表之间的对应关系。例如在图2中,执行具有事务标识符为0的事务的用户程序#0正在更新四个文件A,B,C和D。
同时,如图2的例子中所示,事务文件系统6的缓冲区63也记录元信息。元信息是在管理文件系统时必需的信息,例如在管理硬盘10上未被占用的区域时所必需的信息,表示记录位置和在硬盘10上被管理的所有文件的名称之间对应关系的信息。元信息被记录在硬盘10上并且,部分或全部元信息在执行时将被读出到缓冲区63上,结合文件的增加、删除或者更新而被重写,并且在事务执行时被写回到硬盘10上,与缓冲区63上的文件一样。
在本实施例的事务文件系统6中,通过把硬盘10划分为被称为段的固定大小的区域来管理,如图3所示。例如,可以用数字来定位段,这样,就可以通过该数字来唯一地识别段。段的大小可以随意确定,但是最好能使之足够大,例如128 KB,这样,即使在随机访问的情况下,硬盘10的寻找时间的额外开销也变得很小。当然,可以只使用一个硬盘10,或者同时使用多个硬盘10。
例如,段和文件之间的对应关系可以如图4所示那样被管理。即,硬盘10上的一个区域可以作为一组固定大小的段来管理,这样,比该段的尺寸大的文件将被划分为一个或者多个与该段的尺寸同样大小的块和比该段的尺寸小的一个块。在图4的例子中,比该段的尺寸大的文件A被划分成为与段的尺寸同样大小的块A0和A1,以及比段的尺寸小的块A2。被划分为多个块的这样一种文件的每个块将被记录到一个适当的未被占用的段中。这时,构成一个文件的这些块不需要被记录到邻接的段中。
小于该段尺寸的文件或者大于该段尺寸的文件最后一个块将被记录到一个适当的未被占用的段中。这时,如果这样一种大小的多个块或者文件能进入一个段,他们就可以一起被记录在一个段中。同时,小于段尺寸的这样一个块或者文件可以分别被记录在两个段上,但最好能把它记录在一个段上,这样,在读出时就能通过单个命令连续地读取。
段的利用状态,即该段正在使用中并且未被占用,被记录作为元信息中的“段管理信息”。如图5的例子所示,段管理信息管理每个段号和其利用状态之间的对应关系。
当某个段号的段不在使用中时,其利用状态被记录为“未被占用”,如同图5的例子中的段号“1”。
当一个整个的段在使用中时,如同这样的情况,某个段号的段用于记录该段尺寸的一个块,构成大于该段尺寸的一个文件,其利用状态被记录作为“使用中”,如同图5的例子中的段号“2”。
另外,当比段的尺寸小的多个文件或者块被记录在某个段中时,该段正在使用中的部分被该段中的一对位移和一个长度所记录,如图5的例子中的段号“3”。段号“3”的利用状态记录“0/16”、“32/64”和“96/8”,这表明,在段号“3”的段中,从位移0KB的16KB长度的区域、从位移32KB的长度64KB的区域以及从位移96KB的8KB区域正在使用,而其余的未被占用,在本例中,假定位移和长度是以KB为单位来表示的。
构成每一文件的段被记录为元信息中的“文件安排信息”。文件安排信息是以对照表的形式给出的,表示在每一文件名、其文件尺寸以及记录该文件的段的列表之间的对应关系,如图6的例子中所示。在文件的尺寸大于段的尺寸的情况下,段的列表中具有这些段的段号,这些段记录了构成该文件的段尺寸的一个或者多个块,并且还具有这样一些段的段号,这些段记录了不大于段的尺寸的最后一个块以及在该段内的一个位移。在文件小于段的尺寸的情况下,段的列表中具有记录该文件的段的编号以及在该段内的一个位移。
图6表明,文件A有301980个字节的大小,并且,其在段尺寸中的顶块被记录在段号为“2”的段中,其在段尺寸中的第二块被记录在段号为“6”的段中,而其最后的块被记录在段号为“4”的段中,例如从0KB的位移上的位置开始。
下面将描述在本实施例的事务文件系统中执行事务时的处理。
当通过指定处理标识符下达执行的命令时,事务文件系统6的操作单元61对输入与输出管理单元62下达执行处理的命令。下面将结合图7中的一个例子,描述被下达执行处理命令的输入与输出管理单元的操作过程。
在这里,如图7的部分(a)中所示,假定被执行的事务正在更新四个文件A、B、C和D。其中,文件B被假定是比段的尺寸大的一个文件,而文件A、C和D被假定是小于段的尺寸的文件。
在该事务执行时将被写入硬盘10的一组更新信息将被称作“日志条目”。该日志条目包含有关由该事务更新的文件的所有信息。
图7的部分(b)表示一个示范性的日志条目。同时,图7的部分(b)和(c)表示该日志条目和硬盘的段之间的一种示范性的关系。
由本实施例的事务文件系统6管理的日志条目包括一个或者多个段(图7的部分(b)的例子中的三个段1004,2005和2003),而每个日志条目都有一个段号(图7的部分(b)的例子中的1002),在其中记录下一个日志条目,这样,日志条目就可以依次地被追踪。
在图7中,假定段1004是为将要执行的事务的日志条目而进入的第一个段。在这里将要执行的事务的日志条目具有与三个段相应的大小,这样,其它未被占用的段2003和2005将用于该日志条目。这些附加的段将被称作子段。同时,为了记录下一个日志条目,预先保留一个未被占用的段1002。
在这里,将要执行的事务的日志条目从段1004开始,如图7所示。该日志条目记录下列的信息(根据需要将其分布在多个段上):
(1)下一个日志条目的段号(图7中的段1002);
(2)附加在该日志条目上的时间标记;
(3)构成该日志条目的子段的段号(图7中的段2003和2005);
(4)一个检查代码,用于判断整个日志条目是否被正确写入;
(5)被更新文件的内容信息;以及
(6)由于文件更新而重写所导致的有关元信息区别的信息。
将这些信息填入各个段中,利用适当的填充字符,使得不大于单个文件段尺寸的内容信息不被分成两个段。
在这些信息中,检查代码是由CRC码或由构成该日志条目的所有段(图7中的段1004、2005和2003)的数据中产生的检查和给出的。通过检查该检查代码对于被记录在硬盘10的日志条目是否正确,就能够判断整个日志条目是否被正确写入。
时间标记可以由某个实际的时间或者顺序号给出,该顺序号在日志条目被写入时增加。时间标记将被用来判断用于该日志条目的某个段是否为被正确写入的新日志段,或者是从某个较早的场合中留下来的一个老的日志段,在该场合中,该段也被用在该日志条目中。
图7例子中的元信息差别由图8所示的例子给出。元信息差别包含该日志条目中关于段号1004、2003和2005的信息,从段管理信息中提取,还包含由将被执行的事务更新的文件A、B、C和D的信息,从文件管理信息中提取。
当构成日志条目的段的数据以这种方式被确定时,每个日志段被写入硬盘10中。当所有构成日志条目的段被写到硬盘10中时,这个事务被认为是被执行了。
总之,由输入与输出管理单元62所实现的执行处理的过程如下,
(1)通过引用事务管理表64来获得由将要执行的事务更新的文件的列表。
(2)通过比较最新的文件列表和文件安排信息来检查在产生日志条目中所需的段的数目。
(3)将作为该日志条目顶段的段已经被预先保留,这样,如果需要任何其它段,将通过引用段管理信息来查找空段,并且将其利用状态设置为“使用中”。
(4)通过引用段管理信息来查找用于记录下一个事务的日志条目的空段,而其利用状态被设置为“使用中”,以便保留那个段。
(5)通过下列的步骤,提取由这个事务更新的元信息的区别。
(5-1)从段管理信息中仅仅提取包含在该日志条目中的段的信息。
(5-2)从文件安排信息中仅仅提取由将被执行的事务更新的文件的信息。
(6)日志条目被产生并且被写到硬盘10中。这就完成了执行处理。
事务文件系统6还需要执行异常中断处理。在本实施例的事务文件系统6中,仅把由于被执行的事务而更新的信息记录在硬盘10中。由于这个原因,可以简单地通过放弃由缓冲区63上的事务所更新的内容信息,来完成该事务的异常中断处理,并且取消与这些文件有关的元信息的更新。
现在每个日志条目都包含更新被被包含在其中的文件所必需的元信息差别。在执行时,缓冲区63中的元信息被更新,只要需要而完整的元信息又不在硬盘10上,这样,当由于故障或类似的原因导致缓冲区63中的元信息丢失而执行恢复处理的情况下,需要通过利用硬盘10上的元信息的差别来重新建造该元信息。为了使这种恢复处理更快,可以在适当的时机把部分或者全部的元信息写入日志条目。此外,还可以把该日志条目的位置记录在规定的地址上(例如,段号“0”就专门用于这个目的)作为一个稳定的点。按照这种方法,在故障或者类似的情况发生之后执行恢复处理时,可以通过利用被记录的稳定点上的日志条目中的差别,就足以重新构造该元信息,因此能够实现快速的恢复处理。可以把规定地址上的元信息写在硬盘10或者能从那里被追踪的某个地址上,而非日志条目。
图9表示使用稳定点上的日志条目的一个示范性恢复处理过程。
首先,读出稳定点上的日志条目并且设置为E,而这时的元信息被存储到缓冲区中(步骤S11)。
然后,读出E的下一个日志条目并且设置为新的E(步骤S12)。
然后,检查E的检查代码和时间标记,判断日志条目是否完整(步骤S13)。
如果E是完整的,E中的元信息差别被运用于缓冲区中的元信息(步骤S14)。
当步骤S13中的E完整时,重复上述步骤S12到S14中的处理。
当步骤S13中的E不完整时,恢复处理完成(步骤S15)。
在这里,执行恢复处理时,通过图9的过程从稳定点中依次地读出日志条目,并且需要判断哪个日志条目被正确地执行。在本实施例的事务文件系统6中,通过利用记录在日志条目中的检查代码和时间标记,可以判断日志条目是否正确执行。如果构成该日志条目的段没有全部被写,被计算的检查代码将不同于所记录的检查代码,这样,就能容易地检查出这个日志条目不是正确的一个。
到目前为止所介绍的,仅仅是把由一个事务更新的文件信息输入到一个日志条目中,但是还有可能把多个事务更新的文件信息集体地输入到一个日志条目中并且集体地执行这些事务。
在这种情况下,如果有一个文件是通过这些被集体执行的事务中的多个事务顺序地更新的,则只有由最后更新该文件的事务所更新的信息能被留在日志条目中,而由其他事务更新的信息可以被放弃。按这种方法,对于经常被许多事务更新的所谓热点文件的更新信息,可以减少被写到硬盘10中的数据量,因此能够改善性能。
现在,在图6的例子中,由一个事务更新的文件的信息,在执行时全都进入日志条目中并且被写入硬盘10。由于这个原因,可能会出现这样的情况,执行处理变得十分费时,就象一个事务更新一个大文件的情况一样。在这样一种情况下,可以进行这样的优化,将由该事务更新的文件的部分或全部内容信息,即由该事务写入的数据,在执行之前写入硬盘10,以及元信息的区别信息和还没有被写入的余下的内容信息,如果在执行该事务时还有任何信息被包含在日志条目中的话。这种优化能在从其顶部依次地处理一个大文件的情况下改进性能,并且能将被处理的部分写入硬盘10,而不必等候执行。在这种情况下,如果这个事务被异常中断,可以简单地通过将已经写入文件的内容信息的段重新设置为未被占用的区域来取消该更新。
下面将结合图10介绍以这种方式预先写入被更新文件的内容信息的事务的一个示范性执行处理。图10的部分(a)表示由将要执行的事务更新的示例性文件,而图7的部分(b)表示构成该日志条目的示例性的段。在这个例子中,假定将要执行的事务与图7的例子中一样,已经更新了四个文件A,B,C和D。然而在这里,假定文件B的最高块B1在执行处理之前已经被写入段编号为2015的段中,不同于图7的例子。在这样一种状态下,该事务的日志条目被形成如图10的部分(b)所示。即是,块B1没有被包含在日志条目中,不同于图7的情况。被包含在这个日志条目中的元信息区别如图11所示。图11的元信息区别包含关于块B1的段的信息。换句话说,预先写入的段的元信息在事务执行时被包含在日志条目中。
注意到,在预先写入的情况下,在确认该预先写入被正确完成之后需要执行对该事务的日志条目的写入。同时,与用于预先写入的段相应的段管理信息在缓冲区63上仍然保持为“使用中”,直到该事务的日志条目被写,但是在硬盘10上仍然是“未被占用”。由于这个原因,这个段在系统由于故障而没有执行事务的情况下,自动地被复位作为“未被占用”。
现在,在到目前为止的描述中,事务处理系统有一个事务文件系统的情况已经被考虑。然而,当然还可以对具有多个事务文件系统的事务处理系统。例如,可以考虑两个盘数组与两个事务文件系统一道被使用的情况,这样,两个事务文件系统单独地被使用,取决于数据类型。即使是这样一种情况,如果在两个事务文件系统中一个事务更新文件,需要在一种原子的方式中对所有文件执行该事务。然而,如果这些事务文件系统独立地管理各自的日志条目,可能出现这样的情况,一个事务文件系统中的日志条目被正确写入,但是在其它事务文件系统的日志条目被写入之前由于故障使系统失效,这样,仅仅在一个侧面上的日志条目是有效的,而系统则落入非全局一致性的状态。
为了防止系统落入非全局一致性的这样一种状态,当同样的事务更新多个事务文件系统中的文件时,用于识别其它事务文件系统的日志条目的信息被嵌入到每一事务文件系统的日志条目中,并且被写入与每一事务文件系统相应的稳定存储器设备中。在所有的事务文件系统的日志条目被写入时,这个事务被认为是执行。
通过以这种方式产生日志条目,一个事务文件系统的日志条目是有效的,仅当嵌入其中的其它事务文件系统的日志条目同时是也有效的。由于这个原因,在恢复处理时,当通过图9的过程在各自的事务文件系统中追踪日志条目来恢复元信息时,检查被嵌入在该日志条目中的其它事务文件系统的日志条目是否被正确地恢复,并且,如果没有被正确地恢复,后来的日志条目被失效。按这种方法,就可以恢复到具有全局一致性的状态。
现在,这个事务文件系统可以很方便地与处理诸如视频数据这样的流数据或连续数据的多媒体文件系统融合在一起。在这样一种情况下,该事务文件系统最好按一个大的段尺寸执行输入与输出,以便通过将按日志更新的文件写进诸如硬盘这样的稳定存储器设备来改进其性能。即使在处理流数据的情况下,最好也以大尺寸来执行输入与输出,以便在保持连续性时改进诸如硬盘这样的稳定存储器设备的利用效率,因此,流数据将不被中断。此后,这个事务文件系统和处理流数据的多媒体文件系统就能执行统一的段区域管理。例如,这个事务文件系统的段的大小可以被设置为等于用于连续的数据的输入与输出的数据大小。
根据本发明,可以实现高性能的事务文件系统,其中,由该事务更新的多个文件在执行时可以以一种原子的方式被反映在该文件系统上,而在异常中断之前所作的更新也可以在异常中断时被取消。
同时,根据本发明,包含关于由该事务所做更新的信息的日志条目以段为单元被写到诸如硬盘这样的稳定存储器设备中,例如,这样就能执行大尺寸的写入,因此也能减少由于磁头寻找或类似的原因所造成的额外开支。同时,文件以最大的段大小为单元被记录在稳定存储器设备上的邻接的区域中,这样,也能减少在读出时因为寻找或者类似的原因所造成的额外开支。结果,就可以通过有效地利用盘的输入与输出性能来实现高性能的事务文件系统。
同时,根据本发明,通过发生故障时的恢复处理,可以避免当取消由非执行的事务所做的更新时失去由执行的事务所更新的文件。通过在检查每个日志条目是否正确时追踪日志条目链这样一个简单的过程,可以更快地执行恢复处理。
同时,在本发明的事务文件系统中,日志条目被划分成为段大小的若干块,并且管理日志条目中的链,因此,不需要在物理的邻接区域中依次地写日志条目。由于这个原因,对于通过在硬盘上利用废物收集来收集没有被使用区域的日志条目,没有必要保证邻接的区域,这样,就能简化稳定存储器设备上的区域管理,并且减少额外的开支。
因此,根据本发明,包含关于通过该事务更新的多个文件的更新信息的日志条目在执行事务时被产生,同时,这个日志条目被写到稳定存储器设备中,因此,通过事务更新的多个文件在执行时可以以一种原子的方式被反映在文件系统中,在异常中断前所做的更新可以在异常中断时被取消,并且可以通过一个简单的过程来更快地执行恢复处理。
在这里,多个文件可以有各种不同的尺寸。同时,更新可能包括创造一个新的文件、修改一个已存在的文件的内容以及删除文件。同时,被更新文件的元信息也是集体地验证稳定存储器设备上被更新文件的有效信息。同时,稳定的存储器设备是诸如硬盘等这样的一种存储器设备,其存储内容将不会消失,即使在电源被关闭时。
在本发明中,通过在执行事务时把上述的日志条目写入稳定存储器设备中,可以保证系统或者处于这样的一种状态:从一个事务处理开始直到执行,该事务对一个或多个文件所做的更新在稳定的存储器设备上是有效的(执行),或者处于另外一种状态:这些更新都是无效的(异常中断)。即使在系统发生故障时,可以是这样一种状态:由该事务所做的更新只有部分是有效的,而其他则是无效的。根据这种文件管理方法,文件系统本身能实现事务的原子性(原子的写入)。
应当注意,根据本发明的上述实施例可以使用根据本说明书的原理编写程序的常规的通用数字计算机来方便地执行,这对于那些熟悉计算机技术的人来说是显然的。熟练的程序员可以根据本发明的原理很方便地准备好适当的软件编码,这对那些精通于软件技术的人来说也是很明显的。
尤其是,上述实施例的事务文件系统能以软件包的形式方便地被执行。
这样一种软件包可以是一种计算机程序产品,使用包含被存储的计算机代码的存储媒介,用来为计算机编写程序以便执行本发明所揭示的功能和处理。存储媒介可能包括,但没有被限制,任何类型的常规的软盘,光盘,CD-ROM,磁光盘,ROM,RAM,EPROM,EEPROM,磁性或者光学的卡片,或者任何其它用于存储电子指令的适合的媒介。
还应该注意到,除已经在上面被论及的那些之外,可以对上述的实施例进行许多修正和改变,而不会脱离本发明的新颖和有利的特性。因此,准备将所有这样修正和变体包含在附加的权利要求的范围之内。

Claims (11)

1.一种事务文件管理方法,包括步骤:
(a)对事务从开始直到执行期间在缓冲区上由该事务更新的一个或多个文件产生包含信息的日志条目,这些信息用于验证集体在稳定的存储器设备上通过某个事务所做的所有更新;以及
(b)在执行事务时将该日志条目写入稳定存储器设备。
2.权利要求1的事务文件管理方法,其中,步骤(a)产生包含由该事务更新的一个或多个文件的所有元信息和内容信息的日志条目。
3.权利要求1的事务文件管理方法,进一步包括步骤:
在执行事务之前把由该事务更新的一个或多个文件的部分或者全部的内容信息写入稳定的存储器设备中;
其中,步骤(a)产生日志条目,其包含由该事务更新的一个或多个文件的元信息以及还没有被写入稳定存储器设备的部分内容信息。
4.权利要求1的事务文件管理方法,其中,步骤(a)通过嵌入信息产生日志条目,通过该信息可以检查该日志条目是否被正确地写到稳定的存储器设备中,并且该事务文件管理方法进一步包括步骤:
当在发生故障后从稳定的存储器设备读出日志条目表明该日志条目没有被完全地写入时,取消所有由该事务集体所做的更新。
5.权利要求1的事务文件管理方法,其中,步骤(b)通过把一个位置信息嵌入稳定的存储器设备而把该日志条目写入稳定存储器设备,用于把对应下一次将被执行的另一个事务的下一个日志条目写入该日志条目中。
6.权利要求1的事务文件管理方法,其中,当多个事务被集体执行时步骤(a)为由多个事务所做的更新产生统一的日志条目。
7.权利要求6的事务文件管理方法,其中,步骤(a)产生这样的日志条目,当两个或者更多的事务正在更新缓冲区上的相同文件时,日志条目仅仅包含两个或者多个事务中最后一个被执行的事务的相同文件的更新内容。
8.权利要求1的事务文件管理方法,其中,步骤(b)通过将日志条目划分为固定尺寸的段,将日志条目写入稳定存储器设备。
9.权利要求8的事务文件管理方法,其中,段的固定尺寸被设置为等于用于连续数据输入与输出的数据尺寸。
10.一种用于管理储存在稳定存储器设备中的文件并且提供由事务处理的文件的事务文件系统,包括:
日志条目发生器,为该事务处理开始到执行期间、该事务在某个缓冲区上所更新的一个或多个文件产生一个日志条目,该日志条目包含验证由某个事务在稳定的存储器设备上所集体进行的所有更新;以及
一个日志条目写入器,用于在事务执行时将日志条目写入稳定存储器设备。
11.一种由多个事务文件系统形成的合成的事务文件系统,用于管理被储存在稳定的存储器设备上的文件,并且提供事务处理的文件,每个事务文件系统包括:
日志条目发生器,为该事务处理开始到执行期间、该事务在某个缓冲区上所更新的一个或多个文件产生日志条目,该日志条目包含的信息用于验证由某个事务在稳定的存储器设备上所集体进行的所有更新;以及
一个日志条目写入器,用于在事务执行时将日志条目写入稳定存储器设备。
其中,当一种事务更新超过一个事务文件系统中的多个文件时,每个事务文件系统的日志条目发生器都产生这样的日志条目,包括由所述每个事务文件系统中的所述一个事务更新的一个或多个文件的所述信息,并且,每个事务文件系统的日志条目写入器将日志条目写入对应所述每个事务文件系统的稳定存储器设备中,这是通过把用于识别在另一个事务文件系统中被产生的所述一个事务的另一个日志条目的另一个信息嵌入该日志条目中进行的。
CNB001292196A 1999-09-29 2000-09-29 通过事务对多个文件实现原子更新的事务文件系统 Expired - Fee Related CN1153142C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP276263/1999 1999-09-29
JP27626399A JP2001101044A (ja) 1999-09-29 1999-09-29 トランザクショナルファイル管理方法、トランザクショナルファイルシステム及び複合トランザクショナルファイルシステム

Publications (2)

Publication Number Publication Date
CN1289966A CN1289966A (zh) 2001-04-04
CN1153142C true CN1153142C (zh) 2004-06-09

Family

ID=17567009

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB001292196A Expired - Fee Related CN1153142C (zh) 1999-09-29 2000-09-29 通过事务对多个文件实现原子更新的事务文件系统

Country Status (6)

Country Link
US (2) US6779001B1 (zh)
EP (1) EP1089176A3 (zh)
JP (1) JP2001101044A (zh)
KR (1) KR100396722B1 (zh)
CN (1) CN1153142C (zh)
TW (1) TWI235923B (zh)

Families Citing this family (66)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6856993B1 (en) * 2000-03-30 2005-02-15 Microsoft Corporation Transactional file system
US20050120039A1 (en) * 2002-09-19 2005-06-02 Upstream Software, Inc. System, method and software for acquiring, storing and retrieving electronic transactions
US7103597B2 (en) * 2002-10-03 2006-09-05 Mcgoveran David O Adaptive transaction manager for complex transactions and business process
US20050256859A1 (en) * 2004-05-13 2005-11-17 Internation Business Machines Corporation System, application and method of providing application programs continued access to frozen file systems
CN100407202C (zh) * 2004-10-27 2008-07-30 株式会社理光 文件管理服务或验证服务的器件和方法
US7716260B2 (en) * 2004-12-16 2010-05-11 Oracle International Corporation Techniques for transaction semantics for a database server performing file operations
US7627574B2 (en) * 2004-12-16 2009-12-01 Oracle International Corporation Infrastructure for performing file operations by a database server
US20060136508A1 (en) * 2004-12-16 2006-06-22 Sam Idicula Techniques for providing locks for file operations in a database management system
US7548918B2 (en) * 2004-12-16 2009-06-16 Oracle International Corporation Techniques for maintaining consistency for different requestors of files in a database management system
US7809675B2 (en) * 2005-06-29 2010-10-05 Oracle International Corporation Sharing state information among a plurality of file operation servers
US20070005874A1 (en) * 2005-07-01 2007-01-04 Dan Dodge File system storing transaction records in flash-like media
US7809777B2 (en) 2005-07-01 2010-10-05 Qnx Software Systems Gmbh & Co. Kg File system having deferred verification of data integrity
US8959125B2 (en) 2005-07-01 2015-02-17 226008 Ontario Inc. File system having inverted hierarchical structure
US7970803B2 (en) 2005-07-01 2011-06-28 Qnx Software Systems Gmbh & Co. Kg Optimized startup verification of file system integrity
US7873683B2 (en) 2005-07-01 2011-01-18 Qnx Software Systems Gmbh & Co. Kg File system having transaction record coalescing
US8290910B2 (en) * 2005-09-21 2012-10-16 Infoblox Inc. Semantic replication
US8533169B1 (en) * 2005-09-21 2013-09-10 Infoblox Inc. Transactional replication
US8250030B2 (en) * 2005-09-21 2012-08-21 Infoblox Inc. Provisional authority in a distributed database
US7610304B2 (en) * 2005-12-05 2009-10-27 Oracle International Corporation Techniques for performing file operations involving a link at a database management system
US8266609B2 (en) * 2005-12-07 2012-09-11 Microsoft Corporation Efficient placement of software transactional memory operations around procedure calls
US8799882B2 (en) * 2005-12-07 2014-08-05 Microsoft Corporation Compiler support for optimizing decomposed software transactional memory operations
KR100775141B1 (ko) * 2005-12-28 2007-11-12 엘지전자 주식회사 저널링이 적용된 fat 파일 시스템의 구현 방법
KR100678926B1 (ko) * 2006-01-05 2007-02-06 삼성전자주식회사 로그 정보 관리 시스템 및 방법
US8341123B2 (en) 2006-01-27 2012-12-25 El Fresko Technologies Limited Event structured file system (ESFS)
FI20060427L (fi) * 2006-05-03 2007-11-04 Tellabs Oy Menetelmä ja laitteisto peräkkäistiedoston käsittelemiseksi
US8566503B2 (en) 2006-08-25 2013-10-22 Qnx Software Systems Limited Multimedia filesystem having unified representation of content on diverse multimedia devices
US20080059510A1 (en) * 2006-08-31 2008-03-06 Daniel Cardamore Multimedia system framework having layer consolidating access to multiple media devices
US7908276B2 (en) 2006-08-25 2011-03-15 Qnx Software Systems Gmbh & Co. Kg Filesystem having a filename cache
US20080065667A1 (en) * 2006-09-11 2008-03-13 Hopkins Donald F Transaction oriented resilient file system
US20080147747A1 (en) * 2006-12-14 2008-06-19 Dan Cardamore Media system having synchronization with preemptive prioritization of synchronization order
US7802136B2 (en) * 2006-12-28 2010-09-21 Intel Corporation Compiler technique for efficient register checkpointing to support transaction roll-back
EP2118756A4 (en) * 2008-03-01 2010-12-15 Toshiba Kk MEMORY SYSTEM
KR100954603B1 (ko) * 2008-05-16 2010-04-26 주식회사 휴원 파일 시스템의 로그 파일 및 상기 파일 시스템의 오류 복구방법
US9007622B2 (en) 2008-05-29 2015-04-14 Hewlett-Packard Development Company, L.P. Replaceable printer component including a memory updated atomically
JP5467625B2 (ja) * 2008-07-30 2014-04-09 インターナショナル・ビジネス・マシーンズ・コーポレーション トランザクションを処理する本番システムと該本番システムのバックアップ・システムである代行システムとを含む本番−代行システム
US8200627B2 (en) * 2008-10-30 2012-06-12 International Business Machines Corporation Journaling database changes using a bit map for zones defined in each page
KR101583716B1 (ko) 2009-01-30 2016-01-08 삼성전자주식회사 비트 로깅을 이용한 데이터 복구 방법 및 그 장치
CN102065192B (zh) * 2009-11-18 2013-12-04 中国移动通信集团安徽有限公司 一种话单排重方法和装置
CN102073655B (zh) * 2009-11-20 2015-09-02 腾讯科技(深圳)有限公司 一种保存数据的方法和装置
KR101043238B1 (ko) * 2009-11-25 2011-06-30 주식회사 바우압텍 고전압용 정전기 방전 보호 소자
US8224780B2 (en) * 2010-06-15 2012-07-17 Microsoft Corporation Checkpoints for a file system
US20120078966A1 (en) * 2010-09-29 2012-03-29 International Business Machines Corporation File System With Content Identifiers
JP2013127748A (ja) * 2011-12-19 2013-06-27 Fujitsu Ltd 情報処理装置、データ記憶方法及びプログラム
CN103502970B (zh) * 2011-12-21 2016-01-27 华为技术有限公司 一种键值对的操作方法及装置
US9473561B2 (en) * 2013-03-15 2016-10-18 International Business Machines Corporation Data transmission for transaction processing in a networked environment
KR102094475B1 (ko) 2013-04-29 2020-03-27 삼성전자주식회사 멀티-트랜잭션의 아토믹 라이트 방법
CN104462127B (zh) * 2013-09-22 2018-07-20 阿里巴巴集团控股有限公司 一种记录数据更新方法及装置
CN103778030B (zh) 2013-12-30 2017-09-22 上海晨思电子科技有限公司 日志子系统写入方法、错误追踪方法及处理器
WO2016120884A1 (en) * 2015-01-30 2016-08-04 Hewlett-Packard Development Company, L.P. Failure atomic update of a single application data file
CN107180051B (zh) * 2016-03-11 2021-02-12 华为技术有限公司 一种日志管理方法、服务器
US10536476B2 (en) 2016-07-21 2020-01-14 Sap Se Realtime triggering framework
US10482241B2 (en) 2016-08-24 2019-11-19 Sap Se Visualization of data distributed in multiple dimensions
US10542016B2 (en) 2016-08-31 2020-01-21 Sap Se Location enrichment in enterprise threat detection
US10630705B2 (en) 2016-09-23 2020-04-21 Sap Se Real-time push API for log events in enterprise threat detection
US10673879B2 (en) 2016-09-23 2020-06-02 Sap Se Snapshot of a forensic investigation for enterprise threat detection
US10534908B2 (en) 2016-12-06 2020-01-14 Sap Se Alerts based on entities in security information and event management products
US10338855B2 (en) * 2016-12-08 2019-07-02 International Business Machines Corporation Optimized reading of multiple objects from tape
US10534907B2 (en) * 2016-12-15 2020-01-14 Sap Se Providing semantic connectivity between a java application server and enterprise threat detection system using a J2EE data
US10530792B2 (en) 2016-12-15 2020-01-07 Sap Se Using frequency analysis in enterprise threat detection to detect intrusions in a computer system
US11470094B2 (en) 2016-12-16 2022-10-11 Sap Se Bi-directional content replication logic for enterprise threat detection
US10552605B2 (en) 2016-12-16 2020-02-04 Sap Se Anomaly detection in enterprise threat detection
US10764306B2 (en) 2016-12-19 2020-09-01 Sap Se Distributing cloud-computing platform content to enterprise threat detection systems
US10530794B2 (en) 2017-06-30 2020-01-07 Sap Se Pattern creation in enterprise threat detection
US10681064B2 (en) 2017-12-19 2020-06-09 Sap Se Analysis of complex relationships among information technology security-relevant entities using a network graph
US10986111B2 (en) 2017-12-19 2021-04-20 Sap Se Displaying a series of events along a time axis in enterprise threat detection
CN110928890B (zh) * 2019-11-08 2023-01-24 广州华多网络科技有限公司 数据存储方法、装置、电子设备及计算机可读存储介质

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4507751A (en) * 1982-06-21 1985-03-26 International Business Machines Corporation Method and apparatus for logging journal data using a log write ahead data set
US5245615A (en) * 1991-06-06 1993-09-14 International Business Machines Corporation Diagnostic system and interface for a personal computer
JPH04361338A (ja) 1991-06-10 1992-12-14 Nec Corp 取引ログデータ引継ぎ方式
JP2758311B2 (ja) * 1992-05-28 1998-05-28 富士通株式会社 複合システムにおけるログファイル制御方式
US5469562A (en) * 1992-06-26 1995-11-21 Digital Equipment Corporation Durable atomic storage update manager
AU6500596A (en) * 1995-07-20 1997-02-18 Novell, Inc. Transaction log management in a disconnectable computer and network
US5870757A (en) * 1995-09-11 1999-02-09 Sun Microsystems, Inc. Single transaction technique for a journaling file system of a computer operating system
US5668958A (en) * 1995-09-12 1997-09-16 International Business Machines Corporation Heterogeneous filing system with common API and reconciled file management rules
US6014673A (en) * 1996-12-05 2000-01-11 Hewlett-Packard Company Simultaneous use of database and durable store in work flow and process flow systems
US6035297A (en) * 1996-12-06 2000-03-07 International Business Machines Machine Data management system for concurrent engineering
US5907848A (en) * 1997-03-14 1999-05-25 Lakeview Technology, Inc. Method and system for defining transactions from a database log
US5987621A (en) * 1997-04-25 1999-11-16 Emc Corporation Hardware and software failover services for a file server
AU3304699A (en) * 1998-02-20 1999-09-06 Storm Systems Llc File system performance enhancement
US6289382B1 (en) * 1999-08-31 2001-09-11 Andersen Consulting, Llp System, method and article of manufacture for a globally addressable interface in a communication services patterns environment
US6389420B1 (en) * 1999-09-30 2002-05-14 Emc Corporation File manager providing distributed locking and metadata management for shared data access by clients relinquishing locks after time period expiration

Also Published As

Publication number Publication date
KR20010050644A (ko) 2001-06-15
US20040236793A1 (en) 2004-11-25
EP1089176A2 (en) 2001-04-04
JP2001101044A (ja) 2001-04-13
KR100396722B1 (ko) 2003-09-02
US7349927B2 (en) 2008-03-25
CN1289966A (zh) 2001-04-04
EP1089176A3 (en) 2003-05-02
US6779001B1 (en) 2004-08-17
TWI235923B (en) 2005-07-11

Similar Documents

Publication Publication Date Title
CN1153142C (zh) 通过事务对多个文件实现原子更新的事务文件系统
CN107391653B (zh) 一种分布式NewSQL数据库系统及图片数据储存方法
US9183236B2 (en) Low level object version tracking using non-volatile memory write generations
CN1179281C (zh) 利用逻辑闪速存储器件进行最小单元更新的方法和设备
JP3441807B2 (ja) B木インデクスの管理方法およびシステム
CA2818472C (en) Optimized startup verification of file system integrity
KR100556594B1 (ko) 데이터베이스에 관한 방법
CN109891402A (zh) 可撤销和在线模式转换
CN1556961A (zh) 大文件的有效管理
CN1512353A (zh) 性能改善的数据存储和方法
CN105630865A (zh) 用于内存列式存储的n比特压缩版本化列数据阵列
CN106575297A (zh) 使用盲更新操作的高吞吐量数据修改
CN104809237A (zh) LSM-tree索引的优化方法和装置
CN107077495A (zh) 数据库管理系统中的高性能事务
JP2007012056A (ja) データ保全の先送りされた認証を有するファイルシステム
JP2007012058A (ja) フラッシュ様媒体におけるトランザクションレコードを格納するファイルシステム
JP2007012060A (ja) 逆階層構造を有するファイルシステム
CN1719422A (zh) 一种存储器文件数据虚拟存取方法
JP2004348744A (ja) テーブルに対して行われる変更を識別する識別方法及びそのシステム
CN1900935A (zh) 访问扇区数据的方法和系统
JP5174352B2 (ja) データベースシステムにおけるラージオブジェクトインフラストラクチャのためのシステムおよび方法
CN1758253A (zh) 一种文件管理系统及管理方法
Ma et al. Hiengine: How to architect a cloud-native memory-optimized database engine
JP2007287147A (ja) 高速ファイル属性検索
CN101419544A (zh) 一种计算机程序代码自动生成器

Legal Events

Date Code Title Description
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C06 Publication
PB01 Publication
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20040609

Termination date: 20091029