CN110413568A - 一种数据复用方法、装置、电子设备及存储介质 - Google Patents

一种数据复用方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN110413568A
CN110413568A CN201910695998.4A CN201910695998A CN110413568A CN 110413568 A CN110413568 A CN 110413568A CN 201910695998 A CN201910695998 A CN 201910695998A CN 110413568 A CN110413568 A CN 110413568A
Authority
CN
China
Prior art keywords
data
module
write
presently written
file
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
Application number
CN201910695998.4A
Other languages
English (en)
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.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology 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 Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN201910695998.4A priority Critical patent/CN110413568A/zh
Publication of CN110413568A publication Critical patent/CN110413568A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • G06F16/122File system administration, e.g. details of archiving or snapshots using management policies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • G06F16/134Distributed indices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/172Caching, prefetching or hoarding of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1805Append-only file systems, e.g. using logs or journals to store data
    • G06F16/1815Journaling file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1824Distributed file systems implemented using Network-attached Storage [NAS] architecture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1847File system types specifically adapted to static storage, e.g. adapted to flash memory or SSD

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例公开了一种数据复用方法、装置、电子设备及存储介质。所述方法包括:通过同步日志模块存储用户发送的写入请求;其中,写入请求中包括:当前写入数据和当前写入数据的编号;将当前写入数据存储到存储引擎模块的当前数据文件中,并为当前数据文件硬链出与其对应的当前影子文件;根据当前写入数据的编号和当前影子文件在同步日志模块中建立当前写入数据的第一索引信息;当前写入数据提交之后在存储引擎模块中为当前写入数据建立第二索引信息。本发明实施例可以实现同步日志模块和存储引擎模块复用一份数据,同等的每秒写入QPS下降低磁盘写入压力,提升分布式存储系统的写入性能,延长存储设备的使用寿命。

Description

一种数据复用方法、装置、电子设备及存储介质
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种数据复用方法、装置、电子设备及存储介质。
背景技术
分布式存储系统,是将数据分散存储在多台独立的设备上。传统的网络存储系统采用集中的存储服务器存放所有数据,存储服务器成为系统性能的瓶颈,也是可靠性和安全性的焦点,不能满足大规模存储应用的需要。分布式网络存储系统采用可扩展的系统结构,利用多台存储服务器分担存储负荷,利用位置服务器定位存储信息,它不但提高了系统的可靠性、可用性和存取效率,还易于扩展。
分布式存储系统中通常涉及到同步日志模块和存储引擎模块,同步日志模块用于保证多副本数据的一致性,而存储引擎模块则提供副本数据的持久化存储及读写服务。目前大部分的分布式存储系统,同步日志模块和存储引擎模块是单独分开存储的,写入请求需要分别发送至同步日志模块和存储引擎模块,数据需要进行两次磁盘IO,导致较大数据量的场景下,磁盘IO往往成为整个分布式存储系统的瓶颈,同时持续较大的落盘压力会严重影响磁盘寿命。
为了解决两次磁盘IO问题,部分产品采用把写入数据缓存在内存的方式,只保留最新固定条目的写入数据,如果从副本请求的写入数据不在缓存中,则重新触发一次全量同步。通过把写入数据缓存在内存的方式,可以解决读写请求数据两次磁盘IO问题,但相应的也带来更大的内存开销。同时如果遇到主从副本网络分区、从副本机器宕机等异常情况下很大概率需要触发一次全量同步来保证主从之间数据一致,额外带来了网络带宽开销。
发明内容
有鉴于此,本发明实施例提供一种数据复用方法、装置、电子设备及存储介质,可以实现同步日志模块和存储引擎模块复用一份数据,同等的每秒写入QPS下降低磁盘写入压力,提升分布式存储系统的写入性能,延长存储设备的使用寿命。
第一方面,本发明实施例提供了一种数据复用方法,所述方法包括:
通过同步日志模块存储用户发送的写入请求;其中,所述写入请求中包括:当前写入数据和所述当前写入数据的编号;
将所述当前写入数据存储到存储引擎模块的当前数据文件中,并为所述当前数据文件硬链出与其对应的当前影子文件;
根据所述当前写入数据的编号和所述当前影子文件在所述同步日志模块中建立所述当前写入数据的第一索引信息;其中,第一索引信息用于根据所述当前写入数据的编号读取所述当前写入数据;
所述当前写入数据提交之后在所述存储引擎模块中为所述当前写入数据建立第二索引信息;其中,所述第二索引信息用于提供所述当前写入数据的查询服务。
在上述实施例中,所述方法还包括:
根据所述存储引擎模块中预先确定的各个历史写入数据的版本信息和预先获取的内存查找表,判断各个历史写入数据是否为有效的写入数据;
若各个历史写入数据为有效的写入数据,将各个历史写入数据和各个历史写入数据的第二索引信息,从所述存储引擎模块的原目录下切换到所述存储引擎模块的目标目录下。
在上述实施例中,所述将各个历史写入数据和各个历史写入数据的第二索引信息,从所述存储引擎模块的原目录下切换到所述存储引擎模块的目标目录下,包括:
若各个历史写入数据为已提交的写入数据,在所述存储引擎模块的目标目录下存储各个历史写入数据和各个历史写入数据的第二索引信息;在所述存储引擎模块的原目录下删除各个历史写入数据和各个历史写入数据的第二索引信息;
若各个历史写入数据为未提交的写入数据,在所述存储引擎模块的目标目录下硬链接原目录下的各个历史数据文件,同时更新各个影子文件与各个历史数据文件的映射关系。
在上述实施例中,所述方法还包括:
通过同步日志模块存储所述用户发送的读取请求;其中,所述读取请求中包括:所述当前写入数据的编号;
根据所述当前写入数据的编号,在所述同步日志模块中获取所述当前写入数据的第一索引信息;
根据所述当前写入数据的第一索引信息,确定出所述当前写入数据在所述存储引擎模块中的影子文件名称及相应的偏移和长度;
根据所述影子文件名称及相应的偏移和长度在所述存储引擎模块中读取所述当前写入数据。
在上述实施例中,所述第一索引信息包括至少一个起始编号start_id;各个start_id包括至少一个日志文件di_file;各个di_file包括至少一个日志项di_entry和全部di_entry的日志项索引index;各个di_entry包括:标记magic_num、类型type、日志项数据data、校验值crc;所述data包括:请求头和索引信息;所述索引信息包括:影子文件名称、偏移量和长度;所述第二索引信息包括:至少一个存储单元;各个存储单元包括:原目录和目标目录;所述原目录和所述目标目录分别包括:0-64个索引校验indexcrc;0-64个索引index;0-63个数据data;各个data对应设置一个影子文件;所述影子文件包括:影子文件名称filename、偏移offset和长度len。
第二方面,本发明实施例提供了一种数据复用装置,所述装置包括:第一存储模块、第二存储模块、第一建立模块和第二建立模块;其中,
所述第一存储模块,用于通过同步日志模块存储用户发送的写入请求;其中,所述写入请求中包括:当前写入数据和所述当前写入数据的编号;
所述第二存储模块,用于将所述当前写入数据存储到存储引擎模块的当前数据文件中,并为所述当前数据文件硬链出与其对应的当前影子文件;
所述第一建立模块,用于根据所述当前写入数据的编号和所述当前影子文件在所述同步日志模块中建立所述当前写入数据的第一索引信息;其中,第一索引信息用于根据所述当前写入数据的编号读取所述当前写入数据;
所述第二建立模块,用于所述当前写入数据提交之后在所述存储引擎模块中为所述当前写入数据建立第二索引信息;其中,所述第二索引信息用于提供所述当前写入数据的查询服务。
在上述实施例中,所述装置还包括:切换模块,用于根据所述存储引擎模块中预先确定的各个历史写入数据的版本信息和预先获取的内存查找表,判断各个历史写入数据是否为有效的写入数据;若各个历史写入数据为有效的写入数据,将各个历史写入数据和各个历史写入数据的第二索引信息,从所述存储引擎模块的原目录下切换到所述存储引擎模块的目标目录下。
在上述实施例中,所述切换模块,具体用于若各个历史写入数据为已提交的写入数据,在所述存储引擎模块的目标目录下存储各个历史写入数据和各个历史写入数据的第二索引信息;在所述存储引擎模块的原目录下删除各个历史写入数据和各个历史写入数据的第二索引信息;若各个历史写入数据为未提交的写入数据,在所述存储引擎模块的目标目录下硬链接原目录下的各个历史数据文件,同时更新各个影子文件与各个历史数据文件的映射关系。
在上述实施例中,所述装置还包括:第一读取模块和第二读取模块;其中,
所述第一存储模块,用于通过同步日志模块存储所述用户发送的读取请求;其中,所述读取请求中包括:所述当前写入数据的编号;
所述第一读取模块,用于根据所述当前写入数据的编号,在所述同步日志模块中获取所述当前写入数据的第一索引信息;根据所述当前写入数据的第一索引信息,确定出所述当前写入数据在所述存储引擎模块中的影子文件名称及相应的偏移和长度;
所述第二读取模块,用于根据所述影子文件名称及相应的偏移和长度在所述存储引擎模块中读取所述当前写入数据。
在上述实施例中,所述第一索引信息包括至少一个起始编号start_id;各个start_id包括至少一个日志文件di_file;各个di_file包括至少一个日志项di_entry和全部di_entry的日志项索引index;各个di_entry包括:标记magic_num、类型type、日志项数据data、校验值crc;所述data包括:请求头和索引信息;所述索引信息包括:影子文件名称、偏移量和长度;所述第二索引信息包括:至少一个存储单元;各个存储单元包括:原目录和目标目录;所述原目录和所述目标目录分别包括:0-64个索引校验indexcrc;0-64个索引index;0-63个数据data;各个data对应设置一个影子文件;所述影子文件包括:影子文件名称filename、偏移offset和长度len。
第三方面,本发明实施例提供了一种电子设备,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明任意实施例所述的数据复用方法。
第四方面,本发明实施例提供了一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明任意实施例所述的数据复用方法。
本发明实施例提出了一种数据复用方法、装置、电子设备及存储介质,先通过同步日志模块存储用户发送的写入请求;然后将当前写入数据存储到存储引擎模块的当前数据文件中,并为当前数据文件硬链出与其对应的当前影子文件;再根据当前写入数据的编号和当前影子文件在同步日志模块中建立当前写入数据的第一索引信息;当前写入数据提交之后在存储引擎模块中为当前写入数据建立第二索引信息。也就是说,在本发明的技术方案中,同步日志模块和存储引擎模块可以复用一份数据;同步日志模块保存第一索引信息,用于根据当前写入数据的编号读取当前写入数据;存储引擎模块保存第二索引信息,用于提供当前写入数据的查询服务。而在现有的数据复用方法中,大部分的分布式存储系统,同步日志模块和存储引擎模块是单独分开存储的,写入请求需要分别发送至同步日志模块和存储引擎模块,数据需要进行两次磁盘IO,严重影响磁盘寿命;部分产品采用把写入数据缓存在内存的方式,只保留最新固定条目的写入数据,如果从副本请求的写入数据不在缓存中,则重新触发一次全量同步,导致内存开销增大。因此,和现有技术相比,本发明实施例提出的数据复用方法、装置、电子设备及存储介质,可以实现同步日志模块和存储引擎模块复用一份数据,同等的QPS下降低磁盘写入压力,提升分布式存储系统的写入性能,延长存储设备的使用寿命;并且,本发明实施例的技术方案实现简单方便、便于普及,适用范围更广。
附图说明
图1为本发明实施例一提供的数据复用方法的流程示意图;
图2为本发明实施例一提供的同步日志模块的结构示意图;
图3为本发明实施例一提供的日志文件的结构示意图;
图4为本发明实施例一提供的存储引擎模块的结构示意图;
图5为本发明实施例二提供的数据复用方法的流程示意图;
图6(a)为本发明实施例二提供的存储引擎模块在进行数据切换前的结构示意图;
图6(b)为本发明实施例二提供的存储引擎模块在进行数据切换后的结构示意图;
图7为本发明实施例三提供的数据复用装置的第一结构示意图;
图8为本发明实施例三提供的数据复用装置的第二结构示意图;
图9为本发明实施例四提供的电子设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。
实施例一
图1为本发明实施例一提供的数据复用方法的流程示意图,该方法可以由数据复用装置或者电子设备来执行,该装置或者电子设备可以由软件和/或硬件的方式实现,该装置或者电子设备可以集成在任何具有网络通信功能的智能设备中。如图1所示,数据复用方法可以包括以下步骤:
S101、通过同步日志模块存储用户发送的写入请求;其中,写入请求中包括:当前写入数据和当前写入数据的编号。
在本发明的具体实施例中,电子设备可以通过同步日志模块存储用户发送的写入请求;其中,写入请求中包括:当前写入数据和当前写入数据的编号。具体地,分布式存储系统可以包括多个电子设备,分别为:电子设备1、电子设备2、…电子设备N;其中,N为大于1的自然数。每个电子设备可以包括:同步日志模块和存储引擎模块;例如,电子设备1可以包括:同步日志模块1和存储引擎模块1;电子设备2可以包括:同步日志模块2和存储引擎模块2;…;电子设备N可以包括:同步日志模块N和存储引擎模块N。在本步骤中,用户可以向分布式存储系统中的任意一个电子设备的同步日志模块发送写入请求;该电子设备可以通过同步日志存储模块存储用户发送的写入请求;其中,写入请求中包括:当前写入数据和当前写入数据的编号。
S102、将当前写入数据存储到存储引擎模块的当前数据文件中,并为当前数据文件硬链出与其对应的当前影子文件。
在本发明的具体实施例中,电子设备可以将当前写入数据存储到存储引擎模块的当前数据文件中,并为当前数据文件硬链出与其对应的当前影子文件。具体地,在分布式存储系统中,电子设备可以在同步日志模块中建立第一索引信息;其中,第一索引信息包括至少一个start_id;各个start_id包括至少一个di_file;各个di_file包括至少一个di_entry和全部di_entry的index;各个di_entry包括:magic、type、data、crc;data包括:请求头和索引信息;索引信息包括:影子文件名称、偏移量和长度。电子设备还可以在存储引擎模块中建立第二索引信息;其中,第二索引信息包括:至少一个存储单元;各个存储单元包括:原目录和目标目录;原目录和目标目录分别包括:0-64个indexcrc;0-64个index;0-63个data;各个data对应设置一个影子文件。
图2为本发明实施例一提供的同步日志模块的结构示意图。如图2所示,同步日志模块可以包括Y个起始编码,分别为:起始编码1(start_id_1)、起始编码2(start_id_2)、…、起始编号Y(start_id_Y);其中,Y为大于等于1的自然数。在起始编号1中包括X个日志文件,分别为:日志文件1(di_file_1)、日志文件2(di_file_2)、日志文件3(di_file_3)、…日志文件X(di_file_X);其中,X为大于等于1的自然数。在起始编号2中包括X个日志文件,分别为:日志文件1(di_file_1)、日志文件2(di_file_2)、日志文件3(di_file_3)、…日志文件X(di_file_X);其中,X为大于等于1的自然数。以此类推。此外,同步日志模块还可以包括:日志索引表和文件映射;其中,日志索引表用于根据用户的写入请求查找与其对应的起始编号;文件映射用于保存文件与影子文件的对应关系。
S103、根据当前写入数据的编号和当前影子文件在同步日志模块中建立当前写入数据的第一索引信息;其中,第一索引信息用于根据当前写入数据的编号读取当前写入数据。
在本发明的具体实施例中,电子设备可以根据当前写入数据的编号和当前影子文件在同步日志模块中建立当前写入数据的第一索引信息;其中,第一索引信息用于根据当前写入数据的编号读取当前写入数据。
图3为本发明实施例一提供的日志文件的结构示意图。如图3所示,一个日志文件包括K个日志项和一个日志项索引;K个日志项分别为:日志项1、日志项2、…、日志项K;其中,K为大于等于1的自然数。各个日志项中包括:标志、类型、日志项数据和校验值;日志项数据包括:请求头和索引信息;索引信息包括:影子文件名称、偏移和长度。在同步日志模块中,起始编号1(start_id_1)、起始编号2(start_id_2)、…、起始编号Y(start_id_Y)的存储空间是可以预先设置的;日志文件1(di_file_1)、日志文件2(di_file_2)、日志文件3(di_file_3)、…、日志文件X(di_file_X)的存储空间也是可以预先设置的;日志项1、日志项2、…、日志项K的存储空间也是可以预先设置的。在本步骤中,电子设备可以根据当前写入数据的编号和当前影子文件中的当前影子文件名称filename、当前偏移offset和当前长度len,确定出当前写入数据对应的当前起始编码、当前文件和当前日志项,因此,电子设备可以根据当前起始编码、当前文件和当前日志项在同步日志模块中建立当前写入数据的第一索引信息。
S104、当前写入数据提交之后在存储引擎模块中为当前写入数据建立第二索引信息;其中,第二索引信息用于提供当前写入数据的查询服务。
在本发明的具体实施例中,电子设备可以等当前写入数据提交之后在存储引擎模块中为当前写入数据建立第二索引信息;其中,第二索引信息用于提供当前写入数据的查询服务。具体地,当前写入数据可以先存储到分布式存储系统中的一个电子设备的存储引擎模块上;此时的当前写入数据是未提交的写入数据;然后该电子设备的同步日志模块可以将当前写入数据同步到其他的电子设备的存储引擎模块上;此时的当前写入数据是已提交的写入数据。需要说明的是,当前写入数据被同步到其他的一个电子设备的存储引擎模块上时,可以将当前写入数据作为已提交的写入数据;或者,当前写入数据被同步到多个电子设备的存储引擎模块上时,可以将当前写入数据作为已提交的写入数据。这里并不限定当前写入数据被同步到其他的电子设备的存储引擎模块的个数。
图4为本发明实施例一提供的存储引擎模块的结构示意图。如图4所示,存储引擎模块可以包括P个分组,分别为:分组1、分组2、…分组P;其中,P为大于等于1的自然数。各个分组包括两个目录,分别为:原目录和目标目录。这里可以用第一目录标识upddir指向目标目录,第二目录标识curdir指向原目录,二者可以相同也可以不同。二者相同表示目前存储引擎模块没进行重写,如果二者不相同则表示存储引擎模块正在重写,存储引擎模块中的数据和第二索引信息正在从原目录搬移到目标目录。原目录和目标目录可以分别包括:indexcrc.0-indexcrc.64;index.0-index.64;data.0-data.63;各个data对应设置一个影子文件(shadow);各个影子文件包括:filename、offset和len。全部影子文件组合为一个shadow目录,该影子文件目录可以包括Q个影子文件,分别为:影子文件1、影子文件2、…影子文件Q;其中,Q为大于等于1的自然数。
本发明实施例提出的数据复用方法,先通过同步日志模块存储用户发送的写入请求;然后将当前写入数据存储到存储引擎模块的当前数据文件中,并为当前数据文件硬链出与其对应的当前影子文件;再根据当前写入数据的编号和当前影子文件在同步日志模块中建立当前写入数据的第一索引信息;当前写入数据提交之后在存储引擎模块中为当前写入数据建立第二索引信息。也就是说,在本发明的技术方案中,同步日志模块和存储引擎模块可以复用一份数据;同步日志模块保存第一索引信息,用于根据当前写入数据的编号读取当前写入数据;存储引擎模块保存第二索引信息,用于提供当前写入数据的查询服务。而在现有的数据复用方法中,大部分的分布式存储系统,同步日志模块和存储引擎模块是单独分开存储的,写入请求需要分别发送至同步日志模块和存储引擎模块,数据需要进行两次磁盘IO,严重影响磁盘寿命;部分产品采用把写入数据缓存在内存的方式,只保留最新固定条目的写入数据,如果从副本请求的写入数据不在缓存中,则重新触发一次全量同步,导致内存开销增大。因此,和现有技术相比,本发明实施例提出的数据复用方法,可以实现同步日志模块和存储引擎模块复用一份数据,同等的QPS下降低磁盘写入压力,提升分布式存储系统的写入性能,延长存储设备的使用寿命;并且,本发明实施例的技术方案实现简单方便、便于普及,适用范围更广。
实施例二
图5为本发明实施例二提供的数据复用方法的流程示意图。如图5所示,数据复用方法可以包括以下步骤:
S501、通过同步日志模块存储用户发送的写入请求;其中,写入请求中包括:当前写入数据和当前写入数据的编号。
在本发明的具体实施例中,电子设备可以通过同步日志模块存储用户发送的写入请求;其中,写入请求中包括:当前写入数据和当前写入数据的编号。具体地,分布式存储系统可以包括多个电子设备,分别为:电子设备1、电子设备2、…电子设备N;其中,N为大于1的自然数。每个电子设备可以包括:同步日志模块和存储引擎模块;例如,电子设备1可以包括:同步日志模块1和存储引擎模块1;电子设备2可以包括:同步日志模块2和存储引擎模块2;…;电子设备N可以包括:同步日志模块N和存储引擎模块N。在本步骤中,用户可以向分布式存储系统中的任意一个电子设备的同步日志模块发送写入请求;该电子设备可以通过同步日志存储模块存储用户发送的写入请求;其中,写入请求中包括:当前写入数据和当前写入数据的编号。
S502、将当前写入数据存储到存储引擎模块的当前数据文件中,并为当前数据文件硬链出与其对应的当前影子文件。
在本发明的具体实施例中,电子设备可以将当前写入数据存储到存储引擎模块的当前数据文件中,并为当前数据文件硬链出与其对应的当前影子文件。具体地,在分布式存储系统中,电子设备可以在同步日志模块中建立第一索引信息;其中,第一索引信息包括至少一个start_id;各个start_id包括至少一个di_file;各个di_file包括至少一个di_entry和全部di_entry的index;各个di_entry包括:magic、type、data、crc;data包括:请求头和索引信息;索引信息包括:影子文件名称、偏移量和长度。电子设备还可以在存储引擎模块中建立第二索引信息;其中,第二索引信息包括:至少一个存储单元;各个存储单元包括:原目录和目标目录;原目录和目标目录分别包括:0-64个indexcrc;0-64个index;0-63个data;各个data对应设置一个影子文件;影子文件包括:filename、offset和len。
S503、根据当前写入数据的编号和当前影子文件在同步日志模块中建立当前写入数据的第一索引信息;其中,第一索引信息用于根据当前写入数据的编号读取当前写入数据。
在本发明的具体实施例中,电子设备可以根据当前写入数据的编号和当前影子文件在同步日志模块中建立当前写入数据的第一索引信息;其中,第一索引信息用于根据当前写入数据的编号读取当前写入数据。
S504、当前写入数据提交之后在存储引擎模块中为当前写入数据建立第二索引信息;其中,第二索引信息用于提供当前写入数据的查询服务。
在本发明的具体实施例中,电子设备可以等当前写入数据提交之后在存储引擎模块中为当前写入数据建立第二索引信息;其中,第二索引信息用于提供当前写入数据的查询服务。具体地,当前写入数据可以先存储到分布式存储系统中的一个电子设备的存储引擎模块上;此时的当前写入数据是未提交的写入数据;然后该电子设备的同步日志模块可以将当前写入数据同步到其他的电子设备的存储引擎模块上;此时的当前写入数据是已提交的写入数据。
在本发明的具体实施例中,由于存储引擎模块中的数据都是基于追加写实现的,当有数据更新或数据删除时,历史的数据不做删除只是追加新数据。这样如果一个键值Key进行多次更新后,仅仅最近一次的数据是有效的,历史的数据成为垃圾数据,需要清理磁盘以释放磁盘空间,这个清理的过程被称为引擎的重写。本申请中重写的核心思想是把存储引擎模块中的数据从原目录搬移至目标目录,搬移过程中可以根据存储引擎模块中的各个历史写入数据的编号和预先获取的内存查找表,判断各个历史写入数据是否为有效的写入数据;若各个历史写入数据为有效的写入数据,将各个历史写入数据和各个历史写入数据的第二索引信息,从存储引擎模块的原目录下切换到存储引擎模块的目标目录下。若各个历史写入数据为无效的写入数据,直接在存储引擎模块的原目录下删除各个历史写入数据和各个历史写入数据的第二索引信息。具体地,若各个历史写入数据为有效的写入数据,电子设备可以判断各个历史写入数据为已提交的写入数据;若各个历史写入数据为已提交的写入数据,在存储引擎模块的目标目录下存储各个历史写入数据和各个历史写入数据的第二索引信息;在存储引擎模块的原目录下删除各个历史写入数据和各个历史写入数据的第二索引信息;若各个历史写入数据为未提交的写入数据,在存储引擎模块的目标目录下硬链接原目录下的各个历史数据文件,同时更新各个影子文件与各个历史数据文件的映射关系。
图6(a)为本发明实施例二提供的存储引擎模块在进行数据切换前的结构示意图。如图6(a)所示,存储引擎模块可以包括:数据0(data.0)-数据63(data.63);索引0(index.0)-索引64(index.64)。假设数据0(data.0)-数据60(data.60)为切换前的历史数据,数据61(data.61)和数据62(data.62)为切换前新写入未提交的数据;数据63(data.63)为切换前新写入已提交的数据。索引0(index.0)-索引63(index.63)为切换前的历史数据的索引;索引64(index.64)为切换前新写入的数据的索引。数据61(data.61)硬链到影子文件1中;数据62(data.62)硬链到影子文件0中。
图6(b)为本发明实施例二提供的存储引擎模块在进行数据切换后的结构示意图。如图6(b)所示,存储引擎模块可以包括:数据0(data.0)-数据63(data.63);索引0(index.0)-索引65(index.65)。假设数据0(data.0)-数据60(data.60)为切换后的历史数据,数据61(data.61)为切换后新写入的数据;数据62(data.62)和数据63(data.63)为切换后的硬链过来的数据;索引0(index.0)-索引63(index.63)为切换后历史数据的索引;索引64(index.64)为硬链过来的提交后的数据的索引;索引65(index.65)为切换后新写入数据的索引。数据62(data.62)硬链到影子文件1中;数据63(data.63)硬链到影子文件0中。
S505、通过同步日志模块存储用户发送的读取请求;其中,读取请求中包括:当前写入数据的编号。
在本发明的具体实施例中,电子设备可以通过同步日志模块存储用户发送的读取请求;其中,读取请求中包括:当前写入数据的编号。
S506、根据当前写入数据的编号,在同步日志模块中获取当前写入数据的第一索引信息。
在本发明的具体实施例中,电子设备可以根据当前写入数据的编号,在同步日志模块中获取当前写入数据的第一索引信息。具体地,电子设备可以在同步日志模块中确定出当前写入数据对应的当前起始编码、当前文件、当前日志项;然后在当前日志项中确定出当前写入数据对应的影子文件名称及相应偏移。
S507、根据当前写入数据的第一索引信息,确定出当前写入数据在存储引擎模块中的影子文件名称及相应偏移。
在本发明的具体实施例中,电子设备可以根据当前写入数据的第一索引信息,确定出当前写入数据在存储引擎模块中的影子文件名称及相应偏移。具体地,电子设备可以在同步日志模块中确定出当前写入数据对应的当前起始编码、当前文件、当前日志项;然后在当前日志项中确定出当前写入数据对应的影子文件名称及相应偏移。
S508、根据影子文件名称及相应偏移在存储引擎模块中读取当前写入数据。
在本发明的具体实施例中,电子设备可以根据影子文件名称及相应偏移在存储引擎模块中读取当前写入数据。具体地,电子设备可以根据当前日志项对应的索引信息,确定出影子文件名称、偏移和长度;然后根据影子文件名称及相应的偏移和长度在存储引擎模块中读取当前写入数据。
本发明实施例提出的数据复用方法,先通过同步日志模块存储用户发送的写入请求;然后将当前写入数据存储到存储引擎模块的当前数据文件中,并为当前数据文件硬链出与其对应的当前影子文件;再根据当前写入数据的编号和当前影子文件在同步日志模块中建立当前写入数据的第一索引信息;当前写入数据提交之后在存储引擎模块中为当前写入数据建立第二索引信息。也就是说,在本发明的技术方案中,同步日志模块和存储引擎模块可以复用一份数据;同步日志模块保存第一索引信息,用于根据当前写入数据的编号读取当前写入数据;存储引擎模块保存第二索引信息,用于提供当前写入数据的查询服务。而在现有的数据复用方法中,大部分的分布式存储系统,同步日志模块和存储引擎模块是单独分开存储的,写入请求需要分别发送至同步日志模块和存储引擎模块,数据需要进行两次磁盘IO,严重影响磁盘寿命;部分产品采用把写入数据缓存在内存的方式,只保留最新固定条目的写入数据,如果从副本请求的写入数据不在缓存中,则重新触发一次全量同步,导致内存开销增大。因此,和现有技术相比,本发明实施例提出的数据复用方法,可以实现同步日志模块和存储引擎模块复用一份数据,同等的QPS下降低磁盘写入压力,提升分布式存储系统的写入性能,延长存储设备的使用寿命;并且,本发明实施例的技术方案实现简单方便、便于普及,适用范围更广。
实施例三
图7为本发明实施例三提供的数据复用装置的第一结构示意图。如图7所示,本发明实施例所述的数据复用装置可以包括:第一存储模块701、第二存储模块702、第一建立模块703和第二建立模块704;其中,
所述第一存储模块701,用于通过同步日志模块存储用户发送的写入请求;其中,所述写入请求中包括:当前写入数据和所述当前写入数据的编号;
所述第二存储模块702,用于将所述当前写入数据存储到存储引擎模块的当前数据文件中,并为所述当前数据文件硬链出与其对应的当前影子文件;
所述第一建立模块703,用于根据所述当前写入数据的编号和所述当前影子文件在所述同步日志模块中建立所述当前写入数据的第一索引信息;其中,第一索引信息用于根据所述当前写入数据的编号读取所述当前写入数据;
所述第二建立模块704,用于所述当前写入数据提交之后在所述存储引擎模块中为所述当前写入数据建立第二索引信息;其中,所述第二索引信息用于提供所述当前写入数据的查询服务。
图8为本发明实施例三提供的数据复用装置的第二结构示意图。如图8所示,所述装置还包括:切换模块705,用于根据所述存储引擎模块中预先确定的各个历史写入数据的版本信息和预先获取的内存查找表,判断各个历史写入数据是否为有效的写入数据;若各个历史写入数据为有效的写入数据,将各个历史写入数据和各个历史写入数据的第二索引信息,从所述存储引擎模块的原目录下切换到所述存储引擎模块的目标目录下。
进一步的,所述切换模块705,具体用于若各个历史写入数据为已提交的写入数据,在所述存储引擎模块的目标目录下存储各个历史写入数据和各个历史写入数据的第二索引信息;在所述存储引擎模块的原目录下删除各个历史写入数据和各个历史写入数据的第二索引信息;若各个历史写入数据为未提交的写入数据,在所述存储引擎模块的目标目录下硬链接原目录下的各个历史数据文件,同时更新各个影子文件与各个历史数据文件的映射关系。
进一步的,所述装置还包括:第一读取模块706(图中未示出)和第二读取模块707(图中未示出);其中,
所述第一存储模块701,用于通过同步日志模块存储所述用户发送的读取请求;其中,所述读取请求中包括:所述当前写入数据的编号;
所述第一读取模块706,用于根据所述当前写入数据的编号,在所述同步日志模块中获取所述当前写入数据的第一索引信息;根据所述当前写入数据的第一索引信息,确定出所述当前写入数据在所述存储引擎模块中的影子文件名称及相应的偏移和长度;
所述第二读取模块707,用于根据所述影子文件名称及相应的偏移和长度在所述存储引擎模块中读取所述当前写入数据。
进一步的,所述第一索引信息包括至少一个start_id;各个start_id包括至少一个di_file;各个di_file包括至少一个di_entry和全部di_entry的index;各个di_entry包括:magic_num、type、data、crc;所述data包括:请求头和索引信息;所述索引信息包括:影子文件名称、偏移量和长度;所述第二索引信息包括:至少一个存储单元;各个存储单元包括:原目录和目标目录;所述原目录和所述目标目录分别包括:0-64个indexcrc;0-64个index;0-63个data;各个data对应设置一个影子文件;所述影子文件包括:filename、offset和len。
上述数据复用装置可执行本发明任意实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明任意实施例提供的数据复用方法。
实施例四
图9为本发明实施例四提供的电子设备的结构示意图。图9示出了适于用来实现本发明实施方式的示例性电子设备的框图。图9显示的电子设备12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图9所示,电子设备12以通用计算设备的形式表现。电子设备12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
电子设备12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被电子设备12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。电子设备12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图9未显示,通常称为“硬盘驱动器”)。尽管图9中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
电子设备12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该电子设备12交互的设备通信,和/或与使得该电子设备12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,电子设备12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与电子设备12的其它模块通信。应当明白,尽管图9中未示出,可以结合电子设备12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
处理单元16通过运行存储在系统存储器28中的程序,从而执行各种功能应用以及数据处理,例如实现本发明实施例所提供的数据复用方法。
实施例五
本发明实施例五提供了一种计算机存储介质。
本发明实施例的计算机可读存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (12)

1.一种数据复用方法,其特征在于,所述方法包括:
通过同步日志模块存储用户发送的写入请求;其中,所述写入请求中包括:当前写入数据和所述当前写入数据的编号;
将所述当前写入数据存储到存储引擎模块的当前数据文件中,并为所述当前数据文件硬链出与其对应的当前影子文件;
根据所述当前写入数据的编号和所述当前影子文件在所述同步日志模块中建立所述当前写入数据的第一索引信息;其中,第一索引信息用于根据所述当前写入数据的编号读取所述当前写入数据;
所述当前写入数据提交之后在所述存储引擎模块中为所述当前写入数据建立第二索引信息;其中,所述第二索引信息用于提供所述当前写入数据的查询服务。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据所述存储引擎模块中预先确定的各个历史写入数据的版本信息和预先获取的内存查找表,判断各个历史写入数据是否为有效的写入数据;
若各个历史写入数据为有效的写入数据,将各个历史写入数据和各个历史写入数据的第二索引信息,从所述存储引擎模块的原目录下切换到所述存储引擎模块的目标目录下。
3.根据权利要求2所述的方法,其特征在于,所述将各个历史写入数据和各个历史写入数据的第二索引信息,从所述存储引擎模块的原目录下切换到所述存储引擎模块的目标目录下,包括:
若各个历史写入数据为已提交的写入数据,在所述存储引擎模块的目标目录下存储各个历史写入数据和各个历史写入数据的第二索引信息;在所述存储引擎模块的原目录下删除各个历史写入数据和各个历史写入数据的第二索引信息;
若各个历史写入数据为未提交的写入数据,在所述存储引擎模块的目标目录下硬链接原目录下的各个历史数据文件,同时更新各个影子文件与各个历史数据文件的映射关系。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
通过同步日志模块存储所述用户发送的读取请求;其中,所述读取请求中包括:所述当前写入数据的编号;
根据所述当前写入数据的编号,在所述同步日志模块中获取所述当前写入数据的第一索引信息;
根据所述当前写入数据的第一索引信息,确定出所述当前写入数据在所述存储引擎模块中的影子文件名称及相应的偏移和长度;
根据所述影子文件名称及相应的偏移和长度在所述存储引擎模块中读取所述当前写入数据。
5.根据权利要求1所述的方法,其特征在于,所述第一索引信息包括至少一个起始编号start_id;各个start_id包括至少一个日志文件di_file;各个di_file包括至少一个日志项di_entry和全部di_entry的日志项索引index;各个di_entry包括:标记magic_num、类型type、日志项数据data、校验值crc;所述data包括:请求头和索引信息;所述索引信息包括:影子文件名称、偏移量和长度;所述第二索引信息包括:至少一个存储单元;各个存储单元包括:原目录和目标目录;所述原目录和所述目标目录分别包括:0-64个索引校验indexcrc;0-64个索引index;0-63个数据data;各个data对应设置一个影子文件;所述影子文件包括:影子文件名称filename、偏移offset和长度len。
6.一种数据复用装置,其特征在于,所述装置包括:第一存储模块、第二存储模块、第一建立模块和第二建立模块;其中,
所述第一存储模块,用于通过同步日志模块存储用户发送的写入请求;其中,所述写入请求中包括:当前写入数据和所述当前写入数据的编号;
所述第二存储模块,用于将所述当前写入数据存储到存储引擎模块的当前数据文件中,并为所述当前数据文件硬链出与其对应的当前影子文件;
所述第一建立模块,用于根据所述当前写入数据的编号和所述当前影子文件在所述同步日志模块中建立所述当前写入数据的第一索引信息;其中,第一索引信息用于根据所述当前写入数据的编号读取所述当前写入数据;
所述第二建立模块,用于所述当前写入数据提交之后在所述存储引擎模块中为所述当前写入数据建立第二索引信息;其中,所述第二索引信息用于提供所述当前写入数据的查询服务。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:切换模块,用于根据所述存储引擎模块中预先确定的各个历史写入数据的版本信息和预先获取的内存查找表,判断各个历史写入数据是否为有效的写入数据;若各个历史写入数据为有效的写入数据,将各个历史写入数据和各个历史写入数据的第二索引信息,从所述存储引擎模块的原目录下切换到所述存储引擎模块的目标目录下。
8.根据权利要求7所述的装置,其特征在于:
所述切换模块,具体用于若各个历史写入数据为已提交的写入数据,在所述存储引擎模块的目标目录下存储各个历史写入数据和各个历史写入数据的第二索引信息;在所述存储引擎模块的原目录下删除各个历史写入数据和各个历史写入数据的第二索引信息;若各个历史写入数据为未提交的写入数据,在所述存储引擎模块的目标目录下硬链接原目录下的各个历史数据文件,同时更新各个影子文件与各个历史数据文件的映射关系。
9.根据权利要求6所述的装置,其特征在于,所述装置还包括:第一读取模块和第二读取模块;其中,
所述第一存储模块,用于通过同步日志模块存储所述用户发送的读取请求;其中,所述读取请求中包括:所述当前写入数据的编号;
所述第一读取模块,用于根据所述当前写入数据的编号,在所述同步日志模块中获取所述当前写入数据的第一索引信息;根据所述当前写入数据的第一索引信息,确定出所述当前写入数据在所述存储引擎模块中的影子文件名称及相应的偏移和长度;
所述第二读取模块,用于根据所述影子文件名称及相应的偏移和长度在所述存储引擎模块中读取所述当前写入数据。
10.根据权利要求6所述的装置,其特征在于,所述第一索引信息包括至少一个起始编号start_id;各个start_id包括至少一个日志文件di_file;各个di_file包括至少一个日志项di_entry和全部di_entry的日志项索引index;各个di_entry包括:标记magic_num、类型type、日志项数据data、校验值crc;所述data包括:请求头和索引信息;所述索引信息包括:影子文件名称、偏移量和长度;所述第二索引信息包括:至少一个存储单元;各个存储单元包括:原目录和目标目录;所述原目录和所述目标目录分别包括:0-64个索引校验indexcrc;0-64个索引index;0-63个数据data;各个data对应设置一个影子文件;所述影子文件包括:影子文件名称filename、偏移offset和长度len。
11.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1至5中任一项所述的数据复用方法。
12.一种存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1至5中任一项所述的数据复用方法。
CN201910695998.4A 2019-07-30 2019-07-30 一种数据复用方法、装置、电子设备及存储介质 Pending CN110413568A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910695998.4A CN110413568A (zh) 2019-07-30 2019-07-30 一种数据复用方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910695998.4A CN110413568A (zh) 2019-07-30 2019-07-30 一种数据复用方法、装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN110413568A true CN110413568A (zh) 2019-11-05

Family

ID=68364374

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910695998.4A Pending CN110413568A (zh) 2019-07-30 2019-07-30 一种数据复用方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN110413568A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111259004A (zh) * 2020-01-08 2020-06-09 腾讯科技(深圳)有限公司 一种存储引擎中数据索引的方法以及相关装置
CN111462836A (zh) * 2020-04-09 2020-07-28 合肥本源量子计算科技有限责任公司 恢复量子化学模型计算的方法和装置及电子设备
CN113760926A (zh) * 2020-12-02 2021-12-07 北京沃东天骏信息技术有限公司 一种数据读写系统及数据写入方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111259004A (zh) * 2020-01-08 2020-06-09 腾讯科技(深圳)有限公司 一种存储引擎中数据索引的方法以及相关装置
CN111259004B (zh) * 2020-01-08 2023-04-14 腾讯科技(深圳)有限公司 一种存储引擎中数据索引的方法以及相关装置
CN111462836A (zh) * 2020-04-09 2020-07-28 合肥本源量子计算科技有限责任公司 恢复量子化学模型计算的方法和装置及电子设备
CN113760926A (zh) * 2020-12-02 2021-12-07 北京沃东天骏信息技术有限公司 一种数据读写系统及数据写入方法

Similar Documents

Publication Publication Date Title
CN110413568A (zh) 一种数据复用方法、装置、电子设备及存储介质
JP4510028B2 (ja) 複数読み出しストリームのための適応先読み技術
US20120130950A1 (en) Data replication to multiple data nodes
US8577892B2 (en) Utilizing affinity groups to allocate data items and computing resources
US9569742B2 (en) Reducing costs related to use of networks based on pricing heterogeneity
CN106294585A (zh) 一种云计算平台下的存储方法
US8326811B2 (en) File management method and computer system
CN101567003A (zh) 并行文件系统中资源的管理和分配方法
JP2019135637A (ja) 情報処理方法、情報処理装置、サーバ及びコンピュータ読み取り可能な記録媒体
CN103561101A (zh) 一种网络文件系统
US8359437B2 (en) Virtual computing memory stacking
US20080229040A1 (en) Network storage system, management method therefor, and control program product therefor
CN107197359B (zh) 视频文件缓存方法及装置
CN102624768B (zh) 在不同设备之间进行文件同步处理的方法和系统
US20020178176A1 (en) File prefetch contorol method for computer system
US20180107404A1 (en) Garbage collection system and process
CN109189555A (zh) 一种端口镜像的实现方法、装置、服务器及存储介质
US8549274B2 (en) Distributive cache accessing device and method for accelerating to boot remote diskless computers
CN110245129A (zh) 一种分布式全局数据去重方法和装置
US20130007394A1 (en) Reorganization of a fragmented directory of a storage data structure comprised of the fragmented directory and members
CN104331525B (zh) 基于重复数据删除的共享方法
WO2019200751A1 (zh) 主备切换方法、装置、计算机设备和存储介质
US8527718B2 (en) Explicit data segment boundaries with SCSI I/O referrals
CN110119388A (zh) 文件读写方法、装置、系统、设备及计算机可读存储介质
CN110245307A (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