CN106569745A - 一种内存过载下面向重复数据删除的内存优化系统 - Google Patents

一种内存过载下面向重复数据删除的内存优化系统 Download PDF

Info

Publication number
CN106569745A
CN106569745A CN201610933953.2A CN201610933953A CN106569745A CN 106569745 A CN106569745 A CN 106569745A CN 201610933953 A CN201610933953 A CN 201610933953A CN 106569745 A CN106569745 A CN 106569745A
Authority
CN
China
Prior art keywords
page
data
memory
module
read
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
Application number
CN201610933953.2A
Other languages
English (en)
Other versions
CN106569745B (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.)
Guangzhou Jinan University Science Park Management Co.,Ltd.
Guangzhou silver water drop Technology Co.,Ltd.
Original Assignee
Jinan University
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 Jinan University filed Critical Jinan University
Priority to CN201610933953.2A priority Critical patent/CN106569745B/zh
Publication of CN106569745A publication Critical patent/CN106569745A/zh
Application granted granted Critical
Publication of CN106569745B publication Critical patent/CN106569745B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • G06F3/0641De-duplication techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种内存过载下面向重复数据删除的内存优化系统,包括数据页筛选模块、读写请求处理模块、全零数据页过滤模块、重复数据页删除模块和数据管理模块。其中,数据页筛选模块用于发现内存中适合去重的稳定数据页,读写请求处理模块用于地址转化和读写分类,全零数据页过滤模块是对筛选出的去重数据页进行过滤,剔除其中全零数据页以节省内存开销,重复数据页删除模块对全零页过滤剩余页面进行去重操作,数据管理模块负责元数据和去重后的内存数据页的组织和管理。本发明通过筛选内存全零页和删除重复数据页,提高内存利用率,在内存过载下避免缓慢的外存交换操作,有效提高系统整体性能。

Description

一种内存过载下面向重复数据删除的内存优化系统
技术领域
本发明涉及计算机内存优化的技术领域,具体涉及一种内存过载下面向重复数据删除的内存优化系统。
背景技术
随着主存价格的不断降低,典型计算机所拥有的主存容量不断增加,与此同时系统软件和应用程序在功能、种类和所需存储空间也在迅速膨胀,计算内存资源仍无法满足许多应用程序所需,特别是虚拟化技术的大量应用,运行在物理机器上的虚拟机的最大数量通常受限于物理机内存,内存资源仍然是计算机系统的稀缺资源。当内存资源无法满足应用程序所需时,系统将借助交换区(swap area)换出暂不使用的内存页,让程序得以顺利运行。然而,频繁的外存读写操作严重影响应用程序的执行性能。虽然可以通过购买更多的RAM缓解内存紧张问题,但是将增加资金开销。在不增加额外开销的情况下,如何提高内存利用率、有效缓解内存紧张并提高应用程序性能成为一个亟待解决的问题。
现有的解决方案主要集中在内存数据的压缩和内存去重两个方面。内存压缩的基本思想是在内存中预留一块存储空间(压缩区),对内存中部分数据进行压缩并存储在压缩区,从而向应用程序提供更多可用空间,并降低磁盘访问。压缩策略的本质是利用不断增大的CPU处理能力和磁盘操作延迟之间的差距,即内存紧张时通过未充分利用的CPU计算能力进行页面压缩以提高内存利用率。然而,一方面压缩算法本身需要较大的计算开销,当页面压缩率较低或系统负载较小时,不仅不能获得较大收益反而引入了压缩时间开销和计算开销;另一方面内存压缩只能删除页内重复数据,不能做到页与页之间的相同数据删除。内存去重方面,可以通过周期扫描内存页以判断哪些页面为适合去重的“稳定页”,并对相同内容的稳定页以写时拷贝的形式进行合并以达到节省内存(如KSM)。然而该方法只对相对静态的内存页有较好的去重效果,并且,周期的扫描匿名页以发现新的合并机会需要相当长的时间。将重复数据删除技术应用到系统交换操作中(如MSDD),页面从内存换到磁盘交换区前检测并删除重复数据页以减少磁盘I/O,然而,一方面,没有对大量存在的全零页进行过滤,增大了去重计算和存储开销,另一方面,去重后的数据需要写入外存交换区,无论去重率高低,都无法避免缓慢的外存读写。
因此,为了在内存过载下有效提高内存利用率和系统整体性能,需要一种更轻量、更有效的内存优化策略,以确保在内存紧张时有选择的进行数据去重,有效的删除重复数据页、提高内存利用率,同时尽量避免外存交换操作以提高系统整体性能。
发明内容
本发明的目的是为了解决现有技术中的上述缺陷,提供一种内存过载下面向重复数据删除的内存优化系统,该内存优化系统在内存过载下有效删除内存中全零数据页与重复数据页,以提高内存利用率和系统整体性能。
本发明的目的可以通过采取如下技术方案达到:
一种内存过载下面向重复数据删除的内存优化系统,以块设备驱动的形式存在,向操作系统注册一个块设备,该块设备以交换区(swap area)的形式向操作系统系统服务,当内存过载时,对交换出数据页进行数据去重,去重后的数据页存储在内存中,以减少不必要的外设读写,所述内存优化系统包括:数据页筛选模块、读写请求处理模块、全零数据页过滤模块、重复数据页删除模块和数据管理模块,上述各模块顺序连接,其中,
所述数据页筛选模块,利用页框回收算法(PFRA),在内存不足时扫描内存数据页,筛选出暂不使用的稳定内存页,并换出到交换缓存中;
所述读写请求处理模块,用于对换入换出请求进行应答和处理,对读写请求分类,并交由不同的接口处理,当写数据达到时,检测写入请求逻辑是否合理,以内存页为块大小对数据进行切分,把写入数据的扇区地址转化为页地址和偏移量,当读请求达到时,同样进行逻辑合理性分析和请求切分;
所述全零数据页过滤模块,用于对换出的内存页进行全零页检测和过滤,数据页进入该模块时,检测页面数据是否全部为零,对全零数据页进行标记代替存储以节省内存;
所述重复数据页删除模块,对所述全零数据页过滤模块剩余的页面进行二次过滤,计算页面指纹作为页面的唯一标识,将指纹散列至哈希表中,进行指纹比对判断页面是否为重复,若重复则删除,相同数据页只保留一份,存储彼此不相同的唯一数据页;
所述数据管理模块,该模块与其他个各模块相互交互,用于对所述内存优化系统数据的管理,以便对读写请求进行快速响应。
进一步地,所述数据管理模块包括元数据管理子模块和页面存储池管理子模块,其中,所述元数据管理子模块负责页面指纹索引以及数据页索引,所述页面存储池管理子模块负责对去重后数据页进行存储管理、动态伸缩存储池大小。
进一步地,所述元数据管理子模块用于维护顺序表和哈希表,其中,所述顺序表记录进入所述内存优化系统的每一数据页进行去重后的存储地址page_addr和标识该页是否为全零页flag;所述哈希表记录页面指纹、页面索引数量、去重后页面在存储池地址,用于索引所有去重后唯一数据页。
进一步地,所述页面存储池管理子模块存储去重后的唯一数据页,利用内存池根据去重后数据页数量,动态的伸缩页面存储池大小,同时为避免过度的数据去重带来的颠簸问题,对所述页面存储池设定空间上限,当达到空间上限时,所述内存优化系统停止对内存过载页面继续去重,而交由外存交换区。
进一步地,所述读写请求处理模块,将请求读写的扇区地址转化为以页为单位的页地址和偏移量,获得该读写数据在所述内存优化系统中所对应的页号,将连续的写入请求以页面大小PAGE_SIZE为固定大小进行切分,对于非完整页的写请求,先读取对应已存储页面,将页面补全;该读写请求处理模块对于写入请求,将页号和数据交由所述全零数据页过滤模块处理;对于读请求,将页号作为顺序表下标,访问顺序表中该页全零页标识flag,判断请求页面是否为全零页,若为全零页则申请空间,构造全零数据页,反之,从顺序表中获取页面存储地址,读取请求数据页。
进一步地,所述全零数据页过滤模块对请求写入数据页进行基于字节的比对,判断该页数据是否全部为零,若为全零页,则删除页面,在所述顺序表对应页号进行全零页标记flag置1代替页面存储,若不为全零页,将页面数据交由所述重复数据页删除模块处理。
进一步地,所述重复数据页删除模块对所述全零数据页过滤模块剩余的页面进行二次过滤,删除重复的数据页,存储彼此不相同的唯一数据页。
进一步地,所述重复数据页删除模块,利用MD5安全哈希算法计算出每个页面的指纹,作为页面的唯一标识,并通过哈希算法将指纹映射到所述哈希表中判断当前指纹是否存在,若存在则认为当前页面为重复页面,增加所述哈希表中的对应页面元数据计数,删除当前页面,否则认为当前页面为非重复页面,添加页面元数据到所述哈希表中,其中,所述页面元数据包括页面指纹、存储地址和页面引用计数等信息。
进一步地,所述重复数据页删除模块的具体工作步骤如下:
S1、分配指纹空间,利用MD5计算页面的指纹;
S2、在存储池中分配页面存储空间并返回页面句柄handle;
S3、将页面的指纹通过哈希函数散列到所述哈希表中,在冲突列表中查找是否存在相同指纹,若存在则返回对应页面在存储池中的存储句柄,否则构造当前页面的元数据信息,并插入到所述哈希表中,返回当前页面的句柄tmp_handle;
S4、如果步骤S3返回的页面句柄tmp_handle与插入前步骤S2返回的页面句柄handle相同,则当前页面为非重复页面,将页面拷贝到句柄handle所对应存储池位置;若不相同,在存储池中删除步骤S3中分配的空间,将tmp_handle的值赋给handle;
S5、在所述顺序表对应位置记录存储地址handle;
S6、在所述顺序表对应位置记录页面指纹key。
进一步地,所述步骤S5、在所述顺序表对应位置记录存储地址handle,以便后期读请求到达时,直接读取访问,当读请求到达时具体操作如下:
R1、获得读操作锁;
R2、将请求扇区地址转化为页地址获得页号pageNo;
R3、将页号pageNo作为顺序表的下标访问顺序表,判断page_meta[pageNo].handle是否为空并且page_meta[pageNo].flag为1,
若条件满足,则将请求输入页面数据全部置零;反之,拷贝page_meta[pageNo].handle地址空间内数据至请求输入页;
R4、释放读操作锁。
本发明相对于现有技术具有如下的优点及效果:
(1)本发明采用轻量级内存数据去重,只在内存过载下启用数据去重,利用系统页框回收算法(PFRA)筛选适合去重的稳定数据页,无需额外的内存数据扫描,有效降低去重计算开销。通过删除重复内存数据页以解决内存过载下频繁的外存访问对系统整体性能影响的问题。
(2)通过对内存数据分析发现内存数据中存在大量的全零数据页,本发明提出在内存去重时增加全零数据页过滤模块,在数据去重前剔除全零数据页,进一步节省存储空间,减少去重计算。
(3)本发明将去重后的唯一数据页存储在内存中而非外设,一方面极大的避免了外存交换操作;另一方面,在内存紧张时,将内存页尽可能久的保存在内存中,方便在系统请求页面时快速响应。
(4)本发明以块设备驱动的形式进行工作,不用进行内核编译的情况下,可以进行动态的装载,便于使用。
附图说明
图1是本发明公开的一种内存过载下面向重复数据删除的内存优化系统的结构框图;
图2是本发明中全零数据页过滤模块以及重复数据页删除模块的工作原理示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本实施例公开了一种内存过载下面向重复数据删除的内存优化系统,该系统以块设备驱动的形式存在,向操作系统注册一个块设备,该设备以交换的形式向操作系统系统服务,当内存过载时,对换出数据页进行数据去重,去重后的数据页存储在内存中,以减少不必要的外设读写。该系统包括:数据页筛选模块、读写请求处理模块、全零数据页过滤模块、重复数据页删除模块和数据管理模块,上述各模块顺序连接,其中,
所述数据页筛选模块,利用页框回收算法(PFRA),在内存不足时扫描内存数据页,筛选出暂不使用的稳定内存页,并换出到交换缓存(swap cache)中,数据页经过到交换缓存(swap cache)进入内存优化系统。
在具体的实施方式中,该数据页筛选模块利用操作系统的页框回收算法(PFRA),发现适合去重的相对稳定数据页,减少内存去重额外的页面扫描开销,实现轻量级内存去重系统。
所述读写请求处理模块,负责对换入换出请求进行应答和处理。对读写请求分类,并交由不同的接口处理。当写数据达到时,检测写入请求逻辑是否合理,以内存页为块大小对数据进行切分,把写入数据的扇区地址转化为页地址和偏移量,当读请求达到时,同样进行逻辑合理性分析和请求切分。
所述全零数据页过滤模块,用于对换出的内存页进行全零页检测和过滤。数据页进入该模块时,检测页面数据是否全部为零(全零页),对全零数据页进行标记代替存储以节省内存。
所述重复数据页删除模块,对所述全零数据页过滤模块剩余的页面进行二次过滤。计算页面指纹作为页面的唯一标识,将指纹散列至哈希表(hashtable)中,进行指纹比对判断页面是否为重复,若重复则删除,相同数据页只保留一份。存储彼此不相同的唯一数据页。
所述数据管理模块,该模块与其他各模块相互交互,用于对内存优化系统数据的管理,以便对读写请求进行快速响应。
在具体的实施方式中,所述数据管理模块包括元数据管理子模块和页面存储池管理子模块。元数据管理子模块负责页面指纹索引,去重系统数据页索引。页面存储池管理子模块,负责对去重后数据页进行存储管理、动态伸缩存储池大小。
所述元数据管理子模块用于维护顺序表(page meta)和哈希表(hashtable)。
其中,顺序表(page meta)记录了进入内存优化系统的每一数据页进行去重后的存储地址(page_addr)和标识该页是否为全零页flag。其中,哈希表(hashtable)记录了页面指纹、页面索引数量、去重后页面在存储池地址,用于索引所有去重后唯一数据页。
所述页面存储池管理子模块存储去重后的唯一数据页,利用内存池根据去重后数据页数量,动态的伸缩页面存储池大小,同时为避免过度的数据去重带来的颠簸问题,可以对页面存储池设定空间上限,当达到空间上限时,所述内存优化系统停止对内存过载页面继续去重,而交由外存交换区。
在具体的实施方式中,所述读写请求处理模块,将请求读写的扇区地址,转化为以页为单位的页地址和偏移量,获得该读写数据在所述内存优化系统中所对应的页号。将连续的写入请求以页面大小(PAGE_SIZE)为固定大小进行切分。对于非完整页的写请求,先读取对应已存储页面,将页面补全。内存优化系统在去重后数据操作请求(读请求)到达所述读写请求处理模块时,一样需要进行逻辑检查和以页为单位进行划分。对于写入请求,将页号和数据交由全零数据页过滤模块处理;对于读请求,将页号作为顺序表(page meta)下标,访问page meta中该页全零页标识flag,判断请求页面是否为全零页,若为全零页则申请空间,构造全零数据页。反之,从page meta中获取页面存储地址,读取请求数据页。
在具体的实施方式中,所述全零数据页过滤模块对请求写入数据页进行基于字节的比对,判断该页数据是否全部为零(全零页),若为全零页,则删除页面,在顺序表(pagemeta)对应页号进行全零页标记flag置1代替页面存储。若不为全零页,将页面数据交由重复数据页删除模块处理。
在具体的实施方式中,所述重复数据页删除模块对全零数据页过滤模块剩余的页面进行二次过滤,删除重复的数据页,存储彼此不相同的唯一数据页。
在具体的实施方式中,所述重复数据页删除模块,利用MD5安全哈希算法计算出每个页面的指纹,作为页面的唯一标识,并通过哈希算法将指纹映射到哈希表(hashtable)中判断当前指纹是否存在,若存在则认为当前页面为重复页面,增加哈希表(hashtable)中的对应页面元数据计数,删除当前页面,否则认为当前页面为非重复页面,添加页面元数据到哈希表中。页面元数据包括页面指纹,存储地址,页面引用计数等信息。使用MD5作为指纹计算算法是因为,虽然SHA1冲突率(1/280)相对于MD5(1/264)更小更安全,然而,其需要更多计算步骤,时间开销大。在时间敏感型系统中,MD5算法更适合,且MD5冲突率小于内存动态存储器DRAM出错的概率。
所述重复数据页删除模块的具体工作过程如下:
S1、分配指纹空间,利用MD5计算页面的指纹;
S2、在存储池中分配页面存储空间并返回页面句柄handle;
S3、将页面的指纹通过哈希函数散列到哈希表中,在冲突列表中查找是否存在相同指纹,若存在则返回对应页面在存储池中的存储句柄,否则构造当前页面的元数据信息,并插入到哈希表中,返回当前页面的句柄tmp_handle。
S4、如果步骤S3返回的页面句柄tmp_handle与插入前步骤S2返回的页面句柄handle相同,则当前页面为非重复页面,将页面拷贝到句柄handle所对应存储池位置;若tmp_handle与handle不相同,说明当前页面已经存在,在存储池中删除步骤S3中分配的空间,将tmp_handle的值赋给handle。
S5、在顺序表(page meta)对应位置记录存储地址handle。
S6、在顺序表(page meta)对应位置记录指纹key。
其中,在顺序表(page meta)对应位置存储页面在存储池的存储地址handle,以便后期读请求到达时,直接读取访问。读请求到达时具体操作如下:
R1、获得读操作锁;
R2、将请求扇区地址转化为页地址获得页号pageNo;
R3、将页号pageNo作为顺序表(page meta)的下标访问顺序表(page meta),判断page_meta[pageNo].handle是否为空
并且page_meta[pageNo].flag为1,
若条件满足则请求输入页面数据全部置零;
反之,拷贝page_meta[pageNo].handle地址空间内数据至请求输入页;
R4、释放读操作锁。
下面基于上述公开的内存过载下面向重复数据删除的内存优化系统,具体说明各个模块之间配合实现内存优化的工作流程:
T1、当操作系统内存紧张时,数据页筛选模块通过页框回收算法(PFRA)有效筛选出适合去重的内存数据页,这些页面主要是停留在内存中,但暂时不使用的数据页,数据页筛选模块将这些数据穿过交换缓冲区进入到去重系统,如图1所示。
T2、筛选出的数据穿过交换缓冲到达内存优化系统的读写请求处理模块,该模块负责对读写请求的响应和处理。请求到达时,首先对请求的逻辑合理性进行分析,若请求合理则继续执行,否则向上层提交错误信息;其次,将请求写入磁盘的扇区地址转化为页地址和偏移量,对非整页请求先读取已存储数据进行补充使各请求以页(page size)为单位进行处理。对读写请求进行分类,分别交由不同接口处理。
T3、当写请求到达时执行步骤T4,读请求到达时候执行步骤T5。
T4、调用全零数据页过滤模块对请求写入数据进行全零页判断,全零页过滤器基于字节检查,如图2,在进行页面去重前过滤掉全零页面(7522、7524、7526、7529),仅在顺序表(page meta)对应标志位(flag)置为1代替存储。全零页不参与页面去重,极大的节省了内存空间,剩余非全零页交给下层数据去重模块处理。
T5、读请求到达时,读取page_meta对应标记位,判断请求读取的页面是否为全零页,若是,则将请求写入地址全部置零即可,否则,通过page_meta获取页面在存储池地址,将页面拷贝到请求写入地址。
T6、请求写入页面经过全零数据页过滤模块后进入重复数据页删除模块,该模块是对页面进行二次过滤,利用MD5算法计算页面数字指纹作为页面唯一标识。
T7、将步骤T6中获得的指纹通过哈希函数映射到哈希表中,通过指纹比对判断是否已存在相同指纹,若存在执行步骤T8,否则执行步骤T9;
T8、在哈希表中存在相同指纹,则认为当前页面为重复页面,即相同页面已经存储在页面池中,增加该相同页面的引用计数,删除当前页面节省内存空间。
T9、若在哈希表中未找到相同指纹,则去重存储池中尚未存储相同页面。当页面为非重复页面,则在哈希表中添加该页面的元数据信息并将引用计数设置为1,页面元数据信息包括指纹地址,页面在存储池的存储地址,引用计数等。
T10、该内存优化系统通过回调机制感知当前存储页面是否过期,并对过期的页面进行清除。
通过上述步骤,本实施例公开的内存优化系统在内存紧张时可有效删除内存中重复的数据页,有效提高内存利用率,减少外存交换操作,提高系统整体性能。如图2给出了全零数据页过滤模块和重复数据页删除模块工作流程示意图。
综上所述,该内存优化系统改善了内存过载下频繁的外存交换操作影响系统整体性能问题,通过数据页筛选、全零数据页过滤、重复数据页删除,将去重后唯一数据页保存在内存中极大的降低了外存交换操作,有效提高内存利用率,从而提高系统的整体性能。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。

Claims (10)

1.一种内存过载下面向重复数据删除的内存优化系统,以块设备驱动的形式存在,向操作系统注册一个块设备,该块设备以交换区的形式向操作系统系统服务,当内存过载时,对交换出数据页进行数据去重,去重后的数据页存储在内存中,以减少不必要的外设读写,其特征在于,所述内存优化系统包括:数据页筛选模块、读写请求处理模块、全零数据页过滤模块、重复数据页删除模块和数据管理模块,上述各模块顺序连接,其中,
所述数据页筛选模块,利用页框回收算法,在内存不足时扫描内存数据页,筛选出暂不使用的稳定内存页,并换出到交换缓存中;
所述读写请求处理模块,用于对换入换出请求进行应答和处理,对读写请求分类,并交由不同的接口处理,当写数据达到时,检测写入请求逻辑是否合理,以内存页为块大小对数据进行切分,把写入数据的扇区地址转化为页地址和偏移量,当读请求达到时,同样进行逻辑合理性分析和请求切分;
所述全零数据页过滤模块,用于对换出的内存页进行全零页检测和过滤,数据页进入该模块时,检测页面数据是否全部为零,对全零数据页进行标记代替存储以节省内存;
所述重复数据页删除模块,对所述全零数据页过滤模块剩余的页面进行二次过滤,计算页面指纹作为页面的唯一标识,将指纹散列至哈希表中,进行指纹比对判断页面是否为重复,若重复则删除,相同数据页只保留一份,存储彼此不相同的唯一数据页;
所述数据管理模块,该模块与其他个各模块相互交互,用于对所述内存优化系统数据的管理,以便对读写请求进行快速响应。
2.根据权利要求1所述的一种内存过载下面向重复数据删除的内存优化系统,其特征在于,
所述数据管理模块包括元数据管理子模块和页面存储池管理子模块,其中,所述元数据管理子模块负责页面指纹索引以及数据页索引,所述页面存储池管理子模块负责对去重后数据页进行存储管理、动态伸缩存储池大小。
3.根据权利要求2所述的一种内存过载下面向重复数据删除的内存优化系统,其特征在于,
所述元数据管理子模块用于维护顺序表和哈希表,其中,所述顺序表记录进入所述内存优化系统的每一数据页进行去重后的存储地址page_addr和标识该页是否为全零页的flag;所述哈希表记录页面指纹、页面索引数量、去重后页面在存储池地址,用于索引所有去重后唯一数据页。
4.根据权利要求2所述的一种内存过载下面向重复数据删除的内存优化系统,其特征在于,
所述页面存储池管理子模块存储去重后的唯一数据页,利用内存池根据去重后数据页数量,动态的伸缩页面存储池大小,同时为避免过度的数据去重带来的颠簸问题,对所述页面存储池设定空间上限,当达到空间上限时,所述内存优化系统停止对内存过载页面继续去重,而交由外存交换区存储。
5.根据权利要求3所述的一种内存过载下面向重复数据删除的内存优化系统,其特征在于,
所述读写请求处理模块,将请求读写的扇区地址转化为以页为单位的页地址和偏移量,获得该读写数据在所述内存优化系统中所对应的页号,将连续的写入请求以页面大小PAGE_SIZE为固定大小进行切分,对于非完整页的写请求,先读取对应已存储页面,将页面补全;该读写请求处理模块对于写入请求,将页号和数据交由所述全零数据页过滤模块处理;对于读请求,将页号作为顺序表下标,访问顺序表中该页全零页标识flag,判断请求页面是否为全零页,若为全零页则申请空间,构造全零数据页,反之,从顺序表中获取页面存储地址,读取请求数据页。
6.根据权利要求3所述的一种内存过载下面向重复数据删除的内存优化系统,其特征在于,
所述全零数据页过滤模块对请求写入数据页进行基于字节的比对,判断该页数据是否全部为零,若为全零页,则删除页面,在所述顺序表对应页号进行全零页标记flag置1代替页面存储,若不为全零页,将页面数据交由所述重复数据页删除模块处理。
7.根据权利要求1所述的一种内存过载下面向重复数据删除的内存优化系统,其特征在于,
所述重复数据页删除模块对所述全零数据页过滤模块剩余的页面进行二次过滤,删除重复的数据页,存储彼此不相同的唯一数据页。
8.根据权利要求3所述的一种内存过载下面向重复数据删除的内存优化系统,其特征在于,
所述重复数据页删除模块,利用MD5安全哈希算法计算出每个页面的指纹,作为页面的唯一标识,并通过哈希算法将指纹映射到所述哈希表中判断当前指纹是否存在,若存在则认为当前页面为重复页面,增加所述哈希表中的对应页面元数据引用计数,删除当前页面,否则认为当前页面为非重复页面,添加页面元数据到所述哈希表中,其中,所述页面元数据包括页面指纹、存储地址和页面引用计数等信息。
9.根据权利要求3所述的一种内存过载下面向重复数据删除的内存优化系统,其特征在于,
所述重复数据页删除模块的具体工作步骤如下:
S1、分配指纹空间,利用MD5计算页面的指纹;
S2、在存储池中分配页面存储空间并返回页面句柄handle;
S3、将页面的指纹通过哈希函数散列到所述哈希表中,在冲突列表中查找是否存在相同指纹,若存在则返回对应页面在存储池中的存储句柄,否则构造当前页面的元数据信息,并插入到所述哈希表中,返回当前页面的句柄tmp_handle;
S4、如果步骤S3返回的页面句柄tmp_handle与插入前步骤S2返回的页面句柄handle相同,则当前页面为非重复页面,将页面拷贝到句柄handle所对应存储池位置;若不相同,在存储池中删除步骤S3中分配的空间,将tmp_handle的值赋给handle;
S5、在所述顺序表对应位置记录存储地址handle;
S6、在所述顺序表对应位置记录页面指纹key。
10.根据权利要求9所述的一种内存过载下面向重复数据删除的内存优化系统,其特征在于,
所述步骤S5、在所述顺序表对应位置记录存储地址handle,以便后期读请求到达时,直接读取访问,当读请求到达时具体操作如下:
R1、获得读操作锁;
R2、将请求扇区地址转化为页地址获得页号pageNo;
R3、将页号pageNo作为顺序表的下标访问顺序表,判断page_meta[pageNo].handle是否为空并且page_meta[pageNo].flag为1,
若条件满足,则将请求输入页面数据全部置零;反之,拷贝page_meta[pageNo].handle地址空间内数据至请求输入页;
R4、释放读操作锁。
CN201610933953.2A 2016-10-25 2016-10-25 一种内存过载下面向重复数据删除的内存优化系统 Active CN106569745B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610933953.2A CN106569745B (zh) 2016-10-25 2016-10-25 一种内存过载下面向重复数据删除的内存优化系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610933953.2A CN106569745B (zh) 2016-10-25 2016-10-25 一种内存过载下面向重复数据删除的内存优化系统

Publications (2)

Publication Number Publication Date
CN106569745A true CN106569745A (zh) 2017-04-19
CN106569745B CN106569745B (zh) 2019-07-19

Family

ID=58534482

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610933953.2A Active CN106569745B (zh) 2016-10-25 2016-10-25 一种内存过载下面向重复数据删除的内存优化系统

Country Status (1)

Country Link
CN (1) CN106569745B (zh)

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107329836A (zh) * 2017-07-13 2017-11-07 北京元心科技有限公司 多系统的内存管理方法、管理装置以及移动终端
CN107329692A (zh) * 2017-06-07 2017-11-07 杭州宏杉科技股份有限公司 一种数据重删的方法及存储设备
CN107391253A (zh) * 2017-06-08 2017-11-24 珠海金山网络游戏科技有限公司 一种降低系统内存分配释放冲突的方法
CN108255606A (zh) * 2018-01-02 2018-07-06 深圳市文鼎创数据科技有限公司 Autorun程序存储的实现方法、装置及存储设备
CN109002347A (zh) * 2018-07-26 2018-12-14 郑州云海信息技术有限公司 一种虚拟机内存分配方法、装置及系统
CN109002400A (zh) * 2018-06-01 2018-12-14 暨南大学 一种内容感知型计算机缓存管理系统及方法
CN109670345A (zh) * 2018-12-21 2019-04-23 成都海光集成电路设计有限公司 内存页面换入换出的保护方法、加速器模块和soc芯片
CN110321079A (zh) * 2019-06-27 2019-10-11 暨南大学 一种基于混合页面的磁盘缓存去重方法
CN110895492A (zh) * 2019-12-11 2020-03-20 Oppo(重庆)智能科技有限公司 设备控制方法、装置、存储介质及电子设备
CN111581119A (zh) * 2020-05-07 2020-08-25 Oppo(重庆)智能科技有限公司 页面回收方法及装置
CN111666227A (zh) * 2020-06-16 2020-09-15 北京紫光展锐通信技术有限公司 操作系统内存回收的页颠簸保护方法及装置
CN114138198A (zh) * 2021-11-29 2022-03-04 苏州浪潮智能科技有限公司 一种数据重删的方法、装置、设备及可读介质
CN115982486A (zh) * 2022-12-28 2023-04-18 北京海泰方圆科技股份有限公司 一种优化内存的方法及装置
CN117453423A (zh) * 2023-12-25 2024-01-26 北京趋动智能科技有限公司 Gpu显存管理方法和系统,存储介质和电子设备
CN114138198B (zh) * 2021-11-29 2024-05-28 苏州浪潮智能科技有限公司 一种数据重删的方法、装置、设备及可读介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101630290A (zh) * 2009-08-17 2010-01-20 成都市华为赛门铁克科技有限公司 重复数据处理方法和装置
CN103955530A (zh) * 2014-05-12 2014-07-30 暨南大学 一种在线重复数据删除系统的数据重建优化方法
CN104077380A (zh) * 2014-06-26 2014-10-01 深圳信息职业技术学院 一种重复数据删除方法、装置及系统
CN104281412A (zh) * 2013-07-04 2015-01-14 北京中科同向信息技术有限公司 一种在数据存储前去除重复数据的方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101630290A (zh) * 2009-08-17 2010-01-20 成都市华为赛门铁克科技有限公司 重复数据处理方法和装置
CN104281412A (zh) * 2013-07-04 2015-01-14 北京中科同向信息技术有限公司 一种在数据存储前去除重复数据的方法
CN103955530A (zh) * 2014-05-12 2014-07-30 暨南大学 一种在线重复数据删除系统的数据重建优化方法
CN104077380A (zh) * 2014-06-26 2014-10-01 深圳信息职业技术学院 一种重复数据删除方法、装置及系统

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
L CHEN等: ""CMD:Classification-based Memory Deduplicaiton Through Page Access Characteristics"", 《ACM SIGPLAN NOTICES》 *
LIANGYING等: ""MSDD:A Memory Swap Scheme With Data Deduplication"", 《JOURNAL OF CHINA COMPUTER SYSTEMS》 *
敖莉等: ""重复数据删除技术"", 《软件学报》 *
梁莹: ""基于闪存固态盘的内存交换技术研究"", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *
王兴: ""重复数据删除系统的性能优化研究"", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Cited By (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107329692A (zh) * 2017-06-07 2017-11-07 杭州宏杉科技股份有限公司 一种数据重删的方法及存储设备
CN107329692B (zh) * 2017-06-07 2020-02-28 杭州宏杉科技股份有限公司 一种数据重删的方法及存储设备
CN107391253A (zh) * 2017-06-08 2017-11-24 珠海金山网络游戏科技有限公司 一种降低系统内存分配释放冲突的方法
CN107329836A (zh) * 2017-07-13 2017-11-07 北京元心科技有限公司 多系统的内存管理方法、管理装置以及移动终端
CN108255606A (zh) * 2018-01-02 2018-07-06 深圳市文鼎创数据科技有限公司 Autorun程序存储的实现方法、装置及存储设备
CN108255606B (zh) * 2018-01-02 2021-06-15 深圳市文鼎创数据科技有限公司 Autorun程序存储的实现方法、装置及存储设备
CN109002400A (zh) * 2018-06-01 2018-12-14 暨南大学 一种内容感知型计算机缓存管理系统及方法
CN109002347A (zh) * 2018-07-26 2018-12-14 郑州云海信息技术有限公司 一种虚拟机内存分配方法、装置及系统
CN109002347B (zh) * 2018-07-26 2022-02-18 郑州云海信息技术有限公司 一种虚拟机内存分配方法、装置及系统
CN109670345A (zh) * 2018-12-21 2019-04-23 成都海光集成电路设计有限公司 内存页面换入换出的保护方法、加速器模块和soc芯片
CN110321079A (zh) * 2019-06-27 2019-10-11 暨南大学 一种基于混合页面的磁盘缓存去重方法
CN110895492A (zh) * 2019-12-11 2020-03-20 Oppo(重庆)智能科技有限公司 设备控制方法、装置、存储介质及电子设备
CN110895492B (zh) * 2019-12-11 2023-01-10 Oppo(重庆)智能科技有限公司 设备控制方法、装置、存储介质及电子设备
CN111581119A (zh) * 2020-05-07 2020-08-25 Oppo(重庆)智能科技有限公司 页面回收方法及装置
CN111581119B (zh) * 2020-05-07 2022-11-18 Oppo(重庆)智能科技有限公司 页面回收方法及装置
CN111666227B (zh) * 2020-06-16 2021-09-07 北京紫光展锐通信技术有限公司 操作系统内存回收的页颠簸保护方法及装置
CN111666227A (zh) * 2020-06-16 2020-09-15 北京紫光展锐通信技术有限公司 操作系统内存回收的页颠簸保护方法及装置
CN114138198A (zh) * 2021-11-29 2022-03-04 苏州浪潮智能科技有限公司 一种数据重删的方法、装置、设备及可读介质
CN114138198B (zh) * 2021-11-29 2024-05-28 苏州浪潮智能科技有限公司 一种数据重删的方法、装置、设备及可读介质
CN115982486A (zh) * 2022-12-28 2023-04-18 北京海泰方圆科技股份有限公司 一种优化内存的方法及装置
CN115982486B (zh) * 2022-12-28 2023-09-19 北京海泰方圆科技股份有限公司 一种优化内存的方法及装置
CN117453423A (zh) * 2023-12-25 2024-01-26 北京趋动智能科技有限公司 Gpu显存管理方法和系统,存储介质和电子设备
CN117453423B (zh) * 2023-12-25 2024-04-19 北京趋动智能科技有限公司 Gpu显存管理方法和系统,存储介质和电子设备

Also Published As

Publication number Publication date
CN106569745B (zh) 2019-07-19

Similar Documents

Publication Publication Date Title
CN106569745B (zh) 一种内存过载下面向重复数据删除的内存优化系统
US8161240B2 (en) Cache management
US9436597B1 (en) Using non-volatile memory resources to enable a virtual buffer pool for a database application
CN103593298B (zh) 内存回收方法和装置
CN105190565A (zh) 具有改进的可扩展性的存储器对象引用计数管理
CN110389942B (zh) 一种无垃圾回收的键值分离存储方法和系统
CN107038206A (zh) Lsm树的建立方法、lsm树的数据读取方法和服务器
US20090327377A1 (en) Copying entire subgraphs of objects without traversing individual objects
CN103324466B (zh) 一种数据相关性序列化io的并行处理方法
CN109947363A (zh) 一种分布式存储系统的数据缓存方法
CN107817945A (zh) 一种混合内存结构的数据读取方法和系统
CN108664213A (zh) 基于分布式缓存的原子写命令处理方法与固态存储设备
US20240086332A1 (en) Data processing method and system, device, and medium
Xanthakis et al. Parallax: Hybrid key-value placement in lsm-based key-value stores
US10515071B2 (en) Database management system and database management method using logical addresses and timestamps
CN102609364A (zh) 缓存交换方法
CN111078143B (zh) 基于段映射进行数据布局和调度的混合存储方法及系统
CN104657153B (zh) 一种基于签名技术的硬件事务内存系统
Sendir et al. CAPI-flash accelerated persistent read cache for apache cassandra
JP2001229063A (ja) データ管理システム
JPH0424750A (ja) データベース管理処理方式
CN108874315A (zh) 一种在线数据去重文件系统数据访问性能优化方法
JP3005466B2 (ja) 並列ソート装置
CN108563450A (zh) 一种java虚拟机自适应优化方法、装置以及可读存储介质
US20240086362A1 (en) Key-value store and file system

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for 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: 20201210

Address after: 510632 No. 601, Whampoa Avenue, Tianhe District, Guangdong, Guangzhou

Patentee after: Guangzhou Jinan University Science Park Management Co.,Ltd.

Address before: 510632 No. 601, Whampoa Avenue, Tianhe District, Guangdong, Guangzhou

Patentee before: Jinan University

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20210127

Address after: 223, 2nd floor, No.35, Huajing Road, Huajing new town, 105 Zhongshan Avenue, Tianhe District, Guangzhou, Guangdong 510000

Patentee after: Guangzhou silver water drop Technology Co.,Ltd.

Patentee after: Guangzhou Jinan University Science Park Management Co.,Ltd.

Address before: 510632 No. 601, Whampoa Avenue, Tianhe District, Guangdong, Guangzhou

Patentee before: Guangzhou Jinan University Science Park Management Co.,Ltd.

TR01 Transfer of patent right