CN115905146A - 数据处理方法、装置、计算设备及存储系统 - Google Patents
数据处理方法、装置、计算设备及存储系统 Download PDFInfo
- Publication number
- CN115905146A CN115905146A CN202111108304.6A CN202111108304A CN115905146A CN 115905146 A CN115905146 A CN 115905146A CN 202111108304 A CN202111108304 A CN 202111108304A CN 115905146 A CN115905146 A CN 115905146A
- Authority
- CN
- China
- Prior art keywords
- data
- compressed
- access
- compressed data
- data blocks
- 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.)
- Pending
Links
Images
Abstract
本申请公开了一种数据处理方法、装置、计算设备及存储系统,涉及数据压缩领域。该方法包括:计算设备获取到N个压缩后数据块,将N个压缩后数据块存入存储设备之前,依据N个压缩后数据块的访问特征将N个压缩后数据块划分为M个组,将M个组的数据进行合并得到合并后数据,合并后数据中同一组的数据连续,并存储合并后数据。如此,相对于计算设备根据I/O时间顺序将压缩后数据存入存储设备,本申请中计算设备依据表征一段时间内数据被改写的可能性的访问特征对压缩后数据进行分类,将具有相同或相似的访问特征的同一类的压缩后数据进行物理连续存储,减少回收块中的有效数据的占比,降低垃圾回收过程中的写放大。
Description
技术领域
本申请涉及数据压缩领域,尤其涉及一种数据处理方法、装置、计算设备及存储系统。
背景技术
随着云计算和大数据产业的繁荣,数据中心规模越大,则数据中心存储的数据也越多,更大的数据量和更长的存储周期意味着更高的存储成本。目前,计算设备可以利用压缩算法(如:LZ4、LZO或Snappy等)对数据进行压缩后再存储,从而减少待存储数据的数据量,节省相应的硬盘、节点、机架、场地和运维开销等。通常,计算设备根据输入输出(Input/Output,I/O)时间顺序将压缩后数据存入存储设备。存储设备在垃圾回收过程中以块粒度擦除数据时将有效数据进行搬移,如果擦除块中的有效数据占比高,导致提升了垃圾回收过程中的写放大。
发明内容
本申请提供了数据处理方法、装置、计算设备及存储系统,由此来降低垃圾回收过程中的写放大。
第一方面,提供了一种数据处理方法,该方法可以由计算设备执行,具体包括如下步骤:计算设备获取到N个压缩后数据块,将N个压缩后数据块存入存储设备之前,依据N个压缩后数据块的访问特征将N个压缩后数据块划分为M个组,将M个组的数据进行合并得到合并后数据,其中,在合并后数据中,同一组的数据连续,存储合并后数据至存储设备。
如此,相对于计算设备根据I/O时间顺序将压缩后数据存入存储设备,本申请中计算设备依据表征一段时间内数据被改写的可能性的访问特征对压缩后数据进行分类,即将访问特征相同或相似的压缩后数据分为一类,将具有相同或相似的访问特征的同一类压缩后数据进行物理连续存储,减少回收块中的有效数据的占比,减少在垃圾回收过程中以块粒度擦除数据时将有效数据进行搬移的次数,因此,有效地降低了垃圾回收过程中的写放大。
在一种可能的实现方式中,获取N个压缩后数据块的访问特征,包括:采集每个压缩后数据块的访问次数、访问时间间隔期望和访问时间间隔方差;根据每个压缩后数据块的访问次数、访问时间间隔期望和访问时间间隔方差得到每个压缩后数据块的访问特征。
在另一种可能的实现方式中,根据每个压缩后数据块的访问特征将N个压缩后数据块划分为M个组,包括:将N个压缩后数据块的访问特征输入神经网络,以得到M个组。
在另一种可能的实现方式中,存储合并后数据至存储设备包括:将合并后数据存储至存储设备中一段物理地址连续的存储空间中。
在另一种可能的实现方式中,获取N个压缩后数据块的访问特征之前,方法还包括:根据计算设备的操作系统定义的数据块大小将待压缩数据划分为N个待压缩数据块;对N个待压缩数据块进行压缩得到N个压缩后数据块。
第二方面,提供了一种数据处理装置,所述装置包括用于执行第一方面或第一方面任一种可能设计中的数据处理方法的各个模块。
第三方面,提供一种计算设备,该计算设备包括至少一个处理器和存储器,存储器用于存储一组计算机指令;当处理器作为第一方面或第一方面任一种可能实现方式中的执行设备执行所述一组计算机指令时,执行第一方面或第一方面任一种可能实现方式中的数据处理方法的操作步骤。
第四方面,提供一种存储系统,该存储系统包括至少一个计算节点和至少一个存储节点,所述计算节点用于执行第一方面或第一方面任一种可能实现方式中的数据处理方法的操作步骤,得到合并后数据,所述存储节点用于存储所述合并后数据;或者,所述计算节点将待压缩数据传输至所述存储节点,所述存储节点执行第一方面或第一方面任一种可能实现方式中的数据处理方法的操作步骤,得到合并后数据,存储所述合并后数据。
第五方面,提供一种计算机可读存储介质,包括:计算机软件指令;当计算机软件指令在计算设备中运行时,使得计算设备执行如第一方面或第一方面任意一种可能的实现方式中所述方法的操作步骤。
第六方面,提供一种计算机程序产品,当计算机程序产品在计算机上运行时,使得计算设备执行如第一方面或第一方面任意一种可能的实现方式中所述方法的操作步骤。
本申请在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。
附图说明
图1为本申请一个实施例的分布式存储系统的架构示意图;
图2为本申请一个实施例的盘控分离的结构示意图;
图3为本申请一个实施例的集中式存储系统的架构示意图;
图4为本申请一个实施例的数据处理方法的流程示意图;
图5为本申请一个实施例的特征采集的示意图;
图6为本申请一个实施例的擦除回收块的数据的过程示意图;
图7为本申请一个实施例的数据处理装置的结构示意图;
图8为本申请一个实施例的计算设备的结构示意图。
具体实施方式
数据压缩(data compression)是指依据压缩算法对待压缩数据重新组织,以减少待压缩数据中的冗余数据,达到缩减待压缩数据的数据量,减少存储待压缩数据所需的存储空间,提高待压缩数据的压缩率、传输速度和压缩速度的方法。本申请对进行数据压缩的计算设备的具体形态不予限定。计算设备例如是手机终端、平板电脑、笔记本电脑、虚拟现实(virtual reality,VR)设备、增强现实(augmented reality,AR)设备、混合现实(MixedReality,MR)设备、扩展现实(Extended Reality,ER)设备或车载终端等。计算设备还可以是边缘设备(例如,携带具有处理能力芯片的盒子)、服务器、分布式存储系统中计算能力的设备或者集中式存储系统中计算能力的设备。
图1为本申请一个实施例的分布式存储系统的架构示意图。如图1所示,本实施例提供的分布式存储系统包括计算节点集群和存储节点集群。
计算节点集群包括一个或多个计算节点110,图1中示出了三个计算节点110,但不限于三个计算节点110。各个计算节点110之间可以通过网络相互通信。计算节点110是一种计算设备,为网络数据的节点和枢纽,负责为网络中的多个客户端或用户同时提供信息服务,如服务器、计算机等。
在硬件上,如图1所示,计算节点110至少包括处理器112、内存113和网卡114。其中,处理器112是一个中央处理器(central processing unit,CPU),用于处理来自计算节点110外部的数据访问请求,或者计算节点110内部生成的请求。
示例性地,处理器112接收用户发送的写数据请求时,会将这些写数据请求中的数据暂时保存在内存113中。当内存113中的数据总量达到一定阈值时,处理器112将内存113中存储的数据发送给存储节点100进行持久化存储。除此之外,处理器112还用于对数据进行计算或处理,例如进行元数据管理、重复数据删除、数据压缩、虚拟化存储空间以及地址转换等。
图1中仅示出了一个CPU 112,在实际应用中,一个计算节点110中的CPU 112的数量可以有多个,其中,一个CPU 112又可以具有一个或多个CPU核。本实施例不对CPU的数量,以及CPU核的数量进行限定。
内存113是指与处理器直接交换数据的内部存储器,它可以随时读写数据,而且速度很快,作为操作系统或其他正在运行中的程序的临时数据存储器。内存包括至少两种存储器,例如内存既可以是随机存取存储器,也可以是只读存储器(read only memory,ROM)。举例来说,随机存取存储器是动态随机存取存储器(dynamic random access memory,DRAM),或者存储级存储器(storage class memory,SCM)。
DRAM是一种半导体存储器,与大部分随机存取存储器(random access memory,RAM)一样,属于一种易失性存储器(volatile memory)设备。SCM是一种同时结合传统储存装置与存储器特性的复合型储存技术,存储级存储器能够提供比硬盘更快速的读写速度,但存取速度上比DRAM慢,在成本上也比DRAM更为便宜。然而,DRAM和SCM在本实施例中只是示例性的说明,内存还可以包括其他随机存取存储器,例如静态随机存取存储器(staticrandom access memory,SRAM)等。而对于只读存储器,举例来说,可以是可编程只读存储器(programmable read only memory,PROM)、可抹除可编程只读存储器(erasableprogrammable read only memory,EPROM)等。
另外,内存113还可以是双列直插式存储器模块或双线存储器模块(dual in-linememory module,DIMM),即由动态随机存取存储器(DRAM)组成的模块,还可以是固态硬盘(solid state disk,SSD)。
实际应用中,计算节点110中可配置多个内存113,以及不同类型的内存113。本实施例不对内存113的数量和类型进行限定。此外,可对内存113进行配置使其具有保电功能。保电功能是指系统发生掉电又重新上电时,内存113中存储的数据也不会丢失。具有保电功能的内存被称为非易失性存储器。
网卡114用于与存储节点100通信。例如,当内存113中的数据总量达到一定阈值时,计算节点110可通过网卡114向存储节点100发送请求以对所述数据进行持久化存储。另外,计算节点110还可以包括总线,用于计算节点110内部各组件之间的通信。在功能上,由于图1中的计算节点110的主要功能是计算业务,在存储数据时可以利用远程存储器来实现持久化存储,因此它具有比常规服务器更少的本地存储器,从而实现了成本和空间的节省。但这并不代表计算节点110不能具有本地存储器,在实际实现中,计算节点110也可以内置少量的硬盘,或者外接少量硬盘。任意一个计算节点110可通过网络访问存储节点集群中的任意一个存储节点100。
存储节点集群可以包括多个存储节点100,所述存储节点用于对计算节点传输的数据进行持久化存储,图1中示出了三个存储节点100,但不限于三个存储节点100。例如,可以多于三个存储节点,也可以少于三个存储节点。
一个存储节点100包括一个或多个控制单元101、网卡104与多个硬盘105。网卡104用于与计算节点110通信。硬盘105用于存储数据,可以是磁盘或者其他类型的存储介质,例如固态硬盘或者叠瓦式磁记录硬盘等。控制单元101用于根据计算节点110发送的读/写数据请求,往硬盘105中写入数据或者从硬盘105中读取数据。在读写数据的过程中,控制单元101需要将读/写数据请求中携带的地址转换为硬盘能够识别的地址。由此可见,控制单元101也具有一些简单的计算功能。
在实际应用中,控制单元101可具有多种形态。一种情况下,控制单元101包括CPU和内存。CPU用于执行地址转换以及读写数据等操作。内存用于临时存储将要写入硬盘105的数据,或者从硬盘105读取出来将要发送给计算节点110的数据。另一种情况下,控制单元101的数量可以是一个,也可以是两个或两个以上。当存储节点100包含至少两个控制单元101时,硬盘105与控制单元101之间可具有归属关系。当硬盘105与控制单元101之间具有归属关系时,每个控制器只能访问归属于它的硬盘,因此这往往涉及到在控制单元101之间转发读/写数据请求,导致数据访问的路径较长。另外,如果存储空间不足,在存储节点100中增加新的硬盘105时需要重新绑定硬盘105与控制单元101之间的归属关系,操作复杂,导致存储空间的扩展性较差。
因此在另一种实施方式中,控制单元101的功能可以卸载到网卡104上。换言之,在图1所示的实施方式中,存储节点100内部不具有控制单元101,而是由网卡104来完成数据读写、地址转换以及其他计算功能。此时,网卡104是一个智能网卡。它可以包含CPU和内存。CPU用于执行地址转换以及读写数据等操作。内存用于临时存储将要写入硬盘105的数据,或者从硬盘105读取出来将要发送给计算节点110的数据。存储节点100中的网卡104和硬盘105之间没有归属关系,网卡104可访问该存储节点100中任意一个硬盘105,因此在存储空间不足时扩展硬盘会较为便捷。
图1所示的存储节点的结构属于盘控一体的架构,即控制单元与硬盘105包括在同一个物理设备中,但在一些实施例中,存储节点的结构也可以为盘控分离的结构,如图2所示,控制和存储作为两个独立设备,即控制设备200和硬盘框300互相连接。控制设备200包括多个控制单元,例如控制单元0和控制单元1,多个控制单元通过网卡104连接至计算节点110。每个控制单元的结构相同,以控制单元0为例,包括前端接口201、CPU202、内存203、及后端接口204,其中前端接口201连接至网卡104,以将计算节点通过网卡发送的数据传输至控制单元0,后端接口204连接至硬盘框,已将经控制单元0处理过的数据传输至硬盘框300进行存储、CPU202与内存203用于处理计算节点110传输的数据或者本地运行的程序的数据,具体请参考计算节点110中的CPU112及内存113的描述,在此不再赘述。硬盘框300作为独立的设备除了硬盘105之外,还包括控制单元301,用于对计算节点传输的数据进行处理后存储至硬盘105,及对硬盘105进行管理。
图1所示的为分布式存储系统的架构图,本申请实施例的方案还可以应用于集中式存储系统。在集中式存储系统中,计算节点的数据存储在一个存储节点中,所述存储节点例如可以为存储阵列。集中式存储系统的架构如图3所示。其中存储节点100与计算节点110结构与图1中的相同,在此不再赘述。图3所示的存储节点100为盘控一体的结构,在集成式存储系统中,存储节点的结构也可以是图2所示的盘控分离的结构。
本申请实施例提供的数据处理方法,计算设备获取到N个压缩后数据块,将N个压缩后数据块存入存储设备之前,依据N个压缩后数据块的访问特征将N个压缩后数据块划分为M个组,合并属于同一组的压缩后数据块,得到合并后数据,并存储合并后数据。如此,相对于计算设备根据I/O时间顺序将压缩后数据存入存储设备,本申请中计算设备依据表征一段时间内数据被改写的可能性的访问特征对压缩后数据进行分类,即将访问特征相同或相似的压缩后数据分为一类,将具有相同或相似的访问特征的同一类压缩后数据进行物理连续存储,减少回收块中的有效数据的占比,减少在垃圾回收过程中以块粒度擦除数据时将有效数据进行搬移的次数,因此,有效地降低了垃圾回收过程中的写放大。
接下来,结合图4至图6对本申请实施例提供的数据处理方法进行详细阐述。图4为本申请实施例提供的一种数据处理方法的流程示意图。如图4所示,该方法包括以下步骤。
步骤410、计算设备获取待压缩数据。
计算设备可以接收外部设备(如:键盘、鼠标、相机、语音接收器等)发送的待压缩数据;或者,计算设备运行应用生成待压缩数据。若计算设备为存储设备,计算设备也可以通过网络接收其他计算设备(如:服务器)发送的待压缩数据。待压缩数据可以是文字、数字、字母、图像和语音等。
步骤420、计算设备对待压缩数据进行压缩得到N个压缩后数据块。
计算设备根据计算设备的操作系统定义的数据块大小将待压缩数据划分为N个待压缩数据块,基于数据压缩算法对N个待压缩数据块中每个待压缩数据块进行压缩得到N个压缩后数据块。N为大于或等于2的整数。
数据块大小是指计算设备进行数据压缩的单位数据量。例如数据块大小的范围为8千字节(kilobyte,KB)至256KB之间。数据块大小可以由系统管理员预先设置。可理解的,数据块大小越小,数据块中的相同字符可能越少;数据块大小越大,数据块中的相同字符可能越多。数据块大小较大时,计算设备可以利用压缩率较高的压缩算法对待压缩数据进行压缩,搜索到尽可能多的相同字符串,提高数据的压缩率。压缩率(compression rate)是一种描述压缩文件的效果名。压缩率可以是压缩后数据的数据量和待压缩数据的数据量之比。压缩率一般是越小,压缩后数据的数据量越小。例如,压缩前数据的大小为100兆字节(Megabytes,MB),压缩前数据的大小为90MB,压缩率为90/100*100%=90%。
数据压缩算法包括但不限于:香农编码,霍夫曼(Huffman)编码,字典压缩算法(如:LZ77、LZSS、LZ78和LZW)。
可理解的,压缩后数据块的大小小于待压缩数据块。N个压缩后数据块的大小可以相同,也可以不同。
步骤430、计算设备获取N个压缩后数据块的访问特征。
计算设备周期性采集每个压缩后数据块的访问次数、访问时间间隔期望和访问时间间隔方差。
访问次数表征采样周期内压缩后数据块被访问的次数。访问次数越多,计算设备对该压缩后数据的读写操作越频繁,访问时间间隔越短,则对该压缩数据块所属的块中数据进行垃圾回收过程中,该压缩数据块被搬移的可能性越大。反之,访问次数越少,计算设备偶尔对该压缩后数据的读写操作,访问时间间隔越长,则对该压缩数据块所属的块中数据进行垃圾回收过程中,该压缩数据块被搬移的可能性越小。
访问时间间隔期望表征采样周期内压缩后数据块被访问的时间间隔的平均值。访问时间间隔期望越大,计算设备对该压缩后数据的读写操作越不频繁,访问时间间隔越长,则对该压缩数据块所属的块中数据进行垃圾回收过程中,该压缩数据块被搬移的可能性越小。反之,访问时间间隔期望越小,计算设备对该压缩后数据的读写操作越频繁,访问时间间隔越短,则对该压缩数据块所属的块中数据进行垃圾回收过程中,该压缩数据块被搬移的可能性越大。
访问时间间隔方差表征采样周期内压缩后数据块被访问的时间间隔的稳定性。访问时间间隔方差越大,表示采样周期内压缩后数据块被访问的时间间隔的稳定性越差,则对该压缩数据块所属的块中数据进行垃圾回收过程中,该压缩数据块被搬移的可能性无法衡量。可理解的,该压缩数据块被搬移的有时可能较大,有时可能较小,无法衡量该压缩后数据块的访问特征,该压缩数据块所属的块中数据进行垃圾回收过程中,该压缩数据块被搬移的可能性较大。反之,访问时间间隔方差越小,表示采样周期内压缩后数据块被访问的时间间隔的稳定性越好,则对该压缩数据块所属的块中数据进行垃圾回收过程中,该压缩数据块被搬移的可能性可以衡量。
计算设备可以统计采样周期内该压缩后数据的逻辑地址被访问的次数确定压缩后数据块的访问次数。计算设备可以根据采样周期内所有访问之间的间隔的平均值确定访问时间间隔期望。访问时间间隔方差是每个访问时间间隔与访问时间间隔的平均数之差的平方值的平均数。
示例地,如图5所示,假设采样周期为10秒,压缩后数据块1的访问次数为6,压缩后数据块1的间隔期望为2秒(second,S),压缩后数据块1的间隔方差为0。压缩后数据块2的访问次数为6,压缩后数据块2的间隔期望为1S,压缩后数据块2的间隔方差为0。压缩后数据块3的访问次数为6,压缩后数据块3的间隔期望为2S,压缩后数据块3的间隔方差为0。压缩后数据块4的访问次数为4,压缩后数据块4的间隔期望为2S,压缩后数据块4的间隔方差为2。压缩后数据块5的访问次数为6,压缩后数据块5的间隔期望为2S,压缩后数据块5的间隔方差为0。压缩后数据块6的访问次数为3,压缩后数据块6的间隔期望为5S,压缩后数据块6的间隔方差为0。
计算设备根据每个压缩后数据块的访问次数、访问时间间隔期望和访问时间间隔方差得到每个压缩后数据块的访问特征。访问特征用于表征一段时间内数据被改写的可能性。一段时间可以是采样周期的倍数。如果待压缩数据是视频类数据,由于视频类数据被读取的可能性较大,一段时间可以设置的较长些。如果待压缩数据是文字类数据,由于文字类数据被改写的可能性较大,一段时间可以设置的较短些。从而,提高访问特征的准确性。
由于计算设备所采集的各个访问参数的量纲单位往往不一致,为了便于综合考量压缩后数据块的访问特征,计算设备可以将各个访问参数进行归一化处理,得到量纲统一的参数。在一些实施例中,计算设备可以将访问参数进行结构化处理得到访问特征。访问特征可以是一个特征向量。特征向量中的一个元素代表一个参数。
例如,FA表示访问特征,FA=[a1,a2,a3],其中,元素a1表示访问次数向量,元素a2表示访问时间间隔期望向量,元素a3表示访问时间间隔方差向量。
步骤440、计算设备根据每个压缩后数据块的访问特征将N个压缩后数据块划分为M个组。
计算设备对N个压缩后数据块的访问特征进行分类,得到分类结果。分类结果包含M个类别,一个类别包含的压缩后数据块的访问特征相同或相似。计算设备根据M个类别将N个压缩后数据块划分为M个组,同一类的访问特征对应的压缩后数据块属于同一个组。不同组包含的压缩后数据块的数量可以相同,也可以不同。每个组包含至少一个压缩后数据块。M为大于或等于1的整数,M小于N。
在一些实施例中,计算设备可以将N个压缩后数据块的访问特征输入神经网络,以得到M个组。例如神经网络具有聚类、长短期记忆神经网络或回归功能。例如,计算设备将访问特征对应的类别进行标记,将访问特征和标记的类别输入神经网络,对神经网络进行训练,直到神经网络中的损失函数收敛,且损失函数值小于特定阈值则神经网络训练完成,从而使得神经网络具备依据访问特征分类的功能,达到预测精度。计算设备将N个压缩后数据块的访问特征输入训练完成的神经网络,可以得到N个压缩后数据块的访问特征的分类结果。如图5所示,压缩后数据块1至压缩后数据块6被划分为了3类。压缩后数据块1、压缩后数据块2、压缩后数据块3和压缩后数据块5划分为第一类别,压缩后数据块4划分为第二类别,压缩后数据块6划分为第三类别。可选的,计算设备也可为用户提供分类效果图的显示功能,以便于用户直观地看到压缩后数据块的存储方式。需要说明的是,训练神经网络的计算设备和对访问特征分类的计算设备可以是同一设备也可以是不同的设备,不予限定。
示例地,如图4所示,N=13,M=4,即计算设备对待压缩数据进行压缩得到13个压缩后数据块,根据13个压缩后数据块的访问特征将13个访问特征分为4个类别,将同一类的访问特征对应的压缩后数据块属于同一个组得到4组压缩后数据块。
可选地,M也可以是预先配置的。也就是说,任意数量的压缩后数据块均可以划分为M个组。
步骤450、计算设备将M个组的数据进行合并得到合并后数据。
可理解的,计算设备将N个压缩后数据块划分为M个组,对每组包含的至少一个压缩后数据块进行合并,得到M个合并后数据块。针对不同的组的合并后数据块的大小可以相同,也可以不同。示例地,如图4所示,第一组包含三个压缩后数据块,第一压缩后数据块的大小为2KB,第二压缩后数据块的大小为3KB,第三压缩后数据块的大小为3KB,第一合并后数据的大小为8KB。第二组包含四个压缩后数据块,四个压缩后数据块的大小均为1KB,第二合并后数据的大小为4KB。
计算设备可以对M个合并后数据块进行压紧处理,即在每个合并后数据块前添加压紧头(Compaction Header),将M个合并后数据块组合为一个大数据块(chunk)得到合并后数据。在合并后数据中同一组的数据连续。压紧头用于描述每个合并后数据块在4KB的存储单元中的偏移量、压缩后数据块的长度以及有无尾部压紧头等信息。
由于存储设备是以4KB页大小为一个单元写入数据,计算设备根据存储设备的页大小(4KB)将合并后数据划分为小数据块,存入存储设备,即计算设备将合并后数据存储至存储设备中一段物理地址连续的存储空间中。合并后数据在存储设备中连续存储,即合并后数据在存储设备上的物理地址是连续的。
可选地,由于M个合并后数据块具有不同的访问特征,计算设备可以将M个合并后数据块存入不同的数据块,或者也可以将M个合并后数据块顺序存入多个数据块。
步骤460、计算设备向存储设备发送合并后数据。
存储设备(如:磁盘)以块(block)为单位进行垃圾回收。一个块包含64个页,即块大小为256KB。如果一个块包含32个页有效数据和32个页被标记“删”标签的无效数据,在存储设备对该块进行垃圾回收或对该块写入数据时,先将32个页有效数据搬移到另一个有空闲位置的块,擦除整个块,进而写入数据。相当于存储设备需要进行两次写操作。如果将不同访问特征的数据存入同一个块,块中数据生成垃圾的速度不同,块中生成碎片化的垃圾。如此,本申请中计算设备依据表征一段时间内数据被改写的可能性的访问特征对压缩后数据进行分类,即将访问特征相同或相似的压缩后数据分为一类,将具有相同或相似的访问特征的同一类压缩后数据进行物理连续存储,减少回收块中的有效数据的占比,减少在垃圾回收过程中以块粒度擦除数据时将有效数据进行搬移的次数,因此,有效地降低了垃圾回收过程中的写放大。
示例地,如图6中的(a)所示,块包含了6种不同访问特征的数据,6种不同访问特征的数据在存储设备中非连续存储,6种不同访问特征的数据进行垃圾回收的时刻不同,计算设备对有效数据进行多次搬移。如图6中的(b)所示,块包含了相同访问特征的数据,相同访问特征的数据连续存储。由于块中数据生成垃圾的速度相同,可以对块进行整体擦除,无需进行数据搬移,有效地降低了垃圾回收过程中的写放大。
可以理解的是,为了实现上述实施例中的功能,计算设备包括了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本申请中所公开的实施例描述的各示例的单元及方法步骤,本申请能够以硬件或硬件和计算机软件相结合的形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用场景和设计约束条件。
上文中结合图1至图6,详细描述了根据本实施例所提供的数据处理方法,下面将结合图7,描述根据本实施例所提供的数据处理装置。
图7为本实施例提供的可能的数据处理装置的结构示意图。这些数据处理装置可以用于实现上述方法实施例中计算设备的功能,因此也能实现上述方法实施例所具备的有益效果。在本实施例中,该数据处理装置可以是如图1至图3所示的计算节点110或存储节点100,还可以是应用于服务器的模块(如芯片)。
如图7所示,数据处理装置700包括通信模块710、特征采集模块720、分组模块730和合并模块740。数据处理装置700用于实现上述图4中所示的方法实施例中计算设备的功能。
通信模块710用于获取待压缩数据,以及将所述合并后数据存储至存储设备中一段物理地址连续的存储空间中至硬盘105。例如,通信模块710用于执行图4中步骤410和步骤460。
特征采集模块720用于获取对待压缩数据进行压缩后的N个压缩后数据块的访问特征。例如,特征采集模块720用于执行图4中步骤430。
分组模块730用于根据每个压缩后数据块的访问特征将N个压缩后数据块划分为M个组。例如,分组模块730用于执行图4中步骤440。
合并模块740,用于将所述M个组的数据进行合并得到合并后数据,其中,在所述合并后数据中,同一组的数据连续。例如,合并模块740用于执行图4中步骤450。
特征采集模块720具体用于采集每个所述压缩后数据块的访问次数、访问时间间隔期望和访问时间间隔方差;根据每个所述压缩后数据块的访问次数、访问时间间隔期望和访问时间间隔方差得到每个所述压缩后数据块的访问特征。
分组模块730具体用于将所述N个压缩后数据块的访问特征输入神经网络,以得到所述M个组。
数据处理装置700还包括压缩模块750。压缩模块750用于根据计算设备的操作系统定义的数据块大小将待压缩数据划分为N个待压缩数据块;以及,对所述N个待压缩数据块进行压缩得到所述N个压缩后数据块。例如,压缩模块750用于执行图4中步骤420。
应理解的是,本申请实施例的数据处理装置700可以通过ASIC实现,或可编程逻辑器件(programmable logic device,PLD)实现,上述PLD可以是复杂程序逻辑器件(complexprogrammable logical device,CPLD),现场可编程门阵列(field-programmable gatearray,FPGA),通用阵列逻辑(generic array logic,GAL)或其任意组合。也可以通过软件实现图4所示的数据处理方法时,数据处理装置700及其各个模块也可以为软件模块。
根据本申请实施例的数据处理装置700可对应于执行本申请实施例中描述的方法,并且数据处理装置700中的各个单元的上述和其它操作和/或功能分别为了实现图4中的各个方法的相应流程,为了简洁,在此不再赘述。
图8为本实施例提供的一种计算设备800的结构示意图。如图所示,计算设备800包括处理器810、总线820、存储器830、通信接口840和内存单元850。
应理解,在本实施例中,处理器810可以是CPU,该处理器810还可以是其他通用处理器、数字信号处理器(digital signal processing,DSP)、应用专用集成电路(application specific integrated circuit,ASIC)、FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者是任何常规的处理器等。
处理器还可以是图形处理器(graphics processing unit,GPU)、神经网络处理器(neural network processing unit,NPU)、微处理器、ASIC、或一个或多个用于控制本申请方案程序执行的集成电路。
通信接口840用于实现计算设备800与外部设备或器件的通信。在本实施例中,通信接口840用于接收待压缩数据和发送合并后数据。
总线820可以包括一通路,用于在上述组件(如处理器810、内存单元850和存储器830)之间传送信息。总线820除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线820。总线820可以是快捷外围部件互连标准(Peripheral Component Interconnect Express,PCIe)总线,或扩展工业标准结构(extended industry standard architecture,EISA)总线、统一总线(unified bus,Ubus或UB)、计算机快速链接(compute express link,CXL)、缓存一致互联协议(cache coherent interconnect for accelerators,CCIX)等。
作为一个示例,计算设备800可以包括多个处理器。处理器可以是一个多核(multi-CPU)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的计算单元。处理器810可以获取N个压缩后数据块的访问特征,以及根据每个所述压缩后数据块的访问特征将所述N个压缩后数据块划分为M个组。
值得说明的是,图8中仅以计算设备800包括1个处理器810和1个存储器830为例,此处,处理器810和存储器830分别用于指示一类器件或设备,具体实施例中,可以根据业务需求确定每种类型的器件或设备的数量。
内存单元850可以对应上述方法实施例中用于存储访问特征等信息的存储介质。内存单元850可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data date SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DR RAM)。
存储器830可以对应上述方法实施例中用于存储合并后数据等信息的存储介质,例如,磁盘,如机械硬盘或固态硬盘。
上述计算设备800可以是一个通用设备或者是一个专用设备。例如,计算设备800可以是手机终端,平板电脑,笔记本电脑,VR设备、AR设备、MR设备或ER设备,车载终端等,还可以是边缘设备(例如,携带具有处理能力芯片的盒子)等。可选地,计算设备800也可以是服务器或其他具有计算能力的设备。
应理解,根据本实施例的计算设备800可对应于本实施例中的数据处理装置700,并可以对应于执行根据图4中任一方法中的相应主体,并且数据处理装置700中的各个模块的上述和其它操作和/或功能分别为了实现图4中的各个方法的相应流程,为了简洁,在此不再赘述。
本实施例中的方法步骤可以通过硬件的方式来实现,也可以由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(random access memory,RAM)、闪存、只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)、寄存器、硬盘、移动硬盘、CD-ROM或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。另外,该ASIC可以位于网络设备或终端设备中。当然,处理器和存储介质也可以作为分立组件存在于网络设备或终端设备中。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机程序或指令。在计算机上加载和执行所述计算机程序或指令时,全部或部分地执行本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、网络设备、用户设备或者其它可编程装置。所述计算机程序或指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机程序或指令可以从一个网站站点、计算机、服务器或数据中心通过有线或无线方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是集成一个或多个可用介质的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,例如,软盘、硬盘、磁带;也可以是光介质,例如,数字视频光盘(digital video disc,DVD);还可以是半导体介质,例如,固态硬盘(solid state drive,SSD)。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (12)
1.一种数据处理方法,应用于计算设备,其特征在于,所述方法包括:
获取N个压缩后数据块的访问特征,所述访问特征用于表征一段时间内数据被改写的可能性,N为大于或等于2的整数;
根据每个所述压缩后数据块的访问特征将所述N个压缩后数据块划分为M个组,M为大于或等于1的整数,M小于N;
将所述M个组的数据进行合并得到合并后数据,其中,在所述合并后数据中,同一组的数据连续;
存储所述合并后数据至存储设备。
2.根据权利要求1所述的方法,其特征在于,所述获取N个压缩后数据块的访问特征,包括:
采集每个所述压缩后数据块的访问次数、访问时间间隔期望和访问时间间隔方差;
根据每个所述压缩后数据块的访问次数、访问时间间隔期望和访问时间间隔方差得到每个所述压缩后数据块的访问特征。
3.根据权利要求1或2所述的方法,其特征在于,所述根据每个所述压缩后数据块的访问特征将所述N个压缩后数据块划分为M个组,包括:
将所述N个压缩后数据块的访问特征输入神经网络,以得到所述M个组。
4.根据权利要求1-3中任一项所述的方法,其特征在于,所述存储所述合并后数据至存储设备包括:
将所述合并后数据存储至存储设备中一段物理地址连续的存储空间中。
5.根据权利要求1-4中任一项所述的方法,其特征在于,所述获取N个压缩后数据块的访问特征之前,所述方法还包括:
根据计算设备的操作系统定义的数据块大小将待压缩数据划分为N个待压缩数据块;
对所述N个待压缩数据块进行压缩得到所述N个压缩后数据块。
6.一种数据处理装置,其特征在于,所述装置包括:
特征采集模块,用于获取N个压缩后数据块的访问特征,所述访问特征用于表征一段时间内数据被改写的可能性,N为大于或等于2的整数;
分组模块,用于根据每个所述压缩后数据块的访问特征将所述N个压缩后数据块划分为M个组,M为大于或等于1的整数,M小于N;
合并模块,用于将所述M个组的数据进行合并得到合并后数据,其中,在所述合并后数据中,同一组的数据连续;
通信模块,用于存储所述合并后数据至存储设备。
7.根据权利要求6所述的装置,其特征在于,所述特征采集模块获取N个压缩后数据块的访问特征时,具体用于:
采集每个所述压缩后数据块的访问次数、访问时间间隔期望和访问时间间隔方差;
根据每个所述压缩后数据块的访问次数、访问时间间隔期望和访问时间间隔方差得到每个所述压缩后数据块的访问特征。
8.根据权利要求6或7所述的装置,其特征在于,所述分组模块根据每个所述压缩后数据块的访问特征将所述N个压缩后数据块划分为M个组时,具体用于:
将所述N个压缩后数据块的访问特征输入神经网络,以得到所述M个组。
9.根据权利要求6-8中任一项所述的装置,其特征在于,所述通信模块存储所述合并后数据至存储设备时,具体用于将所述合并后数据存储至存储设备中一段物理地址连续的存储空间中。
10.根据权利要求6-9中任一项所述的装置,其特征在于,所述装置还包括压缩模块;
所述压缩模块,用于根据计算设备的操作系统定义的数据块大小将待压缩数据划分为N个待压缩数据块;以及,对所述N个待压缩数据块进行压缩得到所述N个压缩后数据块。
11.一种计算设备,其特征在于,所述计算设备包括存储器和至少一个处理器,所述存储器用于存储一组计算机指令;当所述处理器执行所述一组计算机指令时,执行上述权利要求1-5中任一项所述的方法的操作步骤。
12.一种存储系统,其特征在于,所述存储系统包括至少一个计算节点和至少一个存储节点,所述计算节点用于执行上述权利要求1-5中任一项所述的方法的操作步骤,得到合并后数据,所述存储节点用于存储所述合并后数据;或者,所述计算节点将待压缩数据传输至所述存储节点,所述存储节点执行上述权利要求1-5中任一项所述的方法的操作步骤,得到合并后数据,存储所述合并后数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111108304.6A CN115905146A (zh) | 2021-09-22 | 2021-09-22 | 数据处理方法、装置、计算设备及存储系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111108304.6A CN115905146A (zh) | 2021-09-22 | 2021-09-22 | 数据处理方法、装置、计算设备及存储系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115905146A true CN115905146A (zh) | 2023-04-04 |
Family
ID=86480284
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111108304.6A Pending CN115905146A (zh) | 2021-09-22 | 2021-09-22 | 数据处理方法、装置、计算设备及存储系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115905146A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116665727A (zh) * | 2023-07-26 | 2023-08-29 | 成都泛联智存科技有限公司 | 写i/o汇聚方法、装置、存储设备和存储介质 |
-
2021
- 2021-09-22 CN CN202111108304.6A patent/CN115905146A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116665727A (zh) * | 2023-07-26 | 2023-08-29 | 成都泛联智存科技有限公司 | 写i/o汇聚方法、装置、存储设备和存储介质 |
CN116665727B (zh) * | 2023-07-26 | 2023-09-22 | 成都泛联智存科技有限公司 | 写i/o汇聚方法、装置、存储设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11960726B2 (en) | Method and apparatus for SSD storage access | |
US8819335B1 (en) | System and method for executing map-reduce tasks in a storage device | |
US10915247B2 (en) | Efficient data management through compressed data interfaces | |
CN106537327B (zh) | 快闪存储器压缩 | |
CN108427539B (zh) | 缓存设备数据的离线去重压缩方法、装置及可读存储介质 | |
TWI668626B (zh) | 自主空間壓縮之儲存裝置以及方法 | |
CN108027713B (zh) | 用于固态驱动器控制器的重复数据删除 | |
US9690501B1 (en) | Method and system for determining data profiles using block-based methodology | |
EP4350527A1 (en) | Data compression method and apparatus, and computing device and storage medium | |
CN111125033B (zh) | 一种基于全闪存阵列的空间回收方法及系统 | |
US11042328B2 (en) | Storage apparatus and method for autonomous space compaction | |
CN115599757A (zh) | 数据压缩方法、装置、计算设备及存储系统 | |
CN115756312A (zh) | 数据访问系统、数据访问方法和存储介质 | |
CN111857574A (zh) | 一种写请求数据压缩方法、系统、终端及存储介质 | |
CN115483935A (zh) | 一种数据处理方法及装置 | |
CN115905146A (zh) | 数据处理方法、装置、计算设备及存储系统 | |
US20240070120A1 (en) | Data processing method and apparatus | |
CN115079936A (zh) | 一种数据写入方法及装置 | |
CN115249057A (zh) | 用于图形节点采样的系统和由计算机实现的方法 | |
US11093176B2 (en) | FaaS-based global object compression | |
CN110688097A (zh) | 高可靠高可用高性能融合型软件定义存储系统及方法 | |
WO2023050856A1 (zh) | 数据处理方法及存储系统 | |
CN113467699B (zh) | 一种提升可用存储容量方法及装置 | |
CN117331514B (zh) | 一种基于区域划分的固态盘数据压缩系统及方法 | |
US20210096987A1 (en) | Computing device and operation method thereof |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |