CN116909490B - 数据处理方法、装置、存储系统及计算机可读存储介质 - Google Patents

数据处理方法、装置、存储系统及计算机可读存储介质 Download PDF

Info

Publication number
CN116909490B
CN116909490B CN202311166312.5A CN202311166312A CN116909490B CN 116909490 B CN116909490 B CN 116909490B CN 202311166312 A CN202311166312 A CN 202311166312A CN 116909490 B CN116909490 B CN 116909490B
Authority
CN
China
Prior art keywords
data
processed
file
server
value
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
Application number
CN202311166312.5A
Other languages
English (en)
Other versions
CN116909490A (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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202311166312.5A priority Critical patent/CN116909490B/zh
Publication of CN116909490A publication Critical patent/CN116909490A/zh
Application granted granted Critical
Publication of CN116909490B publication Critical patent/CN116909490B/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/0608Saving storage space on storage systems
    • 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/0614Improving the reliability of storage systems
    • 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/0614Improving the reliability of storage systems
    • G06F3/0617Improving the reliability of storage systems in relation to availability
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • 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/0643Management of files
    • 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/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

Abstract

本申请提供了一种数据处理方法、装置、存储系统及计算机可读存储介质;方法包括:从第一数据服务器中获取多个待处理数据,待处理数据包括待处理关键字和待处理数据值;基于多个待处理数据,生成对象数据文件,对象数据文件中至少包括待处理数据和待处理数据在第二数据服务器中的存储位置信息,第二数据服务器用于存储访问频率低于预设的频率阈值且重要程度值小于预设的重要程度阈值的数据;将至少一个对象数据文件存储至第二数据服务器;将第一数据服务器中待处理关键字对应的待处理数据值更新为存储位置信息对应的位置值。通过本申请,能够降低数据存储成本。

Description

数据处理方法、装置、存储系统及计算机可读存储介质
技术领域
本申请涉及数据处理技术,尤其涉及数据处理方法、装置、存储系统及计算机可读存储介质。
背景技术
分布式存储系统,是将数据分散存储在多个独立的数据服务器上,形成数据的多个副本,来实现数据的高可靠性和系统的高可用性。互联网业界厂商常用Rocksdb来作为数据副本的存储引擎。随着时间的推移,数据的访问热度会逐渐下降。存储系统对访问密度低的数据称为冷数据,对访问密度高的数据称为热数据。出于成本的考虑,业界厂商通常会将冷数据存储在无需满足高吞吐且成本低的硬件介质中,如本地机械硬盘、提供块存储或对象存储的廉价云端。与之相反,热数据通常会被存储在能提供高吞吐且成本更高的硬件介质中,如固态硬盘、非易失内存等。将数据从热数据介质分离存储到冷数据介质中的过程称为数据降冷,在相关技术中,可以利用旁路降冷模块,通过扫描数据并进行数据筛选,将筛选出的冷数据写入到廉价的冷存储介质中,并删除价格高昂的热介质中的冷数据。但是旁路降冷方法需要额外资源支撑旁路降冷模块会导致降冷模块成为性能瓶颈,另外,这种方法会造成冷数据读存在大量空读,降低数据读取效率。
发明内容
本申请实施例提供一种数据处理方法、装置、存储系统及计算机可读存储介质,能够在保证可用性和数据可靠性的前提下,降低数据的存储成本。
本申请实施例的技术方案是这样实现的:
本申请实施例提供一种数据处理方法,应用于存储系统,所述存储系统至少包括第一数据服务器和第二数据服务器,该方法包括:
从第一数据服务器中获取多个待处理数据,所述待处理数据包括待处理关键字和所述待处理关键字对应的待处理数据值;
基于所述多个待处理数据,生成至少一个对象数据文件,所述对象数据文件中至少包括所述待处理数据和所述待处理数据在第二数据服务器中的存储位置信息,所述第二数据服务器用于存储访问频率低于预设的频率阈值且重要程度值小于预设的重要程度阈值的数据;
将所述至少一个对象数据文件存储至第二数据服务器;
将所述第一数据服务器中所述待处理关键字对应的待处理数据值更新为所述存储位置信息对应的位置值。
本申请实施例提供一种数据处理装置,包括:
第一获取模块,用于从第一数据服务器中获取多个待处理数据,所述待处理数据包括待处理关键字和所述待处理关键字对应的待处理数据值;
文件生成模块,用于基于所述多个待处理数据,生成至少一个对象数据文件,所述对象数据文件中至少包括待处理数据和所述待处理数据值在所述第二数据服务器中的存储位置信息,所述第二数据服务器用于存储访问频率低于预设的频率阈值且重要程度值小于预设的重要程度阈值的数据;
第一存储模块,用于将所述至少一个对象数据文件存储至第二数据服务器;
数据更新模块,用于将所述第一数据服务器中所述待处理关键字对应的待处理数据值更新为所述存储位置信息对应的位置值。
本申请实施例提供一种存储系统,该存储系统至少包括:第一数据服务器和第二数据服务器,所述第一数据服务器用于存储访问频率高于或者等于于预设的频率阈值的数据,以及重要程度值大于或者等于预设的重要程度阈值的数据,所述第二数据服务器用于存储访问频率低于预设的频率阈值且重要程度值小于预设的重要程度阈值的数据;
所述第一数据服务器包括第一存储器和第一处理器,所述第二数据服务器包括第二存储器和第二处理器,所述第一存储器和所述第二存储器,用于存储计算机可执行指令;所述第一处理器和所述第二处理器用于执行所述计算机可执行指令时,实现本申请实施例提供的数据处理方法。
本申请实施例提供一种计算机可读存储介质,存储有计算机程序或计算机可执行指令,用于被处理器执行时实现本申请实施例提供的数据处理方法。
本申请实施例提供一种计算机程序产品,包括计算机程序或计算机可执行指令,述计算机程序或计算机可执行指令被处理器执行时,实现本申请实施例提供的数据处理方法。
本申请实施例具有以下有益效果:从第一数据服务器中获取多个待处理数据之后,基于多个待处理数据,生成对象数据文件,对象数据文件中至少包括用于存储待处理数据的第二数据服务器的设备标识和待处理数据在第二数据服务器中的存储位置信息,并且第二数据服务器用于存储访问频率低于预设的频率阈值且重要程度值小于预设的重要程度阈值的数据,也即第二数据服务器用于存储访问密度低且不重要的数据,将至少一个对象数据文件存储至设备标识对应的第二数据服务器,并将第一数据服务器中待处理关键字对应的待处理数据值更新为该存储位置信息对应的位置值,也就是说,第一数据服务器中存储的是访问密度高的数据或重要数据(热数据),以及访问密度低且不重要数据(冷数据)的关键字和关键字对应的数据值的位置值,能够保证通过第一数据服务器也能读取到冷数据的关键字和数据值,从而能够保证可用性和数据可靠性,另外,由于关键字对应的数据值的位置值所占用的空间大小是远小于数据值本身所占用的空间大小的,因此能够降低冷数据在第一数据服务器的占用空间,从而能够降低存储成本。
附图说明
图1是本申请实施例提供的存储系统的网络架构示意图;
图2是本申请实施例提供的第一数据服务器400-1的结构示意图;
图3A是本申请实施例提供的数据处理方法的一种实现流程示意图;
图3B是本申请实施例提供的生成对象数据文件的实现流程示意图;
图3C是本申请实施例提供的检查数据一致性的实现流程示意图;
图4A是本申请实施例提供的按需回收数据的实现流程示意图;
图4B是本申请实施例提供的对象数据文件的总容量和无效数据容量的实现流程示意图;
图4C是本申请实施例提供的定期回收数据的实现流程示意图;
图5是本申请实施例提供的数据读取方法的实现流程示意图;
图6是本申请实施例提供的数据写入方法的实现流程示意图;
图7是本申请实施例提供的分布式存储系统的另一个网络结构示意图;
图8是本申请实施例提供的Blob文件的结构示意图;
图9是本申请实施例提供的双链式缓存队列的示意图;
图10是本申请实施例提供的写数据的实现流程示意图;
图11是本申请实施例提供的读数据的实现流程示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解, “一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
在以下的描述中,所涉及的术语“第一\第二\第三”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
除非另有定义,本申请实施例所使用的所有的技术和科学术语与所属技术领域的技术人员通常理解的含义相同。本申请实施例中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。
1)Rocksdb,是基于LevelDB开发的一款提供键值存储和读写功能的日志结构合并树(Log-Structured Merge Tree,LSM-tree)架构引擎。
2)排序队列表(Sorted Sequence Table,SST)文件,是一种所有的数据以key-value的形式按数据key的顺序进行排序存储的文件。
3)压缩(Compaction),在LSM存储结构中,将不同层数据进行归并压缩的过程。
4)Raft,是一种分布式系统中,多副本间数据达成一致性的共识算法。
5)Blob文件,指按特定存储结构进行组织的对象数据文件。
6)垃圾收集(Garbage Collection,GC),指对存储系统中垃圾数据进行空间回收。
7)热数据,指访问频率高、对业务和应用关键的数据。这些数据通常需要快速、高效地访问和处理,因此需要存储在高性能、低延迟的存储设备上,如SSD固态硬盘、内存等。
8)冷数据,指访问频率较低、对业务和应用不太重要的数据。这些数据通常需要长期保存,但不需要频繁访问和处理,因此可以存储在成本更低、容量更大的存储设备上,如磁带库。
9)数据降冷,将数据从热数据的存储介质中分离,并存储到冷数据的存储介质中的过程。
10)序列化处理,是指将特定格式数据转换为可以恢复的字符串序列,在本申请实施例中,是将存储位置信息转换为用字符串序列表示的位置值。
11)反序列化处理,是将序列化得出的字符串序列恢复为原有格式数据的处理过程,在本申请实施例中,是将字符串序列表示的位置值转换为存储位置信息。
为了更好地理解本申请实施例提供的数据处理方法,首先对相关技术中进行冷热数据分离的数据处理方法及存在的缺点进行说明。
相关技术中用于进行数据冷热分离的数据处理方法可以有以下两种:
第一、旁路降冷。将数据从热数据介质分离存储到冷数据介质中的过程称为数据降冷,在该方法中,需要利用旁路降冷模块,通过扫描数据并进行数据筛选,将筛选出的冷数据写入到廉价的冷存储介质中,并删除价格高昂的热介质中的冷数据。
第二、使用Rocksdb的SST文件降冷。按写入时间特性,尽可能将数据集中在相同的SST文件内,将Rocksdb的冷数据SST文件按文件写入到廉价存储介质中。
其中,旁路降冷的方法需要额外资源支撑旁路降冷模块会导致降冷模块成为性能瓶颈,另外,这种方法会造成冷数据读存在大量空读。使用Rocksdb的SST文件降冷的方法需要按照数据写入时间进行排序,需要独有的Rocksdb Comparator策略将时间接近的key集中在一个SST文件中,无法对降冷策略进行扩展。固定的SST文件形式,无法应对副本进行分裂和合并的场景。在分布式存储系统中,多个副本的SST文件相互独立,SST文件在副本间的差异性会导致存在降冷数据在副本间的不一致的问题。
本发明方法采用自行汇聚数据来组织降冷文件,在Rocksdb的数据压缩Compaction过程中按照自定义的降冷策略来筛选需要降冷的冷数据,可以根据用户需求来扩展降冷策略。降冷文件元信息中记录了路由到该数据副本的key的范围和对应副本id,用作副本元信息校验,面对副本分裂和合并,能自行调整和整理降冷的Blob文件的数据。在该方法中,多个数据副本之前只由主副本做数据降冷动作,降冷后的位置信息会通过Raft协议复制到其他副本,可以保持数据多个副本降冷数据的一致。
本申请实施例提供一种数据处理方法、装置、存储系统、计算机可读存储介质和计算机程序产品,将存储空间消耗小的key保留在热数据存储集群中,将存储空间消耗大的value转存冷数据存储集群中,通过这种方法,热数据存储集群仅存储数据量小的key和value在冷数据存储集群的位置信息即可。在业务的读访问过程中,不会有空读,能准确判断数据是否存在且数据的实际内容,并且还能保证多个副本数据的一致性,下面说明本申请实施例提供的电子设备的示例性应用,本申请实施例提供的电子设备可以实施为笔记本电脑、平板电脑,台式计算机、机顶盒、移动设备(例如,移动电话,便携式音乐播放器,个人数字助理,专用消息设备,便携式游戏设备)、智能手机、智能音箱、智能手表、智能电视、车载终端等各种类型的用户终端,也可以实施为服务器。下面,将说明设备实施为服务器时示例性应用。
参见图1,图1是本申请实施例提供的分布式存储系统100的架构示意图,如图1所示,该系统包括终端200、第一数据服务器集群(示例性示出了作为主副本的第一数据服务器400-1、作为从副本的第三数据服务器400-2以及作为从副本的第三数据服务器400-3)、第二数据服务器集群(示例性示出了第二数据服务器300-1、第二数据服务器300-2、…、第二数据服务器300-K),其中,终端200与第一数据服务器集群、第一数据服务器集群与第二数据服务器集群之间通过网络(图1未示出)连接,网络可以是广域网或者局域网,又或者是二者的组合。
第一数据服务器集群中的各个服务器用于存储访问频率高于或者等于于预设的频率阈值的数据,以及重要程度值大于或者等于预设的重要程度阈值的数据(在一些实施例中,也可以称为热数据),第二数据服务器集群用于存储访问频率低于预设的频率阈值且重要程度值小于预设的重要程度阈值的数据(在一些实施例中,也可以称为冷数据)。
第一数据服务器400-1在对数据进行归并压缩的过程中,通过过滤器从已存储数据中获取多个待处理数据,在本申请实施例中,待处理数据可以是访问频率低于预设的频率阈值且重要程度值小于预设的重要程度阈值的数据,也即是冷数据,待处理数据包括待处理关键字和所述待处理关键字对应的待处理数据值,第一数据服务器400-1基于多个待处理数据,生成至少一个对象数据文件,对象数据文件中至少包括存储所述待处理数据的第二数据服务器的设备标识和所述待处理数据在所述第二数据服务器中的存储位置信息,然后第一数据服务器400-1基于存储位置信息,将至少一个对象数据文件存储至设备标识对应的第二数据服务器,并将第一数据服务器中待处理关键字对应的待处理数据值更新为所述存储位置信息对应的位置值。该位置值是对存储位置信息进行序列化处理得到的,可以利用预设的序列化处理函数对存储位置信息进行转换,得到字符串格式的位置值。在一些实施例中,第一数据服务器400-1将该存储位置信息发送至作为从副本的第三数据服务器400-2和作为从副本的第三服务器400-3,以将第三数据服务器400-2中待处理关键字对应的待处理数据值更新为所述存储位置信息对应的位置值,将第三数据服务器400-3中待处理关键字对应的待处理数据值更新为所述存储位置信息对应的位置值,从而实现主从副本的数据一致性。
在本申请实施例中,在第一数据服务器中存储的是热数据的关键字和关键字对应的数据值,以及冷数据的关键字和关键字对应的数据值的位置信息,如此在保证可用性和数据可靠性的前提下能够降低数据的存储成本。
终端200在接收到读数据操作时,向第一数据服务器400-1发送读数据请求,该读数据请求中携带有待读取数据的待读取关键字;当确定第一数据服务器400-1中存储有待读取关键字时,获取待读取关键字对应的数据值的属性信息,当属性信息表征所述第一数据服务器中存储的是待读取数据值在所述第二数据服务器中的存储位置信息对应的位置值时,对位置值进行反序列化处理,得到存储位置信息;基于存储位置信息,从第二数据服务器中,获取待读取数据值,并将待读取数据值发送至终端200。如此,在需要读取冷数据时,能够基于第一数据服务器中冷数据的数据值的存储位置信息,获取待读取数据值,能够避免数据空读,从而提高数据读取效率。
在一些实施例中,第一数据服务器、第二数据服务器和第三数据服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。终端200可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表、车载终端等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请实施例中不做限制。
参见图2,图2是本申请实施例提供的第一数据服务器400-1的结构示意图,图2所示的第一数据服务器400-1包括:至少一个处理器410、存储器450、至少一个网络接口420和用户接口430。第一数据服务器400-1中的各个组件通过总线系统440耦合在一起。可理解,总线系统440用于实现这些组件之间的连接通信。总线系统440除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图2中将各种总线都标为总线系统440。
处理器410可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(Digital Signal Processor,DSP),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
用户接口430包括使得能够呈现媒体内容的一个或多个输出装置431,包括一个或多个扬声器和/或一个或多个视觉显示屏。用户接口430还包括一个或多个输入装置432,包括有助于用户输入的用户接口部件,比如键盘、鼠标、麦克风、触屏显示屏、摄像头、其他输入按钮和控件。
存储器450可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器450可选地包括在物理位置上远离处理器 410的一个或多个数据服务器。
存储器450包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(ROM,Read Only Memory),易失性存储器可以是随机存取存储器(Random Access Memory,RAM)。本申请实施例描述的存储器450旨在包括任意适合类型的存储器。
在一些实施例中,存储器450能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
操作系统451,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
网络通信模块452,用于经由一个或多个(有线或无线)网络接口420到达其他电子设备,示例性的网络接口420包括:蓝牙、无线相容性认证(WiFi)、和通用串行总线(Universal Serial Bus,USB)等;
呈现模块453,用于经由一个或多个与用户接口430相关联的输出装置431(例如,显示屏、扬声器等)使得能够呈现信息(例如,用于操作外围设备和显示内容和信息的用户接口);
输入处理模块454,用于对一个或多个来自一个或多个输入装置432之一的一个或多个用户输入或互动进行检测以及翻译所检测的输入或互动。
在一些实施例中,本申请实施例提供的装置可以采用软件方式实现,图2示出了存储在存储器450中的数据处理装置455,其可以是程序和插件等形式的软件,包括以下软件模块:第一获取模块4551、文件生成模块4552、第一存储模块4553和数据更新模块4554,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。将在下文中说明各个模块的功能。
在另一些实施例中,本申请实施例提供的装置可以采用硬件方式实现,作为示例,本申请实施例提供的装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本申请实施例提供的数据处理方法,例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(Application Specific Integrated Circuit,ASIC)、数字信号处理器(Digital Signal Processor,DSP)、可编程逻辑器件(ProgrammableLogic Device,PLD)、复杂可编程逻辑器件(Complex Programmable Logic Device,CPLD)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或其他电子元件。
将结合本申请实施例提供的服务器的示例性应用和实施,说明本申请实施例提供的数据处理方法。
参见图3A,图3A是本申请实施例提供的数据处理方法的一种实现流程示意图,将结合图3A示出的步骤进行说明,图3A中各个步骤的主体是第一数据服务器。第一数据服务器可以是存储系统中作为主副本的数据服务器。
在步骤101中,从第一数据服务器中获取多个待处理数据。
其中,待处理数据包括待处理关键字和所述待处理关键字对应的待处理数据值;在一些实施例中,第一数据服务器在确定达到数据筛选时机时,获取所述第一数据服务器中各个数据的访问频率和重要程度值,数据的访问频率可以用数据在预设时长内的被访问次数表示,示例性地,预设时长可以为1天、7天、10天等,访问频率可以是1天内访问3次、7天内访问5次等。数据的重要程度值可以是基于数据类型确定的,可以预先设置不同数据类型对应的重要程度值,然后基于数据的数据类型确定出该数据的重要程度值,在一些实施例中,数据的重要程度值还可以是在写入数据时人为设置的。第一数据服务器在获取到各个数据的访问频率和重要程度值后,基于所述各个数据的访问频率和重要程度值,将满足预设降冷条件的数据确定为待处理数据。其中,预设降冷条件对应其他实施例中的降冷策略,预设降冷条件可以是根据实际的存储需求设置的,例如可以是访问频率小于预设的频率阈值,还可以是重要程度值小于预设的重要程度阈值,在一些实施例中,预设降冷条件还可以是存储时长超过预设时长阈值。在本申请实施例中,满足预设降冷条件的数据确定为待处理数据,也即要存储至第二数据服务器的数据。第二数据服务器用于存储访问频率低于预设的频率阈值且重要程度值小于预设的重要程度阈值的数据,也可以理解为,第二数据服务器用于存储冷数据。
在步骤102中,基于所述多个待处理数据,生成至少一个对象数据文件。
在一些实施例中,参见图3B,步骤102可以利用下述步骤1021至步骤1023实现,下面具体说明。
在步骤1021中,将多个待处理数据添加至待处理数据队列。
可以理解的是,待处理数据队列可以为先进先出的多生产者单消费者链式缓存队列,也就是说待处理数据队列中存储的可以是来着多个不同第一数据服务器发送的待处理数据,待处理数据队列中的待处理数据由聚合器进行消费,也即利用聚合器对待处理数据进行聚合处理。
在步骤1022中,从待处理数据队列中确定构成对象数据文件的至少一个待处理数据。
在一些实施例中,对象数据文件的文件大小(文件可存储数据的空间大小)是预先设置好的,因此在该步骤中,会根据待处理数据队列中各个待处理数据的数据大小(也即数据占用的空间大小)确定构成一个对象数据文件的至少一个待处理数据,其中构成一个对象数据文件的至少一个待处理数据占用的总空间大小不能大于对象数据文件可存储数据的空间大小。
示例性地,一个对象数据文件可存储数据的空间大小为3MB,那么从待处理数据队列中依次确定待处理数据的数据大小,假设当前待处理数据队列中存储有10个待处理数据,其中,第10个待处理数据的数据大小为1MB,第9个待处理数据的数据大小为1MB,第8个待处理数据的数据大小为2MB,第7个待处理数据的数据大小为0.5MB,那么由于第10个待处理数据和第9个待处理数据的总数据大小为2MB,是小于对象数据文件可存储数据的空间大小3MB的,而第10个待处理数据、第9个待处理数据和第8个待处理数据的总数据大小为4MB,是大于3MB的,因此将第10个待处理数据和第9个待处理数据的总数据大小为2MB确定为构成一个对象数据文件的待处理数据。
在步骤1023中,利用聚合器对至少一个待处理数据进行聚合处理,生成对象数据文件。
其中,对象数据文件中至少包括存储所述待处理数据的第二数据服务器的设备标识和所述待处理数据在所述第二数据服务器中的存储位置信息,所述第二数据服务器用于存储访问频率低于预设的频率阈值且重要程度值小于预设的重要程度阈值的数据。在一些实施例中,不同业务的待处理数据存储在不同的第二数据服务器中,因此在利用聚合器对至少一个待处理数据进行聚合处理时,可以获取待处理数据的业务标识,然后基于待处理数据的业务标识确定存储待处理数据的第二数据服务器的设备标识。
需要说明的是,对象数据文件包括头部区、索引区、数据区和尾部区,所述头部区用于存储对象数据文件的属性信息,对象数据文件的属性信息包括但不限于:索引区的文件偏移大小、数据区的文件偏移大小、尾部区的文件偏移大小和对象数据文件的CRC32校验信息,索引区用于存储待处理数据值在第二数据服务器的存储位置信息和待处理关键字,待处理数据值的存储信息可以包括待处理数据值的数据偏移量、待处理数据值的占用空间大小,在一些实施例中,索引区还用于存储待处理关键字的哈希值,待处理关键字对应的第二索引号,待处理数据的写入时间、过期时间以及校验信息。数据区用于存储待处理数据值,尾部区至少用于存储第二数据服务器的设备标识,尾部区还可以存储该对象数据文件中存储的关键字(key)的起始值和终止值,以及作为从副本的第三数据服务器的设备标识、文件创建时间、文件大小等信息。
在步骤103中,将至少一个对象数据文件存储至第二数据服务器。
在一些实施例中,由聚合器对待处理数据队列中的待处理数据进行消费,生成的至少一个对象数据文件会添加至一个先进先出的多生产者单消费者链式缓存队列,也即其他实施例中的降冷任务队列,该降冷任务队列中可以存储来自多个不同第一数据服务器中的聚合器生成的对象数据文件,该降冷任务队列中的对象数据文件可以是由执行器消费的,也即执行器将降冷任务队列中的对象数据文件存储至设备标识对应的第二数据服务器。
在一些实施例中,如图3C所示,在步骤103之后,还可以通过下述步骤201至步骤204保证数据一致性,下面结合图3C进行说明。
在步骤201中,对待处理关键字增加异步锁。
在一些实施例中,可以通过异步锁函数对待处理关键字增加异步锁。增加异步锁之后,只有等一个现成运行结束之后才能运动另一个进程。在本申请实施例中,对待处理关键字增加异步锁之后,只有在执行完步骤202至步骤204或者步骤202至步骤104之后,才能对待处理关键字对应的待处理数据值进行读写操作,从而能够避免在生成对象数据文件之后,在将待处理数据值更新为存储位置信息对应的位置值之前,待处理数据值发生变化而导致的数据不一致问题。
在步骤202中,获取第一数据服务器中待处理关键字的第一序列号,并获取第二数据服务器中待处理关键字的第二序列号。
在本申请实施例中,在第一数据服务器中存储有各个关键字对应的第一序列号,序列号全局唯一并且随着写请求而逐渐递增,在基于待处理数据生成对象数据文件时,在对象数据文件的索引区记录有每个待处理关键字的第二索引号,该第二索引号是在生成对象数据文件时从第一数据服务器获取的,如果在生成对象数据文件的过程中,对待处理关键字对应的待处理数据值进行了写操作,那么第一数据服务器中待处理关键字的第一索引号会发生变化。示例性地,假设在生成对象数据文件时,从第一数据服务器获取到的待处理关键字对应的第一索引号为25,那么生成的对象数据文件中,索引区存储的该待处理关键字的第二索引号为25,如果在生成对象数据文件的过程中,对待处理关键字对应的待处理数据值进行了两次写操作,那么第一数据服务器中待处理关键字的第一索引号变为27。
在步骤203中,判断第一序列号与第二序列号是否相同。
其中,当第一序列号与第二序列号相同时,说明第二数据服务器中的待处理数据值没有过时,进入步骤104,也即将第一数据服务器中待处理关键字对应的待处理数据值更新为存储位置信息对应的位置值。当第一序列号与第二序列号不同时,进入步骤204。
在步骤204中,保持第一数据服务器中待处理关键字对应的待处理数据值不变。
当第一序列号与第二序列号不同时,说明在对待处理数据进行处理,生成对象数据文件,并将对象数据文件存储至第二数据服务器的过程中,第一数据服务器中待处理关键字对应的待处理数据值(value)发生了改变,而由于第二数据服务器中存储的是改变前的value,也即第二数据数据服务器中存储的value已过时,此时不再将第一数据服务器中待处理关键字对应的待处理数据值更新为存储位置信息对应的位置值,也即保持第一数据服务器中待处理关键字对应的待处理数据值不变。并且,由于在对待处理数据进行处理,生成对象数据文件,并将对象数据文件存储至第二数据服务器的过程中,第一数据服务器中待处理关键字对应的待处理数据值(value)发生了改变,也就说明待处理数据在此期间被访问了,那么可以认为待处理数据仍为会被访问的热数据,因此暂时不会再将待处理数据存储至第二数据服务器。
继续参见图3A,下面接续步骤103进行说明。
在步骤104中,将第一数据服务器中待处理关键字对应的待处理数据值更新为存储位置信息对应的位置值。
在一些实施例中,待处理数据值的存储位置信息包括对象数据文件的文件名、待处理数据值在对象数据文件中的数据偏移量和待处理数据值的数据空间大小以及待处理数据值的校验信息,而第一数据服务器中原本存储的是待处理关键字和待处理关键字对应的待处理数据值,待处理数据值一般为字符串,因此需要对待处理数据值的存储位置信息进行序列化处理,得到存储位置信息对应的位置值,并将第一数据服务器中待处理关键字对应的待处理数据值更新为存储位置信息对应的位置值。如此,在第一数据服务器中存储的是热数据的键值对(key-value),以及冷数据的key和冷数据的value的存储位置信息的位置值。
在本申请实施例提供的数据处理方法中,从第一数据服务器中获取多个需要进行降冷的待处理数据之后,基于多个待处理数据,生成对象数据文件,对象数据文件中至少包括用于待处理数据和待处理数据值在第二数据服务器中的存储位置信息,其中第二数据服务器用于存储访问频率低于预设的频率阈值且重要程度值小于预设的重要程度阈值的数据,也即第二数据服务器用于存储访问密度低且不重要的数据,将至少一个对象数据文件存储至第二数据服务器,并将第一数据服务器中待处理关键字对应的待处理数据值更新为该存储位置信息对应的位置值,也就是说,第一数据服务器中存储的是访问密度高的数据或重要数据(热数据),以及访问密度低且不重要数据(冷数据)的关键字和关键字对应的数据值的位置值,能够保证通过第一数据服务器也能读取到冷数据的关键字和数据值,从而能够保证可用性和数据可靠性,另外,由于关键字对应的数据值的位置值所占用的空间大小是远小于数据值本身所占用的空间大小的,因此能够降低冷数据在第一数据服务器的占用空间,从而能够降低存储成本。另外在将第一数据服务器中待处理关键字对应的待处理数据值更新为该存储位置信息对应的位置值之前,还通过对待处理关键字增加异步锁以及通过待处理关键字在第一数据服务器中的第一序列号和在第二数据服务器中的第二序列号保证数据的一致性。
在一些实施例中,可以通过以下两种方式对第二数据服务器中的无效数据进行空间回收:一是在对象数据文件的碎片率达到预设的碎片率阈值时进行按需回收,二是在达到预设的定时回收周期时,进行定时巡检回收,下面分别对两种数据回收方式进行说明。
图4A是本申请实施例提供的按需回收数据的实现流程示意图,如图4A所示,可以通过图4A所示的步骤301A至步骤304A按需进行数据回收,图4A所示的各个步骤的执行主体为第二数据服务器,下面具体说明。
在步骤301A中,确定第二数据服务器中各个对象数据文件的总容量和无效数据容量。
在一些实施例中,对所述第二数据服务器中的每个对象数据文件执行以下图4B所示的步骤1A1至步骤1A3,以获取每个对象数据文件的总容量和无效数据容量,下面结合图4B进行说明。
在步骤1A1中,从对象数据文件的属性信息中,获取对象数据文件的总容量。
在一些实施例中,可以从对象数据文件的属性信息中获取文件大小字段对应的属性值,并将文件大小字段对应的属性值确定为对象数据文件的总容量。
在步骤1A2中,获取对象数据文件中包括的各个关键字,并从各个关键字中确定无效关键字。
如果存储系统接收到数据删除指令时,删除的是第一数据服务器中的数据,因此可能会导致第一数据服务器中的关键字以及关键字对应的数据值或者关键字对应的数据值的位置值已经被删除,但是从第一数据服务器中已删除的数据可能还存在于第二数据服务器中,此时第二数据服务器中的数据为无效数据。基于此,步骤1A2在实现时,首先从所述第一数据服务器中查找对象数据文件中包括的各个关键字,如果对象数据文件中的关键字不存于第一数据服务器中,说明该关键字以及该关键字对应的数据值已经从第一数据服务器中删除,因此该关键字对应的数据则不会再被访问,因此将不存在于所述第一数据服务器的关键字确定为无效关键字。
当所述对象数据文件中包括的关键字也存在于所述第一数据服务器中时,获取所述关键字对应的数据值的属性信息,当所述属性信息表征所述第一数据服务器中存储的是所述关键字对应的数据值本身时,那么对该关键字对应的数据值进行读写时,并不需要从第二数据服务器中获取数据值,也就是说,第二数据服务器中存储的该关键字的数据值是过时数据,因此也将该关键字确定为无效关键字。
在步骤1A3中,确定对象数据文件中包括的无效关键字的第一个数,基于第一个数和预设的数据值占用空间大小,确定对象数据文件的无效数据容量。
在一些实施例中,数据值占用空间大小可以从对象数据文件的索引区中获取,将第一个数和数据值占用空间大小的乘积,确定为对象数据文件的无效数据容量。
在步骤302A中,基于各个对象数据文件的总容量和无效数据容量,确定各个对象数据文件的碎片率。
在一些实施例中,将无效数据容量除以总容量,得到对象数据文件的碎片率。示例性地,一对象数据文件的总容量为10MB,无效数据容量为6MB,那么该对象数据文件的碎片率为60%。
在步骤303A中,将碎片率大于预设的碎片率阈值的对象数据文件确定为待回收处理文件。
在一些实施例中,碎片率阈值为0到1之间的实数,示例性地,碎片率阈值可以为0.4,也即为40%。当对象数据文件的碎片率大于该碎片率阈值时,说明该对象数据文件中包括大量的无效数据,需要进行碎片回收处理,将该对象数据文件确定为待回收处理文件。
在步骤304A中,对待回收处理文件进行碎片整理,得到回收处理后的文件。
在一些实施例中,步骤304A在实现时,首先从所述待回收处理文件的数据区删除所述无效关键字对应的数据值,然后从所述待回收处理文件的索引区中删除所述无效关键字的索引信息,得到回收处理后的文件。
需要说明的是,对象数据文件中的索引区中每个关键字对应一条索引信息,该索引信息包括关键字的哈希值、关键字的第二序列号、关键字对应的数据值的存储位置信息、数据写入时间、数据过期时间、校验信息等。
通过上述步骤301A至步骤304A,首先确定出各个对象数据文件的碎片率之后,对碎片率超过碎片率阈值的待回收处理文件进行碎片整理,也即将待回收处理文件中无效关键字的索引信息和无效关键字对应的数据值删除,得到回收处理后的文件,如此能够及时清理无效数据,提高第二数据服务器中所存储数据的有效性。另外,在一些实施例中,在得到回收处理后的文件之后,可以对回收处理后的文件进行文件校验,例如可以按照预设的数据校验算法生成回收处理后的文件中数据区的各个数据值的待校验信息,然后将各个数据值的待校验信息与索引区中的各个数据值的校验信息进行匹配,如果数据值的待校验信息与索引区中该数据值的校验信息相同,说明该数据值通过校验,如果数据值的待校验信息与索引区中该数据值的校验信息不同,说明该数据值未通过校验,此时可以将该数据值从数据区删除,并将该数据值对应的关键字的索引信息从索引区删除,从而进一步提高第二数据服务器中的可用空间,还能提高数据可靠性。
图4C是本申请实施例提供的定期回收数据的实现流程示意图,如图4C所示,可以通过图4C所示的步骤301B至步骤303B定期进行数据回收,下面具体说明。
在步骤301B中,在确定达到预设的定期碎片回收时机时,从第二数据服务器中每个对象数据文件中包括的各个关键字中确定无效关键字。
在一些实施例中,可以预先设置进行碎片回收的时间周期,例如可以设置为30天,或者14天。步骤301B在实现时,获取上次进行定期碎片回收的时间,并基于上次进行定期碎片回收的时间以及预设的时间周期,确定本次进行定期碎片回收的时间,在确定达到本次进行定期碎片回收的时间时,确定达到定期碎片回收时机,此时从第二数据服务器中每个对象数据文件中确定无效关键字。首先从所述第一数据服务器中查找每个对象数据文件中包括的各个关键字,将不存在于第一数据服务器的关键字确定为无效关键字,当对象数据文件中包括的关键字也存在于第一数据服务器中时,获取关键字对应的数据值的属性信息,当属性信息表征所述第一数据服务器中存储的是所述关键字对应的数据值本身时,那么也将该关键字确定为无效关键字。
在步骤302B中,从对象数据文件的数据区删除无效关键字对应的数据值。
在一些实施例中,可以基于该无效关键字从对象数据文件中的索引区中获取到该无效关键字对应的数据值在数据区的偏移信息,并基于该偏移信息从数据区中确定出数据值的存储位置,进而将该存储位置中存储的数据值删除。
在步骤303B中,从对象数据文件的索引区中删除无效关键字的索引信息。
在一些实施例中,由于已经将无效关键字对应的数据值从数据区中删除,那么索引区中该无效关键字对应的索引信息也称为无效信息,此时为了进一步增加对象数据文件中的有效空间,将无效关键字的索引信息也进行删除。
在上述步骤301B至步骤303B中,在达到预设的定期碎片回收时机时,是对第二数据服务器中每个对象数据文件均进行了无效关键字的筛选,并将无效关键字对应的数据值和索引信息均进行了删除,也即是对全量数据进行了碎片回收整理,如此对即便未达到碎片率阈值的对象数据文件也进行碎片回收整理,释放出所有对象文件中的无效数据占用的存储空间,从而最大程度的提高第二数据服务器的可用空间,在一些实施例中,在对所有对象数据文件进行碎片整理回收处理之后,还可以对所有对象数据文件中的有效关键字的数据值进行校验,并删除掉校验未通过的数据,不仅能够提高第二数据服务器的可用空间,并且能够保证数据的可靠性。
基于前述的实施例本申请实施例提供一种数据读取方法,图5是本申请实施例提供的数据读取方法的实现流程示意图,下面结合图5进行说明。
在步骤401中,第一数据服务器接收终端发送的读数据请求。
在一些实施例中,终端响应于接收到的读数据操作,向第一数据服务器发送读数据请求,其中读数据请求中携带有待读取数据的待读取关键字。
在步骤402中,第一数据服务器判断是否存储有待读取关键字。
其中,如果第一数据服务器中未存储有待读取关键字,进入步骤403;如果第一数据服务器中存储有待读取关键字,进入步骤404。
在步骤403中,第一数据服务器向终端发送读取失败的通知消息。
在步骤404中,第一数据服务器获取待读取关键字对应的数据值的属性信息。
在一些实施例中,待读取关键字对应的数据值的属性信息用于表征第一数据服务器中存储的是待读取关键字对应的数据值本身,或者用于表征第一数据服务器中存储的是待读取关键字对应数据值的存储位置信息的位置值。
在步骤405中,第一数据服务器判断属性信息是否表征第一数据服务器中存储的是数据值本身。
其中,如果该属性信息表征第一数据服务器中存储的是待读取数据值本身时,进入步骤406;如果属性信息表征第一数据服务器中存储的不是待读取数据值本身,也即第一数据服务器中存储的是待读取数据值在所述第二数据服务器中的存储位置信息对应的位置值,进入步骤407。
在步骤406中,第一数据服务器将待读取数据值发送至终端。
在步骤407中,第一数据服务器对位置值进行反序列化处理,得到存储位置信息。
在一些实施例中,由于第一数据服务器中存储的是对存储位置信息进行序列化处理得到的位置值,因此在该步骤中,需要对位置值进行反序列化处理,从而得到存储位置信息。
在步骤408中,第一数据服务器基于存储位置信息,从第二数据服务器中获取待读取数据值。
由于存储位置信息中包括对象数据文件的文件标识、待处理数据值的数据偏移量、待处理数据值的占用空间大小,因此第一数据服务器可以向第二数据服务器发送数据获取请求,该数据获取请求中携带有待读取数据值的存储位置信息,第二数据服务器在接收到数据获取请求后,基于该存储位置信息获取到待读取数据值,并将待读取数据值发送至第一数据服务器。
在步骤409中,第一数据服务器将待读取数据值发送至终端。
在上述步骤401至步骤409所在的实施例中,第一数据服务器在接收到读数据请求后,如果第一数据服务器中存储有读数据请求中携带的待读取关键字对应的待读取数据值本身时,将该待读取数据值发送至终端,如果第一数据服务器中存储的是待读取关键字对应的待读取数据值的位置值时,首先对位置值进行反序列化,得到存储位置信息,并基于存储位置信息从第二数据服务器获取到待读取数据值,并将待读取数据值返回给终端,如此,第一数据服务器在接收到读数据请求后,不管是本地存储有待读取数据值还是本地未存储有待读取数据值,最终均能够向终端返回待读取数据值,能够避免数据空读,从而能够提高数据读取效率。
本申请实施例提供一种数据写入方法,图6是本申请实施例提供的数据写入方法的实现流程示意图,下面结合图6进行说明。
在步骤501中,第一数据服务器接收终端发送的写数据请求。
其中,写数据请求中携带有待写入数据,待写入数据包括待写入关键字和待写入数据值。
在步骤502中,第一数据服务器将待写入数据写入到本地存储空间中。
在步骤503中,第一数据服务器将待写入数据发送至第三数据服务器。
在分布式存储系统中,为了提高容灾能力,会将作为主副本的第一数据服务器中的数据备份到至少一个作为从副本的第三数据服务器中,也即N为正整数,在实际应用中,步骤503在实现时,第一数据服务器将待写入数据发送至N个作为从副本的第三数据服务器中。为了提高数据写入的成功率以及容灾能力,N可以为大于1的整数,例如N可以为2、4等。当N为2时,说明有两个作为从副本的第三数据服务器,那么该第一数据服务器和两个第三数据服务器构成了一个三副本数据服务集群。
在一些实施例中,第一数据服务器将待写入数据发送至N个作为从副本的第三数据服务器,以指示第三数据服务器将待写入数据备份至自身的本地存储空间。当第三数据服务器成功将待写入数据备份至自身的本地存储空间中时,向第一数据服务器发送写入成功的通知消息,当第三数据服务器未成功将待写入数据备份至自身的本地存储空间中时,向第一数据服务器发送写入失败的通知消息。
在步骤504中,第一数据服务器接收第三数据服务器发送的写入成功的通知消息。
在一些实施例总,如果待写入数据成功写入至作为从副本的第三数据服务器中,第三数据服务器会向第一数据服务器发送写入成功的通知消息。
在步骤505中,第一数据服务器判断待写入数据是否成功写入本地存储空间,且至少成功写入到N/2个作为从副本的第三数据服务器。
其中,如果待写入数据成功写入到第一数据服务器的本地存储空间,且至少成功写入到N/2个作为从副本的第三数据服务器,说明有一半以上的数据服务器成功写入了待写入数据,此时进入步骤506;如果待写入数据未成功写入本地存储空间,或者没有至少成功写入到N/2个作为从副本的第三数据服务器,说明没有一半以上的数据服务器成功写入待写入数据,此时进入步骤507。
在步骤506中,第一数据服务器向终端发送写入成功的通知消息。
在步骤507中,第一数据服务器向终端发送写入失败的通知消息。
在上述步骤501至步骤507所在的实施例中,第一数据服务器在接收到写数据请求后,将待写入数据写入到本地存储空间,并发送至作为从副本的多个第三数据服务器,只有在待写入数据成功写入到第一数据服务器的本地存储空间,且至少成功写入到N/2个作为从副本的第三数据服务器的情况下,确定数据写入成功,并向终端发送写入成功的通知消息,如此能够保证数据在存储系统中是多副本存储的,能够提高存储系统的容灾能力。
下面,将说明本申请实施例在一个实际的应用场景中的示例性应用。
本申请实施例提供的数据处理方法,能够应用于数据存储平台,例如可以应用于支持多模态、多租户、存算分离的数据库中,利用本申请实施例提供的数据处理方法能够对数据进行冷热筛选和存储分离,从而实现节省存储成本和资源利用的最大化。
图7是本申请实施例提供的分布式存储系统的另一个网络结构示意图,如图7所示,用户终端701通过写数据接口向分布式存储系统写入数据,不直接感知冷热数据的分层存储形式。该分布式存储系统将热数据的key和value保持在热数据存储集群702中。将冷数据的value组织成Blob文件存在冷数据存储集群703中,在热数据存储集群702中保留冷数据的key以及key指向冷数据集群的位置信息,该位置信息包括Blob文件名、value在Blob文件中的数据偏移量和数据大小以及value的校验信息。
图8是本申请实施例提供的Blob文件的结构示意图,如图8所示,Blob文件包括:头部区(Header)801、索引区(Inode)802、数据区(Data)803和尾部区(Footer)804四个部分,其中:
Blob文件的头部区801,用于存储Blob文件的属性信息,共占用16Bytes,属性信息包含索引区的文件偏移大小、数据区的文件偏移大小、尾部区的文件偏移大小和这个Blob文件的CRC32校验信息。
Blob文件的索引区802,用于存储降冷到该Blob文件的每一条value的元信息数据,包括key的hash值、value的偏移位置、value的大小、时间戳和value的CRC32校验信息等。
Blob文件的数据区803,用于存储每一个降冷到该Blob文件的实际value数据。
Blob文件的尾部区804,用于存储Blob文件在存储系统中的逻辑描述信息,如所属副本ID、副本存储的key的hash范围、冷数据集群的集群ID等信息。
在本申请实施例提供的数据处理方法中,采用双链式缓存队列的任务模型进行数据分离,图9是本申请实施例提供的双链式缓存队列的示意图,如图9所示,在该任务模型中,使用了两个先进先出的多生产者单消费者链式缓存队列:记录数据队列901和降冷任务队列902。记录数据队列901用作数据初筛缓存,在Rocksdb 压缩(Compaction)过程中,利用滤波器(Filter)筛选出达到降冷策略条件的冷数据,并将冷数据存入该记录数据队列901。然后由聚合器(Aggregator)消费缓存在记录数据队列中的数据,并组成特定数据结构的Blob文件。再将Blob文件存储到降冷任务队列902中,降冷Blob文件由Aggregator生成,并由执行器(Executor)写入到冷数据集群中。
在本申请实施例提供的数据处理方法的应用过程中,可以通过结合业务特性,调整Rocksdb的LSM树形大小和执行数据压缩的周期时间来控制降冷数据筛选的频率。
在本申请实施例提供的数据处理方法中,提供对冷数据集群中的垃圾数据进行空间回收,提供双重垃圾回收机制,即按需回收和定时巡检回收。存储系统通过记录Blob文件的有效容量和总容量来确定Blob文件的碎片率情况。总容量为Blob文件降冷到冷集群时的Data区总大小,Blob的有效容量随着业务数据的删除而减小。通过Blob文件总容量和有效容量能够确定出该Blob文件的碎片率。按需回收机制通过设定特定的回收阈值,当碎片率达到该回收阈值时,对该Blob文件进行碎片回收和文件校验。定时巡检回收机制可定期对Blob文件进行全量巡检,定期回收碎片文件、进行文件校验,并对容量信息进行及时修正。
在本申请实施例中,对数据降冷后,将冷数据的value信息更替为冷集群位置信息的过程称为降冷回写。在降冷回写过程中,需要保证多副本的数据一致性。value的位置信息通过Raft副本从主副本复制到其他从副本,在回写过程中,如果该key有业务复写的情况,导致该key对应的value发生改变,那么位置信息对应的value与最新的value不同,造成数据过时的问题,此时需要对数据进行一致性校验。在本申请实施例中,可以通过下面两个步骤来实现数据一致性的校验:
第一、通过异步锁,保证回写过程的原子性。
在本申请实施例中,存储系统将相同的key的写操作根据key的hash值路由到相同的线程中。数据降冷到冷数据集群后,存储系统通过对降冷的key采用异步锁加锁,防止同key冲突。
第二、添加数据序列号,通过校验版本号来防止过时数据的复写。
在本申请实施例中,在每一条降冷的记录数据的索引区,填写数据的序列(seq)号,数据的序列号在副本中全局唯一并随着写请求逐渐递增。在降冷回写的过程中,获取本地存储的记录数据的序列号与降冷索引区里的记录数据的序列号,将两个序列号做对比,如果两个序列号相同,说明回写的位置信息没有过时,此时将value的位置信息写入热数据存储集群。如果两个序列号不相同,说明回写的位置信息已过时,此时将过时的位置信息将会被丢弃,过时的位置信息在冷存储集群中产生的数据垃圾将会随着GC机制回收。
图10是本申请实施例提供的写数据的实现流程示意图,如图10所示,写数据流程分为两个部分:一部分为用户终端将数据写入到本地Rocksdb的过程1001。另一个部分为存储系统的异步数据降冷过程1002,降冷过程对用户透明不可见。
用户终端将数据写入到本地Rocksdb的过程1001包括如下步骤:
步骤10011,接收写请求。
其中,写请求中携带有key-value信息,该写请求用于请求向存储系统中作为主副本的数据服务器执行写操作。
步骤10012,判断是否写成功。
在本申请实施例中,作为主副本的数据服务器通过Raft协议,将数据信息复制到其他两个作为从副本的数据服务器中,并落地自己的本地Rocksdb存储引擎。若复制过程Raft未达成多数派(Quorum)或写本地Rocksdb引擎失败,则确定写未成功,此时进入步骤10013,如果复制过程Raft达成多数派并且写本地Rocksdb引擎成功,确定写成功,此时进入步骤10014。
步骤10013,返回用户写失败。
步骤10014,返回用户写成功。
异步数据降冷过程包括如下步骤:
步骤10021,判断key-value是否达到降冷条件。
在一些实施例中,作为主副本的数据服务器中Rocksdb在数据压缩的执行过程中,通过过滤器筛选key-value,以判断key-value是否达到降冷条件,如未达到降冷条件,进入步骤10023,如果达到降冷条件,进入步骤10022。
步骤10022,对key-value进行降冷处理。
在一些实施例中,可以将该key-value加入到记录数据队列中,利用图8所示的双链式缓存队列的任务模型执行降冷过程。
步骤10023,忽略该key-value。
忽略该key-value也即不对该key-value进行降冷处理。
图11是本申请实施例提供的读数据的实现流程示意图,如图11所示,读数据流程包括如下步骤:
步骤1101,接收用户终端发送的读请求。
在一些实施例中,用户终端响应于接收到的读操作,向存储系统发起读请求,该读请求中携带有需要读取数据的key。
步骤1102,判断是否可以读取到Key。
存储系统首先确定该key的哈希值,并路由到相应的工作线程读取本地Rocksdb,判断是否可以读取待该Key,其中若无法读取到该Key,进入步骤1103,如果读取到该Key,进入到步骤1104。
步骤1103,返回用户数据不存在。
步骤1104,判断读取到的value是否为value的位置信息。
在一些实施例中,获取读取到的value的属性信息,如果属性信息表征该value为位置信息,进入步骤1106;如果属性信息表征该value为原始的value,也即属性信息表征该value不为value的位置信息,进入步骤1105。
步骤1105,返回用户读取到的value。
步骤1106,根据value的位置信息向冷数据存储集群读取数据。
在一些实施例中,可以反序列化value的位置信息,获取存储该value的冷存储集群id、value所在的Blob文件名、该key的value在Blob文件的偏移和大小。
步骤1107,判断是否读取成功且CRC正确。
在一些实施例中,基于存储该value的冷存储集群id、value所在的Blob文件名、该key的value在Blob文件的偏移和大小,向冷存储集群读取数据,并判断是否读取成功且CRC正确,如果读取成功且CRC正确,进入步骤1108;如果读失败或CRC错误,进入步骤1109。
步骤1108,返回value。
步骤1109,返回读错误。
在本申请实施例中,在Rocksdb的数据压缩Compaction过程中按照自定义的降冷策略来筛选需要降冷的冷数据,如此能够根据用户需求来扩展降冷策略,提高降冷数据的灵活性。降冷文件元信息中记录了路由到该数据副本的key的范围和对应副本id,用作副本元信息校验,面对副本分裂和合并,能自行调整和整理降冷的Blob文件的数据。另外多个数据副本之前只由主副本做数据降冷动作,降冷后的位置信息会通过Raft协议复制到其他副本,可以保持数据多个副本降冷数据的一致性。在本申请实施例提供的数据处理方法中,将存储空间消耗小的冷数据的key保留在热存储中,将存储空间消耗大的冷数据的value转存至冷存储集群中,如此热数据存储集群中仅存储数据量小的key和value在冷数据存储集群的位置信息即可,在不影响可用性和数据可靠性的情况下,能够降低数据的存储成本。在业务的读访问过程中,不会有空读,从而提高数据读取效率。
下面继续说明本申请实施例提供的数据处理装置455的实施为软件模块的示例性结构,在一些实施例中,如图2所示,存储在存储器450的数据处理装置455中的软件模块可以包括:
第一获取模块4551,用于从第一数据服务器中获取多个待处理数据,所述待处理数据包括待处理关键字和所述待处理关键字对应的待处理数据值;
文件生成模块4552,用于基于所述多个待处理数据,生成至少一个对象数据文件,所述对象数据文件中至少包括所述待处理数据和所述待处理数据值在第二数据服务器中的存储位置信息,所述第二数据服务器用于存储访问频率低于预设的频率阈值且重要程度值小于预设的重要程度阈值的数据;
第一存储模块4553,用于将所述至少一个对象数据文件存储至所述第二数据服务器;
数据更新模块4554,用于将所述第一数据服务器中所述待处理关键字对应的待处理数据值更新为所述存储位置信息对应的位置值。
在一些实施例中,文件生成模块4552还用于:
将所述多个待处理数据添加至待处理数据队列;
从所述待处理数据队列中确定构成对象数据文件的至少一个待处理数据;
利用聚合器对所述至少一个待处理数据进行聚合处理,生成对象数据文件,所述对象数据文件包括头部区、索引区、数据区和尾部区,所述头部区用于存储对象数据文件的属性信息,所述索引区用于存储待处理数据值在第二数据服务器的存储位置信息,所述数据区用于存储待处理数据值,所述尾部区至少用于存储第二数据服务器的设备标识。
在一些实施例中,该装置还包括:
异步锁模块,用于对所述待处理关键字增加异步锁;
第二获取模块,用于获取所述第一数据服务器中所述待处理关键字的第一序列号,并获取所述第二数据服务器中所述待处理关键字的第二序列号;
序列号判断模块,用于判断所述第一序列号与所述第二序列号是否相同,其中当所述第一序列号与所述第二序列号相同时,将所述第一数据服务器中所述待处理关键字对应的待处理数据值更新为所述存储位置信息对应的位置值。
在一些实施例中,该装置还包括:
第一确定模块,用于获取所述第二数据服务器中各个对象数据文件的总容量和无效数据容量;
第二确定模块,用于基于所述各个对象数据文件的总容量和无效数据容量,确定所述各个对象数据文件的碎片率;
第三确定模块,用于将碎片率大于预设的碎片率阈值的对象数据文件确定为待回收处理文件;
碎片整理模块,用于对所述待回收处理文件进行碎片整理,得到回收处理后的文件。
在一些实施例中,第一确定模块,还用于:
对所述第二数据服务器中的每个对象数据文件执行以下操作:
从对象数据文件的属性信息中,获取所述对象数据文件的总容量;
获取所述对象数据文件中包括的各个关键字,并从所述各个关键字中确定无效关键字;
确定所述对象数据文件中包括的无效关键字的第一个数,基于所述第一个数和预设的数据值占用空间大小,确定所述对象数据文件的无效数据容量。
在一些实施例中,第一确定模块,还用于:
从所述第一数据服务器中查找所述对象数据文件中包括的各个关键字,将不存在于所述第一数据服务器的关键字确定为无效关键字;
当所述对象数据文件中包括的关键字也存在于所述第一数据服务器中时,获取所述关键字对应的数据值的属性信息;
当所述属性信息表征所述第一数据服务器中存储的是所述关键字对应的数据值本身时,将所述关键字确定为无效关键字。
在一些实施例中,碎片整理模块,还用于:
从所述待回收处理文件的数据区删除所述无效关键字对应的数据值;
从所述待回收处理文件的索引区中删除所述无效关键字的索引信息,得到回收处理后的文件。
在一些实施例中,该装置还包括:
第三获取模块,用于在确定达到预设的定期碎片回收时机时,获取所述对象数据文件中包括的各个关键字,并从所述各个关键字中确定无效关键字;
数据值删除模块,用于从所述对象数据文件的数据区删除所述无效关键字对应的数据值;
索引删除模块,用于从所述对象数据文件的索引区中删除所述无效关键字的索引信息。
在一些实施例中,该装置还包括:
第一接收模块,用于接收终端发送的读数据请求,所述读数据请求中携带有待读取数据的待读取关键字;
第四获取模块,用于当所述第一数据服务器中存储有所述待读取关键字时,获取所述待读取关键字对应的数据值的属性信息;
反序列化模块,用于当所述属性信息表征所述第一数据服务器中存储的是待读取数据值在所述第二数据服务器中的存储位置信息对应的位置值时,对所述位置值进行反序列化处理,得到所述存储位置信息;
第五获取模块,用于基于所述存储位置信息,从所述第二数据服务器中,获取所述待读取数据值;
第一发送模块,用于将所述待读取数据值发送至所述终端。
在一些实施例中,该装置还包括:
第二发送模块,用于当所述属性信息表征所述第一数据服务器中存储的是待读取数据值本身时,将所述待读取数据值发送至所述终端。
在一些实施例中,该装置还包括:
第二接收模块,用于接收终端发送的写数据请求,所述写数据请求中携带有待写入数据;
数据写入模块,用于将所述待写入数据写入到所述第一数据服务器中,并将待写入数据复制到N个作为从副本的第三数据服务器中,N为正整数;
第三发送模块,用于当确定待写入数据成功写入所述第一数据服务器,且至少成功写入到N/2个作为从副本的第三数据服务器中,向终端发送写入成功的通知消息。
本申请实施例提供了一种计算机程序产品,该计算机程序产品包括计算机程序或计算机可执行指令,该计算机程序或计算机可执行指令存储在计算机可读存储介质中。电子设备的处理器从计算机可读存储介质读取该计算机可执行指令,处理器执行该计算机可执行指令,使得该电子设备执行本申请实施例上述的数据处理方法。
本申请实施例提供一种存储有计算机可执行指令的计算机可读存储介质,其中存储有计算机可执行指令或者计算机程序,当计算机可执行指令或者计算机程序被处理器执行时,将引起处理器执行本申请实施例提供的数据处理方法,例如,如图3A示出的数据处理方法。
在一些实施例中,计算机可读存储介质可以是RAM、ROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
在一些实施例中,计算机可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
作为示例,计算机可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(Hyper TextMarkup Language,HTML)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
作为示例,计算机可执行指令可被部署为在一个电子设备上执行,或者在位于一个地点的多个电子设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个电子设备上执行。
综上所述,通过本申请实施例,在用于存储热数据的第一数据服务器中,将冷数据和热数据进行分层存储,也即第一数据服务器中,存储有热数据的键值对,以及冷数据的关键字以及数据值在第二数据服务器中的存储位置信息的位置值,如此不仅能够保证可用性和数据可靠性的前提下,降低存储成本,并且在读数据时能够避免业务空读,从而能够提高数据读取效率。
以上所述,仅为本申请的实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本申请的保护范围之内。

Claims (13)

1.一种数据处理方法,其特征在于,应用于存储系统,所述存储系统至少包括第一数据服务器和第二数据服务器,所述方法包括:
从所述第一数据服务器中获取多个待处理数据,所述待处理数据包括待处理关键字和所述待处理关键字对应的待处理数据值;
基于所述多个待处理数据,生成至少一个对象数据文件,所述对象数据文件中至少包括所述待处理数据和所述待处理数据值在第二数据服务器中的存储位置信息,所述第二数据服务器用于存储访问频率低于预设的频率阈值且重要程度值小于预设的重要程度阈值的数据;
将所述至少一个对象数据文件存储至所述第二数据服务器;
对所述待处理关键字增加异步锁;获取所述第一数据服务器中所述待处理关键字的第一序列号,并获取所述第二数据服务器中所述待处理关键字的第二序列号;当所述第一序列号与所述第二序列号相同时,将所述第一数据服务器中所述待处理关键字对应的待处理数据值更新为所述存储位置信息对应的位置值。
2.根据权利要求1中所述的方法,其特征在于,所述基于所述多个待处理数据,生成至少一个对象数据文件,包括:
将所述多个待处理数据添加至待处理数据队列;
从所述待处理数据队列中确定构成对象数据文件的至少一个待处理数据;
利用聚合器对所述至少一个待处理数据进行聚合处理,生成对象数据文件,所述对象数据文件包括头部区、索引区、数据区和尾部区,所述头部区用于存储对象数据文件的属性信息,所述索引区用于存储待处理数据在第二数据服务器的存储位置信息,所述数据区用于存储待处理数据值,所述尾部区至少用于存储第二数据服务器的设备标识。
3.根据权利要求1至2中任一项所述的方法,其特征在于,所述方法还包括:
确定所述第二数据服务器中各个对象数据文件的总容量和无效数据容量;
基于所述各个对象数据文件的总容量和无效数据容量,确定所述各个对象数据文件的碎片率;
将碎片率大于预设的碎片率阈值的对象数据文件确定为待回收处理文件;
对所述待回收处理文件进行碎片整理,得到回收处理后的文件。
4.根据权利要求3中所述的方法,其特征在于,所述确定所述第二数据服务器中各个对象数据文件的总容量和无效容量,包括:
对所述第二数据服务器中的每个对象数据文件执行以下操作:
从对象数据文件的属性信息中,获取所述对象数据文件的总容量;
获取所述对象数据文件中包括的各个关键字,并从所述各个关键字中确定无效关键字;
确定所述对象数据文件中包括的无效关键字的第一个数,基于所述第一个数和预设的数据值占用空间大小,确定所述对象数据文件的无效数据容量。
5.根据权利要求4中所述的方法,其特征在于,所述从所述各个关键字中确定无效关键字,包括:
从所述第一数据服务器中查找所述对象数据文件中包括的各个关键字,将不存在于所述第一数据服务器的关键字确定为无效关键字;
当所述对象数据文件中包括的关键字也存在于所述第一数据服务器中时,获取所述关键字对应的数据值的属性信息;
当所述属性信息表征所述第一数据服务器中存储的是所述关键字对应的数据值本身时,将所述关键字确定为无效关键字。
6.根据权利要求4中所述的方法,其特征在于,所述对所述待回收处理文件进行碎片整理,得到回收处理后的文件,包括:
从所述待回收处理文件的数据区删除所述无效关键字对应的数据值;
从所述待回收处理文件的索引区中删除所述无效关键字的索引信息,得到回收处理后的文件。
7.根据权利要求1至2任一项所述的方法,其特征在于,所述方法还包括:
在确定达到预设的定期碎片回收时机时,对所述第二数据服务器中每个对象数据文件执行以下操作:
获取所述对象数据文件中包括的各个关键字,并从所述各个关键字中确定无效关键字;
从所述对象数据文件的数据区删除所述无效关键字对应的数据值;
从所述对象数据文件的索引区中删除所述无效关键字的索引信息。
8.根据权利要求1至2任一项所述的方法,其特征在于,所述方法还包括:
接收终端发送的读数据请求,所述读数据请求中携带有待读取数据的待读取关键字;
当确定所述第一数据服务器中存储有所述待读取关键字时,获取所述待读取关键字对应的数据值的属性信息;
当所述属性信息表征所述第一数据服务器中存储的是待读取数据值在所述第二数据服务器中的存储位置信息对应的位置值时,对所述位置值进行反序列化处理,得到所述存储位置信息;
基于所述存储位置信息,从所述第二数据服务器中获取所述待读取数据值;
将所述待读取数据值发送至所述终端。
9.根据权利要求8中所述的方法,其特征在于,所述方法还包括:
当所述属性信息表征所述第一数据服务器中存储的是待读取数据值本身时,将所述待读取数据值发送至所述终端。
10.根据权利要求1至2任一项所述的方法,其特征在于,所述方法还包括:
接收终端发送的写数据请求,所述写数据请求中携带有待写入数据;
将所述待写入数据写入到所述第一数据服务器中,并将待写入数据复制到N个作为从副本的第三数据服务器中,N为正整数;
当确定待写入数据成功写入所述第一数据服务器,且至少成功写入到N/2个作为从副本的第三数据服务器中,向终端发送写入成功的通知消息。
11.一种数据处理装置,其特征在于,所述装置包括:
第一获取模块,用于从第一数据服务器中获取多个待处理数据,所述待处理数据包括待处理关键字和所述待处理关键字对应的待处理数据值;
文件生成模块,用于基于所述多个待处理数据,生成至少一个对象数据文件,所述对象数据文件中至少包括所述待处理数据和所述待处理数据在第二数据服务器中的存储位置信息,所述第二数据服务器用于存储访问频率低于预设的频率阈值且重要程度值小于预设的重要程度阈值的数据;
第一存储模块,用于将所述至少一个对象数据文件存储至所述第二数据服务器;
数据更新模块,用于对所述待处理关键字增加异步锁;获取所述第一数据服务器中所述待处理关键字的第一序列号,并获取所述第二数据服务器中所述待处理关键字的第二序列号;当所述第一序列号与所述第二序列号相同时,将所述第一数据服务器中所述待处理关键字对应的待处理数据值更新为所述存储位置信息对应的位置值。
12.一种存储系统,其特征在于,所述存储系统至少包括:第一数据服务器和第二数据服务器,所述第二数据服务器用于存储访问频率低于预设的频率阈值且重要程度值小于预设的重要程度阈值的数据;
所述第一数据服务器包括第一存储器和第一处理器,所述第二数据服务器包括第二存储器和第二处理器,所述第一存储器和所述第二存储器,用于存储计算机可执行指令;所述第一处理器和所述第二处理器用于执行所述计算机可执行指令时,实现权利要求1至10任一项所述的方法。
13.一种计算机可读存储介质,存储有计算机可执行指令或者计算机程序,其特征在于,所述计算机可执行指令或者计算机程序被处理器执行时实现权利要求1至10任一项所述的方法。
CN202311166312.5A 2023-09-11 2023-09-11 数据处理方法、装置、存储系统及计算机可读存储介质 Active CN116909490B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311166312.5A CN116909490B (zh) 2023-09-11 2023-09-11 数据处理方法、装置、存储系统及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311166312.5A CN116909490B (zh) 2023-09-11 2023-09-11 数据处理方法、装置、存储系统及计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN116909490A CN116909490A (zh) 2023-10-20
CN116909490B true CN116909490B (zh) 2024-01-05

Family

ID=88360631

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311166312.5A Active CN116909490B (zh) 2023-09-11 2023-09-11 数据处理方法、装置、存储系统及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN116909490B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106202548A (zh) * 2016-07-25 2016-12-07 网易(杭州)网络有限公司 数据存储方法、查找方法及装置
CN111309732A (zh) * 2020-02-19 2020-06-19 杭州朗和科技有限公司 数据处理方法、装置、介质和计算设备
CN111443867A (zh) * 2020-03-24 2020-07-24 腾讯科技(深圳)有限公司 一种数据存储方法、装置、设备及存储介质
CN113806300A (zh) * 2021-09-23 2021-12-17 北京百度网讯科技有限公司 数据存储方法、系统、装置、设备及存储介质
WO2022267508A1 (zh) * 2021-06-25 2022-12-29 华为技术有限公司 元数据压缩方法及装置
CN115857801A (zh) * 2022-11-23 2023-03-28 北京天融信网络安全技术有限公司 一种数据迁移方法、装置、电子设备及存储介质
CN116594562A (zh) * 2023-05-18 2023-08-15 深信服科技股份有限公司 一种数据处理方法及装置、设备、存储介质

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106202548A (zh) * 2016-07-25 2016-12-07 网易(杭州)网络有限公司 数据存储方法、查找方法及装置
CN111309732A (zh) * 2020-02-19 2020-06-19 杭州朗和科技有限公司 数据处理方法、装置、介质和计算设备
CN111443867A (zh) * 2020-03-24 2020-07-24 腾讯科技(深圳)有限公司 一种数据存储方法、装置、设备及存储介质
WO2022267508A1 (zh) * 2021-06-25 2022-12-29 华为技术有限公司 元数据压缩方法及装置
CN113806300A (zh) * 2021-09-23 2021-12-17 北京百度网讯科技有限公司 数据存储方法、系统、装置、设备及存储介质
CN115857801A (zh) * 2022-11-23 2023-03-28 北京天融信网络安全技术有限公司 一种数据迁移方法、装置、电子设备及存储介质
CN116594562A (zh) * 2023-05-18 2023-08-15 深信服科技股份有限公司 一种数据处理方法及装置、设备、存储介质

Also Published As

Publication number Publication date
CN116909490A (zh) 2023-10-20

Similar Documents

Publication Publication Date Title
US10248356B2 (en) Using scratch extents to facilitate copying operations in an append-only storage system
KR101771246B1 (ko) 분산 데이터 시스템들을 위한 전 시스템에 미치는 체크포인트 회피
KR101914019B1 (ko) 분산 데이터베이스 시스템들을 위한 고속 장애 복구
KR101926674B1 (ko) 로그 레코드 관리
US8250033B1 (en) Replication of a data set using differential snapshots
JP5007350B2 (ja) ハードウェアベースのファイルシステムのための装置および方法
US8904137B1 (en) Deduplication system space recycling through inode manipulation
JP5485866B2 (ja) 情報管理方法、及び情報提供用計算機
US7844643B2 (en) Storage management system with integrated continuous data protection and remote copy
US10725666B2 (en) Memory-based on-demand data page generation
US10296518B2 (en) Managing distributed deletes in a replicated storage system
WO2017041654A1 (zh) 用于分布式存储系统的写入数据、获取数据的方法和设备
US11093387B1 (en) Garbage collection based on transmission object models
JP2006236328A (ja) ファイルシステムアイテムおよび関連エンティティのシリアライゼーション
US9619322B2 (en) Erasure-coding extents in an append-only storage system
CN113220729B (zh) 数据存储方法、装置、电子设备及计算机可读存储介质
CN106528338B (zh) 一种远程数据复制方法、存储设备及存储系统
CN112334891B (zh) 用于搜索服务器的集中式存储
CN113568582A (zh) 数据管理方法、装置和存储设备
Zhai et al. Hadoop perfect file: A fast and memory-efficient metadata access archive file to face small files problem in hdfs
CN111309799A (zh) 数据合并的实现方法、装置、系统及存储介质
CN116909490B (zh) 数据处理方法、装置、存储系统及计算机可读存储介质
CN111930684A (zh) 基于hdfs的小文件处理方法、装置、设备及存储介质
CN112262378A (zh) 脱水文件的层级的水合
CN115509440A (zh) 存储系统及数据处理方法

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