CN104408126A - 一种数据库的持久化写入方法、装置和系统 - Google Patents
一种数据库的持久化写入方法、装置和系统 Download PDFInfo
- Publication number
- CN104408126A CN104408126A CN201410696915.0A CN201410696915A CN104408126A CN 104408126 A CN104408126 A CN 104408126A CN 201410696915 A CN201410696915 A CN 201410696915A CN 104408126 A CN104408126 A CN 104408126A
- Authority
- CN
- China
- Prior art keywords
- page
- physical page
- dirty
- queue
- mapping
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0643—Management of files
-
- 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/13—File access structures, e.g. distributed indices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开了一种数据库的持久化写入方法,包括:在数据库内存生成N个脏页时,查询所述N个脏页在磁盘的数据库文件中各自对应的物理页,N为大于0的整数;确定所述数据库文件中的缓冲物理页;将所述N个脏页中的当前脏页写入到所述缓冲物理页,以及将所述当前脏页在所述数据库文件中对应的物理页作为新的缓冲物理页,并所述N个脏页中的下一脏页写入到所述新的缓冲物理页。本发明实施例还公开了一种数据库的持久化写入装置和系统。采用本发明,减少磁盘的写入次数,延长磁盘寿命。
Description
技术领域
本发明涉及数据库领域,尤其涉及一种数据库的持久化写入方法、装置和系统。
背景技术
随着网络带宽的提高与移动应用的爆发,动态环境下管理数据在处理性能和数据规模上都对终端数据库提出了巨大的挑战。以SQLite为代表的终端数据库得到了广泛应用,但也逐渐暴露出性能不足的限制,在很多应用场景成为性能瓶颈,影响用户体验。
数据库大多以磁盘、闪存等块存储设备作为持久化介质,磁盘/闪存在写入操作时以页为单位,如果在写入一页时突然断电,会导致页上数据不完整;另外数据库的逻辑页大小和磁盘/闪存读写的物理页大小可能不同,在写入一“逻辑页”时断电或者操作系统崩溃也会导致“逻辑页”的数据不完整。如果持久化时出现了某个数据页的“部分写”,在数据恢复时会找不到一个完整的数据页来配合日志做恢复。目前数据库一般采用保存多处数据页的方式(比如在日志中也记录完整的数据页、或者先后写两份数据库文件等)来解决这个问题。
终端数据库运行的硬件环境一般只有若干闪存芯片,在读写性能、容量上有明显的限制,持久化时读写闪存是终端数据库性能提升的瓶颈。闪存页的写入次数有限,频繁的写入操作会影响整个终端设备的使用寿命,如何优化和减少持久化时写操作成为提升终端数据库性能和提升终端产品竞争力的关键。
发明内容
本发明实施例所要解决的技术问题在于,提供一种数据库的持久化写入方法、装置和系统。可解决现有技术中刷脏页磁盘写次数过多的问题。
为了解决上述技术问题,本发明实施例提供了一种数据库的持久化写入方法,包括:
在数据库内存生成N个脏页时,查询所述N个脏页在磁盘的数据库文件中各自对应的物理页,N为大于0的整数;
确定所述数据库文件中的缓冲物理页;
将所述N个脏页中的当前脏页写入到所述缓冲物理页,以及将所述当前脏页在所述数据库文件中对应的物理页作为新的缓冲物理页,并所述N个脏页中的下一脏页写入到所述新的缓冲物理页。
结合第一方面,在第一种可能的实现方式中,所述在数据库内存生成N个脏页时,查询所述N个脏页在磁盘的数据库文件中各自对应的物理页包括:
当数据库内存生成N个脏页时,根据写入顺序生成包含所述N个脏页的脏页队列;
查询所述脏页队列所述数据库文件中对应的包含N个物理页的第一物理页队列;其中,所述脏页队列的脏页和所述第一物理页队列中的物理页依据队列位置一一对应。
结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,还包括:
将第一映射关系保存至所述数据库文件的第一映射物理页中;其中,所述第一映射关系表示所述脏页队列中包含的N个脏页与所述第一物理页队列包含N个物理页的映射关系。
结合第一方面的第二种可能的实现方式,在第三种可能的实现方式中,还包括:
将所述缓冲物理页插入到所述第一物理页队列的队列头的前面,并移除所述第一物理页队列的队列尾后生成第二物理页队列;
将第二映射关系保存至所述数据库文件的第二映射物理页中;其中,所述第二映射关系表示所述脏页队列中包含的N个脏页和所述第二物理页队列中包含的N个物理页的映射关系,所述脏页队列的脏页和所述第二物理队列中的物理页依据队列位置一一对应。
结合第一方面的第三种可能的实现方式,在第四种可能的实现方式中,所述将所述N个脏页中的当前脏页写入到所述缓冲物理页,以及将所述当前脏页在所述数据库文件中对应的物理页作为新的缓冲物理页,并所述N个脏页中的下一脏页写入到所述新的缓冲物理页包括:
将所述脏页队列中包含的N个队列依次写入到所述第二物理队列中各自对应的物理页。
结合第一方面的第四种可能的实现方式,在第五种可能的实现方式中,还包括:
在所述N个脏页全部写入到所述数据库文件后,将所述第二映射物理页覆盖所述第一映射物理页。
结合第一方面的的第三至第五种可能的实现方式中的任意一种,在第六种可能的实现方式中,所述在数据库内存生成N个脏页时,查询所述N个脏页在磁盘的数据库文件中各自对应的物理页之前,还包括:
将所述磁盘的数据库文件划分为多个物理页,以及分别在所述多个物理页中设置所述第一映射物理页、所述第二映射物理页和初始缓冲物理页;或者
将所述磁盘的数据库文件划分为多个段,以及将每个段划分为多个分区、将每个分区划分为多个物理页;
在每个段中设置所述第一映射物理页和所述第二映射物理页,以及在每个分区中设置初始缓冲物理页。
结合第一方面的第五或第六种可能的实现方式中的任意一种,在第七种可能的实现方式中,所述将所述脏页队列中包含的N个队列依次写入到所述第二物理队列中各自对应的物理页之后,还包括:
判断所述第二映射物理页是否完整,若为否,将所述第一映射物理页覆盖所述第二映射物理页;
若为是,继续判断所述第一映射物理页是否完整,若为否,将所述第二映射物理页覆盖所述第一映射物理页;
若为是,继续判断所述第一映射物理页和所述第二映射物理页是否一致,若为否,识别出所述第二物理页队列中的目标物理页,其中,所述目标物理页为未成功写入脏页的物理页;
根据所述第二映射关系查询与所述目标物理页关联的目标脏页,并根据所述第一映射关系查询与所述目标脏页关联的未修改物理页;
将所述目标脏页与所述未修改物理页进行关联,并更新第二映射物理页所述第二映射关系;
将所述更新所述第二映射关系后的第二映射物理页覆盖所述第一映射物理页。
本发明实施例第二方面提供了一种数据库的持久化写入装置,包括:
查询模块,用于在数据库内存生成N个脏页时,查询所述N个脏页在磁盘的数据库文件中各自对应的物理页;
确定模块,用于确定所述数据库文件中的缓冲物理页;
写入模块,用于将所述N个脏页中的当前脏页写入到所述缓冲物理页,以及将所述当前脏页在所述数据库文件中对应的物理页作为新的缓冲物理页,并所述N个脏页中的下一脏页写入到所述新的缓冲物理页。
结合第二方面,在第一种可能的实现方式中,所述查询模块具体用于:
当数据库内存生成N个脏页时,根据写入顺序生成包含所述N个脏页的脏页队列;
查询所述脏页队列所述数据库文件中对应的包含N个物理页的第一物理页队列;其中,所述脏页队列的脏页和所述第一物理页队列中的物理页依据队列位置一一对应。
结合第二方面的第一种可能的实现方式,在第二种可能的实现方式中,还包括:
第一保存模块,用于将第一映射关系保存至所述数据库文件的第一映射物理页中;其中,所述第一映射关系表示所述脏页队列中包含的N个脏页与所述第一物理页队列包含N个物理页的映射关系。
结合第二方面的第二种可能的实现方式,在第三种可能的实现方式中,还包括:
第二保存模块,用于将所述缓冲物理页插入到所述第一物理页队列的队列头的前面,并移除所述第一物理页队列的队列尾后生成第二物理页队列;
将第二映射关系保存至所述数据库文件的第二映射物理页中;其中,所述第二映射关系表示所述脏页队列中包含的N个脏页和所述第二物理页队列中包含的N个物理页的映射关系,所述脏页队列的脏页和所述第二物理队列中的物理页依据队列位置一一对应。
结合第二方面的第三种可能的实现方式,在第四种可能的实现方式中,所述写入模块用于将所述脏页队列中包含的N个队列依次写入到所述第二物理队列中各自对应的物理页。
结合第二方面的第四种可能的实现方式,在第五种可能的实现方式中,还包括:
更新模块,用于在所述N个脏页全部写入到所述数据库文件后,将所述第二映射物理页覆盖所述第一映射物理页。
结合第二方面的第三至第五种可能的实现方式中的任意一种,在第六种可能的实现方式中,还包括:
设置模块,用于将所述磁盘的数据库文件划分为多个物理页,以及分别在所述多个物理页中设置所述第一映射物理页、所述第二映射物理页和初始缓冲物理页;或者
将所述磁盘的数据库文件划分为多个段,以及将每个段划分为多个分区、将每个分区划分为多个物理页;
在每个段中设置所述第一映射物理页和所述第二映射物理页,以及在每个分区中设置初始缓冲物理页。
结合第二方面的第五或第六种可能的实现方式,在第七种可能的实现方式中,还包括:
恢复模块,用于判断所述第二映射物理页是否完整,若为否,将所述第一映射物理页覆盖所述第二映射物理页;
若为是,继续判断所述第一映射物理页是否完整,若为否,将所述第二映射物理页覆盖所述第一映射物理页;
若为是,继续判断所述第一映射物理页和所述第二映射物理页是否一致,若为否,识别出所述第二物理页队列中的目标物理页,其中,所述目标物理页为未成功写入脏页的物理页;
根据所述第二映射关系查询与所述目标物理页关联的目标脏页,并根据所述第一映射关系查询与所述目标脏页关联的未修改物理页;
将所述目标脏页与所述未修改物理页进行关联,并更新第二映射物理页所述第二映射关系;
将所述更新所述第二映射关系后的第二映射物理页覆盖所述第一映射物理页。
本发明实施例还提供了一种数据库系统,包括数据库内存、磁盘和上述任意一种数据库的持久化写入装置,所述持久化写入装置用于将所述数据库内存生成的脏页写入到所述磁盘的数据库文件中。
实施本发明实施例,具有如下有益效果:
在数据库内存需要向磁盘的数据库文件写入多个脏页时,磁盘的数据库文件中的缓冲内存也根据多个脏页对应的物理页进行轮转,根据写入顺序每次将脏页写入到数据库文件的缓冲物理页中,这样可有效的减少脏页的写入次数,延长磁盘的使用寿命,同时根据本发明脏页写入机制可以快速的对数据库文件进行恢复。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种数据库的持久化写入方法的流程示意图;
图2是本发明实施例提供的一种数据库的恢复方法的流程示意图。
图3是本发明实施例提供的一种数据库文件划分方法的示意图;
图4是本发明实施例提供的一种数据库文件的划分方法的另一示意图;
图5是本发明实施例提供的一种数据库的持久化写入装置的结构示意图;
图6是本发明实施例提供的一种数据库的持久化写入装置的另一结构示意图;
图7是本发明实施例提供的一种数据库的持久化写入装置的又一结构示意图;
图8是本发明实施例的应用场景示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本说明书中使用的术语"部件"、"模块"、"系统"等用于表示计算机相关的实体、硬件、固件、硬件和软件的组合、软件、或执行中的软件。例如,部件可以是但不限于,在处理器上运行的进程、处理器、对象、可执行文件、执行线程、程序和/或计算机。通过图示,在计算设备上运行的应用和计算设备都可以是部件。一个或多个部件可驻留在进程和/或执行线程中,部件可位于一个计算机上和/或分布在2个或更多个计算机之间。此外,这些部件可从在上面存储有各种数据结构的各种计算机可读介质执行。部件可例如根据具有一个或多个数据分组(例如来自与本地系统、分布式系统和/或网络间的另一部件交互的二个部件的数据,例如通过信号与其它系统交互的互联网)的信号通过本地和/或远程进程来通信。
此外,本发明的各个方面或特征可以实现成方法、装置或使用标准编程和/或工程技术的制品。本申请中使用的术语"制品"涵盖可从任何计算机可读器件、载体或介质访问的计算机程序。例如,计算机可读介质可以包括,但不限于:磁存储器件(例如,硬盘、软盘或磁带等),光盘(例如,CD(Compact Disk,压缩盘)、DVD(Digital Versatile Disk,数字通用盘)等),智能卡和闪存器件(例如,EPROM(Erasable Programmable Read-Only Memory,可擦写可编程只读存储器)、卡、棒或钥匙驱动器等)。另外,本文描述的各种存储介质可代表用于存储信息的一个或多个设备和/或其它机器可读介质。术语"机器可读介质"可包括但不限于,无线信道和能够存储、包含和/或承载指令和/或数据的各种其它介质。
下面结合图1.,对本发明实施例提供的一种数据库的持久化写入方法进行详细介绍。
参见图1,为本发明第一实施例提供的一种数据库的持久化写入方法的流程示意图,在本发明实施例中,执行主体为持久化写入装置,所述方法包括:
S101、在数据库内存生成N个脏页时,查询所述N个脏页在磁盘的数据库文件中各自对应的物理页。
具体的,数据库内存划分为多个逻辑页,当逻辑页中的数据发生变更操作时,该逻辑页称为脏页,其中,变更操作包括修改操作、插入操作或删除操作,数据库中的多个逻辑页对应磁盘的数据库文件中的多个物理页,多个逻辑页和多个物理页为一一对应关系。逻辑页和物理页的对应关系可以由数据库系统预先设置,也可以再数据库内存产生脏页后进行设置。在数据库内存生成多个脏页时,根据对应关系查询磁盘中的数据库中多个脏页各自对应的物理页。
示例性的,N=3,在数据库内存生成3个脏页,分别为脏页1、脏页2和脏页3,查询磁盘的数据库文件中得知:脏页1对应物理页2、脏页2对应物理页3、脏页3对应物理页8。
S102、确定所述数据库文件中的缓冲物理页。
具体的,在磁盘的数据库文件首次写入脏页之前,数据库文件中初始的缓冲物理页为数据库系统预先指定的,例如,指定数据库文件中的物理页255为初始的缓冲物理页。
S103、将所述N个脏页中的当前脏页写入到所述缓冲物理页,以及将所述当前脏页在所述数据库文件中对应的物理页作为新的缓冲物理页,并所述N个脏页中的下一脏页写入到所述新的缓冲物理页。
具体的,根据N个脏页的写入顺序,将当前脏页写入到S102确定的缓冲物理页,将当前脏页在S101中对应的物理页作为新的缓冲物理页,将N个脏页中下一个脏页写入到新的缓冲物理页,上述过程为一个循环步骤,直到N个脏页全部写入到磁盘的数据库文件中,全部写入后N个脏页中末个脏页在S101中对应的物理页作为数据库文件的当前的缓冲物理页。
示例性的,数据库文件当前的缓冲物理页为物理页225,数据库内存生成的3个脏页的写入顺序为:脏页1-脏页2-脏页3,其中,脏页1对应数据库文件中的物理页2、脏页2对应数据库文件中的物理页3、脏页3对应数据库文件中的物理页8,根据本发明实施例的写入方法,首先将脏页1写入到当前的缓冲物理页(物理页225),将脏页1对应的物理页3作为当前的缓冲物理页;将脏页2写入到物理页3,将脏页2对应的物理页2作为当前的缓冲物理页;将脏页3写入到物理页3,将脏页3对应的物理页8作为当前的缓冲物理页。在数据库内存再次生成多个脏页需要写入到数据库文件中时,按照上述缓冲物理页轮转的方法写入多个脏页,此处不再赘述。
可以理解的是,当某个脏页写入到缓冲物理页失败时,例如发生部分写,可以通过该脏页数据库文件中对应的物理页将数据库文件恢复到写脏页前的状态。例如,脏页1写入到缓冲物理页(物理页225)的过程中发生断电,脏页1的部分数据写入到物理页225,脏页1对应的物理页2保存有数据库文件写脏页之前的数据,数据库文件通过物理页2对数据库进行恢复操作。
实施本发明的实施例,在数据库内存需要向磁盘的数据库文件写入多个脏页时,磁盘的数据库文件中的缓冲内存也根据多个脏页对应的物理页进行轮转,根据写入顺序每次将脏页写入到数据库文件的缓冲物理页中,这样可有效的减少脏页的写入次数,同时根据本发明脏页写入机制可以快速的对数据库文件进行恢复。
进一步的,在本发明的实施例中,所述在数据库内存生成N个脏页时,查询所述N个脏页在磁盘的数据库文件中各自对应的物理页包括:
当数据库内存生成N个脏页时,根据写入顺序生成包含所述N个脏页的脏页队列;
查询所述脏页队列所述数据库文件中对应的包含N个物理页的第一物理页队列;其中,所述脏页队列的脏页和所述第一物理页队列中的物理页依据队列位置一一对应。
具体的,数据库内存生成N个脏页的分别标识为A1、A2、Ai、…、AN,N≥1且为整数,1≤i≤N,i为写入序号,Ai表示第i待写入的脏页,根据写入顺序生成包含N个脏页的脏页队列A=(A1,A2,Ai,…,AN),其中A1为队列头,AN为队列尾,查询N个待写入的脏页在数据库文件中对应的N个物理页分别为B1、B2、Bi、…、BN,N个物理页生成第一物理页队列B1=(B1,B2,Bi,…,BN),脏页队列A中的脏页和第一物理页队列B1中的物理页队列依据队列位置一一对应,即脏页队列中的脏页Ai对应第一物理页队列中的物理页Bi。
进一步的,在本发明的实施例中,所述方法还包括:
将第一映射关系保存至所述数据库文件的第一映射物理页中;其中,所述第一映射关系表示所述脏页队列中包含的N个脏页与所述第一物理页队列包含N个物理页的映射关系。
具体的,第一映射物理页为磁盘的数据库文件划分的多个物理页中任意一个物理页,将第一映射关系保存至第一映射物理页中,第一映射关系表示脏页队列中的N个脏页和第一物理页队列中的N个物理页的映射关系。
进一步的,在本发明的实施例中,所述确定所述数据库文件中的缓冲物理页,还包括:
将所述缓冲物理页插入到所述第一物理页队列的队列头的前面,并移除所述第一物理页队列的队列尾执后生成第二物理页队列;
将第二映射关系保存至所述数据库文件的第二映射物理页中;其中,所述第二映射关系表示所述脏页队列中包含的N个脏页和所述第二物理页队列中包含的N个物理页的映射关系,所述脏页队列的脏页和所述第二物理队列中的物理页依据队列位置一一对应。
具体的,确定数据库文件的缓冲物理页,将缓冲物理页插入到第一物理页队列的队列头的前面,作为新的队列头,同时移除第一物理页队列的队列尾,上述操作完成后生成第二物理页队列,第二物理页队列中的物理页中的数量和第一物理页队列中的物理页数量相等,脏页队列中包含的N个脏页和第二物理页队列中包含的N个物理页以及队列位置一一对应,将表示脏页队列和第二物理页队列中的各元素的映射关系的第二映射关系保存至数据库文件的第二映射物理页中。
示例性的,数据库文件中的缓冲物理页标识为BBuffer,将缓冲物理页BBuffer插入到第一物理页队列B1的队列头的前面,同时移除第一物理页队列B1的队列尾后生成第二物理页队列B2=(BBuffer,B1,B2,…,BN-1),此时脏页队列中N个脏页和第二物理队列中N个物理页的对应关系为:脏页队列中的第i个位置的脏页和第二物理页队列中第i个位置的物理页对应,1≤i≤N,例如,脏页队列的队列头A1和第二物理页队列的队列头BBuffer对应,脏页队列的队列尾AN和第二物理页队列的队列尾BN-1对应,当脏页队列中N个脏页全部写入数据库文件后,将第二物理页队列中的物理页BN作为数据库文件当前的缓冲物理页。将表示脏页队列和第二物理页队列中各元素的第二映射关系保存至数据库文件的第二映射物理页中。
在本发明的实施例中,所述将所述N个脏页中的当前脏页写入到所述缓冲物理页,以及将所述当前脏页在所述数据库文件中对应的物理页作为新的缓冲物理页,并所述N个脏页中的下一脏页写入到所述新的缓冲物理页包括:
将所述脏页队列中包含的N个队列依次写入到所述第二物理队列中各自对应的物理页。
具体的,脏页队列A=(A1,A2,Ai,…,AN),脏页队列A的写入顺序为从队列头到队列尾,脏页A1为首个写入的脏页,脏页AN为末个写入的脏页,第二物理页队列B2=(BBuffer,B1,B2,…,BN-1),根据脏页队列的写入顺序,依次将脏页A1写入到物理页BBuffer,脏页A2写入到物理页B1,…,脏页AN写入到物理页BN-1。
进一步的,在本方的实施例中,所述方法还包括:
在所述N个脏页全部写入到所述数据库文件后,将所述第二映射物理页覆盖所述第一映射物理页。
具体的,在脏页队列中的N个脏页全部写入到数据库文件后,将第二映射物理页覆盖第一映射物理页,第一映射物理页中保存有第一映射关系,第二映射物理页中保存有第二映射关系,覆盖操作后,第一映射物理页和第二映射物理页中的内容相同。
进一步的,在本发明的实施例中,所述在数据库内存生成N个脏页时,查询所述N个脏页在磁盘的数据库文件中各自对应的物理页之前,还包括:
将所述磁盘的数据库文件划分为多个物理页,以及分别在所述多个物理页中设置所述第一映射物理页、所述第二映射物理页和初始缓冲物理页;或者
将所述磁盘的数据库文件划分为多个段,以及将每个段划分为多个分区、将每个分区划分为多个物理页;
在每个段中设置所述第一映射物理页和所述第二映射物理页,以及在每个分区中设置初始缓冲物理页。
具体的,在数据库文件容量较小的场景下,将磁盘的数据库文件划分为多个物理页,在多个物理页中分别指定一个第一映射物理页、第二映射物理页和初始缓冲物理页,第一映射物理页用于保存第一映射关系,第二映射物理页用于保存第二映射关系,初始缓冲物理页为首次写入脏页时设置的缓冲物理页。
在数据库文件同乐较大的场景下,可以将数据库文件划分为多个段,每个段划分为多个分区,以及将每个分别划分为多个物理页,其本质还是将数据库文件划分为多个物理页,只是将多个物理页进行两个层次的分组,在每个段中设置第一映射物理页和第二映射物理页,以及在每个分区设置初始缓冲物理页。
示例性的,将数据库文件划分为256个物理页,分别标识为物理页0、物理页1、…、物理页255,设置物理页0为第一映射物理页,物理页1为第二映射物理页,物理页253为初始缓冲物理页。
又例如,将数据库文件划分为4个段,分别为段1、段2、段3和段4;每个段划分为4个分区,分别为分区1、分区2、分区3和分区4,每个分区划分为256个物理页,指定段1分区1中的物理页0和物理页1为段1的第一映射物理页和第二映射物理页,指定分区1中的物理页253为分区1的初始缓冲物理页,指定分区2中的物理页253为分区2的初始缓冲物理页,指定分区3中的物理页253为分区3的初始缓冲物理页,指定分区4中的物理页253为分区4的初始缓冲物理页。
可以理解的是,在数据库文件分段的场景下,在数据库内存生成多个脏页时,根据写入顺序将多个脏页写入分区时也按照缓冲物理页轮转的方式写入。例如,数据库内存生成的4个脏页为脏页1、脏页2、脏页3和脏页4,查询后得知,脏页1对应段1分区1物理页2、脏页2对应段2分区2物理页2,脏页2对应段2分区2物理页4,段4对应段3分区2物理页4。假设数据库为首次写入,根据本发明实施例的写入机制,首先脏页1写入到段1分区1物理页253,脏要求1之前对应的段1分区1物理页2作为分区1内的新的缓冲物理页;脏页2写入到段2分区2物理页253,脏页2之前对应的段2分区2物理页2作为分别2的新的缓冲物理页,脏页3和脏页4的写入方法可以参照上述描述,此处不再赘述。
又例如,如图3所示的磁盘的数据库文件的结构图,数据库文件开始的多个物理页为系统页(此处以数据库文件为SQLite文件为例,系统页不是必须的),数据库文件以段(segment)为单位划分,每个段的开始2个物理页为段内的地址映射页(第一映射物理页和第二映射物理页),在初始状态下和写入完成状态下2个物理页的内容相同,互为镜像;每个段分为若干分区(extent),每个分区最多包含256个页,每个分区的首个物理页是该分区的初始缓冲物理页。
每个段包含的物理页数量为地址映射页(第一映射物理页或第二映射物理页)的可用空间字节数+2,例如,一个地址映射页的可用空间是1000字节,则每个段包含1002个页。每个段中分区的数目为(地址映射页的可用空间字节数/256+1),如果一个地址映射页的可用空间是1000字节,则每个段中包含4个分区,但是最后一个分区只能包含232个物理页。
进一步的,在本发明的实施例中,所述将所述脏页队列中包含的N个队列依次写入到所述第二物理队列中各自对应的物理页之后,还包括:
判断所述第二映射物理页是否完整,若为否,将所述第一映射物理页覆盖所述第二映射物理页;
若为是,继续判断所述第一映射物理页是否完整,若为否,将所述第二映射物理页覆盖所述第一映射物理页;
若为是,继续判断所述第一映射物理页和所述第二映射物理页是否一致,若为否,识别出所述第二物理页队列中的目标物理页,其中,所述目标物理页为未成功写入脏页的物理页;
根据所述第二映射关系查询与所述目标物理页关联的目标脏页,并根据所述第一映射关系查询与所述目标脏页关联的未修改物理页;
将所述目标脏页与所述未修改物理页进行关联,并更新第二映射物理页所述第二映射关系;
将所述更新所述第二映射关系后的第二映射物理页覆盖所述第一映射物理页。
具体的,参见图2,本发明实施例提供了一种数据库文件恢复的流程,具体包括以下步骤:
S201、判断第二映射物理页是否完整。判断的方法可以是:磁盘的物理页分为多个块,在对物理页刷脏页之前,需要将物理页进行擦除,使每个块包含的位为全1,然后依次在每个块中写数据;如果该物理页上的位为全1,表明脏页没有写入到该物理页,如果该物理页的首个块不为全1,某个块为全1,表明,脏页只是部分写入到该物理页,脏页没有写入到物理页和部分写入到物理页都是为第二映射物理页不完整。当第二映射物理页不完整时,执行S203,否则执行S202。
S202、第一映射物理页是否完整。
具体的,判断第一映射物理页是否完整的方法可以参照S201的描述,此处不再赘述。当第一映射物理页不完整时,执行S205,否则执行S204。
S203、用第一映射物理页覆盖第二映射物理页。覆盖操作完整后,第二映射物理页和第一映射物理页一致。
S204、第一映射物理页和第二映射物理页是否一致。
具体的,第一映射物理页完整且第二映射物理页完整的情况下,判断二者的数据是否一致,若为是,结束流程,表明数据库内存生成的多个脏页均成功写入数据库文件中,若为否,执行S206。
S205、用第二映射物理页覆盖第一映射物理页。覆盖操作完成后,第一映射物理页和第二映射物理页保持一致。
S206、识别出第二物理页队列中的目标物理页,其中,目标物理页为未成功写入脏页的物理;根据第二映射关系查询与目标物理页关联的目标脏页,并根据第一映射关系查询与目标脏页关联的未修改物理页;将目标脏页与未修改物理页进行关联,并更新第二映射物理页第二映射关系。
具体的,假设第一映射关系为:脏页1对应物理页1,脏页2对应物理页2,脏页2对应物理页3;数据库文件中的当前的缓冲物理页为物理页253,则第二映射关系为:脏页1对应物理页253,脏页2对应物理页1,脏页3对应物理页2,第二物理页队列包含的物理页为物理页253、物理页1和物理页2,检测发现第二物理页队列中物理页2不完整,根据第二映射关系查询到物理页2对应脏页3,根据第一映射关系查询到脏页3对应物理页3,则将第二映射关系变更为:脏页1对应物理页253,脏页2对应物理页1,脏页3对应物理页3,物理3中的数据为未写入脏页3之前的原始数据,这样数据库文件就恢复到初始状态。
S207、将更新第二映射关系后的第二映射物理页覆盖第一映射物理页。
覆盖操作后,第一映射物理页和第二映射物理页保持一致。
参见图5,为本发明实施例提供的一种数据库的持久化写入装置的结构示意图,在本发明实施例中,所述装置包括:查询模块10、确定模块11和写入模块12。
查询模块10,用于在数据库内存生成N个脏页时,查询所述N个脏页在磁盘的数据库文件中各自对应的物理页。
确定模块11,用于确定所述数据库文件中的缓冲物理页。
写入模块12,用于将所述N个脏页中的当前脏页写入到所述缓冲物理页,以及将所述当前脏页在所述数据库文件中对应的物理页作为新的缓冲物理页,并所述N个脏页中的下一脏页写入到所述新的缓冲物理页。
本发明实施例和方法实施例一基于同一构思,其带来的技术效果也相同,具体请参照方法实施例一的描述,此处不再赘述。
参见图6,为本发明第二实施例另一种数据库的持久化写入装置的结构示意图,在本发明实施例中,所述装置除包括查询模块10、确定模块11和写入模块12之外,还包括:设置模块17、第一保存模块13、第二保存模块14、更新模块15和恢复模块16。
设置模块17,用于将所述磁盘的数据库文件划分为多个物理页,以及分别在所述多个物理页中设置所述第一映射物理页、所述第二映射物理页和初始缓冲物理页;或者
将所述磁盘的数据库文件划分为多个段,以及将每个段划分为多个分区、将每个分区划分为多个物理页;
在每个段中设置所述第一映射物理页和所述第二映射物理页,以及在每个分区中设置初始缓冲物理页。
第一保存模块13,用于将第一映射关系保存至所述数据库文件的第一映射物理页中;其中,所述第一映射关系表示所述脏页队列中包含的N个脏页与所述第一物理页队列包含N个物理页的映射关系。
第二保存模块14,用于将所述缓冲物理页插入到所述第一物理页队列的队列头的前面,并移除所述第一物理页队列的队列尾后生成第二物理页队列;
将第二映射关系保存至所述数据库文件的第二映射物理页中;其中,所述第二映射关系表示所述脏页队列中包含的N个脏页和所述第二物理页队列中包含的N个物理页的映射关系,所述脏页队列的脏页和所述第二物理队列中的物理页依据队列位置一一对应。
设置模块17,用于将所述磁盘的数据库文件划分为多个物理页,以及分别在所述多个物理页中设置所述第一映射物理页、所述第二映射物理页和初始缓冲物理页;或者
将所述磁盘的数据库文件划分为多个段,以及将每个段划分为多个分区、将每个分区划分为多个物理页;
在每个段中设置所述第一映射物理页和所述第二映射物理页,以及在每个分区中设置初始缓冲物理页。
可选的,查询模块10具体用于:
当数据库内存生成N个脏页时,根据写入顺序生成包含所述N个脏页的脏页队列;
查询所述脏页队列所述数据库文件中对应的包含N个物理页的第一物理页队列;其中,所述脏页队列的脏页和所述第一物理页队列中的物理页依据队列位置一一对应。
可选的,写入模块12用于将所述脏页队列中包含的N个队列依次写入到所述第二物理队列中各自对应的物理页。
本发明实施例和方法实施例基于同一构思,其带来的技术效果也相同,具体请参照方法实施例一的描述,此处不再赘述。
参见图7,为本发明实施例提供的又一种数据库的持久化写入装置的结构示意图,在本发明实施例中,在本实施中,装置1包括处理器61、存储器62和通信接口63,装置1中的处理器61的数量可以是一个或多个,图7以一个处理器为例。本发明的一些实施例中,处理器61、存储器62和通信接口63可通过总线或其他方式连接,图7中以总线连接为例。
其中,存储器62中存储一组程序代码,且处理器61用于调用存储器62中存储的程序代码,用于执行以下操作:
在数据库内存生成N个脏页时,查询所述N个脏页在磁盘的数据库文件中各自对应的物理页,N为大于0的整数;
确定所述数据库文件中的缓冲物理页;
将所述N个脏页中的当前脏页写入到所述缓冲物理页,以及将所述当前脏页在所述数据库文件中对应的物理页作为新的缓冲物理页,并所述N个脏页中的下一脏页写入到所述新的缓冲物理页。
在本发明的一些实施例中,处理器61执行所述在数据库内存生成N个脏页时,查询所述N个脏页在磁盘的数据库文件中各自对应的物理页包括:
当数据库内存生成N个脏页时,根据写入顺序生成包含所述N个脏页的脏页队列;
查询所述脏页队列所述数据库文件中对应的包含N个物理页的第一物理页队列;其中,所述脏页队列的脏页和所述第一物理页队列中的物理页依据队列位置一一对应。
在本发明的一些实施例中,处理器61还用于执行:
将第一映射关系保存至所述数据库文件的第一映射物理页中;其中,所述第一映射关系表示所述脏页队列中包含的N个脏页与所述第一物理页队列包含N个物理页的映射关系。
在本发明的一些实施例中,处理器61还用于执行:
将所述缓冲物理页插入到所述第一物理页队列的队列头的前面,并移除所述第一物理页队列的队列尾后生成第二物理页队列;
将第二映射关系保存至所述数据库文件的第二映射物理页中;其中,所述第二映射关系表示所述脏页队列中包含的N个脏页和所述第二物理页队列中包含的N个物理页的映射关系,所述脏页队列的脏页和所述第二物理队列中的物理页依据队列位置一一对应。
在本发明的一些实施例中,处理器61执行所述将所述N个脏页中的当前脏页写入到所述缓冲物理页,以及将所述当前脏页在所述数据库文件中对应的物理页作为新的缓冲物理页,并所述N个脏页中的下一脏页写入到所述新的缓冲物理页包括:
将所述脏页队列中包含的N个队列依次写入到所述第二物理队列中各自对应的物理页。
在本发明的一些实施例中,处理器61还用于执行:
在所述N个脏页全部写入到所述数据库文件后,将所述第二映射物理页覆盖所述第一映射物理页。
在本发明的一些实施例中,处理器61还用于执行:
将所述磁盘的数据库文件划分为多个物理页,以及分别在所述多个物理页中设置所述第一映射物理页、所述第二映射物理页和初始缓冲物理页;或者
将所述磁盘的数据库文件划分为多个段,以及将每个段划分为多个分区、将每个分区划分为多个物理页;
在每个段中设置所述第一映射物理页和所述第二映射物理页,以及在每个分区中设置初始缓冲物理页。
在本发明的一些实施例中,处理器61还用于执行:
判断所述第二映射物理页是否完整,若为否,将所述第一映射物理页覆盖所述第二映射物理页;
若为是,继续判断所述第一映射物理页是否完整,若为否,将所述第二映射物理页覆盖所述第一映射物理页;
若为是,继续判断所述第一映射物理页和所述第二映射物理页是否一致,若为否,识别出所述第二物理页队列中的目标物理页,其中,所述目标物理页为未成功写入脏页的物理页;
根据所述第二映射关系查询与所述目标物理页关联的目标脏页,并根据所述第一映射关系查询与所述目标脏页关联的未修改物理页;
将所述目标脏页与所述未修改物理页进行关联,并更新第二映射物理页所述第二映射关系;
将所述更新所述第二映射关系后的第二映射物理页覆盖所述第一映射物理页。
参见图8,为本发明实施例的一种数据库的持久化写入装置的应用场景示意图,闪存转换层(Flash Translation Layer,简称FTL)是由目前提出的一种软件中间层,用于将闪存模拟成为虚拟块设备,从而能够在闪存上实现FAT(FileAllocation Table,文件配置表,简称FAT)等块设备类文件系统,FTL包含了地址映射,垃圾回收,损耗均衡等几个功能模块。闪存转换层可应用于闪存文件系统,例如应用于固态硬盘SSD(Solid State Drives,简称SSD)设备中。SSD是由高效控制器组织起来的闪存阵列,其控制器本身是一个嵌入式系统,连接硬盘接口和闪存芯片阵列,完成了RAID阵列卡相似的控制功能。闪存转换层在其中完成闪存数据管理(逻辑-物理地址映射、损耗均衡、垃圾回收)等重要功能。
本发明实施例提供的持久化写入装置可应用于闪存转换层中,可以结合“块映射”模块简单改造,通过改造分块结构,增加第一物理映射页和增加初始缓冲物理页页,按照本发明实施例提供的脏页写入和恢复流程可以减少闪存的写入次数,同时实现对闪存的安全写入,提升产品竞争力。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
以上所揭露的仅为本发明一种较佳实施例而已,当然不能以此来限定本发明之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于发明所涵盖的范围。
Claims (17)
1.一种数据库的持久化写入方法,其特征在于,包括:
在数据库内存生成N个脏页时,查询所述N个脏页在磁盘的数据库文件中各自对应的物理页,N为大于0的整数;
确定所述数据库文件中的缓冲物理页;
将所述N个脏页中的当前脏页写入到所述缓冲物理页,以及将所述当前脏页在所述数据库文件中对应的物理页作为新的缓冲物理页,并所述N个脏页中的下一脏页写入到所述新的缓冲物理页。
2.如权利要求1所述的方法,其特征在于,所述在数据库内存生成N个脏页时,查询所述N个脏页在磁盘的数据库文件中各自对应的物理页包括:
当数据库内存生成N个脏页时,根据写入顺序生成包含所述N个脏页的脏页队列;
查询所述脏页队列所述数据库文件中对应的包含N个物理页的第一物理页队列;其中,所述脏页队列的脏页和所述第一物理页队列中的物理页依据队列位置一一对应。
3.如权利要求2所述的方法,其特征在于,还包括:
将第一映射关系保存至所述数据库文件的第一映射物理页中;其中,所述第一映射关系表示所述脏页队列中包含的N个脏页与所述第一物理页队列包含N个物理页的映射关系。
4.如权利要求3所述的方法,其特征在于,还包括:
将所述缓冲物理页插入到所述第一物理页队列的队列头的前面,并移除所述第一物理页队列的队列尾后生成第二物理页队列;
将第二映射关系保存至所述数据库文件的第二映射物理页中;其中,所述第二映射关系表示所述脏页队列中包含的N个脏页和所述第二物理页队列中包含的N个物理页的映射关系,所述脏页队列的脏页和所述第二物理队列中的物理页依据队列位置一一对应。
5.如权利要求4所述的方法,其特征在于,所述将所述N个脏页中的当前脏页写入到所述缓冲物理页,以及将所述当前脏页在所述数据库文件中对应的物理页作为新的缓冲物理页,并所述N个脏页中的下一脏页写入到所述新的缓冲物理页包括:
将所述脏页队列中包含的N个队列依次写入到所述第二物理队列中各自对应的物理页。
6.如权利要求5所述的方法,其特征在于,还包括:
在所述N个脏页全部写入到所述数据库文件后,将所述第二映射物理页覆盖所述第一映射物理页。
7.如权利要求4-6任意一项所述的方法,其特征在于,所述在数据库内存生成N个脏页时,查询所述N个脏页在磁盘的数据库文件中各自对应的物理页之前,还包括:
将所述磁盘的数据库文件划分为多个物理页,以及分别在所述多个物理页中设置所述第一映射物理页、所述第二映射物理页和初始缓冲物理页;或者
将所述磁盘的数据库文件划分为多个段,以及将每个段划分为多个分区、将每个分区划分为多个物理页;
在每个段中设置所述第一映射物理页和所述第二映射物理页,以及在每个分区中设置初始缓冲物理页。
8.如权利要求6或7所述的方法,其特征在于,所述将所述脏页队列中包含的N个队列依次写入到所述第二物理队列中各自对应的物理页之后,还包括:
判断所述第二映射物理页是否完整,若为否,将所述第一映射物理页覆盖所述第二映射物理页;
若为是,继续判断所述第一映射物理页是否完整,若为否,将所述第二映射物理页覆盖所述第一映射物理页;
若为是,继续判断所述第一映射物理页和所述第二映射物理页是否一致,若为否,识别出所述第二物理页队列中的目标物理页,其中,所述目标物理页为未成功写入脏页的物理页;
根据所述第二映射关系查询与所述目标物理页关联的目标脏页,并根据所述第一映射关系查询与所述目标脏页关联的未修改物理页;
将所述目标脏页与所述未修改物理页进行关联,并更新第二映射物理页所述第二映射关系;
将所述更新所述第二映射关系后的第二映射物理页覆盖所述第一映射物理页。
9.一种数据库的持久化写入装置,其特征在于,包括:
查询模块,用于在数据库内存生成N个脏页时,查询所述N个脏页在磁盘的数据库文件中各自对应的物理页;
确定模块,用于确定所述数据库文件中的缓冲物理页;
写入模块,用于将所述N个脏页中的当前脏页写入到所述缓冲物理页,以及将所述当前脏页在所述数据库文件中对应的物理页作为新的缓冲物理页,并所述N个脏页中的下一脏页写入到所述新的缓冲物理页。
10.如权利要求9所述的装置,其特征在于,所述查询模块具体用于:
当数据库内存生成N个脏页时,根据写入顺序生成包含所述N个脏页的脏页队列;
查询所述脏页队列所述数据库文件中对应的包含N个物理页的第一物理页队列;其中,所述脏页队列的脏页和所述第一物理页队列中的物理页依据队列位置一一对应。
11.如权利要求10所述的装置,其特征在于,还包括:
第一保存模块,用于将第一映射关系保存至所述数据库文件的第一映射物理页中;其中,所述第一映射关系表示所述脏页队列中包含的N个脏页与所述第一物理页队列包含N个物理页的映射关系。
12.如权利要求11所述的装置,其特征在于,还包括:
第二保存模块,用于将所述缓冲物理页插入到所述第一物理页队列的队列头的前面,并移除所述第一物理页队列的队列尾后生成第二物理页队列;
将第二映射关系保存至所述数据库文件的第二映射物理页中;其中,所述第二映射关系表示所述脏页队列中包含的N个脏页和所述第二物理页队列中包含的N个物理页的映射关系,所述脏页队列的脏页和所述第二物理队列中的物理页依据队列位置一一对应。
13.如权利要求12所述的装置,其特征在于,所述写入模块用于将所述脏页队列中包含的N个队列依次写入到所述第二物理队列中各自对应的物理页。
14.如权利要求13所述的装置,其特征在于,还包括:
更新模块,用于在所述N个脏页全部写入到所述数据库文件后,将所述第二映射物理页覆盖所述第一映射物理页。
15.如权利要求12-14任意一项所述的装置,其特征在于,还包括:
设置模块,用于将所述磁盘的数据库文件划分为多个物理页,以及分别在所述多个物理页中设置所述第一映射物理页、所述第二映射物理页和初始缓冲物理页;或者
将所述磁盘的数据库文件划分为多个段,以及将每个段划分为多个分区、将每个分区划分为多个物理页;
在每个段中设置所述第一映射物理页和所述第二映射物理页,以及在每个分区中设置初始缓冲物理页。
16.如权利要求14或15所述的装置,其特征在于,还包括:
恢复模块,用于判断所述第二映射物理页是否完整,若为否,将所述第一映射物理页覆盖所述第二映射物理页;
若为是,继续判断所述第一映射物理页是否完整,若为否,将所述第二映射物理页覆盖所述第一映射物理页;
若为是,继续判断所述第一映射物理页和所述第二映射物理页是否一致,若为否,识别出所述第二物理页队列中的目标物理页,其中,所述目标物理页为未成功写入脏页的物理页;
根据所述第二映射关系查询与所述目标物理页关联的目标脏页,并根据所述第一映射关系查询与所述目标脏页关联的未修改物理页;
将所述目标脏页与所述未修改物理页进行关联,并更新第二映射物理页所述第二映射关系;
将所述更新所述第二映射关系后的第二映射物理页覆盖所述第一映射物理页。
17.一种数据库系统,其特征在于,包括数据库内存,磁盘和如权利要求9-16任意一项所述的数据库的持久化写入装置,所述持久化写入装置用于将所述数据库内存生成的脏页写入到所述磁盘的数据库文件中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410696915.0A CN104408126B (zh) | 2014-11-26 | 2014-11-26 | 一种数据库的持久化写入方法、装置和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410696915.0A CN104408126B (zh) | 2014-11-26 | 2014-11-26 | 一种数据库的持久化写入方法、装置和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104408126A true CN104408126A (zh) | 2015-03-11 |
CN104408126B CN104408126B (zh) | 2018-06-15 |
Family
ID=52645757
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410696915.0A Active CN104408126B (zh) | 2014-11-26 | 2014-11-26 | 一种数据库的持久化写入方法、装置和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104408126B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106021120A (zh) * | 2015-03-24 | 2016-10-12 | 爱思开海力士有限公司 | 存储系统及其操作方法 |
CN110069362A (zh) * | 2018-01-24 | 2019-07-30 | 慧荣科技股份有限公司 | 数据储存装置与数据处理方法 |
WO2020238748A1 (zh) * | 2019-05-31 | 2020-12-03 | 阿里巴巴集团控股有限公司 | 数据同步的处理方法、装置、电子设备及计算机存储介质 |
CN112835528A (zh) * | 2021-02-22 | 2021-05-25 | 北京金山云网络技术有限公司 | 脏页刷新方法和装置、电子设备和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102750317A (zh) * | 2012-05-02 | 2012-10-24 | 华为技术有限公司 | 数据持久化处理方法、装置及数据库系统 |
CN102999564A (zh) * | 2012-11-06 | 2013-03-27 | 华为技术有限公司 | 写入数据的方法、装置和设备 |
CN103136121A (zh) * | 2013-03-25 | 2013-06-05 | 中国人民解放军国防科学技术大学 | 一种固态盘的缓存管理方法 |
US20140019688A1 (en) * | 2012-07-13 | 2014-01-16 | iAnywhere Solutions | Solid State Drives as a Persistent Cache for Database Systems |
US8793223B1 (en) * | 2009-02-09 | 2014-07-29 | Netapp, Inc. | Online data consistency checking in a network storage system with optional committal of remedial changes |
-
2014
- 2014-11-26 CN CN201410696915.0A patent/CN104408126B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8793223B1 (en) * | 2009-02-09 | 2014-07-29 | Netapp, Inc. | Online data consistency checking in a network storage system with optional committal of remedial changes |
CN102750317A (zh) * | 2012-05-02 | 2012-10-24 | 华为技术有限公司 | 数据持久化处理方法、装置及数据库系统 |
US20140019688A1 (en) * | 2012-07-13 | 2014-01-16 | iAnywhere Solutions | Solid State Drives as a Persistent Cache for Database Systems |
CN102999564A (zh) * | 2012-11-06 | 2013-03-27 | 华为技术有限公司 | 写入数据的方法、装置和设备 |
CN103136121A (zh) * | 2013-03-25 | 2013-06-05 | 中国人民解放军国防科学技术大学 | 一种固态盘的缓存管理方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106021120A (zh) * | 2015-03-24 | 2016-10-12 | 爱思开海力士有限公司 | 存储系统及其操作方法 |
CN110069362A (zh) * | 2018-01-24 | 2019-07-30 | 慧荣科技股份有限公司 | 数据储存装置与数据处理方法 |
CN110069362B (zh) * | 2018-01-24 | 2022-09-20 | 慧荣科技股份有限公司 | 数据储存装置与数据处理方法 |
WO2020238748A1 (zh) * | 2019-05-31 | 2020-12-03 | 阿里巴巴集团控股有限公司 | 数据同步的处理方法、装置、电子设备及计算机存储介质 |
CN112835528A (zh) * | 2021-02-22 | 2021-05-25 | 北京金山云网络技术有限公司 | 脏页刷新方法和装置、电子设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN104408126B (zh) | 2018-06-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103136116B (zh) | 存储器存储系统及其中控装置、管理方法与断电恢复方法 | |
US11531482B2 (en) | Data deduplication method and apparatus | |
CN103019888B (zh) | 备份方法与装置 | |
US10877898B2 (en) | Method and system for enhancing flash translation layer mapping flexibility for performance and lifespan improvements | |
US10303374B2 (en) | Data check method and storage system | |
CN110532201B (zh) | 一种元数据处理方法及装置 | |
CN103995855A (zh) | 存储数据的方法和装置 | |
CN103870514A (zh) | 重复数据删除方法和装置 | |
CN103677674B (zh) | 一种数据处理方法及装置 | |
CN104408126A (zh) | 一种数据库的持久化写入方法、装置和系统 | |
CN103034592A (zh) | 数据处理方法和装置 | |
CN105308575A (zh) | 用于错误校正码(ecc)错误处理的方法和装置 | |
CN103984506A (zh) | 闪存存储设备数据写的方法和系统 | |
CN107135662A (zh) | 一种差异数据备份方法、存储系统和差异数据备份装置 | |
CN105446664A (zh) | 一种对存储器进行文件存储方法和存储装置 | |
CN107798063B (zh) | 快照处理方法和快照处理装置 | |
CN103389942A (zh) | 控制装置、存储装置及存储控制方法 | |
CN115756312A (zh) | 数据访问系统、数据访问方法和存储介质 | |
US10942811B2 (en) | Data processing method for solid state drive | |
CN104915265A (zh) | 数据备份方法和电子设备 | |
CN109426436B (zh) | 基于可变长大块的垃圾回收方法与装置 | |
CN103049561A (zh) | 一种数据压缩方法、存储引擎及存储系统 | |
CN108334457B (zh) | 一种io处理方法及装置 | |
CN103064926B (zh) | 数据处理方法和装置 | |
CN112269665B (zh) | 内存的处理方法和装置、电子设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20200420 Address after: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Patentee after: HUAWEI TECHNOLOGIES Co.,Ltd. Address before: 301, A building, room 3, building 301, foreshore Road, No. 310053, Binjiang District, Zhejiang, Hangzhou Patentee before: Huawei Technologies Co.,Ltd. |
|
TR01 | Transfer of patent right |