+

CN116225314A - Data writing method, device, computer equipment and storage medium - Google Patents

Data writing method, device, computer equipment and storage medium Download PDF

Info

Publication number
CN116225314A
CN116225314A CN202211624203.9A CN202211624203A CN116225314A CN 116225314 A CN116225314 A CN 116225314A CN 202211624203 A CN202211624203 A CN 202211624203A CN 116225314 A CN116225314 A CN 116225314A
Authority
CN
China
Prior art keywords
target
writing process
data
writing
data block
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
CN202211624203.9A
Other languages
Chinese (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.)
Tianjin Zhongke Shuguang Storage Technology Co ltd
Original Assignee
Tianjin Zhongke Shuguang Storage 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 Tianjin Zhongke Shuguang Storage Technology Co ltd filed Critical Tianjin Zhongke Shuguang Storage Technology Co ltd
Priority to CN202211624203.9A priority Critical patent/CN116225314A/en
Publication of CN116225314A publication Critical patent/CN116225314A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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/062Securing storage systems
    • G06F3/0622Securing storage systems in relation to access
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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]
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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)
  • Read Only Memory (AREA)
  • Stored Programmes (AREA)

Abstract

本申请涉及一种数据写入方法、装置、计算机设备、存储介质和计算机程序产品。方法包括:获取数据写入请求对应的多个写进程;针对于目标写进程,确定目标写进程的目标数据块;按照预设条带的大小对目标数据块进行划分,得到满足预设条带的大小的第一数据块以及不满足预设条带大小的剩余数据块,并写入目标写进程对应的第一数据块中的数据;在存在目标写进程的下一写进程的情况下,通过预设数据传输网络,将剩余数据块传输至目标写进程的下一写进程,以使下一写进程确定剩余数据块以及下一写进程的原始数据块为目标数据块,并作为新的目标写进程,执行按照预设条带的大小对目标数据块进行划分的步骤。

Figure 202211624203

The present application relates to a data writing method, device, computer equipment, storage medium and computer program product. The method includes: obtaining a plurality of writing processes corresponding to the data writing request; determining the target data block of the target writing process for the target writing process; dividing the target data block according to the size of the preset stripes to obtain The size of the first data block and the remaining data blocks that do not meet the preset stripe size, and write the data in the first data block corresponding to the target write process; if there is a next write process of the target write process, Through the preset data transmission network, the remaining data blocks are transmitted to the next writing process of the target writing process, so that the next writing process determines the remaining data blocks and the original data blocks of the next writing process as the target data blocks, and as the new The target write process executes the step of dividing the target data block according to the preset stripe size.

Figure 202211624203

Description

数据写入方法、装置、计算机设备和存储介质Data writing method, device, computer equipment and storage medium

技术领域technical field

本申请涉及存储领域,特别是涉及一种数据写入方法、装置、计算机设备、存储介质和计算机程序产品。The present application relates to the field of storage, in particular to a data writing method, device, computer equipment, storage medium and computer program product.

背景技术Background technique

为了保证数据在分布式文件存储系统中的一致性,需要通过分布式区间锁来进行保护。具体的,分布式文件存储系统中的数据可以切分为条带,每个条带都需要被分布式区间锁进行保护。In order to ensure the consistency of data in the distributed file storage system, it needs to be protected by distributed interval locks. Specifically, the data in the distributed file storage system can be divided into stripes, and each stripe needs to be protected by a distributed interval lock.

相关技术中,在涉及到跨进程数据需写入同一条带的情况,会采用分布式区间锁,来避免不同的写进程对同一块条带内的存储空间进行处理,每个条带进行读取的时候都需要调用本锁,在对多个条带进行读取,会导致分布式区间锁的竞争,导致数据写入效率较低。In related technologies, when cross-process data needs to be written to the same stripe, distributed interval locks are used to prevent different writing processes from processing the storage space in the same stripe, and each stripe reads This lock needs to be called when fetching. When reading multiple stripes, it will lead to competition of distributed interval locks, resulting in low data writing efficiency.

发明内容Contents of the invention

基于此,有必要针对上述技术问题,提供一种能够避免分布式锁竞争的数据写入方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。Based on this, it is necessary to address the above technical problems and provide a data writing method, device, computer equipment, computer readable storage medium and computer program product that can avoid distributed lock competition.

第一方面,本申请提供了一种数据写入方法。所述方法包括:In a first aspect, the present application provides a data writing method. The methods include:

响应于数据写入请求,获取所述数据写入请求对应的多个写进程;Responding to the data write request, acquiring multiple write processes corresponding to the data write request;

针对于多个写进程中的目标写进程,确定所述目标写进程的目标数据块;For a target writing process among multiple writing processes, determine a target data block of the target writing process;

按照预设条带的大小对所述目标数据块进行划分,得到满足所述预设条带的大小的第一数据块以及不满足所述预设条带大小的剩余数据块,并通过所述目标写进程,写入所述目标写进程对应的第一数据块中的数据;Divide the target data block according to the size of the preset stripe, obtain the first data block that meets the size of the preset stripe and the remaining data blocks that do not meet the size of the preset stripe, and pass the A target write process, writing data in the first data block corresponding to the target write process;

在存在所述目标写进程的下一写进程的情况下,通过预设数据传输网络,将所述剩余数据块传输至所述目标写进程的下一写进程,以使所述下一写进程确定所述剩余数据块以及所述下一写进程的原始数据块为目标数据块,并作为新的目标写进程,执行所述按照预设条带的大小对所述目标数据块进行划分的步骤。In the case that the next writing process of the target writing process exists, the remaining data block is transmitted to the next writing process of the target writing process through a preset data transmission network, so that the next writing process Determining the remaining data blocks and the original data blocks of the next writing process as target data blocks, and performing the step of dividing the target data blocks according to the size of the preset stripes as a new target writing process .

基于以上方案,可以在数据写入的初始阶段,对待写入数据进行满条带的划分,将不满条带从而导致跨进程写入的数据交换至其他写进程进行写入,避免使用分布式区间锁,以及通过预设数据传输网络进行数据的高速传输,可以高速通讯、交换、拼接写入数据,保证严格条带对齐,进一步保证了数据写入效率。Based on the above scheme, in the initial stage of data writing, the data to be written can be divided into full stripes, and the data that is not full of stripes and resulting in cross-process writing can be exchanged to other writing processes for writing, avoiding the use of distributed intervals Lock, and high-speed data transmission through the preset data transmission network, can communicate, exchange, splicing and writing data at high speed, ensure strict stripe alignment, and further ensure the efficiency of data writing.

在其中一个实施例中,在所述按照预设条带的大小对所述目标数据块进行划分,得到满足所述预设条带的大小的第一数据块以及不满足所述预设条带大小的剩余数据块的步骤之后,所述方法还包括:In one of the embodiments, the target data block is divided according to the size of the preset stripe to obtain the first data block that satisfies the size of the preset stripe and the first data block that does not meet the size of the preset stripe After the step of remaining data blocks of size, the method further includes:

在所述目标写进程不存在下一写进程的情况下,将所述目标写进程对应的剩余数据块缓存至预设缓存空间。If there is no next writing process in the target writing process, the remaining data blocks corresponding to the target writing process are cached in a preset cache space.

基于以上方案,通过将剩余数据块进行缓存,可以保证数据的完整性以及数据的写入时效性。Based on the above solution, by caching the remaining data blocks, data integrity and data writing timeliness can be guaranteed.

在其中一个实施例中,所述方法还包括:In one embodiment, the method also includes:

在检测到所述数据写入请求对应的待写入文件的关闭指令后,获取所述预设缓存空间中的剩余数据块,并将所述剩余数据块拼接写入所述待写入文件。After detecting the close instruction of the file to be written corresponding to the data write request, acquiring the remaining data blocks in the preset cache space, and concatenating the remaining data blocks into the file to be written.

基于以上方案,可以及时写入剩余数据块,避免数据的丢失以及提高数据写入的效率。Based on the above solutions, the remaining data blocks can be written in time, avoiding data loss and improving the efficiency of data writing.

在其中一个实施例中,所述针对于多个写进程中的每一目标写进程,确定所述目标写进程的目标数据块,包括:In one of the embodiments, for each target writing process in the multiple writing processes, determining the target data block of the target writing process includes:

针对于所述目标写进程,在所述目标写进程存在所述目标写进程的上一写进程,获取所述上一写进程的剩余数据块,以及获取所述目标写进程的原始数据块;For the target writing process, there is a previous writing process of the target writing process in the target writing process, obtaining the remaining data blocks of the previous writing process, and obtaining the original data blocks of the target writing process;

对所述上一写进程的剩余数据块以及所述目标写进程的原始数据块进行拼接,得到所述目标写进程的目标数据块。Splicing the remaining data blocks of the last writing process and the original data blocks of the target writing process to obtain the target data blocks of the target writing process.

基于以上方案,可以将上一写进程的数据块交换至目标写进程,实现在无分布式锁竞争的情况下的数据写入,提升数据写入效率。Based on the above scheme, the data block of the previous writing process can be exchanged to the target writing process, so as to realize data writing without distributed lock competition and improve data writing efficiency.

在其中一个实施例中,所述方法还包括:In one embodiment, the method also includes:

针对于所述目标写进程,在所述目标写进程不存在所述目标写进程的上一写进程,确定所述目标写进程的原始数据块为所述目标写进程的目标数据块。For the target writing process, the previous writing process of the target writing process does not exist in the target writing process, and the original data block of the target writing process is determined as the target data block of the target writing process.

基于以上方案,可以将写进程的原始数据块作为目标数据块,实现严格的条带对齐的数据写入。Based on the above solution, the original data block of the writing process can be used as the target data block to implement data writing with strict stripe alignment.

在其中一个实施例中,所述方法还包括:In one embodiment, the method also includes:

针对于所述目标写进程,在所述目标写进程存在所述目标写进程的上一写进程,且所述上一写进程不存在所述剩余数据块的情况下,确定所述目标写进程的原始数据块为所述目标写进程的目标数据块。For the target writing process, when the target writing process has a previous writing process of the target writing process and the remaining data block does not exist in the previous writing process, determine the target writing process The original data block of is the target data block of the target write process.

基于以上方案,可以将写进程的原始数据块作为目标数据块,实现严格的条带对齐的数据写入。Based on the above solution, the original data block of the writing process can be used as the target data block to implement data writing with strict stripe alignment.

第二方面,本申请还提供了一种数据写入装置。所述装置包括:In a second aspect, the present application also provides a data writing device. The devices include:

第一获取模块,用于响应于数据写入请求,获取所述数据写入请求对应的多个写进程;A first acquiring module, configured to acquire multiple writing processes corresponding to the data writing request in response to the data writing request;

第一确定模块,用于针对于多个写进程中的目标写进程,确定所述目标写进程的目标数据块;A first determining module, configured to, for a target writing process among multiple writing processes, determine a target data block of the target writing process;

写入模块,用于按照预设条带的大小对所述目标数据块进行划分,得到满足所述预设条带的大小的第一数据块以及不满足所述预设条带大小的剩余数据块,并通过所述目标写进程,写入所述目标写进程对应的第一数据块中的数据;A write module, configured to divide the target data block according to the size of the preset stripe, to obtain the first data block that meets the size of the preset stripe and the remaining data that does not meet the size of the preset stripe block, and write the data in the first data block corresponding to the target writing process through the target writing process;

传输模块,用于在存在所述目标写进程的下一写进程的情况下,通过预设数据传输网络,将所述剩余数据块传输至所述目标写进程的下一写进程,以使所述下一写进程确定所述剩余数据块以及所述下一写进程的原始数据块为目标数据块,并作为新的目标写进程,执行所述按照预设条带的大小对所述目标数据块进行划分的步骤。A transmission module, configured to transmit the remaining data blocks to the next writing process of the target writing process through a preset data transmission network in the case that there is a next writing process of the target writing process, so that all The next write process determines that the remaining data blocks and the original data blocks of the next write process are target data blocks, and as a new target write process, executes the process of performing the processing of the target data according to the size of the preset stripe Steps to divide blocks.

在其中一个实施例中,该数据写入装置还包括:In one of the embodiments, the data writing device also includes:

缓存模块,用于在所述目标写进程不存在下一写进程的情况下,将所述目标写进程对应的剩余数据块缓存至预设缓存空间。The caching module is configured to cache the remaining data blocks corresponding to the target writing process in a preset cache space when there is no next writing process in the target writing process.

在其中一个实施例中,该数据写入装置还包括:In one of the embodiments, the data writing device also includes:

第二获取模块,用于在检测到所述数据写入请求对应的待写入文件的关闭指令后,获取所述预设缓存空间中的剩余数据块,并将所述剩余数据块拼接写入所述待写入文件。The second acquisition module is configured to acquire the remaining data blocks in the preset cache space after detecting the closing instruction of the file to be written corresponding to the data writing request, and concatenate and write the remaining data blocks The file to be written.

在其中一个实施例中,所述第一确定模块具体用于:In one of the embodiments, the first determining module is specifically configured to:

针对于所述目标写进程,在所述目标写进程存在所述目标写进程的上一写进程,获取所述上一写进程的剩余数据块,以及获取所述目标写进程的原始数据块;For the target writing process, there is a previous writing process of the target writing process in the target writing process, obtaining the remaining data blocks of the previous writing process, and obtaining the original data blocks of the target writing process;

对所述上一写进程的剩余数据块以及所述目标写进程的原始数据块进行拼接,得到所述目标写进程的目标数据块。Splicing the remaining data blocks of the last writing process and the original data blocks of the target writing process to obtain the target data blocks of the target writing process.

在其中一个实施例中,该数据写入装置还包括:In one of the embodiments, the data writing device also includes:

第二确定模块,用于针对于所述目标写进程,在所述目标写进程不存在所述目标写进程的上一写进程,确定所述目标写进程的原始数据块为所述目标写进程的目标数据块。The second determining module is configured to, for the target writing process, determine that the original data block of the target writing process is the target writing process when the target writing process does not have a previous writing process of the target writing process target data block.

在其中一个实施例中,该数据写入装置还包括:In one of the embodiments, the data writing device also includes:

第三确定模块,用于针对于所述目标写进程,在所述目标写进程存在所述目标写进程的上一写进程,且所述上一写进程不存在所述剩余数据块的情况下,确定所述目标写进程的原始数据块为所述目标写进程的目标数据块。The third determining module is configured to, for the target writing process, when the target writing process has a previous writing process of the target writing process, and the remaining data block does not exist in the previous writing process , determining the original data block of the target writing process as the target data block of the target writing process.

第三方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:In a third aspect, the present application also provides a computer device. The computer device includes a memory and a processor, the memory stores a computer program, and the processor implements the following steps when executing the computer program:

响应于数据写入请求,获取所述数据写入请求对应的多个写进程;Responding to the data write request, acquiring multiple write processes corresponding to the data write request;

针对于多个写进程中的目标写进程,确定所述目标写进程的目标数据块;For a target writing process among multiple writing processes, determine a target data block of the target writing process;

按照预设条带的大小对所述目标数据块进行划分,得到满足所述预设条带的大小的第一数据块以及不满足所述预设条带大小的剩余数据块,并通过所述目标写进程,写入所述目标写进程对应的第一数据块中的数据;Divide the target data block according to the size of the preset stripe, obtain the first data block that meets the size of the preset stripe and the remaining data blocks that do not meet the size of the preset stripe, and pass the A target write process, writing data in the first data block corresponding to the target write process;

在存在所述目标写进程的下一写进程的情况下,通过预设数据传输网络,将所述剩余数据块传输至所述目标写进程的下一写进程,以使所述下一写进程确定所述剩余数据块以及所述下一写进程的原始数据块为目标数据块,并作为新的目标写进程,执行所述按照预设条带的大小对所述目标数据块进行划分的步骤。In the case that the next writing process of the target writing process exists, the remaining data block is transmitted to the next writing process of the target writing process through a preset data transmission network, so that the next writing process Determining the remaining data blocks and the original data blocks of the next writing process as target data blocks, and performing the step of dividing the target data blocks according to the size of the preset stripes as a new target writing process .

第四方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:In a fourth aspect, the present application also provides a computer-readable storage medium. The computer-readable storage medium has a computer program stored thereon, and when the computer program is executed by a processor, the following steps are implemented:

响应于数据写入请求,获取所述数据写入请求对应的多个写进程;Responding to the data write request, acquiring multiple write processes corresponding to the data write request;

针对于多个写进程中的目标写进程,确定所述目标写进程的目标数据块;For a target writing process among multiple writing processes, determine a target data block of the target writing process;

按照预设条带的大小对所述目标数据块进行划分,得到满足所述预设条带的大小的第一数据块以及不满足所述预设条带大小的剩余数据块,并通过所述目标写进程,写入所述目标写进程对应的第一数据块中的数据;Divide the target data block according to the size of the preset stripe, obtain the first data block that meets the size of the preset stripe and the remaining data blocks that do not meet the size of the preset stripe, and pass the A target write process, writing data in the first data block corresponding to the target write process;

在存在所述目标写进程的下一写进程的情况下,通过预设数据传输网络,将所述剩余数据块传输至所述目标写进程的下一写进程,以使所述下一写进程确定所述剩余数据块以及所述下一写进程的原始数据块为目标数据块,并作为新的目标写进程,执行所述按照预设条带的大小对所述目标数据块进行划分的步骤。In the case that the next writing process of the target writing process exists, the remaining data block is transmitted to the next writing process of the target writing process through a preset data transmission network, so that the next writing process Determining the remaining data blocks and the original data blocks of the next writing process as target data blocks, and performing the step of dividing the target data blocks according to the size of the preset stripes as a new target writing process .

第五方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:In a fifth aspect, the present application also provides a computer program product. The computer program product includes a computer program, and when the computer program is executed by a processor, the following steps are implemented:

响应于数据写入请求,获取所述数据写入请求对应的多个写进程;Responding to the data write request, acquiring multiple write processes corresponding to the data write request;

针对于多个写进程中的目标写进程,确定所述目标写进程的目标数据块;For a target writing process among multiple writing processes, determine a target data block of the target writing process;

按照预设条带的大小对所述目标数据块进行划分,得到满足所述预设条带的大小的第一数据块以及不满足所述预设条带大小的剩余数据块,并通过所述目标写进程,写入所述目标写进程对应的第一数据块中的数据;Divide the target data block according to the size of the preset stripe, obtain the first data block that meets the size of the preset stripe and the remaining data blocks that do not meet the size of the preset stripe, and pass the A target write process, writing data in the first data block corresponding to the target write process;

在存在所述目标写进程的下一写进程的情况下,通过预设数据传输网络,将所述剩余数据块传输至所述目标写进程的下一写进程,以使所述下一写进程确定所述剩余数据块以及所述下一写进程的原始数据块为目标数据块,并作为新的目标写进程,执行所述按照预设条带的大小对所述目标数据块进行划分的步骤。In the case that the next writing process of the target writing process exists, the remaining data block is transmitted to the next writing process of the target writing process through a preset data transmission network, so that the next writing process Determining the remaining data blocks and the original data blocks of the next writing process as target data blocks, and performing the step of dividing the target data blocks according to the size of the preset stripes as a new target writing process .

上述数据写入方法、装置、计算机设备、存储介质和计算机程序产品,其中,该方法包括:响应于数据写入请求,获取所述数据写入请求对应的多个写进程;针对于多个写进程中的目标写进程,确定所述目标写进程的目标数据块;按照预设条带的大小对所述目标数据块进行划分,得到满足所述预设条带的大小的第一数据块以及不满足所述预设条带大小的剩余数据块,并通过所述目标写进程,写入所述目标写进程对应的第一数据块中的数据;在存在所述目标写进程的下一写进程的情况下,通过预设数据传输网络,将所述剩余数据块传输至所述目标写进程的下一写进程,以使所述下一写进程确定所述剩余数据块以及所述下一写进程的原始数据块为目标数据块,并作为新的目标写进程,执行所述按照预设条带的大小对所述目标数据块进行划分的步骤。通过采用本方法,可以在数据写入的初始阶段,对待写入数据进行满条带的划分,将不满条带从而导致跨进程写入的数据交换至其他写进程进行写入,避免使用分布式区间锁,以及通过预设数据传输网络进行数据的高速传输,通过交换、拼接写入数据,保证严格条带对齐,进一步提高了数据写入效率。The above data writing method, device, computer equipment, storage medium and computer program product, wherein the method includes: in response to a data writing request, obtaining multiple writing processes corresponding to the data writing request; The target writing process in the process determines the target data block of the target writing process; divides the target data block according to the size of the preset stripe, and obtains the first data block satisfying the size of the preset stripe and For the remaining data blocks that do not meet the preset stripe size, write the data in the first data block corresponding to the target writing process through the target writing process; In the case of a process, the remaining data blocks are transmitted to the next writing process of the target writing process through a preset data transmission network, so that the next writing process can determine the remaining data blocks and the next The original data block of the writing process is the target data block, and as a new target writing process, the step of dividing the target data block according to the preset stripe size is performed. By adopting this method, at the initial stage of data writing, the data to be written can be divided into full stripes, and the data that is not full of stripes and resulting in cross-process writing can be exchanged to other writing processes for writing, avoiding the use of distributed Interval locks, and high-speed data transmission through the preset data transmission network, write data through exchange and splicing, ensure strict stripe alignment, and further improve data writing efficiency.

附图说明Description of drawings

图1为一个实施例中数据写入方法的流程示意图;Fig. 1 is a schematic flow chart of a data writing method in an embodiment;

图2a为一个实施例中数据写入方法中一个写进程对应的数据块的划分示意图;Figure 2a is a schematic diagram of division of data blocks corresponding to a writing process in the data writing method in an embodiment;

图2b为一个实施例中数据写入方法中一个写进程对应的数据块的划分示意图;Figure 2b is a schematic diagram of division of data blocks corresponding to a writing process in the data writing method in an embodiment;

图3为一个实施例中确定目标数据块步骤的流程示意图;Fig. 3 is a schematic flow chart of the step of determining the target data block in one embodiment;

图4为一个实施例中分布式锁竞争的示意图;Fig. 4 is a schematic diagram of distributed lock competition in an embodiment;

图5为一个实施例中数据写入装置的结构框图;Fig. 5 is a structural block diagram of a data writing device in an embodiment;

图6为一个实施例中计算机设备的内部结构图。Figure 6 is an internal block diagram of a computer device in one embodiment.

具体实施方式Detailed ways

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。In order to make the purpose, technical solution and advantages of the present application clearer, the present application will be further described in detail below in conjunction with the accompanying drawings and embodiments. It should be understood that the specific embodiments described here are only used to explain the present application, and are not intended to limit the present application.

在一个实施例中,如图1所示,提供了一种数据写入方法,本实施例以该方法应用于终端进行举例说明,可以理解的是,该方法也可以应用于服务器,还可以应用于包括终端和服务器的系统,并通过终端和服务器的交互实现,上述终端可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑等,服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。本实施例中,该数据写入方法包括以下步骤:In one embodiment, as shown in FIG. 1 , a method for writing data is provided. This embodiment uses the method applied to a terminal as an example for illustration. It can be understood that this method can also be applied to a server, and can also be applied It is based on a system including a terminal and a server, and is realized through the interaction between the terminal and the server. The above-mentioned terminal can be but not limited to various personal computers, notebook computers, smart phones, tablet computers, etc., and the server can be an independent server or multiple servers Formed server clusters to achieve. In this embodiment, the data writing method includes the following steps:

步骤102,响应于数据写入请求,获取数据写入请求对应的多个写进程。Step 102, in response to the data write request, acquire multiple write processes corresponding to the data write request.

其中,数据写入请求可以是终端接收到的写入请求,该写入请求可以是用于指示终端向分布式文件系统进行数据写入操作的请求,该分布式文件系统可以是文件系统管理的物理存储资源,其中,可以通过计算机网络与各个节点相连接,或者是可以是多个不同的逻辑磁盘分区组成的文件系统,数据写入请求可以包含至少一个写进程。Wherein, the data write request may be a write request received by the terminal, and the write request may be a request for instructing the terminal to perform a data write operation to the distributed file system, and the distributed file system may be a file system managed The physical storage resource may be connected to each node through a computer network, or may be a file system composed of multiple different logical disk partitions, and the data writing request may include at least one writing process.

可选地,终端也可以获取在预设时间段内对分布式文件系统进行数据写入操作的多个写进程。Optionally, the terminal may also obtain multiple writing processes that perform data writing operations on the distributed file system within a preset time period.

在实施中,其他的终端设备可以基于实际应用场景的需求生成多个写进程,并基于该写进程生成数据写入请求,这样,可以将数据写入请求发送至分布式文件系统对应的终端。在终端接收到该数据写入请求后,可以对数据写入请求进行解析,得到该数据写入请求包含的一个写进程或者多个写进程。终端还可以在预设时间段接收到多个数据写入请求,并分别获取该数据写入请求内包含的写进程。In implementation, other terminal devices can generate multiple write processes based on the requirements of the actual application scenario, and generate a data write request based on the write process, so that the data write request can be sent to the terminal corresponding to the distributed file system. After receiving the data writing request, the terminal may analyze the data writing request to obtain a writing process or multiple writing processes included in the data writing request. The terminal may also receive a plurality of data writing requests within a preset time period, and respectively obtain the writing processes included in the data writing requests.

步骤104,针对于多个写进程中的目标写进程,确定目标写进程的目标数据块。Step 104, for the target writing process among the multiple writing processes, determine the target data block of the target writing process.

其中,目标写进程可以是多个写进程中的任意一个写进程。目标写进程的目标数据块可以是目标写进程所携带的原始数据块,也可以是该原始数据块与其他的写进程的数据块合并生成的数据块。Wherein, the target writing process may be any one writing process among multiple writing processes. The target data block of the target writing process may be the original data block carried by the target writing process, or may be a data block generated by merging the original data block with data blocks of other writing processes.

在实施中,终端在获取分布式文件系统对应的多个写进程之后,可以按照各写进程对应的时间顺序对各个写进程进行排序,依次对各个写进程进行处理。这样,终端针对于多个写进程中的目标写进程的具体处理过程可以是:终端在确定目标写进程之后,需要确定该目标写进程对应的目标数据块。In implementation, after acquiring the multiple writing processes corresponding to the distributed file system, the terminal may sort the writing processes according to the time sequence corresponding to the writing processes, and process the writing processes sequentially. In this way, the specific processing procedure of the terminal for the target writing process among the multiple writing processes may be: after the terminal determines the target writing process, it needs to determine the target data block corresponding to the target writing process.

步骤106,按照预设条带的大小对目标数据块进行划分,得到满足预设条带的大小的第一数据块以及不满足预设条带大小的剩余数据块,并通过目标写进程,写入目标写进程对应的第一数据块中的数据。Step 106: Divide the target data block according to the size of the preset stripe, obtain the first data block that meets the size of the preset stripe and the remaining data blocks that do not meet the size of the preset stripe, and write the target data block through the target write process. Enter the data in the first data block corresponding to the target write process.

其中,预设条带的大小可以是分布式文件系统中预先设定的条带所包含的数据的长度,例如可以是A。满足预设条带的大小的第一数据块的数据长度可以与预先配置的预设条带可以包含的数据的长度相同,不满足预设条带大小的剩余数据块可以是数据长度小于预先配置的预设条带可以包含的数据的长度的数据块。Wherein, the size of the preset stripe may be the length of data included in the preset stripe in the distributed file system, for example, it may be A. The data length of the first data block that meets the preset stripe size can be the same as the length of data that can be contained in the pre-configured preset stripe, and the remaining data blocks that do not meet the preset stripe size can have a data length smaller than the pre-configured The length of data blocks that a preset stripe can contain.

在实施中,针对于目标写进程,终端在获取该目标写进程对应的目标数据块之后,可以按照预设条带的数据长度对目标数据块进行切分,得到一个或者多个第一数据块(条带对齐数据),以及剩余数据块。在终端得到目标写进程对应的第一数据块以及剩余数据块之后,终端可以将第一数据块中的数据分别写入分布式文件系统,保证数据写入的时效性。In implementation, for the target writing process, after the terminal obtains the target data block corresponding to the target writing process, it can segment the target data block according to the data length of the preset stripe to obtain one or more first data blocks (stripe-aligned data), and the remaining data blocks. After the terminal obtains the first data block and the remaining data blocks corresponding to the target writing process, the terminal can write the data in the first data block to the distributed file system respectively, so as to ensure the timeliness of data writing.

步骤108,在存在目标写进程的下一写进程的情况下,通过预设数据传输网络,将剩余数据块传输至目标写进程的下一写进程,以使下一写进程确定剩余数据块以及下一写进程的原始数据块为目标数据块,并作为新的目标写进程,执行按照预设条带的大小对目标数据块进行划分的步骤。Step 108, if there is a next writing process of the target writing process, transmit the remaining data blocks to the next writing process of the target writing process through the preset data transmission network, so that the next writing process can determine the remaining data blocks and The original data block of the next writing process is the target data block, and as a new target writing process, the step of dividing the target data block according to the preset stripe size is performed.

其中,预设数据传输网络可以是OpenMPI网络(高性能消息传递库),用于进行进程间的数据传输。Wherein, the preset data transmission network may be an OpenMPI network (a high-performance message passing library), which is used for data transmission between processes.

在实施中,在终端确定目标写进程对应的第一数据块以及剩余数据块之后,终端可以将第一数据块写入至数据写入请求对应的分布式文件系统中,同时,终端可以判断在目标写进程之后是否还存在下一写进程。In implementation, after the terminal determines the first data block and the remaining data blocks corresponding to the target writing process, the terminal can write the first data block into the distributed file system corresponding to the data write request, and at the same time, the terminal can determine whether the Whether there is a next write process after the target write process.

在终端确定目标写进程还存在下一写进程之后,终端可以将目标写进程对应的剩余数据块通过预设数据传输网络,将剩余数据块从目标写进程交换至该目标写进程的下一写进程,即,将剩余数据块从目标写进程传输至目标写进程的下一写进程。这样,终端在确定目标写进程的下一写进程接收到目标写进程的剩余数据块之后,终端可以确定剩余数据块以及目标写进程的下一写进程的原始数据块作为目标数据块,并将目标写进程的下一写进程作为新的目标写进程,执行上述实施例的按照预设条带的大小对目标数据块进行划分,得到满足预设条带的大小的第一数据块以及不满足预设条带大小的剩余数据块,并通过目标写进程,写入目标写进程对应的第一数据块中的数据的步骤。After the terminal determines that there is a next write process in the target write process, the terminal can exchange the remaining data blocks from the target write process to the next write of the target write process through the preset data transmission network process, that is, the next write process that transfers the remaining data blocks from the target write process to the target write process. In this way, after the terminal determines that the next write process of the target write process has received the remaining data block of the target write process, the terminal can determine the remaining data block and the original data block of the next write process of the target write process as the target data block, and The next write process of the target write process is used as a new target write process, and the target data block is divided according to the size of the preset stripe in the above embodiment, and the first data block that meets the size of the preset stripe and the first data block that does not meet the requirements are obtained. A step of presetting the remaining data blocks of the stripe size, and writing the data in the first data block corresponding to the target writing process through the target writing process.

在一个示例中,如图2a所示,目标写进程可以是rank0,rank对应的目标数据块可以是数据块①;终端按照预设条带的大小对数据块①进行划分,得到的满足预设条带大小的第一数据块与不满足预设条带大小的剩余数据块的示意图可以是如图2b所示,第一数据块可以是数据块③以及数据块④,剩余数据块可以是数据块⑤,即,终端可以将数据块①划分为数据块③、数据块④以及数据块⑤。终端可以将数据块③、数据块④写入分布式文件系统。In an example, as shown in Figure 2a, the target writing process can be rank0, and the target data block corresponding to the rank can be data block ①; the terminal divides the data block ① according to the size of the preset stripe, and the obtained data satisfies the preset The schematic diagram of the first data block of the stripe size and the remaining data blocks that do not meet the preset stripe size can be shown in Figure 2b, the first data block can be data block ③ and data block ④, and the remaining data blocks can be data block ⑤, that is, the terminal can divide the data block ① into data block ③, data block ④ and data block ⑤. The terminal can write data block ③ and data block ④ into the distributed file system.

如图2b所示,终端可以确定目标写进程(rank0)之后存在下一写进程,即rank1,基于此,终端可以通过预设数据传输网络(局域高速网络),将rank0的剩余数据块(数据块⑤),由rank0交换至rank1。也就是说,目标写进程的下一写进程可以是rank1,rank1对应的原始数据块可以是数据块②,rank1的目标数据块可以是剩余数据块(数据块⑤)以及原始数据块(数据块②)合并后的数据块,终端在确定rank1的目标数据块之后,可以将rank1作为新的目标写进程执行上述实施例的步骤,即将rank1的目标数据块按照预设条带的大小进行划分,得到新的第一数据块,以及新的剩余数据块,新的第一数据块可以是数据块⑤+数据块⑥组成的数据块、数据块⑦以及数据块⑧,新的剩余数据块可以是数据块⑨。As shown in Figure 2b, the terminal can determine that there is a next writing process after the target writing process (rank0), that is, rank1. Based on this, the terminal can transfer the remaining data blocks of rank0 ( Data block ⑤), exchanged from rank0 to rank1. That is to say, the next writing process of the target writing process can be rank1, the original data block corresponding to rank1 can be data block ②, and the target data block of rank1 can be the remaining data block (data block ⑤) and the original data block (data block ②) For the merged data block, after the terminal determines the target data block of rank1, it can use rank1 as a new target writing process to perform the steps of the above embodiment, that is, divide the target data block of rank1 according to the size of the preset stripe, Obtain a new first data block and a new remaining data block. The new first data block can be a data block composed of data block ⑤+data block ⑥, data block ⑦, and data block ⑧. The new remaining data block can be Data block ⑨.

上述数据写入方法中,响应于数据写入请求,获取数据写入请求对应的多个写进程。针对于多个写进程中的目标写进程,确定目标写进程的目标数据块。按照预设条带的大小对目标数据块进行划分,得到满足预设条带的大小的第一数据块以及不满足预设条带大小的剩余数据块,并通过目标写进程,写入目标写进程对应的第一数据块中的数据。在存在目标写进程的下一写进程的情况下,通过预设数据传输网络,将剩余数据块传输至目标写进程的下一写进程,以使下一写进程确定剩余数据块以及下一写进程的原始数据块为目标数据块,并作为新的目标写进程,执行按照预设条带的大小对目标数据块进行划分的步骤。通过采用本方法,可以在数据写入的初始阶段,对待写入数据进行满条带的划分,将不满条带从而导致跨进程写入的数据交换至其他写进程进行写入,避免使用分布式区间锁,以及通过预设数据传输网络进行数据的高速传输,可以高速通讯、交换、拼接写入数据,保证严格条带对齐,进一步保证了通过提高数据写入效率。In the above data writing method, in response to the data writing request, multiple writing processes corresponding to the data writing request are acquired. A target data block of the target write process is determined for a target write process among the multiple write processes. The target data block is divided according to the size of the preset stripe, and the first data block that meets the size of the preset stripe and the remaining data blocks that do not meet the size of the preset stripe are obtained, and are written into the target write process through the target write process. The data in the first data block corresponding to the process. In the case that there is a next write process of the target write process, the remaining data blocks are transmitted to the next write process of the target write process through the preset data transmission network, so that the next write process can determine the remaining data blocks and the next write process The original data block of the process is the target data block, and as a new target writing process, the step of dividing the target data block according to the size of the preset stripe is performed. By adopting this method, at the initial stage of data writing, the data to be written can be divided into full stripes, and the data that is not full of stripes and resulting in cross-process writing can be exchanged to other writing processes for writing, avoiding the use of distributed Interval locks, and high-speed data transmission through the preset data transmission network, can communicate, exchange, splice and write data at high speed, ensure strict stripe alignment, and further ensure the efficiency of data writing by improving.

在一个实施例中,在按照预设条带的大小对目标数据块进行划分,得到满足预设条带的大小的第一数据块以及不满足预设条带大小的剩余数据块的步骤之后,该数据写入方法还包括:In one embodiment, after the step of dividing the target data block according to the preset stripe size to obtain the first data block meeting the preset stripe size and the remaining data blocks not meeting the preset stripe size, The data writing method also includes:

在目标写进程不存在下一写进程的情况下,将目标写进程对应的剩余数据块缓存至预设缓存空间。If there is no next writing process in the target writing process, the remaining data blocks corresponding to the target writing process are cached in the preset cache space.

在实施中,终端在确定目标写进程后不存在下一写进程的情况下,终端可以将剩余数据块存储至预设剩余缓存空间,即将剩余数据块进行缓存。In implementation, when the terminal determines that there is no next writing process after the target writing process, the terminal may store the remaining data blocks in the preset remaining buffer space, that is, cache the remaining data blocks.

本实施例中,通过将剩余数据块进行缓存,可以保证数据的完整性以及数据的写入时效性。In this embodiment, by caching the remaining data blocks, data integrity and timeliness of data writing can be guaranteed.

在一个实施例中,该数据写入方法还包括:In one embodiment, the data writing method also includes:

在检测到数据写入请求对应的待写入文件的关闭指令后,获取预设缓存空间中的剩余数据块,并将剩余数据块拼接写入待写入文件。After detecting the closing command of the file to be written corresponding to the data write request, the remaining data blocks in the preset cache space are obtained, and the remaining data blocks are concatenated and written into the file to be written.

其中,数据写入请求对应的待写入文件可以是位于分布式文件系统中的文件,待写入文件的地址可以是写进程所携带的数据的目的存储地址,待写入文件的关闭指令可以是在待写入文件已经完成文件写入后执行的操作,用于指示终端将待写入文件关闭。Wherein, the file to be written corresponding to the data write request may be a file located in the distributed file system, the address of the file to be written may be the destination storage address of the data carried by the writing process, and the closing command of the file to be written may be It is an operation performed after the file to be written has been written, and is used to instruct the terminal to close the file to be written.

在实施中,如果终端检测到存在针对于数据写入请求对应的待写入文件的关闭指令,则终端可以将预设缓存空间中进行缓存的剩余块,进行拼接写入,即,拼接写入至分布式文件系统中的待写入文件。In implementation, if the terminal detects that there is a close instruction for the file to be written corresponding to the data write request, the terminal can perform splicing writing on the remaining blocks cached in the preset cache space, that is, splicing writing To the file to be written in the distributed file system.

在一个示例中,终端在将剩余数据块存储至预设缓存空间后,如果确定预设时间段内没有其他写进程之后吗,可以将预设缓存空间中的剩余数据块,拼接写入待写入文件,即在本笔写之后,下笔写之前,将预设缓存空间中的剩余数据块,拼接写入待写入文件。In an example, after the terminal stores the remaining data blocks in the preset cache space, if it is determined that there is no other writing process within the preset time period, the terminal can concatenate the remaining data blocks in the preset cache space and write them to be written. Into the file, that is, after the pen is written and before the next pen is written, the remaining data blocks in the preset cache space are spliced and written into the file to be written.

本实施例中,可以及时写入剩余数据块,避免数据的丢失以及提高数据写入的效率。In this embodiment, the remaining data blocks can be written in time, avoiding data loss and improving the efficiency of data writing.

在一个实施例中,如图3所示,步骤“针对于多个写进程中的每一目标写进程,确定目标写进程的目标数据块”的具体处理过程,包括:In one embodiment, as shown in FIG. 3 , the specific processing of the step "determining the target data block of the target writing process for each of the multiple writing processes" includes:

步骤302,针对于目标写进程,在目标写进程存在目标写进程的上一写进程,获取上一写进程的剩余数据块,以及获取目标写进程的原始数据块。Step 302, for the target writing process, there is a previous writing process of the target writing process in the target writing process, obtain the remaining data blocks of the previous writing process, and obtain the original data blocks of the target writing process.

步骤304,对上一写进程的剩余数据块以及目标写进程的原始数据块进行拼接,得到目标写进程的目标数据块。Step 304, splicing the remaining data block of the previous writing process and the original data block of the target writing process to obtain the target data block of the target writing process.

其中,目标写进程的上一写进程可以是按照进程的排列顺序,在目标写进程的迁移次序的进程。Wherein, the previous writing process of the target writing process may be a process in the migration order of the target writing process according to the arrangement order of the processes.

在实施中,针对于目标写进程,终端可以确定该目标写进程之前是否存在其他进程,即,确定该目标写进程是否为初始写进程,该初始写进程可以是按照进程排列次序确定的位于首位的写进程。在终端确定目标写进程存在上一写进程的情况下,终端可以通过预设数据传输网络获取上一写进程的剩余数据块,这样,终端还可以获取该目标写进程的本身所携带的原始数据块,并将目标写进程的上一写进程的剩余数据块以及该目标写进程的原始数据块进行拼接,得到目标写进程的目标数据块。In implementation, for the target writing process, the terminal can determine whether there are other processes before the target writing process, that is, determine whether the target writing process is the initial writing process, and the initial writing process can be determined according to the order of the processes at the first place the writing process. When the terminal determines that there is a previous writing process in the target writing process, the terminal can obtain the remaining data blocks of the previous writing process through the preset data transmission network, so that the terminal can also obtain the original data carried by the target writing process itself block, and splicing the remaining data block of the previous writing process of the target writing process and the original data block of the target writing process to obtain the target data block of the target writing process.

本实施例中,可以将上一写进程的数据块交换至目标写进程,实现在无分布式锁竞争的情况下的数据写入,提升数据写入效率。In this embodiment, the data blocks of the previous writing process can be exchanged to the target writing process, so as to implement data writing without distributed lock competition and improve data writing efficiency.

在一个实施例中,该数据写入方法还包括:In one embodiment, the data writing method also includes:

针对于目标写进程,在目标写进程不存在目标写进程的上一写进程,确定目标写进程的原始数据块为目标写进程的目标数据块。For the target writing process, if there is no previous writing process of the target writing process in the target writing process, the original data block of the target writing process is determined as the target data block of the target writing process.

在实施中,针对于目标写进程,终端可以确定该目标写进程之前是否存在其他进程,即,确定该目标写进程是否为初始写进程,该初始写进程可以是按照进程排列次序确定的位于首位的写进程。在终端确定目标写进程不存在上一写进程的情况下,即,终端确定该目标写进程为初始写进程的情况下,终端可以获取该目标写进程的本身所携带的原始数据块,并将该原始数据块作为目标写进程的目标数据块。In implementation, for the target writing process, the terminal can determine whether there are other processes before the target writing process, that is, determine whether the target writing process is the initial writing process, and the initial writing process can be determined according to the order of the processes at the first place the writing process. When the terminal determines that the target writing process does not have a previous writing process, that is, when the terminal determines that the target writing process is the initial writing process, the terminal can obtain the original data block carried by the target writing process itself, and The original data block is used as the target data block of the target writing process.

本实施例中,可以将写进程的原始数据块作为目标数据块,实现严格的条带对齐的数据写入。In this embodiment, the original data block of the writing process can be used as the target data block to implement data writing with strict stripe alignment.

在一个实施例中,该数据写入方法还包括:In one embodiment, the data writing method also includes:

针对于目标写进程,在目标写进程存在目标写进程的上一写进程,且上一写进程不存在剩余数据块的情况下,确定目标写进程的原始数据块为目标写进程的目标数据块。For the target writing process, if there is a previous writing process of the target writing process in the target writing process, and there is no remaining data block in the previous writing process, determine that the original data block of the target writing process is the target data block of the target writing process .

在实施中,在终端确定目标写进程存在目标写进程的上一写进程,但是该目标写进程的上一写进程并不存在剩余数据块的情况下,终端在该种情况下可以不需要通过预设数据传输网络进行数据交换,这样,终端可以确定目标写进程的原始数据块为目标写进程的目标数据块。In implementation, when the terminal determines that there is a previous write process of the target write process in the target write process, but there is no remaining data block in the previous write process of the target write process, the terminal may not need to pass The preset data transmission network performs data exchange, so that the terminal can determine that the original data block of the target writing process is the target data block of the target writing process.

本实施例中,可以将写进程的原始数据块作为目标数据块,实现严格的条带对齐的数据写入。In this embodiment, the original data block of the writing process can be used as the target data block to implement data writing with strict stripe alignment.

在本实施例中,为了保证数据信息在分布式系统中的一致性,需由分布式锁(分布式区间锁)保护。分布式应用基于多接入点同步操作同一个文件,就涉及分布式锁的竞争,以及由此引起的分布式锁请求和召回。因此,分布式锁的竞争是OpenMPI应用写文件的一个性能瓶颈,也就是说,OpenMPI是多进程应用,与多接入点的分布式文件系统交互的时序图如图4所示,在写进程(rank0以及rank1)请求分布式锁时,如果锁在其他接入点使用,则先进行召回操作,清理原接入点的本地缓存,然后再由分布式锁服务器将分布式锁缓存至请求节点本地。In this embodiment, in order to ensure the consistency of data information in the distributed system, it needs to be protected by distributed locks (distributed interval locks). Distributed applications operate the same file synchronously based on multiple access points, which involves the competition of distributed locks, and the resulting distributed lock requests and recalls. Therefore, the competition of distributed locks is a performance bottleneck for OpenMPI applications to write files. That is to say, OpenMPI is a multi-process application. (rank0 and rank1) When requesting a distributed lock, if the lock is used by other access points, the recall operation will be performed first to clear the local cache of the original access point, and then the distributed lock server will cache the distributed lock to the requesting node local.

本申请提供的一种数据写入方法,可以通过数据的交换和拼接,严格保证写入数据条带对齐,从根本上避免了分布式锁的竞争以及补读的发生,大大提升了写入效率。以及对于只有写入,无读取的OpenMPI应用场景,可以通过分布式文件系统提供的ioctl接口,关闭分布式区间锁,彻底跳过分布式区间锁逻辑,可以进一步提升写入效率,本申请提供的数据写入方法可以利用OpenMPI进程高速通讯,交换、拼接写入数据,保证严格条带对齐,避免分布式文件系统中分布式锁的开销,对于非OpenMPI应用,写入过程中,不会调用ioctl接口,写入逻辑无变化,保证兼容性。A data writing method provided by this application can strictly ensure the alignment of written data stripes through data exchange and splicing, fundamentally avoiding the competition of distributed locks and the occurrence of supplementary reading, and greatly improving the writing efficiency . And for OpenMPI application scenarios where there is only writing but no reading, you can use the ioctl interface provided by the distributed file system to close the distributed interval lock and completely skip the logic of the distributed interval lock, which can further improve the writing efficiency. This application provides The data writing method of the OpenMPI process can use the high-speed communication of the OpenMPI process to exchange and splicing the written data to ensure strict stripe alignment and avoid the overhead of distributed locks in the distributed file system. For non-OpenMPI applications, during the writing process, it will not call ioctl interface, no change in writing logic, ensuring compatibility.

应该理解的是,虽然如上的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。It should be understood that although the steps in the flow charts involved in the above embodiments are shown sequentially according to the arrows, these steps are not necessarily executed sequentially in the order indicated by the arrows. Unless otherwise specified herein, there is no strict order restriction on the execution of these steps, and these steps can be executed in other orders. Moreover, at least some of the steps in the flow charts involved in the above embodiments may include multiple steps or stages, and these steps or stages are not necessarily executed at the same time, but may be executed at different times, The execution order of these steps or stages is not necessarily performed sequentially, but may be executed in turn or alternately with other steps or at least a part of steps or stages in other steps.

基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的数据写入方法的数据写入装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个数据写入装置实施例中的具体限定可以参见上文中对于数据写入方法的限定,在此不再赘述。Based on the same inventive concept, an embodiment of the present application further provides a data writing device for implementing the above-mentioned data writing method. The solution to the problem provided by the device is similar to the implementation described in the above method, so the specific limitations in one or more embodiments of the data writing device provided below can be referred to above for the data writing method limited and will not be repeated here.

在一个实施例中,如图5所示,提供了一种数据写入装置500,包括:In one embodiment, as shown in FIG. 5, a data writing device 500 is provided, including:

第一获取模块502,用于响应于数据写入请求,获取数据写入请求对应的多个写进程;The first acquiring module 502 is configured to acquire multiple writing processes corresponding to the data writing request in response to the data writing request;

第一确定模块504,用于针对于多个写进程中的目标写进程,确定目标写进程的目标数据块;The first determining module 504 is configured to determine the target data block of the target writing process for the target writing process among the multiple writing processes;

写入模块506,用于按照预设条带的大小对目标数据块进行划分,得到满足预设条带的大小的第一数据块以及不满足预设条带大小的剩余数据块,并通过目标写进程,写入目标写进程对应的第一数据块中的数据;The write module 506 is configured to divide the target data block according to the size of the preset stripe, obtain the first data block that meets the size of the preset stripe and the remaining data blocks that do not meet the size of the preset stripe, and pass the target Write process, write the data in the first data block corresponding to the target write process;

传输模块508,用于在存在目标写进程的下一写进程的情况下,通过预设数据传输网络,将剩余数据块传输至目标写进程的下一写进程,以使下一写进程确定剩余数据块以及下一写进程的原始数据块为目标数据块,并作为新的目标写进程,执行按照预设条带的大小对目标数据块进行划分的步骤。The transmission module 508 is configured to transmit the remaining data blocks to the next writing process of the target writing process through a preset data transmission network if there is a next writing process of the target writing process, so that the next writing process can determine the remaining The data block and the original data block of the next writing process are the target data block, and as a new target writing process, the step of dividing the target data block according to the size of the preset stripe is performed.

在其中一个实施例中,该数据写入装置500还包括:In one of the embodiments, the data writing device 500 also includes:

缓存模块,用于在所述目标写进程不存在下一写进程的情况下,将所述目标写进程对应的剩余数据块缓存至预设缓存空间。The caching module is configured to cache the remaining data blocks corresponding to the target writing process in a preset cache space when there is no next writing process in the target writing process.

在其中一个实施例中,该数据写入装置500还包括:In one of the embodiments, the data writing device 500 also includes:

第二获取模块,用于在检测到所述数据写入请求对应的待写入文件的关闭指令后,获取所述预设缓存空间中的剩余数据块,并将所述剩余数据块拼接写入所述待写入文件。The second acquisition module is configured to acquire the remaining data blocks in the preset cache space after detecting the closing instruction of the file to be written corresponding to the data writing request, and concatenate and write the remaining data blocks The file to be written.

在其中一个实施例中,所述第一确定模块504具体用于:In one of the embodiments, the first determining module 504 is specifically configured to:

针对于所述目标写进程,在所述目标写进程存在所述目标写进程的上一写进程,获取所述上一写进程的剩余数据块,以及获取所述目标写进程的原始数据块;For the target writing process, there is a previous writing process of the target writing process in the target writing process, obtaining the remaining data blocks of the previous writing process, and obtaining the original data blocks of the target writing process;

对所述上一写进程的剩余数据块以及所述目标写进程的原始数据块进行拼接,得到所述目标写进程的目标数据块。Splicing the remaining data blocks of the last writing process and the original data blocks of the target writing process to obtain the target data blocks of the target writing process.

在其中一个实施例中,该数据写入装置500还包括:In one of the embodiments, the data writing device 500 also includes:

第二确定模块,用于针对于所述目标写进程,在所述目标写进程不存在所述目标写进程的上一写进程,确定所述目标写进程的原始数据块为所述目标写进程的目标数据块。The second determining module is configured to, for the target writing process, determine that the original data block of the target writing process is the target writing process when the target writing process does not have a previous writing process of the target writing process target data block.

在其中一个实施例中,该数据写入装置500还包括:In one of the embodiments, the data writing device 500 also includes:

第三确定模块,用于针对于所述目标写进程,在所述目标写进程存在所述目标写进程的上一写进程,且所述上一写进程不存在所述剩余数据块的情况下,确定所述目标写进程的原始数据块为所述目标写进程的目标数据块。The third determining module is configured to, for the target writing process, when the target writing process has a previous writing process of the target writing process, and the remaining data block does not exist in the previous writing process , determining the original data block of the target writing process as the target data block of the target writing process.

上述数据写入装置500中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。Each module in the above-mentioned data writing device 500 may be realized in whole or in part by software, hardware or a combination thereof. The above-mentioned modules can be embedded in or independent of the processor in the computer device in the form of hardware, and can also be stored in the memory of the computer device in the form of software, so that the processor can invoke and execute the corresponding operations of the above-mentioned modules.

在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图6所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储写入数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种数据写入方法。In one embodiment, a computer device is provided. The computer device may be a server, and its internal structure may be as shown in FIG. 6 . The computer device includes a processor, memory and a network interface connected by a system bus. Wherein, the processor of the computer device is used to provide calculation and control capabilities. The memory of the computer device includes a non-volatile storage medium and an internal memory. The non-volatile storage medium stores an operating system, computer programs and databases. The internal memory provides an environment for the operation of the operating system and computer programs in the non-volatile storage medium. The database of the computer device is used to store written data. The network interface of the computer device is used to communicate with an external terminal via a network connection. When the computer program is executed by the processor, a data writing method is realized.

本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。Those skilled in the art can understand that the structure shown in FIG. 6 is only a block diagram of a part of the structure related to the solution of this application, and does not constitute a limitation on the computer equipment to which the solution of this application is applied. The specific computer equipment can be More or fewer components than shown in the figures may be included, or some components may be combined, or have a different arrangement of components.

在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。In one embodiment, there is also provided a computer device, including a memory and a processor, where a computer program is stored in the memory, and the processor implements the steps in the above method embodiments when executing the computer program.

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。In one embodiment, a computer-readable storage medium is provided, on which a computer program is stored, and when the computer program is executed by a processor, the steps in the foregoing method embodiments are implemented.

在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。In one embodiment, a computer program product is provided, including a computer program, and when the computer program is executed by a processor, the steps in the foregoing method embodiments are implemented.

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。Those of ordinary skill in the art can understand that all or part of the processes in the methods of the above-mentioned embodiments can be completed by instructing related hardware through computer programs, and the computer programs can be stored in a non-volatile computer-readable memory In the medium, when the computer program is executed, it may include the processes of the embodiments of the above-mentioned methods. Wherein, any reference to storage, database or other media used in the various embodiments provided in the present application may include at least one of non-volatile and volatile storage. Non-volatile memory can include read-only memory (Read-Only Memory, ROM), magnetic tape, floppy disk, flash memory, optical memory, high-density embedded non-volatile memory, resistive variable memory (ReRAM), magnetic variable memory (Magnetoresistive Random Access Memory, MRAM), Ferroelectric Random Access Memory (FRAM), Phase Change Memory (Phase Change Memory, PCM), graphene memory, etc. The volatile memory may include random access memory (Random Access Memory, RAM) or external cache memory. As an illustration and not a limitation, RAM can be in various forms, such as Static Random Access Memory (SRAM) or Dynamic Random Access Memory (Dynamic Random Access Memory, DRAM). The databases involved in the various embodiments provided in this application may include at least one of a relational database and a non-relational database. The non-relational database may include a blockchain-based distributed database, etc., but is not limited thereto. The processors involved in the various embodiments provided by this application can be general-purpose processors, central processing units, graphics processors, digital signal processors, programmable logic devices, data processing logic devices based on quantum computing, etc., and are not limited to this.

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。The technical features of the above embodiments can be combined arbitrarily. To make the description concise, all possible combinations of the technical features in the above embodiments are not described. However, as long as there is no contradiction in the combination of these technical features, they should be It is considered to be within the range described in this specification.

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。The above-mentioned embodiments only express several implementation modes of the present application, and the description thereof is relatively specific and detailed, but should not be construed as limiting the patent scope of the present application. It should be noted that those skilled in the art can make several modifications and improvements without departing from the concept of the present application, and these all belong to the protection scope of the present application. Therefore, the protection scope of the present application should be determined by the appended claims.

Claims (10)

1.一种数据写入方法,其特征在于,所述方法包括:1. A data writing method, characterized in that the method comprises: 响应于数据写入请求,获取所述数据写入请求对应的多个写进程;Responding to the data write request, acquiring multiple write processes corresponding to the data write request; 针对于多个写进程中的目标写进程,确定所述目标写进程的目标数据块;For a target writing process among multiple writing processes, determine a target data block of the target writing process; 按照预设条带的大小对所述目标数据块进行划分,得到满足所述预设条带的大小的第一数据块以及不满足所述预设条带大小的剩余数据块,并通过所述目标写进程,写入所述目标写进程对应的第一数据块中的数据;Divide the target data block according to the size of the preset stripe, obtain the first data block that meets the size of the preset stripe and the remaining data blocks that do not meet the size of the preset stripe, and pass the A target write process, writing data in the first data block corresponding to the target write process; 在存在所述目标写进程的下一写进程的情况下,通过预设数据传输网络,将所述剩余数据块传输至所述目标写进程的下一写进程,以使所述下一写进程确定所述剩余数据块以及所述下一写进程的原始数据块为目标数据块,并作为新的目标写进程,执行所述按照预设条带的大小对所述目标数据块进行划分的步骤。In the case that the next writing process of the target writing process exists, the remaining data block is transmitted to the next writing process of the target writing process through a preset data transmission network, so that the next writing process Determining the remaining data blocks and the original data blocks of the next writing process as target data blocks, and performing the step of dividing the target data blocks according to the size of the preset stripes as a new target writing process . 2.根据权利要求1所述的方法,其特征在于,在所述按照预设条带的大小对所述目标数据块进行划分,得到满足所述预设条带的大小的第一数据块以及不满足所述预设条带大小的剩余数据块的步骤之后,所述方法还包括:2. The method according to claim 1, wherein the target data block is divided according to the size of the preset stripe to obtain the first data block satisfying the size of the preset stripe and After the step of remaining data blocks that do not meet the preset stripe size, the method further includes: 在所述目标写进程不存在下一写进程的情况下,将所述目标写进程对应的剩余数据块缓存至预设缓存空间。If there is no next writing process in the target writing process, the remaining data blocks corresponding to the target writing process are cached in a preset cache space. 3.根据权利要求2所述的方法,其特征在于,所述方法还包括:3. The method according to claim 2, wherein the method further comprises: 在检测到所述数据写入请求对应的待写入文件的关闭指令后,获取所述预设缓存空间中的剩余数据块,并将所述剩余数据块拼接写入所述待写入文件。After detecting the close instruction of the file to be written corresponding to the data write request, acquiring the remaining data blocks in the preset cache space, and concatenating the remaining data blocks into the file to be written. 4.根据权利要求1所述的方法,其特征在于,所述针对于多个写进程中的每一目标写进程,确定所述目标写进程的目标数据块,包括:4. The method according to claim 1, wherein, for each target writing process in a plurality of writing processes, determining the target data block of the target writing process comprises: 针对于所述目标写进程,在所述目标写进程存在所述目标写进程的上一写进程,获取所述上一写进程的剩余数据块,以及获取所述目标写进程的原始数据块;For the target writing process, there is a previous writing process of the target writing process in the target writing process, obtaining the remaining data blocks of the previous writing process, and obtaining the original data blocks of the target writing process; 对所述上一写进程的剩余数据块以及所述目标写进程的原始数据块进行拼接,得到所述目标写进程的目标数据块。Splicing the remaining data blocks of the last writing process and the original data blocks of the target writing process to obtain the target data blocks of the target writing process. 5.根据权利要求4所述的方法,其特征在于,所述方法还包括:5. method according to claim 4, is characterized in that, described method also comprises: 针对于所述目标写进程,在所述目标写进程不存在所述目标写进程的上一写进程,确定所述目标写进程的原始数据块为所述目标写进程的目标数据块。For the target writing process, the previous writing process of the target writing process does not exist in the target writing process, and the original data block of the target writing process is determined as the target data block of the target writing process. 6.根据权利要求4所述的方法,其特征在于,所述方法还包括:6. The method according to claim 4, characterized in that the method further comprises: 针对于所述目标写进程,在所述目标写进程存在所述目标写进程的上一写进程,且所述上一写进程不存在所述剩余数据块的情况下,确定所述目标写进程的原始数据块为所述目标写进程的目标数据块。For the target writing process, when the target writing process has a previous writing process of the target writing process and the remaining data block does not exist in the previous writing process, determine the target writing process The original data block of is the target data block of the target write process. 7.一种数据写入装置,其特征在于,所述装置包括:7. A data writing device, characterized in that the device comprises: 第一获取模块,用于响应于数据写入请求,获取所述数据写入请求对应的多个写进程;A first acquiring module, configured to acquire multiple writing processes corresponding to the data writing request in response to the data writing request; 第一确定模块,用于针对于多个写进程中的目标写进程,确定所述目标写进程的目标数据块;A first determining module, configured to, for a target writing process among multiple writing processes, determine a target data block of the target writing process; 写入模块,用于按照预设条带的大小对所述目标数据块进行划分,得到满足所述预设条带的大小的第一数据块以及不满足所述预设条带大小的剩余数据块,并通过所述目标写进程,写入所述目标写进程对应的第一数据块中的数据;A write module, configured to divide the target data block according to the size of the preset stripe, to obtain the first data block that meets the size of the preset stripe and the remaining data that does not meet the size of the preset stripe block, and write the data in the first data block corresponding to the target writing process through the target writing process; 传输模块,用于在存在所述目标写进程的下一写进程的情况下,通过预设数据传输网络,将所述剩余数据块传输至所述目标写进程的下一写进程,以使所述下一写进程确定所述剩余数据块以及所述下一写进程的原始数据块为目标数据块,并作为新的目标写进程,执行所述按照预设条带的大小对所述目标数据块进行划分的步骤。A transmission module, configured to transmit the remaining data blocks to the next writing process of the target writing process through a preset data transmission network in the case that there is a next writing process of the target writing process, so that all The next write process determines that the remaining data blocks and the original data blocks of the next write process are target data blocks, and as a new target write process, executes the process of performing the processing of the target data according to the size of the preset stripe Steps to divide blocks. 8.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述的方法的步骤。8. A computer device, comprising a memory and a processor, the memory stores a computer program, wherein the processor implements the method according to any one of claims 1 to 6 when executing the computer program step. 9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。9. A computer-readable storage medium, on which a computer program is stored, wherein when the computer program is executed by a processor, the steps of the method according to any one of claims 1 to 6 are realized. 10.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序10. A computer program product, comprising a computer program, characterized in that the computer program 被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。When executed by a processor, the steps of the method according to any one of claims 1 to 6 are realized.
CN202211624203.9A 2022-12-15 2022-12-15 Data writing method, device, computer equipment and storage medium Pending CN116225314A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211624203.9A CN116225314A (en) 2022-12-15 2022-12-15 Data writing method, device, computer equipment and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211624203.9A CN116225314A (en) 2022-12-15 2022-12-15 Data writing method, device, computer equipment and storage medium

Publications (1)

Publication Number Publication Date
CN116225314A true CN116225314A (en) 2023-06-06

Family

ID=86589990

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211624203.9A Pending CN116225314A (en) 2022-12-15 2022-12-15 Data writing method, device, computer equipment and storage medium

Country Status (1)

Country Link
CN (1) CN116225314A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117854553A (en) * 2024-03-06 2024-04-09 北京云豹创芯智能科技有限公司 Data shaping circuit, method and chip

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160054939A1 (en) * 2014-08-21 2016-02-25 Datrium, Inc. Alternate Storage Arrangement in a Distributed Data Storage System with Key-Based Addressing
US20160054920A1 (en) * 2014-08-21 2016-02-25 Datrium, Inc. Distributed Data Storage System with Key-Based Addressing
CN108769123A (en) * 2018-04-27 2018-11-06 国信优易数据有限公司 A kind of data system and data processing method
US20190391877A1 (en) * 2018-06-21 2019-12-26 International Business Machines Corporation Decentralized raid scheme having distributed parity computation and recovery

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160054939A1 (en) * 2014-08-21 2016-02-25 Datrium, Inc. Alternate Storage Arrangement in a Distributed Data Storage System with Key-Based Addressing
US20160054920A1 (en) * 2014-08-21 2016-02-25 Datrium, Inc. Distributed Data Storage System with Key-Based Addressing
CN108769123A (en) * 2018-04-27 2018-11-06 国信优易数据有限公司 A kind of data system and data processing method
US20190391877A1 (en) * 2018-06-21 2019-12-26 International Business Machines Corporation Decentralized raid scheme having distributed parity computation and recovery

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117854553A (en) * 2024-03-06 2024-04-09 北京云豹创芯智能科技有限公司 Data shaping circuit, method and chip

Similar Documents

Publication Publication Date Title
CN113918101B (en) A method, system, device and storage medium for writing data cache
US10552936B2 (en) Solid state storage local image processing system and method
US10025533B2 (en) Logical block addresses used for executing host commands
CN115470156A (en) RDMA-based memory use method, system, electronic device and storage medium
CN114625762A (en) Metadata acquisition method, network device and system
WO2022151950A1 (en) Tensor processing method, apparatus and device, and computer readable storage medium
WO2023040348A1 (en) Data processing method in distributed system, and related system
WO2024021470A1 (en) Cross-region data scheduling method and apparatus, device, and storage medium
CN107798063A (en) Snapshot processing method and snapshot processing device
CN111984204B (en) A data reading and writing method, device, electronic equipment, and storage medium
WO2021159608A1 (en) Protocol buffers-based mirror cache method
CN116225314A (en) Data writing method, device, computer equipment and storage medium
CN115712394A (en) Data reading and writing method and device, computer equipment and readable storage medium
CN105808451A (en) Data caching method and related apparatus
WO2024001863A9 (en) Data processing method and related device
US10678453B2 (en) Method and device for checking false sharing in data block deletion using a mapping pointer and weight bits
CN115964084A (en) Data interaction method, electronic equipment and storage medium
CN113608675B (en) RAID data IO processing method and device, computer equipment and medium
US12405837B2 (en) Method and system for acceleration or offloading utilizing a unified data pointer
CN114756699B (en) Graphics data access processing method, device, computer equipment and storage medium
US20240036940A1 (en) Method and system for acceleration or offloading utilizing a unified data pointer
CN117806709B (en) Performance optimization method, device, equipment and storage medium of system-level chip
CN119003410B (en) A method, device, equipment and storage medium for optimizing communication between storage controllers
CN114710441B (en) Link aggregation method, system, computer equipment and storage medium
CN112003860B (en) Memory management method, system and medium suitable for remote direct memory access

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
点击 这是indexloc提供的php浏览器服务,不要输入任何密码和下载