数据存储方法及系统、存储介质、电子设备与流程
- 国知局
- 2024-09-11 14:21:15
本技术实施例涉及计算机领域,具体而言,涉及一种数据存储方法及系统、存储介质、电子设备。
背景技术:
1、随着互联网的发展,云存储的应用越来越广泛。云存储的一种实现方式是通过增加硬盘数量来提升存储系统的读写能力。但是,随着硬盘数量的增加,存储系统的成本和复杂度也会增加。
2、在云存储的另一种实现方式中,是通过增加磁盘的存储容量来提升存储系统的读写能力。但是,随着磁盘的存储容量的增加,存储系统的成本和复杂度也会增加,数据存储的效率也会降低。因此,如何在不增加存储系统成本和复杂度的前提下,提升存储系统的读写性能,是一个亟待解决的问题。
技术实现思路
1、本技术实施例提供了一种数据存储方法及系统、存储介质、电子设备,以至少解决由于相关技术中数据存储方法存在的数据存储效率低的技术问题。
2、根据本技术实施例的一个方面,提供了一种数据存储方法,包括:应用于数据存储系统,数据存储系统至少包括连接的数据缓存服务和数据处理服务,方法包括:数据缓存服务将接收的第一数据块写入第一写缓存中,其中,第一写缓存是与第一对象对应的缓存,第一数据块中包括第一数据和第一元数据,第一数据是第一对象产生的待存储的数据;数据缓存服务将第一写缓存中的第一元数据与一个或多个第二元数据进行合并,得到的第一目标元数据,其中,第二元数据对应的第二数据是第一对象产生的待存储的数据,第一写缓存中包括第一目标元数据、第一数据和一个或多个第二数据组成的第一目标数据;数据处理服务将第一写缓存中的数据与一个或多个第二写缓存中的数据聚合至目标队列中,其中,第二写缓存中包括第二对象的第二目标数据和第二目标元数据,第一写缓存与第二写缓存归属于同一数据组;数据处理服务将目标队列中的数据存储至目标磁盘中。
3、可选地,数据缓存服务中包括多个数据缓存线程,数据缓存服务将从客户端接收的第一数据块写入第一写缓存中,包括:第一数据缓存线程接收客户端发送的第一数据块,其中,第一数据缓存线程是数据缓存服务从多个数据缓存线程中分配给第一对象的缓存线程;第一数据缓存线程将第一数据块写入第一写缓存中,其中,第一写缓存是数据缓存服务分配给第一数据缓存线程的写缓存;或者,数据缓存服务创建第一缓存实例,得到第一写缓存,并将第一写缓存分配给第一数据缓存线程,第一缓存线程将第一数据块写入第一写缓存中。
4、可选地,数据缓存服务中包括多个数据缓存线程,数据缓存服务将第一写缓存中的第一元数据与一个或多个第二元数据进行合并,得到的第一目标元数据,包括:第一数据缓存线程按照第一预设时间周期或者第一写缓存中的数据量,从第一写缓存中提取第一元数据与一个或多个第二元数据,其中,第一数据缓存线程是数据缓存服务从多个数据缓存线程中分配给第一对象的缓存线程;第一数据缓存线程通过执行以下操作至少之一,合并第一元数据与一个或多个第二元数据:拼接第一元数据和一个或多个第二元数据,取第一元数据和一个或多个第二元数据之间的并集。
5、可选地,数据缓存服务中包括多个数据缓存线程,数据处理服务中包括多个数据处理线程,数据处理服务将第一写缓存中的数据与一个或多个第二写缓存中的数据聚合至目标队列中,包括:第一数据缓存线程按照预设顺序将第一写缓存中的数据存储至第一队列中,其中,第一数据缓存线程是数据缓存服务从多个数据缓存线程中分配给第一对象的缓存线程;第一数据缓存线程将第一队列发送至第一数据处理线程,其中,第一数据处理线程是多个数据处理线程中处于空闲状态的处理线程和/或与数据缓存服务中的第一数据缓存线对应的处理线程;第一数据处理线程查找与第一队列同属于一个数据组的一个或多个第二队列,其中,第二队列中包括第二数据缓存线程按照预设顺序存储至第二写缓存中的数据,第二数据缓存线程是数据缓存服务从多个数据缓存线程中分配给第二对象的缓存线程;第一数据处理线程通过执行以下操作至少之一,聚合第一队列中的数据与一个或多个第二队列中的数据,得到目标队列:拼接第一队列中的数据与一个或多个第二队列中的数据,取第一队列中的数据与一个或多个第二队列中的数据之间的并集。
6、可选地,数据处理服务中包括多个数据处理线程,数据处理服务将目标队列中的数据存储至目标磁盘中,包括:第一数据处理线程按照第二预设时间周期或者在目标队列中的数据量大于预设数据量的情况下,将目标队列中的数据按照目标数据量划分为多个子任务,并将多个子任务发送至第一数据存储线程,其中,第一数据处理线程是多个数据处理线程中处于空闲状态的处理线程和/或与数据缓存服务中的第一数据缓存线对应的处理线程,第一数据存储线程是目标磁盘中的线程;第一数据存储线程将多个子任务并行存储至目标磁盘中。
7、可选地,第一数据存储线程将多个子任务并行存储至目标磁盘中之后,方法还包括:第一数据存储线程将写缓存响应消息发送至第一数据处理线程,其中,写缓存响应消息用于表示多个子任务均已存储至目标磁盘中;第一数据处理线程将写缓存响应消息发送至数据缓存服务;数据缓存服务清空目标队列,并将目标队列中的目标元数据更新至元数据读缓存中。
8、可选地,数据缓存服务中包括多个数据缓存线程,数据处理服务将目标队列中的数据存储至目标磁盘中之后,方法还包括:第一数据缓存线程接收读数据请求,其中,读数据请求中包括待读取数据的目标元数据,第一数据缓存线程是数据缓存服务从多个数据缓存线程中分配给第一对象的缓存线程;第一数据缓存线程响应读数据请求,在从数据缓存服务中包括的多个写缓存中查找到目标写缓存的情况下,从目标写缓存中读取与目标元数据匹配的目标数据,其中,目标写缓存中包括目标元数据和目标数据;或者,第一数据缓存线程响应读数据请求,在从数据缓存服务中包括的多个写缓存中未查找到与目标元数据匹配的写缓存情况下,从元数据读缓存中查找目标元数据;第一数据缓存线程在从元数据读缓存中查找目标元数据的情况下,从目标磁盘中读取与目标元数据匹配的目标数据;或者,第一数据缓存线程响应读数据请求,在从数据缓存服务中包括的多个写缓存中未查找到与目标元数据匹配的写缓存,且未从元数据读缓存中查找到目标元数据的情况下,将读数据请求发送至数据处理服务;数据处理服务响应读数据请求,在从目标磁盘中查找目标元数据的情况下,从目标磁盘中读取与目标元数据匹配的目标数据;或者,第一数据缓存线程响应读数据请求,在从数据缓存服务中包括的多个写缓存中未查找到与目标元数据匹配的写缓存,且未从元数据读缓存中查找到目标元数据的情况下,将读数据请求发送至数据处理服务;数据处理服务响应读数据请求,在从目标磁盘中查找目标元数据的情况下,从目标磁盘中读取与目标元数据匹配的目标数据。
9、根据本技术实施例的另一个方面,还提供了一种数据存储系统,包括:数据缓存服务和数据处理服务,其中,数据缓存服务至少包括连接的数据缓存服务和数据处理服务,其中,数据缓存服务,用于将接收的第一数据块写入第一写缓存中,其中,第一写缓存是与第一对象对应的缓存,第一数据块中包括第一数据和第一元数据,第一数据是第一对象产生的待存储的数据;数据缓存服务,用于将第一写缓存中的第一元数据与第一元数据对应的第二元数据进行合并,得到的第一目标元数据,其中,第二元数据对应的第二数据是第一对象产生的待存储的第一数据,第一写缓存中包括第一目标元数据、第一数据和一个或多个第二数据组成的第一目标数据;数据处理服务,用于将第一写缓存中的数据与第一对象产生的第一对象对应的第二元数据和一个或多个第二对象对应的第二元数据聚合至目标队列中,其中,第一写缓存与第一对象对应的第二二元数据归属于同一数据组;数据处理服务,用于将目标队列中的数据存储至目标磁盘中。
10、根据本技术的又一个实施例,还提供了一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现上述任一项方法实施例中的步骤。
11、根据本技术的又一个实施例,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
12、根据本技术的又一个实施例,还提供了一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。
13、通过本技术,由于数据存储系统中的数据缓存服务将第一数据块写入第一写缓存中,并将第一写缓存中的第一元数据与一个或多个第二元数据进行合并,得到的第一目标元数据,合并之后数据处理服务将第一写缓存中的数据与一个或多个第二写缓存中的数据聚合至目标队列中,数据处理服务将目标队列中的数据存储至目标磁盘中。从而实现了聚合数据写入的的目的,减少了数据写入磁盘的次数,提高了数据存储的性能。因此,可以解决相关技术中数据存储方法存在的数据存储效率低的技术问题,达到提高数据存储效率的效果。
本文地址:https://www.jishuxx.com/zhuanli/20240911/290358.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。