CN100412862C - 具备文件管理功能的文件系统及文件管理方法 - Google Patents

具备文件管理功能的文件系统及文件管理方法 Download PDF

Info

Publication number
CN100412862C
CN100412862C CNB2005100646024A CN200510064602A CN100412862C CN 100412862 C CN100412862 C CN 100412862C CN B2005100646024 A CNB2005100646024 A CN B2005100646024A CN 200510064602 A CN200510064602 A CN 200510064602A CN 100412862 C CN100412862 C CN 100412862C
Authority
CN
China
Prior art keywords
page
file
leaf
reflection
data
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
CNB2005100646024A
Other languages
English (en)
Other versions
CN1755673A (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
Toshiba Digital Solutions Corp
Original Assignee
Toshiba Corp
Toshiba Solutions 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, Toshiba Solutions Corp filed Critical Toshiba Corp
Publication of CN1755673A publication Critical patent/CN1755673A/zh
Application granted granted Critical
Publication of CN100412862C publication Critical patent/CN100412862C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1435Saving, restoring, recovering or retrying at system level using file system or storage system metadata
    • 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/1474Saving, restoring, recovering or retrying in transactions
    • 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
    • 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/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1466Management of the backup or restore process to make the backup process non-disruptive
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Library & Information Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

在存储装置(20)的存储区域中,确保文件区域(21)与暂时写入区域(22),在上述存储区域中配置一对映像表格(23-0)和(23-1)。更新处理单元(updateprocessing unit)(11)通过将更新数据写入从暂时写入区域(22)中取得的空的页中,执行存储在文件区域(21)中的文件的页更新。提交部(commit module)(113)在每次事务(多个事务)各自的提交时,将该时刻的暂时写入区域(22)的有效页的列表交互写入映像表格(23-0)和(23-1)中。检查点处理单元(checkpoint processing unit)(13)将暂时写入区域(22)内的有效页的更新数据写回到文件区域(21)的最初的页位置。

Description

具备文件管理功能的文件系统及文件管理方法
技术领域
本发明涉及一种具备包含事务(transaction)管理的文件管理功能的文件系统,尤其是涉及一种具备在暂时写入区域上执行文件更新的文件管理功能的文件系统及文件管理方法。
背景技术
通常,在文件管理系统的事务管理中,要求原子性(atomicity)、一贯性(consistency)、分离性(isolation)和持久性(durability)等4个基本要件的所谓ACID特性。该ACID性中,ACD(原子性、一贯性、持久性)利用提交(commit)/重新运行(roll back)和恢复来实现。资源管理器的ACD的实现方式被分为存入(logging)与边文件(side file)。
<存入>
存入是在更新数据时、将更新前的状态(UNDO)与利用提交确定的状态(REDO)保存在日志中的方式。利用存入,在系统异常结束时,通过UNDO日志将提交前的已更新的数据恢复到更新前的状态。另一方面,通过REDO日志将提交后的未更新数据变为确定状态。在存入中,有不写出(non-steal)提交前的数据的方式(technique)、物理采集日志的方式、或逻辑采集日志的方法等各种方式。
<边文件方式>
在边文件方式中,如日经BP社于2001年10月20日出版、Jim Gray、Andreas Reuter著、喜连川优审译的《事务处理(概念与技术)》(TransactionProcessing:Concepts and Techniques)下卷、第860-870页“13.5.1节边文件”中所记载的那样,在“该场所(original location)”不变更数据(对象),将新的值写出到“另一场所another location(to the side)”。在边文件方式中,所谓“该场所’与“另一场所”在逻辑空间中属于相同场所。因此,边文件方式提供用于管理利用时间系列来保持不同图像的机制。作为实现边文件的代表性方式,已知阴影页(shadow page)方式。该阴影页方式中,具有如下特征,即,由于提供完全原子的更新,所以在系统故障时不需要复原。
在阴影页方式中,使用两组页表格与位图的组。各页表格是对每个文件块(页)具有一个入口的排列。页表格的各个入口具有保持对应块的现在图像的缝序号。另一方面,位图中,每个缝由1位构成,表示对应的缝在现在时刻是否保持块图像。目录表示当前的有效现在页表格与位图的组。在阴影页方式中,利用该目录的更新来保障原子性。
阴影页方式的特征在于在另一场所执行数据更新,使用多个、例如两个(一对)页表格。这样,在阴影页方式中,无论在从数据更新到目录更新之间的哪个时间产生故障,都可取消更新,而不必执行任何恢复处理。
若比较存入与阴影页方式,则可知存入的性能好。要求高可用性(highavailability)的文件管理系统必需在短时间内对万一的故障重新开始服务。因此,通常为了实现高可靠性与高吞吐量,多适用存入。但是,由于存入在产生故障时需要通过向前运行(roll forward)来从日志中恢复未更新的数据,所以该恢复有时会需要长时间(例如数分钟左右的时间)。
另一方面,就安装的简易或从故障复原的高速性而言,阴影页方式好。即,在阴影页方式中,如上所述,由于不需要故障恢复,所以可在短时间内(例如数秒之内)恢复服务。但是,现有的阴影页方式在性能上存在如下问题,即
需要大尺寸的页表格
容易引起分段
提交时的成本高,不实用。尤其是在大规模的数据库中,阴影页方式随着盘的存取成本的增加,性能恶化显著。下面,详细描述上述问题。
首先,在现有的阴影页方式中,若数据库规模变大,则不能保证将两个页表格完全存储在主存储中。例如,在页尺寸为2千字节(KB)时,1太拉字节(TB)的数据库的页数为500兆(M)页。此时,若设1入口4字节(B),则两个页表格所需的尺寸为500M*2*4B=4GB。即,需要大尺寸的页表格。若页表格的尺寸变得巨大,则页表格的缓冲器击中率例如有可能下降90%。页表格与数据在盘上间隔开后被配置于区域中。因此,若不让页表格击中缓冲器、而需要从盘中读出数据时,跨过页表格与数据页的随机存取急剧增加。此时,存取性能明显恶化。另外,即便假设是接近100%的缓冲器击中率,也由于缓冲器的调用变多,所以导致存取性能恶化。
另外,数据更新的结果,若再分配块(页),则产生分段。若产生分段,则随机的块输入输出增加。因此,盘存取时的数据传输速度下降。另外,提交时需要将数据块与页表格同步写入盘中。尤其是数据块的写入变得随机。因此,提交时的成本大。另外,为了在系统内保持采取数据块(页)的一贯性的状态,需要排斥向盘的同步写入(提交处理)。因此,还存在不能在备份处理中进行更新、换言之、不能在更新处理中备份的问题。
作为事务的一个基本要件,具有事务的分离性。即,需要不能从其它事务中读出更新中的数据,和即便读入处理花费时间、也要保证开始时刻的事务的一贯性。在多数事务处理(processing)系统中,采用通过基于日志的相互排斥来分离事务的方式。此时,还存在需等待读入(参照)更新中的数据的问题。
发明内容
本发明的目的在于可减小相当于阴影页方式中的页表格的映像表格的尺寸,并且,可防止文件数据断片化。本发明的另一目的在于使执行更新处理中的数据备份变为可能。本发明的再一目的在于不用等待参照更新中的数据就可保证数据的一贯性。
根据本发明的一个实施例,提供一种具有事务管理功能的文件系统。该文件系统由存储装置、一对映像表格、文件管理部件、更新处理部件、提交部件与实更新部件构成。所述存储装置具有确保文件区域与暂时写入区域的存储区域。所述文件区域被文件占有。所述暂时写入区域用于暂时存储文件的页单位的更新数据。所述一对映像表格用于记录执行了所述暂时写入区域内的更新的有效页的列表。将所述一对映像表格配置在所述存储区域中。所述文件管理部件管理存储在所述文件区域中的文件。所述更新处理部件更新包含于由所述文件管理部件管理的文件中的页。所述更新处理部件通过向空的页中写入更新数据来执行所述页的更新。从所述暂时写入区域中取得所述空的页。所述提交部件在每次事务(多个事务)各自的提交时,将在该时刻存储在所述暂时写入区域中的所述有效页的列表交互地写入所述一对映像表格中。所述实更新部件将存储在所述暂时写入区域中的有效页的更新数据写入所述文件区域的最初的页位置。所述实更新部件开放所述最初的页位置写有更新数据的所述有效页。
附图说明
图1是表示本发明一实施方式的具备事务管理功能的文件系统的结构框图。
图2是表示图1所示的文件管理系统10的结构框图。
图3是表示涉及保持在图1所示的文件表格210中的文件#i(Fi)的记录FTRi的数据构造例的图。
图4是表示文件#i(Fi)与盘区的关系的图。
图5是说明该实施方式中的页内数据的更新的图。
图6是说明该实施方式中的检查点处理的图。
图7是表示由文件表格210内的文件表格记录FrR2表示的、文件#2(F2)的盘区构成的图。
图8是说明该实施方式中的数据读入处理的图。
图9是说明该实施方式中的盘区的扩展处理的图。
图10是说明该实施方式中适用的第1负荷减轻方式的图。
图11是说明该实施方式中适用的第2负荷减轻方式的图。
图12是说明该实施方式中适用的第1在线备份的图。
图13是说明该实施方式中适用的第2在线备份的图。
图14是表示该实施方式的变形例中适用的多版本同时执行管制(MVCC)队列41中的数据构造例的图。
具体实施方式
下面,参照附图来说明本发明的一实施方式。图1是表示本发明一实施方式的具备事务管理功能的文件系统的结构框图。该文件系统主要由文件管理系统(file management system)10、存储装置(storage devise)20、缓冲存储器(buffer memory)30与局部存储器(local memory)40构成。存储装置20是例如使用盘驱动器构成的盘存储装置。存储装置20的存储区域(盘区域)主要分成数据段区域(data segment area)21与阴影段区域(shadow segment area)22来进行管理。
数据段区域21是被文件占有的文件区域。所谓文件是分配给每个存储在数据库(DB)中的“逻辑”集中的管理单位。另外,文件在物理上由一个或多个盘区构成。所谓盘区是指以指定的尺寸确保的物理连结页区域。文件初期按盘区尺寸制作,随着数据的追加,以盘区单位扩展。图1中示出在数据段区域21中存储文件F1(#1)、F2(#2)、F3(#3)的状态。
在数据段区域21中还存储文件表格210。文件表格210被存储于数据段区域21中。该文件表格210本身是存储在数据段区域21中的一个文件(这里为文件#0)。文件表格210保持存储在数据段区域21中的文件的多个记录。即,文件表格210保持关于文件#0、#1、#2...的记录(文件表格记录)FTR0、FTR1、FTR2...。
阴影段区域22是暂时存储文件的更新数据(更新页)的暂时写入区域。即,阴影段区域22是在必需对文件内的页进行更新时才使用的更新(current)页存储区域。在以前的阴影页方式中,从分配给数据库的全部页中寻找用于更新页的空的页。而在本实施方式中,从阴影段区域22中寻找全部用于更新的空的页。因此,相对于以前的阴影页方式,将该方式称为阴影段方式。
这样,在本实施方式中,与以前的阴影页方式不同,适用使存储数据的场所(location)与更新数据的场所基本上不混合存在于盘区域上的构成。即,在本实施方式中,文件的更新仅在称为阴影段区域22的、与文件区域(数据段区域21)不同的有限区域中进行。因此,在以下的说明中,也将未进行文件更新的文件区域(数据段区域21)称为“原始区域”。但是,只有在向文件的盘区内未使用的页中追加数据时,才直接将数据追加到该页中。
在存储装置20的盘区域中,配置一对映像(映像表格)23-0(#0)和23-1(#1)。映像23-0和23-1相当于以前的阴影页方式中的页表格。映像23-0和23-1仅具有等于阴影段区域22的页数、而非构筑于盘区域中的数据库的全部页数的入口。在这点上,映像23-0和23-1与阴影页方式中的页表格不同。映像23-0和23-1保持阴影段区域22内的有效页(更新页)的列表(更新列表)。该列表是包含阴影段区域22的有效页的ID信息(物理ID)、与对应于该页的数据段区域21内的页的ID信息(物理ID)的组的记录排列。
在存储装置20的盘区域中,还配置目录24。目录24表示映像23-0和23-1哪个是原始的映像(被确定的映像)。非原始一方的映像是更新的映像。
文件管理系统10具有包含事务管理的文件管理功能。文件管理系统10通过计算机的读取执行来实现文件管理用程序。该文件管理用的程序可事先存储在计算机可读取的存储媒体中来发布。另外,该程序即便经网络下载(发布)也无妨。
图2是表示文件管理系统10的结构框图。文件管理系统10由更新处理单元(update-processing unit)11、读入处理单元(read-processing unit)12、检查点处理单元(checkpoint-processing unit)13、文件管理控制单元(filemanagement processing unit)14、和备份单元(backup unit)15构成。更新处理单元11管理更新事务。更新处理单元11由读入部(read module)111、更新部(update module)112和提交部(commit module)113构成。读入部111包含映像检索部(map search module)111a、与最新页读入部(current-pagemodule)111b。更新部112包含阴影段更新部(shadow-segment updatemodule)112a。提交部113包含映像更新部(map update module)113a、更新页快闪部(updated-page flash module)113b、映像快闪部(map flashmodule)113c和目录切换部(directory switch module)113d。
读入处理单元12由读入部(read module)121构成。读入部121包含映像检索部(map search module)121a、与最新页读入部(current-pagemodule)121b。读入处理单元12的读入部121相当于更新处理单元11的读入部111。因此,通过由更新处理单元11和读入处理单元12共用读入部111和121之一,可省略读入部111和121的另一个。
检查点处理单元13由检查点部(checkpoint module)131、提交部(commitmodule)132、和映像释放部(map release module)133构成。检查点部131包含拷贝部(copy module)131a。提交部132包含映像更新部(map updatemodule)132a、更新页快闪部(updated-page flash module)132b、映像快闪部(map flash module)132c、与目录切换部(directory switch module)132d。检查点处理单元13的提交部132相当于更新处理单元11的提交部113。两者的差异如后所述,在于提交部113的映像更新部113a执行将记录记录在映像中的更新处理,而提交部132的映像更新部132a执行从映像中删除记录的更新处理。因此,也可在由更新处理单元11和检查点处理单元13共用提交部113和132之一的同时,使该一个映像更新部具有记录记录与删除记录的两个功能。此时,可省略提交部113和132的另一个。
文件管理控制单元14根据来自利用图1的文件系统的应用程序的请求,控制上述更新处理单元11、以及读入处理单元12。来自应用程序的请求是例如事务的开始请求、或用于使该事务中的更新操作确定的提交请求。文件管理控制单元14还产生检查点处理用的事务,控制检查点处理单元13。文件管理控制单元14还控制备份单元15的在线备份。备份单元15具有执行称为第1和第2在线备份的两种备份的功能。后面描述第1和第2在线备份。
再参照图1,缓冲存储器30被用作暂时存储在文件管理系统10与存储装置20之间输入输出的页数据用的盘高速缓冲存储器。局部存储器40被用于存储文件管理系统10的文件管理所需的暂时信息。
这里,说明作为图1的系统中适用的阴影段方式的前提条件的文件与盘区(extent)的概要。在本实施方式中,采用盘区方式,作为将文件内的页确保(分配)在物理盘中的方式。盘区方式的基本点在于
文件由多个物理上连结的区域(称之为盘区)构成
在伴随数据增加、区域不足的情况下,以盘区单位来确保新的连续区域。
图3表示涉及保持在文件表格210中的文件#i(Fi)的记录(文件表格记录)FTRi的数据构造例,图4表示文件#i(Fi)与盘区的关系。图3和图4的实例中假设为文件#i(Fi)由3个盘区Ei1(#i1)、Ei2(#i2)和Ei3(#i3)构成的情况。
记录FTRi包含首标、与涉及构成对应于该记录FTRi的文件#i(Fi)的各盘区的信息(盘区信息)。首标包含称为内部识别符的文件#i(Fi)的ID(文件ID)、称为外部识别符的文件#i(Fi)的名称(文件名)、和表示构成文件#i(Fi)的盘区数量的信息。另一方面,盘区信息包含分别表示对应于该盘区信息的盘区在盘(盘区域)上的开始位置、确保(预约)的累计页数、和使用完的页位置的信息。使用完的页位置表示对应的盘区中的最后使用完的页的、以文件开头(开头盘区的开头页)为起点的页位置。在图4的实例中,盘区#i1(Ei1)、#i2(Ei2)和#i3(Ei3)的页数分别为5、10和10。另外,仅盘区#i3(Ei3)的最后页未使用。因此,盘区#i1(Ei1)、#i2(Ei2)和#i3(Ei3)的累计页数分别为5、15、25,盘区#i1(Ei1)、#i2(Ei2)和#i3(Ei3)的使用完的页位置分别为5、15和24。
在以后说明的处理中,以在各文件中确保(预约)构成该文件的盘区、即连续区域为前提。换言之,本实施方式以如下各点为特征。首先,在现有的阴影页方式中,空的页完全(即系统上任何功能)是空的页,无论用于何处都无妨。但在本实施方式中,以盘区方式确保(预约)的区域内的页即便在未写入实数据的含义下是空的页,也不能在确保时的用途之外使用。
下面,以进行页内数据更新的情况为例,参照图5的动作说明图来说明本实施方式的动作。首先,设从利用图1的文件系统的应用程序对文件管理系统10的文件管理控制单元14请求事务TR的开始。这里,设通过事务TR更新的数据为文件#2(F2),需要更新的页是盘区#22的第2页的页PD1。另外,设该页的物理ID为1000。
在阴影段方式中,必需残留原始页来作为阴影。因此,利用必需更新的页PD1的图像拷贝,对阴影段区域22内的页执行更新。因此,包含于更新处理单元11的读入部111中的映像检索部111a从阴影段区域22内取得用于更新的空的页。该空的页可通过检索映像23-0和23-1中的原始映像来取得。这里,设上述事务TR的开始时的原始(确定)映像为映像23-0(#0),更新的映像是映像23-1(#1)。另外,设发现页PS1为空的页。设该阴影段区域22内的页PS1的ID为SS1。
读入部111的最新页读入部111b读入需要更新的页PD1的数据(步骤S1)。将由最新页读入部111b读入的页PD1的图像拷贝到阴影段区域22内的页PS1中。但是,在文件管理系统10与存储装置20之间设置缓冲存储器30的本实施方式中,该拷贝实际上对对应于页PS1的缓冲存储器30内的页(块)进行。
包含于更新处理单元11的更新部112中的阴影段更新部112a执行阴影段区域22内的页(更新页)PS1的更新(步骤S2)。但是,这里的更新实际上也是对对应于页PS1的缓冲存储器30内的页(块)进行的。此时,阴影段更新部112a用作映像登录请求记录部。由此,阴影段更新部112a将表示页PD1的更新后的页图像(更新页的图像)存在于阴影段区域22内的页(更新页)PS1中的信息存储(记录)在暂时映像中。在局部存储器40内,对应于事务TR来确保该暂时映像。存储在暂时映像中的信息包含PD1的物理ID=1000与PS1的物理ID=SS1的对。在使事务TR结束时,将该信息追加到该时刻下的更新映像中。因此,将该信息记录在局部存储器40内的对应于事务TR的暂时映像中表现为映像追加请求记录。物理ID就数据段区域21内的页而言,表示该数据段区域21内的相对页位置,就阴影段区域22内的页而言,表示该阴影段区域22内的相对页位置。
之后,为了使事务TR结束,设从应用程序请求确定该事务TR的更新操作的提交处理。如上所述,该事务TR开始时的原始映像为映像23-0(#0)。此时,包含于更新处理单元11的提交部113中的映像更新部113a将映像23-0(#0)拷贝到映像23-1(#1)中。之后,映像更新部113a根据存储在暂时映像中的信息(映像追加请求),将涉及物理ID=1000的记录追加(记录)到映像23-0(#0)中(步骤S3)。暂时映像如上所述,在局部存储器40内对应于事务TR来确保。涉及物理ID=1000的记录包含页PD1的物理ID=1000与页PS1的物理ID=SS1的对。该记录表示对应于物理ID=1000的页PD1的最新版本页SS1存在于阴影段区域22内。另外,上述记录追加的映像更新处理实际上是对对应于配置映像23-0(#0)和映像23-1(#1)的页的缓冲存储器30内的页(块)进行的。
接着,若未反映于阴影段区域22的更新页(不正常的更新页)位于缓冲存储器30内,则提交部113的更新页快闪部113b将该更新页全部反射((flash)到阴影段区域22内的对应页中。同样,若未反映于映像23-1的更新映像的页位于缓冲存储器30内,则提交部113的提交快闪部113c将该更新映像反射到映像23-1中。在该阶段,提交部113的目录切换部113d操作目录24,将映像的原始从映像23-0(#0)切换到映像23-1(#1)(步骤S4)。由此,提交处理结束。
以上处理中构成要点的是以下两点。一点是从阴影段区域22中准备更新用的更新页。即,更新用的更新页中仅利用阴影段。另一个是向映像23-i(这里i=1)仅追加包含页图像存在于阴影段区域22内的更新页(更新页)的物理ID的记录。即,由未存储在映像23-i中的物理ID表示的阴影段区域22内的页是空页。追加于映像23-I中的记录与阴影段区域22内的更新页的物理ID构成对,包含对应于该更新页的数据段区域21内的老的页的物理ID。
通过事务的更新操作,在提交该事务之前,产生构成事务局部的数据。为了管理该数据,上述暂时映像存储事务中更新的文档页的映像信息。映像信息包含数据段区域21内的页的物理ID与阴影段区域22内的对应页的物理ID。暂时映像在事务开始时制作,在事务结束(提交/重新运行)时废弃。
在本实施方式中,采用阴影段方式来作为恢复方式,但其基础是阴影页方式。就阴影页方式而言,在更新确定(提交)处理时,需要
(1)将数据(数据页)写入盘中
(2)拷贝、更新、写入映像
(3)用于空的区域管理的自由位页(FBP)与其阴影处理。
页的盘输入输出(I/O)处理所需的负荷比存储器存取或计算处理高。担心在进行提交处理时,响应性由于提交处理的串联化和上述映像处理而下降。另外,由于映像的更新必需以具有事务的一贯性的单位执行,所以在直接更新映像的方式中不能同时执行多个更新。
因此,以具有一贯性的单位将各个事务的更新信息记录在上述暂时映像中,在提交请求的定时一次更新更新映像。另外,在本实施方式中,集中处理多个提交请求。将该集中处理多个提交请求称为组提交。虽然各事务的平均响应时间因提交的延迟而变长,但每次事务的内务操作(overhead)(I/O准备与发行、完成后的后终端等)变得非常短。一般,通过在低负荷的情况下不延迟提交、在高负荷的情况下使提交延迟一定时间来得到最佳的吞吐量。在本实施方式中,将组提交执行中的提交请求延迟到提交完成,利用下一次组提交来集中处理其间的请求,从而实现最佳化。在延迟时间控制之前不执行。
下面,参照图6的动作说明图来说明本实施方式的检查点处理。通过该检查点处理,会理解上述两个点是非常重要的。检查点处理的目的在于通过将在阴影段区域22中制作的更新后的页图像恢复到数据段区域21内的初始位置(=连续区域中),实现盘I/O的高速化。
设本实施方式中的检查点处理(实更新处理)是在文件管理系统10的文件管理控制单元14内部产生的独立的事务TRc。即,在本实施方式中,不让该检查点处理搭乘其它事务内的一部分。但是,就提交而言,同其它事务一样可利用组提交来统一处理。在本实施方式中,在阴影段区域22内的空的页少的情况下,例如空的页与全部页数的比率不足规定的情况下,产生事务TRc。另外,即便构成为定期产生事务TRc也无妨。
首先,设由目录24来表示映像23-1(#1)是原始的。此时,包含于检查点处理单元13的检查点部131中的拷贝部131a参照原始的映像23-1(#1)。由此,拷贝部131a取得对应于阴影段区域22中制作的更新后的页图像(更新页的图像)的、数据段区域21内的初始的老的页图像的物理ID。另外,拷贝部131a确认由该取得的物理ID表示的、需要数据段区域21内的老的页图像的事务不存在(步骤S11)。这里,设阴影段区域22内的更新页是PS1,对应于PS1的数据段区域21内的老的页(原始页)为物理ID=1000的PD1。此时,拷贝部131a将阴影段区域22内的更新页PS1的图像拷贝到数据段区域21内的初始位置、即页PD1(步骤S12)。即,拷贝部131a执行将阴影段区域22内的更新页PS1的图像写回到数据段区域21内的初始位置的实更新处理。但是,该实更新处理(拷贝处理)是针对对应于页PD1的缓冲存储器30内的页来执行的。拷贝部131a具有映像删除请求记录功能。拷贝部131a利用该功能,在执行实更新处理时,将表示将更新页PS1的图像反映到初始的数据段区域21内的页PD1的信息存储(记录)于确保在局部存储器40中的、对应于事务TRc的暂时映像中。该信息包含PD1的物理ID=1000与PS1的物理ID=SS1的对。在使用于检查点处理的事务TRc结束时,从该时刻的更新映像中删除该信息。因此,将把该信息记录在局部存储器40内的对应于事务TRc的暂时映像中表现为映像删除请求记录。
设对阴影段区域22内的几个更新页(例如全部更新页)重复上述实更新处理(拷贝处理)的结果,使用于检查点处理的事务TRc结束。此时,利用检查点处理单元13的提交部132来开始确定该事务TRc的操作的提交处理。首先,提交部132的映像更新部132a将作为检查点处理的事务TRc开始时的原始映像的映像23-1(#1)拷贝到映像23-0(#0)中。之后,映像更新部132a根据存储在暂时映像中的信息(映像删除请求),删除涉及物理ID=1000的记录(步骤S13)。在局部存储器40内,对应于事务TRc来确保暂时映像。涉及物理ID=1000的记录包含页PD1的物理ID=1000与页PS1的物理ID=SS1的对。该用于记录删除的映像更新操作实际上是针对对应于配置映像23-0(#0)和映像23-1(#1)的页的缓冲存储器30内的页(块)进行的。
接着,若缓冲存储器30内有未反映于数据段区域21的更新页,则提交部132的更新页快闪部132b将该更新页全部反射到数据段区域21内的对应页上。同样,若缓冲存储器30内有未反映于映像23-0的对应更新映像的页,则提交部132的映像快闪部132c将该更新映像反射到映像23-0上。在该阶段,提交部132的目录切换部132d操作目录24,将映像的原始从映像23-1(#1)切换到映像23-0(#0)(步骤S14),由此提交处理结束。
这里,对上述两个点,基于上述检查点处理再次确认。第1点是在更新用的更新页中仅利用阴影段。如所述的那样,在已知的阴影页方式中,搜索新的空的页,更新该页。因此,容易因更新而产生页的分段。而在本实施方式中适用的阴影段方式中,通过将更新页配置在阴影段区域22中,及利用检查点处理将该更新页图像返回到初始的连续区域内,可抑制由于更新而产生的分段。
下面,第2点是映像23-i(i为0或1)具有仅在阴影段区域22内存在更新页图像的页的记录。如所述的那样,在阴影页方式中,为了逻辑ID与物理ID之间的映射,随着页数的增大而需要巨大的表格(页表格)。而在本实施方式中适用的阴影段方式中,通过具有仅更新后的页的记录,可绝对抑制映像尺寸。另外,可利用检查点处理来整理映像(映像表格)自身,抑制映像的庞大化。
下面,以读入文件#2(F2)中的共同页序号10的页的情况为例,参照图7和图8来说明事务TR中例如伴随数据检索的数据读入处理(参照处理)。图7是表示由文件表格210内的文件表格记录FTR2表示的、文件#2(F2)的盘区构成的图,图8是数据读入处理的动作说明图。图7中,前提是文件#2(F2)与图1不同,由3个盘区#21、#22和#23构成。即,设文件#2(F2)为图4所示的文件#i(Fi)(i=2)。
首先,读入处理单元12的读入部121读入文件表格210中的文件表格记录FTR2。之后,读入部121根据该文件表格记录FTR2中包含的、表示文件#2(F2)的盘区构成的盘区信息,识别共同页序号10的页是盘区#22的第5页、即物理ID为215的页。
读入部121通过对应于事务TR的暂时映像中存储的信息(映像追加请求)中是否包含表示物理ID=215的页的信息,判定该页是否是由该事务TR更新的页。在局部存储器40内,对应于事务TR来确保暂时映像。若物理ID=215的页是由事务TR更新的页,则读入部121的最新页读入部121b读入该更新的页的数据。
相反,若物理ID=215的页不是由事务TR更新的页,则读入部121的映像检索部121a参照目录24确认映像23-0和23-1哪个是原始的映像(步骤S21)。这里,设映像23-0是原始的映像。此时,映像检索部121a检索原始映像23-0,调查是否有存储包含物理ID=215的记录。这意味着调查对应于物理ID=215的页的更新页(已更新页)是否存在于阴影段区域22中。若包含物理ID=215的记录被存储在原始映像23-0中,则映像检索部121a从该记录中取出与物理ID=215构成对的更新页的物理ID。之后,映像检索部121a将取出的物理ID传递给读入部121的最新页读入部121b。
最新页读入部121b读入从映像检索部121a传递来的物理ID所示的阴影段区域22内的更新页的数据。但是,在图8的实例中,在映像23-0中未存储包含物理ID=215的记录。最新页读入部121b在物理ID=215的页不是由事务TR更新的页、并且原始映像23-0中未存储包含物理ID=215的记录的情况下,直接读入物理ID=215的页的数据。
设文件#i(Fi)的尺寸缓慢增加,该文件#i(Fi)具有的盘区区域全部被利用。此时,需要扩展盘区,即,需要确保物理的连续区域,并且使该信息反映于文件表格210中的文件表格记录FTRi上。因此,说明盘区的扩展处理。
首先,与上述检查点处理一样,设本实施方式中的盘区的扩展处理是文件管理系统10在内部产生的独立的事务TRe。其理由如下。即便假设重新运行需要扩展盘区的事务,由于附近的其它事务,必需扩展盘区的可能性非常高(局域性的原理)。因此,对于盘区的扩展,即便先使其完成也没问题。
另一方面,由于某个事务,为了扩展盘区而获得文件表格210的对应页的排斥日志的情况下,事务(多个事务)的并列性产生问题。原因是在获得排斥日志的事务结束之前,要等待其它事务参照文件表格210的对应页。因此,盘区的扩展虽是触发执行某个事务的处理,但不能保证涉及该事务的盘区扩展的原子性。但是,这在数据库管理的内部产生,盘区扩展不会对外部产生影响。
下面,以文件#2(F2)中没有用于存储数据的足够区域的情况为例,参照图9的动作说明图来说明盘区的扩展处理。另外,如上所述,文件表格210也是一个文件(这里为文件#0),盘区的扩展处理基本上与其它文件一样进行。现在设存储在文件表格210中的、涉及文件#2(F2)的记录(即文件表格记录FTR2)存在的页为物理ID=2的页PD02。设包含该页PD02的盘区为盘区E01。
图2中省略执行盘区扩展处理的盘区扩展处理单元(extent-expansion-processing unit)。但是,该盘区扩展处理基本上与更新处理单元11的更新处理一样执行。因此,在本实施方式中,为了方便,设盘区的扩展处理由更新处理单元11执行加以说明。映像检索部111a从阴影段区域22内搜索用于页PD02的更新的空的页。之后,映像检索部111a将页PD02的图像拷贝到该空的页中(步骤S31)。这里,如图9所示,设页PD02的图像被拷贝到阴影段区域22内的页PS1中。
更新部112在存储装置20的数据段区域21上确保指定为盘区扩展尺寸大小的连续区域(步骤S32)。更新部112在页PS1上,更新文件#2(F2)的文件表格记录FTR2,以便将步骤S32中确保的区域处理为文件#2(F2)被扩展的盘区#22(步骤S33)。这里,向文件表格记录FTR2的第2盘区栏中追加步骤S32中确保的区域(盘区#22)的盘区信息。
下面,说明用于使上述盘区扩展处理的事务TRe结束的提交处理。首先,设该事务TRe开始时的原始映像为映像23-0(#0)。此时,提交部113将映像23-0(#0)拷贝到映像23-1(#1),并将涉及物理ID=2的记录追加到该映像23-1(#1)(步骤S31)。涉及物理ID=2的记录包含页PD02的物理ID=2与页PS1的物理ID的对。另外,提交部113将映像的原始从映像23-0(#0)切换到映像23-1(#1)(步骤S35)。由此提交处理结束。
如已述的那样,本实施方式中适用的阴影段方式在抑制映像尺寸的同时、抑制因更新产生的分段方面非常有效。但是,仅由此在执行统一登录等大量登录的情况下的检查点处理变为非常高的负荷。例如,在阴影段区域22的全部页为更新页的状态下的检查点处理中,需要阴影段区域22尺寸大小的页拷贝。因此,在本实施方式中,为了减轻检查点处理的负荷,适用下述的第1和第2负荷减轻方式。
首先,参照图10的动作说明图来说明第1负荷减轻方式。第1负荷减轻方式的特征在于是向盘区内未使用的页追加数据的方式。即,第1负荷减轻方式的特征在于不向阴影段区域22内拷贝对应的页,而在该页的位置直接追加数据。在该数据追加失败的情况下,不更新文件表格210内的对应文件表格记录中包含的使用的更大有效页序号(已使用页位置),由此实现恢复。
现在,如图10所示,设文件#1(F1)由页数为4的两个盘区#1和#2构成。另外,设盘区#2的已使用页位置为5。即,设盘区#2内的第2页以后没有数据。该文件#1(F1)的盘区构成由存储在文件表格210中的文件表格记录FTR1中的盘区信息表示。因此,通过该文件表格记录FTR1中的盘区信息来确定盘区#2的已使用页位置为5。
在这种状态下,设在某个事务TR中,产生向文件#1(F1)追加数据,并需要将已使用页位置写入下一页位置“6”、即盘区#2的第2页。由于盘区#2的开始物理ID为211,所以该盘区#2的第2页的物理ID为212。此时,在盘区#2的第2页、即物理ID=212的页中根本不写入有效数据。如上所述,这通过文件表格记录FTR1的盘区信息(涉及盘区#2的盘区信息)表示的“已使用页位置”为5来保证。
在这种情况下,更新部112将数据直接写入数据段区域21内的物理ID=212的页位置,而非阴影段区域22中(步骤S41)。即,设为了使事务TR结束,从应用程序请求提交处理,正常完成写入。此时,提交部113将文件表格记录FTR1中包含的、涉及盘区#2的盘区信息表示的“已使用页位置”从“5”改写成“6”(步骤S42)。相反,在向物理ID=212写入失败的情况下,提交部113不改写文件表格记录FTR1的“已使用页位置”的信息,保持5不变。由此,恢复完成。
这样,在第1负荷减轻方式中,在需要向盘区内未使用的页追加数据的情况下,向该页的位置直接追加数据。即,在第1负荷减轻方式中,通过不使用阴影段区域22,可不需要检查点处理,另外,还可不需要检索时的映像参照。
下面,参照图11的动作说明图来说明第2负荷减轻方式。第2负荷减轻方式的特征在于在产生根据检查点处理向数据段区域21写回之前,进一步更新相同页时的处理中。即,第2负荷减轻方式的特征在于应由检查点处理写回的页仅为最新(最终)页的图像。在产生检查点处理之前,由多个事务执行多次相同页的更新的情况下,在阴影段区域22内依次保持同一页的过去版本。
现在,如图11所示,设依次执行3次文#1(F1)的开头盘区#1中的页PD12的更新。此时,如图11所示,首先在阴影段区域22内的例如页PS1中保持页PD12的最初的更新图像。接着,在阴影段区域22内的例如页PS3中保持页PD12的下一更新图像。之后,在阴影段区域22内的例如页PS4中保持页PD12的最新更新图像。
在这种状态下,设产生适用第2负荷减轻方式的检查点处理。在该检查点处理中,在不存在参照老版本的页图像的事务后,对数据段区域21内的初始盘区区域写回最新版本的页图像。在图11的实例中,就数据段区域21内的页PD12而言,在阴影段区域22内保存多个旧版本的页图像。但是,既然已不存在参照旧版本的事务,所需的数据仅为保持在阴影段区域22内的页PS4中的最新页图像。因此,检查点处理单元13的检查点部131仅执行保持在页PS4中的最新页图像的写回(步骤S50)。将保存旧版本的页图像的页作为空的页来管理。
从上述说明可知,本实施方式中适用的阴影段方式与已知的阴影页方式相比,具有以下的不同点、和阴影页方式中得不到的效果。
(1)相当于阴影页方式中的页表格的映像(映像表格)的大小不依赖于数据库的大小。而阴影页方式存在页表格的大小随着数据库的大小而变大的问题。在本实施方式中适用的阴影段方式中,将更新页配置在称为阴影段方式22的更新数据的暂时存储区域中。这里,页变换(物理ID的变换)由对更新页集合的联想存储、而非对数据库整体的表格进行。利用这种阴影段方式,以对应于更新量的尺寸来实现映像表格。尤其是在检查点处理完成的时刻,由于映像表格内的记录数变为0,所以具有没有映像检索中页变换的内务操作的优点。
(2)可防止文件的断片化。即,在本实施方式中,虽在数据更新时会暂时产生文件的断片化,但通过检查点处理可复原原始盘区的连续性。即,使基于盘区方式的文件管理方式与阴影页方式组合,利用检查点处理,执行从阴影段区域22到数据段区域(文件区域)21的实更新,由此可防止文件的断片化。
(3)可缩短提交的响应时间。一般,阴影页方式中的提交时的成本取决于以下两点。第1是需在提交时将包含更新的全部页从缓冲存储器写入盘中的数据量。第2是文件断片化导致盘的随机写入的产生。另一方面,在阴影段方式中,写入数据量这点与阴影页方式一样。但是,在阴影段方式中,通过相对于更新量来充分增大阴影段区域22,可得到接近存入的顺序写入性能。其原因在于可边依次错位页位置边循环执行应用于阴影段区域22内的更新的空的页(新页)的分配。
(4)可在写回到原始(检查点处理)中进行更新。可认为阴影段方式是组合阴影页方式与边文件方式的方式。该边文件方式的缺点在于在向原始文件的写回中不能更新。但是,在本实施方式中,通过将检查点处理管理为在文件管理系统10内产生的独立事务(内部事务)TRc,可克服该缺点。即,在本实施方式中,与通常的事务一样,可利用组提交来统一处理检查点处理的事务TRc,使检查点处理背负(piggy back)在通常的事务处理中来局部执行,从而克服上述缺点。
如上所述,在阴影段区域22的全部页为更新页的状态下的检查点处理(实更新处理)中,该检查点处理的负荷变大。因此,最好以规定数量的页为上限、将检查点处理分成多次来执行。这样,通过局部执行而非以具有一贯性的单位来执行检查点处理,可平稳化检查点处理的负荷。
下面,分成第1和第2在线备份来顺序说明本实施方式中的在线备份动作。所谓第1在线备份是指仅在线备份数据段区域21的数据,所谓第2在线备份是指在线备份包含阴影段区域22内没能进行实更新的页。
首先,参照图12的动作说明图来说明第1在线备份。这里,当在线备份时,由检查点处理单元13执行图6所示的检查点处理(实更新处理)。该“检查点处理”(实更新处理)可通过所述内部事务TRc与通常的事务的更新处理并列执行。
现在,设通过检查点处理,已完成将位于阴影段区域22中的全都更新页(更新页)的数据写回(实更新)到数据段区域21中。此时,如图12所示,备份单元15仅执行数据段区域(原始区域)21的数据备份(步骤S51)。设在该备份中产生对数据段区域21的数据更新。此时,利用需要更新的页的图像拷贝,对阴影段区域22内的空的页执行针对数据段区域21的数据更新。这里,如图12所示,设对阴影段区域22内的页PSy执行向存储在数据段区域21中的文件#2(F2)内的页PDx的数据更新(步骤S52)。这样,在本实施方式中,更新数据被写入阴影段区域22中。由此,得以保证备份中的数据段区域21的数据的一贯性。
下面,参照图13的动作说明图来说明第2在线备份。首先,设在线备份时执行的检查点处理(实更新处理)中,位于阴影段区域22中的一部分页没能实更新(写回)。这种页有可能在与通常的事务并列执行检查点处理的内部事务TRc时产生。即,在存在作为阴影段区域22内的更新页的写回对象的、需要数据段区域21内的页的事务的情况下,没能实更新(写回)该更新页。
在图13的实例中,示出4个页PS1、PS8、PSt和PSu,作为阴影段区域22内的没能实更新的页。在阴影段区域22内存在没能实更新的页(即未完成写回的有效页)的情况下,备份单元15执行下述的备份。即,备份单元15除数据段区域(原始区域)的数据备份外,还执行阴影段区域22内的没能实更新的更新页的备份。在图13的实例中,执行页PS1、PS8、PSt和PSu的备份。另外,备份单元15还执行映像23-0和23-1中原始映像(即最近确定的映像)的备份。在图13的实例中,由于映像23-0是原始映像,所以备份该映像23-0。很显然,在映像23-0中仅存储包含页PS1、PS8、PSt和PSu的物理ID的记录。为了写回页PS1、PS8、PSt和PSu的图像,该记录包含数据段区域21内的初始页(原始页)的物理ID。
设在上述备份中,产生了对数据段区域21的数据更新。此时,对阴影段区域22的数据更新利用需要该更新的页的图像拷贝,对该阴影段区域22的新的页执行。因此,利用数据段区域21与没能实更新的阴影段区域22内的页的组合所实现的数据的一贯性得以保证。即,在本实施方式中,可进行备份处理中的数据更新。换言之,可在数据更新中进行有一贯性的备份。
如上所述,在阴影段区域22内存在没能实更新的页的情况下,除数据段区域21的备份外,还备份没能实更新的页与原始映像。由此,即便存储装置20等产生故障,也可在根据备份数据恢复到备份时刻确定的状态之后,执行没能实更新的页的实更新。这里,根据存储在原始映像中的、对应于该页的记录,将没能实更新的页正确写回到数据段区域21内的初始页位置上。另外,在在线备份时执行的检查点处理中,在产生没能实更新(写回)的更新页的情况下,也可将涉及该没能实更新的页(更新页)与初始页的信息存储在局部存储器40中,也备份该信息。此时,可根据上述存储信息,直接特定没能更新的页(更新页)与初始页。因此,在复原时,可不检索原始映像地快速执行实更新。
[变形例]
如上所述,上述实施方式的特征在于适用以阴影页方式为基础的阴影段方式。即,上述实施方式的特征在于适用对数据段区域21内的初始页(原始页)之外的、阴影段区域22内的页(更新页)执行数据更新的构成。从而,在本实施方式中,即便是在事务处理中,也可保持一贯性不变地参照更新前的状态。但是,在本实施方式中,是通过原子地切换一对映像(映像表格)23-0和23-1实现事务性。因此,在存在参照原始页的事务的情况下,不能开始下一事务。下面说明该问题。
现在,设更新事务TR1将映像23-0(#0)用作原始映像来开始处理,并设映像23-1(#1)为更新。参照事务TR2参照原始映像#0,执行具有一贯性的询问。之后,设完成更新事务TR1。另外,在该状态下,设更新事务TR3将映像#1用作原始映像来开始处理,将映像#0设为即将更新。但是,由于参照事务TR2参照映像#0,所以更新事务TR3不能开始处理。该问题即便在通过原子地切换一对页表格来实现事务性的现有阴影页方式中也一样。
作为解决这种问题的方案,已知多版本同时执行控制(multi-versionconcurrency control:MVCC)。多版本同时执行控制功能具有以下4个特性:
(a)在检索(参照)中不取得日志
(b)即便其它事务在更新中,检索(参照)请求中也不产生“等待”
(c)在其它事务在更新中发出检索请求的情况下,可取得的是截止到检索开始前一刻提交的数据图像
(d)保持该旧版本的数据图像,直至关闭基于检索的结果设置(Result Set)为止,即直至不需要将检索结果的一部分数据保持在服务器上为止。
另一方面,在存入中,利用保持多代前图像(before Image)的方式来实现事务性。但是,在该方式中,由于在原始区域之外必须具有后图像与前图像双方,所以盘使用量的成本变高。
上述实施方式的变形例的特征在于可将多版本同时执行控制适用于阴影段方式中。因此,在该变形例中,适用(1)提交时刻、(2)MVCC队列等两个概念。下面,说明这两个概念。
(1)提交时刻
为了实现相当于上述(c)特征的事务分离等级(基于MVCC)的READ_COMMITTED,在“执行检索的时刻”需要上次提交完成的数据图像。所谓“执行检索的时刻”是指在执行检索之前完成提交的时刻。作为用于特定该“执行检索的时刻”的概念,准备了“提交时刻”。在本变形例中,在提交时刻中使用了自系统初次起动的时刻起执行的提交的次数。即,提交时刻单调增加。
(2)MVCC队列
在单纯的阴影页方式中,在完成提交的时刻,更新前的原始页废弃也无妨。但在该变形例中,为了能参照过去的版本,适用不废弃(再利用)其它事务参照的页的构成。为了适用该构成,需要用于构成判断是否为其它事务参照的页的基准的信息。该信息是对应于映像23-i(i=1、2)的不同代的局部映像,MVCC队列被用于积累该局部映像。由于该MVCC队列不必永久保存,所以可构筑在局部存储器40上。
图14表示保持在局部存储器40中的MVCC队列41的一例。在图14的实例中,在MVCC队列41中积累多代的局部映像410-1、410-2、...。向各局部映像410-j(j=1、2、...)附加作为印时戳的提交时刻Tj的信息。提交时刻Tj表示对应的事务TRj的提交时刻,即从系统最初起动到提交事务TRj的提交次数。这里,T1<T2。
这样,本变形例中的文件管理系统10通过导入MVCC队列41,在映像23-0和23-1之外,动态具有由执行中的事务利用的不同代的映像(局部映像)410-i。在本变形例中,适用不再利用从这些映像参照的原始页的构成。该构成与上述日志与基于前图像的事务性的实现相比,具有如下优点:
(1)由于仅由后图像来实现,所以数据的拷贝次数少
(2)由于不需要前图像区域,所以盘使用量少
(3)事务性实现用的映像参照与MVCC用的映像参照是基本一样的处理,实现用的成本少。
下面,以首先执行页内数据的更新的情况为例,引用图5来说明本变形例的动作。如上所述,在图5的实例中,事务TR更新的数据为文件#2(F2),需要更新的页为盘区#22的第2页的页PD1。下面,为了便于说明,设事务TR为事务TRj。页PD1的物理ID为1000。在阴影段方式中,利用该页PD1的图像拷贝,对阴影段区域22内的空的页执行针对该页PD1的更新。在图5的实例中,该空的页为页PS1,其物理ID=SS1。
此时,在事务TRj的提交处理中,由更新处理单元11的提交部113,将该事务TR开始时刻的原始映像23-0拷贝到映像23-1中。接着,向该拷贝后的映像23-1中追加包含物理ID=1000与物理ID=SS1的对的记录。另外,将映像的原始从映像23-0(#0)切换到映像23-1(#1)。在本变形例中,此外,由提交部113制作在提交时刻切换为原始的映像(这里为映像23-1)的拷贝,作为最新的局部映像410-j,积累(追加)到MVCC队列41中。将事务TRj的提交时刻的提交时刻Tj作为印时戳附加于该局部映像410-j上。
下面,与上述实施方式一样,以读入文件#2(F2)中的共同页序号10的页的情况为例,引用图7和图8来说明伴随事务TRk中的数据检索的数据读入处理(参照处理)。首先,读入处理单元12的读入部121将事务TRk的数据检索请求(参照请求)时刻的提交时刻设为事务开始时刻。接着,读入部121读入文件表格210中的文件表格记录FTR2。之后,读入部121根据该文件表格记录FTR2所示的文件#2的盘区构成,识别共同页序号10的页为盘区#22的第5页、即物理ID为215的页。
读入部121根据对应于事务TRk存储在局部存储器40中的信息(映像追加请求),判定物理ID=215的页是否是该事务TRk自身更新的页。并且,若物理ID=215的页是由事务TRk更新的页,则读入部121的最新页读入部121b读入该更新页的数据。
相反,若物理ID=215的页不是由事务TRk更新的页,则读入部121的映像检索部121a参照MVCC队列41。之后,映像检索部121a从MVCC队列41中搜索具有与上述事务开始时刻Tk一致的提交时刻的局部映像。这样,该变形例的一个关键在于以事务开始时刻为密钥检索MVCC队列41。
这里,设从MVCC队列41中找到局部映像410-2,作为具有与事务开始时刻Tk一致的提交时刻的局部映像。此时,映像检索部121a检索该局部映像410-2,调查是否存储了包含物理ID=215的记录。若存储了包含物理ID=215的记录,则映像检索部121a从该记录中取出与物理ID=215构成对的更新页的物理ID。映像检索部121a将取出的物理ID传递给读入部121的最新页读入部121b。此时,最新页读入部121b读入由从映像检索部121a传递来的物理ID所示的阴影段区域22内的更新页的数据。这样,在本变形例中,在伴随事务TRk中的数据检索的数据读入中,利用附加对应于该事务TRk的开始时刻Tk的印时戳的更新列表。由此,可在数据更新中取得事务TRk的开始时刻的具有一贯性的数据。换言之,可在数据更新中不等待数据读入地保证数据的一贯性。
相反,若局部映像410-2中未存储包含物理ID=215的记录,则映像检索部121a检索该时刻的原始映像23-0,调查是否存储了包含物理ID=215的记录。若包含物理ID=215的记录存储在原始映像23-0中,则映像检索部121a从该记录中取出与物理ID=215构成对的更新页的物理ID。映像检索部121a将取出的物理ID传递给读入部121的最新页读入部121b。由此,最新页读入部121b读入由从映像检索部121a传递来的物理ID所示的阴影段区域22内的更新页的数据。另一方面,若包含物理ID=215的记录也未存储在原始映像23-0中,则最新页读入部121b直接读入物理ID=215的页的数据。
下面,说明从MVCC队列41中释放局部映像的处理。该处理(映像释放处理)也与上述实施方式中的实更新处理一样,称为检查点处理。局部映像的释放,例如由检查点处理单元13的映像释放部133定期执行。映像释放部133首先从当前执行中的事务的开始时刻(事务开始时刻)中,取得最早的事务开始时刻T。接着,映像释放部133将事务开始时刻T与积累在MVCC队列41中的局部映像410-1、410-2的印时戳、即提交时刻T1、T2相比。之后,从MVCC队列41中释放具有比事务开始时刻T还早的印时戳(提交时刻)的全部局部映像。
并且,伴随局部映像的释放,需要阴影段区域22的空的页的管理与原始映像的压缩。将该处理作为文件管理系统10中的内部事务来执行。当系统频繁执行更新时,通过由组提交来统一处理,可减轻负荷。
在由上述阴影段方式来实现MVCC功能的情况下,也对实更新造成影响。可仅对未由积累在MVCC队列41中的局部映像参照的页执行实更新。换言之,由于积累在MVCC队列41中的局部映像所示的页有可能被当前执行中的事务参照,所以不是再利用的对象。

Claims (17)

1. 一种具有事务管理功能的文件系统,包括:
存储装置,具有确保文件区域与暂时写入区域的存储区域,所述文件区域被多个文件占有,所述暂时写入区域用于暂时存储文件的页单位的更新数据;
一对映像表格,用于记录执行更新的有效页的列表,将执行所述更新的有效页存储在所述暂时写入区域中,将所述一对映像表格配置在所述存储区域中;
文件管理部件,用于管理存储在所述文件区域中的文件;
更新处理部件,更新包含于由所述文件管理部件管理的文件中的页,所述更新处理部件通过向空的页中写入更新数据来执行所述页的更新,从所述暂时写入区域中取得所述空的页;
提交部件,在每次多个事务各自的提交时,将在该时刻存储在所述暂时写入区域中的所述有效页的列表交互地写入所述一对映像表格中;和
实更新部件,将存储在所述暂时写入区域中的有效页的更新数据写入所述文件区域的最初的页位置,所述实更新部件开放所述最初的页位置写有更新数据的所述有效页。
2. 根据权利要求1所述的文件系统,其特征在于:
按盘区单位来管理存储在所述文件区域中的文件;
在所述文件区域中,存储用于管理存储在所述文件区域中的多个文件的文件表格,所述文件表格本身是一个文件,所述文件表格对各个存储在所述文件区域中的多个文件保持表示构成该各文件的盘区的盘区信息,作为一个记录;和
所述文件管理部件管理所述文件表格本身,作为一个文件。
3. 根据权利要求2所述的文件系统,其特征在于:
所述更新处理部件在所述页更新是向由所述文件表格管理的盘区内的未使用页追加数据的情况下,直接将数据写入该盘区内的所述未使用页中。
4. 根据权利要求1所述的文件系统,其特征在于:
所述实更新部件利用对所述一对映像表格之一的更新处理来执行用于确定所述实更新处理的操作。
5. 根据权利要求4所述的文件系统,其特征在于:
所述实更新部件将所述实更新处理分成多次来执行。
6. 根据权利要求4所述的文件系统,其特征在于:
所述实更新部件在所述实更新处理之前,产生多次对所述文件区域内的同一页的更新,每次在由所述更新处理部件执行向从所述暂时写入区域中取得的空的页中写入更新数据的情况下,仅向在对所述同一页的多次更新中最新的更新中写入更新数据的页写回更新数据,从在最新的更新中写入更新数据的页开始,对所述文件区域的最初的页位置执行该更新数据的写回。
7. 根据权利要求4所述的文件系统,其特征在于:
进一步包括备份部件,用于在线备份所述存储装置的存储区域的数据,所述备份部件在由所述实更新部件完成从所述暂时写入区域内的全部有效页向所述文件区域的最初的页位置写回更新数据的情况下,仅备份所述文件区域的数据。
8. 根据权利要求4所述的文件系统,其特征在于:
进一步包括备份部件,用于在线备份所述存储装置的存储区域的数据,所述备份部件在备份开始时,在所述暂时写入区域内存在所述实更新部件未完成更新数据的写回的有效页的情况下,备份所述文件区域的数据、该未完成写回的有效页的数据、和所述一对映像表格中最近确定的映像表格。
9. 根据权利要求1所述的文件系统,其特征在于:进一步包括:
队列,在每次多个事务各自的提交时,向反映所述一对映像表格中、在该提交时确定的映像表格的局部映像附加表示该提交时的时刻的印时戳后积累;和
读入部件,用于读入任意事务中请求的页的数据,所述读入部件在所述请求的页在所述任意事务中未被更新的情况下,从所述队列中检索附加了对应于该任意事务开始时刻的印时戳的局部映像,根据该检索到的印时戳,读入所述请求的页的数据。
10. 根据权利要求9所述的文件系统,其特征在于:
所述读入部件在所述请求的页在所述任意事务中被更新的情况下,读入该更新的页的数据,在所述检索到的局部映像未表示存在所述请求的页的更新后的有效页的情况下,根据所述一对映像表格中、在该时刻确定的映像表格,读入该有效页的数据。
11. 根据权利要求9所述的文件系统,其特征在于:
进一步包括局部映像释放部件,根据所述每次多个事务各自的提交时附加于积累在所述队列中的局部映像上的印时戳,从所述队列中释放附加了比当前执行中的多个事务中最早开始时刻还早的印时戳的局部映像。
12. 根据权利要求1所述的文件系统,其特征在于:
所述更新处理部件边依次错位页位置边循环取得所述暂时写入区域内的应用于更新的空的页。
13. 一种适用于具有事务管理功能的文件系统中的文件管理方法,包括:
在存储装置的存储区域内,确保文件区域与暂时写入区域,所述文件区域被多个文件占有,所述暂时写入区域用于暂时存储文件的页单位的更新数据;
在请求存储在所述文件区域中的文件的页更新的情况下,从所述暂时写入区域中取得空的页;
通过将更新数据写入从所述暂时写入区域中取得的空的页中,执行所述请求的页更新;
在事务的提交时,将上次事务提交时用于列表记录的映像表格拷贝到用于记录执行所述暂时写入区域内的更新的有效页列表的一对映像表格中的、在上次事务提交时未用于列表记录的映像表格中;
在所述一对映像表格中的所述拷贝的映像表格中,记录当前的所述暂时写入区域内的有效页的列表;和
执行将所述暂时写入区域内的有效页的更新数据写回所述文件区域的最初页位置的实更新处理,所述实更新处理包括在将所述有效页的更新数据写回所述最初页位置之后,开放该有效页。
14. 根据权利要求13所述的文件管理方法,其特征在于:
进一步包括利用对所述一对映像表格之一的更新处理来执行用于确定所述实更新处理的操作。
15. 根据权利要求14所述的文件管理方法,其特征在于:
进一步包括在线备份所述存储装置的存储区域数据,所述备份包含在通过执行所述实更新处理,完成将更新数据从所述暂时写入区域内的全部有效页写回所述文件区域的最初页位置的情况下,仅备份所述文件区域的数据。
16. 根据权利要求14所述的文件管理方法,其特征在于:
进一步包括在线备份所述存储装置的存储区域数据,所述备份包含在备份开始时,在所述暂时写入区域内存在未完成更新数据的写回的有效页的情况下,备份所述文件区域的数据、该未完成写回的有效页的数据、和所述一对映像表格中最近确定的映像表格。
17. 根据权利要求13所述的文件管理方法,其特征在于:进一步包括:
在每次多个事务各自的提交时,向反映所述一对映像表格中、在该提交时确定的映像表格的局部映像附加表示该提交时的时刻的印时戳后,积累到队列中;和
读入任意事务中请求的页的数据,所述读入在所述请求的页在所述任意事务中未被更新的情况下,从所述队列中检索附加了对应于该任意事务开始时刻的印时戳的局部映像,根据该检索到的印时戳,读入所述请求的页的数据。
CNB2005100646024A 2004-09-30 2005-04-15 具备文件管理功能的文件系统及文件管理方法 Expired - Fee Related CN100412862C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP289029/2004 2004-09-30
JP2004289029A JP4104586B2 (ja) 2004-09-30 2004-09-30 ファイル管理機能を備えたファイルシステム及びファイル管理方法

Publications (2)

Publication Number Publication Date
CN1755673A CN1755673A (zh) 2006-04-05
CN100412862C true CN100412862C (zh) 2008-08-20

Family

ID=36100569

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2005100646024A Expired - Fee Related CN100412862C (zh) 2004-09-30 2005-04-15 具备文件管理功能的文件系统及文件管理方法

Country Status (3)

Country Link
US (1) US7266669B2 (zh)
JP (1) JP4104586B2 (zh)
CN (1) CN100412862C (zh)

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070005552A1 (en) * 2005-07-01 2007-01-04 Udo Klein Methods and systems for reducing transient memory consumption in an object-oriented system
US7533135B2 (en) * 2005-07-01 2009-05-12 Sap Aktiengesellschaft Methods and systems for reducing database accesses in an object-oriented system
WO2007023674A1 (ja) * 2005-08-22 2007-03-01 Matsushita Electric Industrial Co., Ltd. メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム、及びデータ書き込み方法
US20070130231A1 (en) * 2005-12-06 2007-06-07 Brown Douglas P Closed-loop supportability architecture
US8615643B2 (en) * 2006-12-05 2013-12-24 Microsoft Corporation Operational efficiency of virtual TLBs
WO2008070191A2 (en) 2006-12-06 2008-06-12 Fusion Multisystems, Inc. (Dba Fusion-Io) Apparatus, system, and method for a reconfigurable baseboard management controller
US9930099B2 (en) * 2007-05-08 2018-03-27 Riverbed Technology, Inc. Hybrid segment-oriented file server and WAN accelerator
JP4210318B1 (ja) 2007-11-28 2009-01-14 株式会社京都ソフトウェアリサーチ データ格納システムおよびデータ格納プログラム
US7930497B2 (en) * 2008-01-10 2011-04-19 International Business Machines Corporation Using multiple sidefiles to buffer writes to primary storage volumes to transfer to corresponding secondary storage volumes in a mirror relationship
US8738573B2 (en) * 2008-05-23 2014-05-27 Microsoft Corporation Optimistic versioning concurrency scheme for database streams
US8521987B2 (en) * 2009-03-18 2013-08-27 Hitachi, Ltd. Allocation and release of storage areas to virtual volumes
KR20100133710A (ko) * 2009-06-12 2010-12-22 삼성전자주식회사 메모리 시스템 및 그것의 코드 데이터 로딩 방법
TWI453747B (zh) * 2009-09-02 2014-09-21 Silicon Motion Inc 用來管理一快閃記憶體的複數個區塊之方法以及相關之記憶裝置及其控制器
WO2011033635A1 (ja) 2009-09-17 2011-03-24 株式会社東芝 管理装置
JP5404798B2 (ja) 2009-09-21 2014-02-05 株式会社東芝 仮想記憶管理装置及び記憶管理装置
MX2012004910A (es) * 2009-10-26 2013-06-28 Wearable Inc Acceso concurrente a un grupo de memoria compartida entre un dispositivo de acceso de bloque y un dispositivo de acceso de grafico.
US8433865B2 (en) * 2009-12-11 2013-04-30 Microsoft Corporation Consistency without ordering dependency
JP5269213B2 (ja) * 2010-02-02 2013-08-21 株式会社東芝 ストレージ機能を持つ通信装置
WO2011143628A2 (en) * 2010-05-13 2011-11-17 Fusion-Io, Inc. Apparatus, system, and method for conditional and atomic storage operations
JP2012008997A (ja) * 2010-05-26 2012-01-12 Sanyo Electric Co Ltd ファイルデータ保護機能を備えた電子装置及びファイル保護方法
US8224780B2 (en) * 2010-06-15 2012-07-17 Microsoft Corporation Checkpoints for a file system
US8793440B2 (en) 2010-06-17 2014-07-29 Microsoft Corporation Error detection for files
US9104690B2 (en) 2011-01-27 2015-08-11 Micron Technology, Inc. Transactional memory
US8776094B2 (en) 2011-08-11 2014-07-08 Microsoft Corporation Runtime system
US20130091331A1 (en) * 2011-10-11 2013-04-11 Iulian Moraru Methods, apparatus, and articles of manufacture to manage memory
CN102331949B (zh) * 2011-10-12 2014-11-05 华为技术有限公司 一种虚拟机内存快照生成和恢复方法、装置及系统
WO2013101194A1 (en) * 2011-12-30 2013-07-04 Intel Corporation Selective control for commit lines for shadowing data in storage elements
US20140143476A1 (en) * 2012-11-16 2014-05-22 Rotem Sela Usage of cache and write transaction information in a storage device
WO2014097475A1 (ja) 2012-12-21 2014-06-26 株式会社Murakumo 情報処理方法、情報処理装置、及び、プログラム
CN103530420B (zh) * 2013-10-30 2017-07-04 北京奇虎科技有限公司 数据文件的动态更新方法及装置
US10359937B2 (en) * 2013-12-20 2019-07-23 Sandisk Technologies Llc System and method of implementing a table storage support scheme
CN104166606B (zh) * 2014-08-29 2018-01-09 华为技术有限公司 文件备份方法和主存储设备
US10635504B2 (en) 2014-10-16 2020-04-28 Microsoft Technology Licensing, Llc API versioning independent of product releases
US9626119B2 (en) * 2014-11-14 2017-04-18 Intel Corporation Using counters and a table to protect data in a storage device
AU2016292783B2 (en) * 2015-07-10 2019-05-30 Ab Initio Technology Llc Method and architecture for providing database access control in a network with a distributed database system
DE102015220485A1 (de) * 2015-10-21 2017-04-27 Robert Bosch Gmbh Verfahren zum Schreiben und Lesen eines Datensatzes
CN105956090B (zh) * 2016-04-27 2019-06-11 中国科学技术大学 一种基于i/o自适应的日志文件系统数据存储方法
US20180067817A1 (en) * 2016-09-07 2018-03-08 Ulsan National Institute of Science and Technology (UNIST) Electronic device and method of controlling the same
JP6690728B2 (ja) 2016-10-12 2020-04-28 富士通株式会社 処理単位サイズ算出プログラム、処理単位サイズ算出方法及び処理単位サイズ算出装置
JP7193713B2 (ja) * 2018-10-31 2022-12-21 富士通株式会社 転送方式制御プログラム、転送方式制御装置及び転送方式制御方法
CN110209527B (zh) 2018-11-30 2023-05-05 腾讯科技(深圳)有限公司 数据恢复方法、装置、服务器以及存储介质
JPWO2022224451A1 (zh) * 2021-04-23 2022-10-27
US11487467B1 (en) * 2021-05-28 2022-11-01 Microsoft Technology Licensing, Llc Layered memory mapped file technology

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5721915A (en) * 1994-12-30 1998-02-24 International Business Machines Corporation Interaction between application of a log and maintenance of a table that maps record identifiers during online reorganization of a database
CN1449530A (zh) * 2000-03-30 2003-10-15 微软公司 事务文件系统
US6651073B1 (en) * 2000-05-23 2003-11-18 International Business Machines Corporation Method and apparatus for insuring database data integrity without data recovery logging

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5455946A (en) * 1993-05-21 1995-10-03 International Business Machines Corporation Method and means for archiving modifiable pages in a log based transaction management system
US7177866B2 (en) * 2001-03-16 2007-02-13 Gravic, Inc. Asynchronous coordinated commit replication and dual write with replication transmission and locking of target database on updates only

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5721915A (en) * 1994-12-30 1998-02-24 International Business Machines Corporation Interaction between application of a log and maintenance of a table that maps record identifiers during online reorganization of a database
CN1449530A (zh) * 2000-03-30 2003-10-15 微软公司 事务文件系统
US6651073B1 (en) * 2000-05-23 2003-11-18 International Business Machines Corporation Method and apparatus for insuring database data integrity without data recovery logging

Also Published As

Publication number Publication date
US7266669B2 (en) 2007-09-04
JP4104586B2 (ja) 2008-06-18
CN1755673A (zh) 2006-04-05
JP2006106868A (ja) 2006-04-20
US20060069885A1 (en) 2006-03-30

Similar Documents

Publication Publication Date Title
CN100412862C (zh) 具备文件管理功能的文件系统及文件管理方法
US7849361B2 (en) Methods and apparatus for multiple point in time data access
CN1559041B (zh) 在计算机系统之间共享对象
US7774565B2 (en) Methods and apparatus for point in time data access and recovery
CN100476710C (zh) 在数据存储器中保持临时数据的系统和方法
US8060713B1 (en) Consolidating snapshots in a continuous data protection system using journaling
US6952758B2 (en) Method and system for providing consistent data modification information to clients in a storage system
US8250033B1 (en) Replication of a data set using differential snapshots
US7197520B1 (en) Two-tier backup mechanism
JP3538766B2 (ja) データ・ファイルのコピーを生成する装置及び方法
JP4292882B2 (ja) 複数のスナップショット維持方法及びサーバ装置及びストレージ装置
US7840536B1 (en) Methods and apparatus for dynamic journal expansion
US5561795A (en) Method and apparatus for audit trail logging and data base recovery
CN103765393B (zh) 存储系统
US8255371B2 (en) Methods and apparatuses for data protection
KR100556594B1 (ko) 데이터베이스에 관한 방법
US20060106891A1 (en) Managing atomic updates on metadata tracks in a storage system
EP0501160A2 (en) Intelligent page store for concurrent and consistent access to a database by a transaction processor and a query processor
EP2590078B1 (en) Shadow paging based log segment directory
CN104937556A (zh) 恢复数据库的页面
CN104040481A (zh) 用于融合、存储和检索增量式备份数据的方法和系统
CN102591982A (zh) 执行增量sql服务器数据库备份的方法和系统
US20080313245A1 (en) Non-Disruptive Backup Copy in a Database Online Reorganization Environment
US10977143B2 (en) Mirrored write ahead logs for data storage system
US7085962B1 (en) Method and system for completing a backup job that was interrupted during a backup process

Legal Events

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

Granted publication date: 20080820

CF01 Termination of patent right due to non-payment of annual fee