CN105260261B - 一种邮件恢复方法 - Google Patents
一种邮件恢复方法 Download PDFInfo
- Publication number
- CN105260261B CN105260261B CN201510801232.1A CN201510801232A CN105260261B CN 105260261 B CN105260261 B CN 105260261B CN 201510801232 A CN201510801232 A CN 201510801232A CN 105260261 B CN105260261 B CN 105260261B
- Authority
- CN
- China
- Prior art keywords
- data
- group
- logical
- library
- write
- 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.)
- Active
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明提供了一种邮件恢复方法,该方法包括:将邮件存储***的存储阵列中的多个存储区中的一个作为逻辑存储区,将新写入的数据与逻辑存储区已有数据一起生成新的误差校验数据,读取所述逻辑存储区已有数据,在数据恢复时结合逻辑存储区和源存储空间实现邮件数据恢复。本发明提出了一种邮件恢复方法,保持了并行访问的低能耗,又解决了并行访问带来的局部写入问题,具有突出的写入性能和节能效率。
Description
技术领域
本发明涉及邮件存储,特别涉及一种邮件恢复方法。
背景技术
邮件数据的快速增长,使邮件存储***的能耗急剧增加,在邮件数据存储应用中,在满足性能需求及单盘容错条件下,存储阵列的并行访问数据排列会导致存储阵列基本执行读写操作:写新数据时,需要先读取对应的旧数据、旧误差校验数据,与新数据一起生成新的误差校验数据后再写入新的误差校验数据,严重影响了性能。为了提供额定的写入性能,存储阵列必须运行更多磁盘以弥补局部写入带来的性能损失,从而会消耗更多能量。因此,存储阵列的节能效率亟待提高。
发明内容
为解决上述现有技术所存在的问题,本发明提出了一种邮件恢复方法,包括:
将邮件存储***的存储阵列中的多个存储区中的一个作为逻辑存储区,将新写入的数据与逻辑存储区已有数据一起生成新的误差校验数据,读取所述逻辑存储区已有数据,在数据恢复时结合逻辑存储区和源存储空间实现邮件数据恢复。
优选地,所述邮件存储***由N块磁盘组成,将每个磁盘平均分成N+1个存储区,N个相同偏移量的存储区组成一个库,共组成N+1个库,选择其中一个作为逻辑库,其余为物理库,每个物理库包含1个误差校验区、N-1个数据区;在物理库i中,误差校验区记为PB i,位于磁盘N-1-i;第v个数据区记为DB(i,v),当i+v<N-1时,DB(i,v)位于磁盘v,否则位于磁盘v+1;其中,0≤i<N,0≤v<N-1;PB i的值由通过以下运算求得:
每个存储区包含M个大小相等的块,每个库中,相同偏移量的块集成一个条块;所述邮件存储***采用如下并行访问数据来排列:将每个物理库中的N-1个数据区平均分成P组,每组包含Q个块;每组中偏移量相同的块能够被并行访问,每个条块中仅部分块提供并行性;
所述邮件存储***仅对物理库进行分组,逻辑库不参与分组,也不参与编址,对邮件存储***的上层应用是透明的;在组地址分配上,邮件存储***采用以下策略,在每个物理库中,序号相邻的组的逻辑地址相邻;即库i中组p的存储区q中第m个块的逻辑地址为:NumB(M·Q·P·i+M·Q·p+Q·m+q);其中NumB为块包含的数据块数,0≤p<P,0≤i<N,0≤q<Q,0≤m<M;
优选地:为每次循环中新写的数据生成的增量误差校验数据增加一个辅助缓存,增量误差校验数据与逻辑库中误差校验数据所在磁盘,以流水方式生成新的误差校验数据;在每个库中设置3个组,辅助缓存暂存逻辑库中的增量误差校验数据;
向任一源存储库的组0写数据时,数据写入逻辑库的组0,并生成组0的误差校验,写入逻辑库的误差校验区;组0写满后,向源存储库的组1写数据时,数据写入逻辑库的组1,并根据写数据、增量误差校验,生成新的误差校验数据,写入辅助缓存;组1写满后,向源存储库的组2写数据时,数据写入逻辑库的组2,并根据写数据、增量误差校验,生成新的误差校验数据,写入逻辑库的误差校验区;逻辑库写满后,修改映射表,令其取代源存储库,而源存储库作为下一循环中的逻辑库;若逻辑库的组数为奇数,则首先向误差校验区写误差校验数据;否则,首先向辅助缓存写误差校验数据;当采用固态硬盘作为辅助缓存时,从辅助缓存读增量误差校验数据,新的误差校验数据也写入辅助缓存,直至写最后组数据时,从辅助缓存读增量误差校验数据,并将新的误差校验数据写入磁盘。
本发明相比现有技术,具有以下优点:
本发明提出了一种邮件恢复方法,保持了并行访问的低能耗,又解决了并行访问带来的局部写入问题,具有突出的写入性能和节能效率。
附图说明
图1是根据本发明实施例的邮件恢复方法的流程图。
具体实施方式
下文与图示本发明原理的附图一起提供对本发明一个或者多个实施例的详细描述。结合这样的实施例描述本发明,但是本发明不限于任何实施例。本发明的范围仅由权利要求书限定,并且本发明涵盖诸多替代、修改和等同物。在下文描述中阐述诸多具体细节以便提供对本发明的透彻理解。出于示例的目的而提供这些细节,并且无这些具体细节中的一些或者所有细节也可以根据权利要求书实现本发明。
本发明的一方面提供了一种邮件恢复方法。图1是根据本发明实施例的邮件恢复方法流程图。
本发明采用面向邮件数据存储的高效能存储阵列,采用了新的并行访问数据排列,并综合运用了以下策略,以实现高性能和高节能效率。在地址映射中将随机写入转化为顺序写入;将存储空间划分成多个相等的存储区,其中之一作为逻辑存储区,更新源存储空间时,数据写入逻辑存储区;逻辑存储区写满后,修改映射表使它取代源存储空间;下一个循环中,源存储空间作为逻辑存储区,缓存其他存储区的写数据:写数据与逻辑存储区已有数据一起生成新的误差校验数据,随着逻辑存储区中数据的增加,误差校验数据的误差校验范围也逐渐扩大。生成新的误差校验数据时无需读取旧数据,当采用流水方式读取逻辑存储区已有数据、写入新的误差校验数据时,可消除读误差校验数据对性能的影响;利用分段数据容错:联合逻辑存储区、源存储空间实现数据恢复。本发明的邮件存储***保持了并行访问的低能耗,又解决了并行访问带来的局部写入问题,具有突出的写入性能和节能效率。
邮件存储***实现方法主要包括数据排列、写操作过程、数据恢复3方面内容。其中,写操作过程又包括地址映射、远程数据更新、扩展误差校验。邮件存储***由N块磁盘组成,每个磁盘平均分成N+1个存储区。N个相同偏移量的存储区组成一个库,共组成N+1个库,选择其中一个作为逻辑库,其余为物理库。每个物理库包含1个误差校验区、N-1个数据区。在物理库i中,误差校验区记为PB i,位于磁盘N-1-i;第v个数据区记为DB(i,v),当i+v<N-1时,DB(i,v)位于磁盘v,否则位于磁盘v+1。其中,0≤i<N,0≤v<N-1。PB i的值由通过异或运算求得:
令每个存储区包含M个大小相等的块,每个库中,相同偏移量的块集成一个条块。
为了提供合适的性能,邮件存储***采用如下并行访问数据来排列:将每个物理库中的N-1个数据区平均分成P组,每组包含Q个块。每组中偏移量相同的块能够被并行访问,每个条块中仅部分块提供并行性。
邮件存储***仅对物理库进行分组,逻辑库不参与分组,也不参与编址,对邮件存储***的上层应用是透明的。在组地址分配上,邮件存储***采用了以下策略:在每个物理库中,序号相邻的组的逻辑地址相邻。设NumB为块包含的数据块数,则库i,组p,存储区q中第m个块的逻辑地址为:NumB(M·Q·P·i+M·Q·p+Q·m+q);
这里,0≤p<P,0≤i<N,0≤q<Q,0≤m<M。
邮件存储***的数据排列和编址方式能够提供足够的并行度,并且对于邮件数据存储应用,可保证I/O请求在很长的时间内集中在一个或几个组中,其他多数磁盘有足够长的待机时间,可调度到待机模式以节约能耗。
邮件存储***的写操作过程综合运用了地址映射、远程数据更新、扩展误差校验等策略,生成误差校验数据时无需读取旧数据,当采用流水方式读取已有误差校验数据、写入新的误差校验数据时,可有效解决并行访问带来的局部写入问题。此外,地址映射将随机写入转换成顺序写入,又进一步提升了邮件存储***的写入性能。
邮件存储***以写新数据为主,较少进行改写操作,适合采用块集映射。地址映射信息为存储容量的8/(1024×x),其中,8个字节(64位)记录一个块集地址,x为块集大小以KB为单位。当邮件存储***的存储容量为30TB、块集大小为64KB时,地址映射信息仅为3.67GB,适合采用固态硬盘进行存储,运行时甚至可以完全调入内存,以加快读、写操作中的地址转换速度。
将随机写入转换为顺序写入,需要面对垃圾回收问题,垃圾存储空间是由改写操作产生的,在邮件数据存储中,改写的数据量不大,可在负载低于预设阈值时进行垃圾回收;如果追求性能,也可牺牲少量存储空间而忽略垃圾回收。
地址映射将非连续的虚拟地址映射为连续的物理地址,并在映射表中记录映射关系。其中,虚拟地址为应用程序提交的读写请求地址,物理地址为数据在邮件存储***内的存储地址。在此基础上,邮件存储***执行数据更新:向某物理地址写数据时,数据不直接写入该地址,而是写入其逻辑地址(逻辑库中与其偏移量相同的地址),并在适当时候修改映射表,令逻辑地址取代该物理地址。
假设邮件存储***由N块磁盘组成,划分出N+1个库,任取其中之一作为逻辑库,其余为物理库,则邮件存储***的远程数据更新过程如下:
(1)向某源存储库写数据时,数据并不直接写入该库,而是写入逻辑库;
(2)根据写入数据、本次循环中逻辑库中已写数据的误差校验数据,生成逻辑库的新的误差校验数据;
(3)如果逻辑库未写满,转到步骤(1);
(4)否则,修改地址映射关系,令逻辑库取代源存储库,本次循环结束;
(5)被取代的源存储库此时无映射关系,可在下一循环中作为逻辑库。
在以上写操作过程中,由于进行了地址映射,所以是依次向每个物理库顺序写入入数据的,不会同时向两个物理库写数据,也不会在一个物理库未写满的情况下,向另外一个物理库写数据。
逻辑库的误差校验数据是根据本次循环中已写数据生成的,称为增量误差校验数据。写新数据时,可根据新数据、增量误差校验数据计算新的误差校验数据。随着写数据的增加,增量误差校验数据的误差校验范围也渐进扩大,直至扩展到整个逻辑库。
扩展误差校验数据时无需读取旧数据,仅需读取增量误差校验数据,因此可增加一个辅助缓存,与逻辑库中误差校验数据所在磁盘,以流水方式生成新的误差校验数据(1个读增量误差校验数据,1个写新的误差校验数据),此时,可有效消除读误差校验数据对写入性能的影响。
假设每个库包含3个组,辅助缓存暂存逻辑库中的增量误差校验数据。具体执行过程如下:
(1)向任一源存储库的组0写数据时,数据写入逻辑库的组0,并生成组0的误差校验,写入逻辑库的误差校验区;
(2)组0写满后,向源存储库的组1写数据时,数据写入逻辑库的组1,并根据写数据、增量误差校验(组0的误差校验,在逻辑库的误差校验区),生成新的误差校验数据(组0,组1的误差校验),写入辅助缓存;
(3)组1写满后,向源存储库的组2写数据时,数据写入逻辑库的组2,并根据写数据、增量误差校验(组0,组1的误差校验,在辅助缓存),生成新的误差校验数据(组0,组1,组2的误差校验),写入逻辑库的误差校验区;
(4)逻辑库写满后,修改映射表,令其取代源存储库,而源存储库作为下一循环中的逻辑库。
为保证最后生成的误差校验数据写入逻辑库的误差校验区,需按如下规则流水:若逻辑库的组数为奇数,则首先向误差校验区写误差校验数据;否则,首先向辅助缓存写误差校验数据。
采用固态硬盘作为辅助缓存时:从辅助缓存读增量误差校验数据,新的误差校验数据也写入辅助缓存,直至写最后组数据时,从辅助缓存读增量误差校验数据,并将新的误差校验数据写入磁盘。
为使逻辑库中误差校验数据所在磁盘大部分时间也可待机,进一步提高节能效率的同时又不影响性能,可采用如下流水方式:设置两个辅助缓存辅助缓存1和辅助缓存2,轮流从其中之一读增量误差校验数据,向另一个写新的误差校验数据,直至生成逻辑库的最终误差校验数据,再将其写入磁盘。
综上所述,本发明提出了一种邮件快速处理方法,保持了并行访问的低能耗,又解决了并行访问带来的局部写入问题,具有突出的写入性能和节能效率。
显然,本领域的技术人员应该理解,上述的本发明的各模块或各步骤可以用通用的计算***来实现,它们可以集中在单个的计算***上,或者分布在多个计算***所组成的网络上,可选地,它们可以用计算***可执行的程序代码来实现,从而,可以将它们存储在存储***中由计算***来执行。这样,本发明不限制于任何特定的硬件和软件结合。
应当理解的是,本发明的上述具体实施方式仅仅用于示例性说明或解释本发明的原理,而不构成对本发明的限制。因此,在不偏离本发明的精神和范围的情况下所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。此外,本发明所附权利要求旨在涵盖落入所附权利要求范围和边界、或者这种范围和边界的等同形式内的全部变化和修改例。
Claims (1)
1.一种邮件恢复方法,其特征在于,包括:
将邮件存储***的存储阵列中的多个存储区中的一个作为逻辑存储区,将新写入的数据与逻辑存储区已有数据一起生成新的误差校验数据,读取所述逻辑存储区已有数据,在数据恢复时结合逻辑存储区和源存储空间实现邮件数据恢复;
所述邮件存储***由N块磁盘组成,将每个磁盘平均分成N+1个存储区,N个相同偏移量的存储区组成一个库,共组成N+1个库,选择其中一个作为逻辑库,其余为物理库,每个物理库包含1个误差校验区、N-1个数据区;在物理库i中,误差校验区记为PB i,位于磁盘N-1-i;第v个数据区记为DB(i,v),当i+v<N-1时,DB(i,v)位于磁盘v,否则位于磁盘v+1;其中,0≤i<N,0≤v<N-1;PB i的值由通过以下运算求得:
每个存储区包含M个大小相等的块,每个库中,相同偏移量的块集成一个条块;所述邮件存储***采用如下并行访问数据来排列:将每个物理库中的N-1个数据区平均分成P组,每组包含Q个块;每组中偏移量相同的块能够被并行访问,每个条块中仅部分块提供并行性;
所述邮件存储***仅对物理库进行分组,逻辑库不参与分组,也不参与编址,对邮件存储***的上层应用是透明的;在组地址分配上,邮件存储***采用以下策略,在每个物理库中,序号相邻的组的逻辑地址相邻;即库i中组p的存储区q中第m个块的逻辑地址为:NumB(M·Q·P·i+M·Q·p+Q·m+q);其中NumB为块包含的数据块数,0≤p<P,0≤i<N,0≤q<Q,0≤m<M;
为每次循环中新写的数据生成的增量误差校验数据增加一个辅助缓存,增量误差校验数据与逻辑库中误差校验数据所在磁盘,以流水方式生成新的误差校验数据;在每个库中设置3个组,辅助缓存暂存逻辑库中的增量误差校验数据;
向任一源存储库的组0写数据时,数据写入逻辑库的组0,并生成组0的误差校验,写入逻辑库的误差校验区;组0写满后,向源存储库的组1写数据时,数据写入逻辑库的组1,并根据写数据、增量误差校验,生成新的误差校验数据,写入辅助缓存;组1写满后,向源存储库的组2写数据时,数据写入逻辑库的组2,并根据写数据、增量误差校验,生成新的误差校验数据,写入逻辑库的误差校验区;逻辑库写满后,修改映射表,令其取代源存储库,而源存储库作为下一循环中的逻辑库;若逻辑库的组数为奇数,则首先向误差校验区写误差校验数据;否则,首先向辅助缓存写误差校验数据;当采用固态硬盘作为辅助缓存时,从辅助缓存读增量误差校验数据,新的误差校验数据也写入辅助缓存,直至写最后组数据时,从辅助缓存读增量误差校验数据,并将新的误差校验数据写入磁盘。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510801232.1A CN105260261B (zh) | 2015-11-19 | 2015-11-19 | 一种邮件恢复方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510801232.1A CN105260261B (zh) | 2015-11-19 | 2015-11-19 | 一种邮件恢复方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105260261A CN105260261A (zh) | 2016-01-20 |
CN105260261B true CN105260261B (zh) | 2018-06-15 |
Family
ID=55099961
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510801232.1A Active CN105260261B (zh) | 2015-11-19 | 2015-11-19 | 一种邮件恢复方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105260261B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107786419B (zh) * | 2016-08-26 | 2020-05-26 | 西安交大捷普网络科技有限公司 | 实现网页邮箱附件的附件还原方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101752011A (zh) * | 2008-12-08 | 2010-06-23 | 忆正存储技术(深圳)有限公司 | 一种用于多通道非易失固态存储设备的数据存储方法 |
CN102023820A (zh) * | 2010-12-01 | 2011-04-20 | 北京同有飞骥科技股份有限公司 | 一种双磁盘容错垂直型分组并行访问磁盘阵列的构建方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7010645B2 (en) * | 2002-12-27 | 2006-03-07 | International Business Machines Corporation | System and method for sequentially staging received data to a write cache in advance of storing the received data |
KR101221915B1 (ko) * | 2007-08-14 | 2013-01-15 | 엘지전자 주식회사 | 데이터 전송방법 |
-
2015
- 2015-11-19 CN CN201510801232.1A patent/CN105260261B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101752011A (zh) * | 2008-12-08 | 2010-06-23 | 忆正存储技术(深圳)有限公司 | 一种用于多通道非易失固态存储设备的数据存储方法 |
CN102023820A (zh) * | 2010-12-01 | 2011-04-20 | 北京同有飞骥科技股份有限公司 | 一种双磁盘容错垂直型分组并行访问磁盘阵列的构建方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105260261A (zh) | 2016-01-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Mittal et al. | A survey of software techniques for using non-volatile memories for storage and main memory systems | |
CN104794070B (zh) | 基于动态非覆盖raid技术的固态闪存写缓存***及方法 | |
Chung et al. | A survey of flash translation layer | |
CN104246721B (zh) | 存储***、存储控制器及存储控制方法 | |
CN104731717B (zh) | 存储器装置及存储器管理方法 | |
CN102779096B (zh) | 一种基于页块面三维的闪存地址映射方法 | |
US20070005928A1 (en) | Technique to write to a non-volatile memory | |
CN106775476A (zh) | 混合内存***及其管理方法 | |
CN105930097B (zh) | 一种消除局部并行中小写操作的分布校验式磁盘阵列 | |
CN106354658B (zh) | 一种降低混合映射算法中映射表内存资源占用的方法 | |
CN108121503A (zh) | 一种NandFlash地址映射及块管理算法 | |
CN107391391A (zh) | 在固态硬盘的ftl实现数据拷贝的方法、***及固态硬盘 | |
CN106802870B (zh) | 一种高效的嵌入式***芯片Nor-Flash控制器及控制方法 | |
Pan et al. | GFTL: Group-level mapping in flash translation layer to provide efficient address translation for NAND flash-based SSDs | |
CN103246609A (zh) | 一种闪存存储设备中冷热数据区分管理的方法及装置 | |
CN102981969A (zh) | 重复数据删除的方法及其固态硬盘 | |
CN111414320B (zh) | 基于日志文件***的非易失内存构建磁盘cache的方法及*** | |
CN113253926A (zh) | 提升新型存储器的查询和存储性能的存储内索引构建方法 | |
Ma et al. | Alleviating hot data write back effect for shingled magnetic recording storage systems | |
CN102339255B (zh) | 一种Nand写平衡处理方法 | |
CN114036079A (zh) | 映射表压缩方法、***、存储器控制器、固态硬盘及数据读取方法 | |
CN107544912A (zh) | 一种日志记录方法、加载方法及其装置 | |
CN105260261B (zh) | 一种邮件恢复方法 | |
CN111143313B (zh) | 一种提高混合映射算法的日志块读写性能的方法 | |
Chung et al. | STAFF: A flash driver algorithm minimizing block erasures |
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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20230605 Address after: F13, Building 11, Zone D, New Economic Industrial Park, No. 99, West Section of Hupan Road, Xinglong Street, Tianfu New District, Chengdu, Sichuan, 610000 Patentee after: Sichuan Shenhu Technology Co.,Ltd. Address before: No. 5, 1st Floor, Unit 1, Building 19, No. 177, Middle Section of Tianfu Avenue, High tech Zone, Chengdu, Sichuan, 610043 Patentee before: SICHUAN CINGHOO TECHNOLOGY Co.,Ltd. |