CN109992212A - 一种数据写入方法和一种数据读取方法 - Google Patents
一种数据写入方法和一种数据读取方法 Download PDFInfo
- Publication number
- CN109992212A CN109992212A CN201910285631.5A CN201910285631A CN109992212A CN 109992212 A CN109992212 A CN 109992212A CN 201910285631 A CN201910285631 A CN 201910285631A CN 109992212 A CN109992212 A CN 109992212A
- Authority
- CN
- China
- Prior art keywords
- equipment
- data
- instruction
- sent
- written
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
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)
- Computer Security & Cryptography (AREA)
- Retry When Errors Occur (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本申请实施例公开了一种数据写入方法,用于提高数据的写入速度。本申请实施例方法包括:向第二设备发送第一指令,第一指令用于指示第二设备预留第一数据的第一内存空间;向第二设备发送第二指令和第三指令,第二指令携带第一数据,第二指令用于指示在第一内存空间中写入第一数据,第三指令用于指示预留第二数据的第二内存空间;向第二设备发送第四指令和第五指令,第四指令用于指示在校验第一数据的完整性成功后在预设的第一硬盘空间中写入第一数据,第五指令携带第二数据,第五指令用于指示在第二内存空间中写入第二数据;向第二设备发送第六指令,第六指令用于指示在校验第二数据的完整性成功后在预设的第二硬盘空间中写入第二数据。
Description
技术领域
本申请涉及数据传输领域,尤其涉及一种数据写入方法、一种数据读取方法、第一设备和第二设备。
背景技术
传统的输入输出(input/output,IO)指令中,在进行IO操作的实现时,事件流往往比较长,包含比较多的操作步骤,并且操作步骤之间是串行执行的。例如,以第四版的光纤通道协议(fibre channel protocol,FCP)中对一次小型计算机系统接口(small computersystem interface,SCSI)数据的写入操作(write)的实现为例,一个完整的write指令执行过程中从write指令下发到指令最终完成,共经历了19个的步骤,并且所有步骤间都是串行的,导致整个IO指令从下发到完成,耗时较高。
整个IO指令从下发到完成的过程都需要占用一定的设备资源。现有技术中,服务器执行一次IO指令时,只有当该次IO指令完成后,执行这次IO指令的资源才以用于执行下一次的IO指令。服务器的处理能力有限,当服务器接收较多的IO指令时,一部分的IO指令可能需要等待大量时间才能被执行,进而造成IO指令的延迟。
由此可见,如何在服务器接收到大量的IO指令时,降低IO请求的延迟是一个亟需解决的问题。
发明内容
本申请实施例公开了一种数据写入方法、一种数据读取方法、第一设备和第二设备,用于提高数据的写入速度,数据的读取速度。
有鉴于此,本申请实施例第一方面提供了一种数据写入方法,可以包括:
第一设备向第二设备发送第一指令,该第一指令用于指示该第二设备预留第一数据的第一内存空间;
该第一设备向该第二设备发送第二指令和第三指令,该第二指令携带该第一数据,该第二指令用于指示该第二设备在该第一内存空间中写入该第一数据,该第三指令用于指示该第二设备预留第二数据的第二内存空间;
该第一设备向该第二设备发送第四指令和第五指令,该第四指令用于指示该第二设备在校验该第一数据的完整性成功后在预设的第一硬盘空间中写入该第一数据,该第五指令携带该第二数据,该第五指令用于指示该第二设备在该第二内存空间中写入该第二数据;
该第一设备向该第二设备发送第六指令,该第六指令用于指示该第二设备在校验该第二数据的完整性成功后在预设的第二硬盘空间中写入该第二数据。
可选的,在本申请的一些实施例中,该方法还可以包括:
该第一设备接收第二设备发送的失败消息,该失败消息由该第二设备在校验该第一数据的完整性失败后生成;
该第一设备根据该失败消息重新向该第二设备发送该第二指令。
本申请实施例第二方面提供了另一种数据写入方法,可以包括:
第二设备接收第一设备发送的第一指令;
该第二设备根据该第一指令预留第一数据的第一内存空间;
该第二设备接收该第一设备发送的第二指令和第三指令,该第二指令携带该第一数据;
该第二设备在该第一内存空间中写入该第一数据;
该第二设备根据该第三指令预留第二数据的第二内存空间;
该第二设备接收该第一设备发送的第四指令和第五指令,该第五指令携带第二数据;
若该第二设备根据该第四指令校验该第一数据的完整性成功,则该第二设备在预设的第一硬盘空间中写入该第一数据;
该第二设备根据该第五指令在该第二内存空间中写入该第二数据;
该第二设备接收该第一设备发送的第六指令;
若该第二设备根据该第六指令校验该第二数据的完整性成功,则该第二设备在预设的第二硬盘空间中写入该第二数据。
可选的,在本申请的一些实施例中,该方法还可以包括:
若该第二设备根据该第三指令校验该第一数据的完整性失败,则该第二设备向该第一设备发送失败消息;
该第二设备重新接收该第一设备发送的该第二指令,该重新接收的该第二指令由该第一设备根据该失败消息生成。
本申请实施例第三方面提供了一种数据读取方法,可以包括:
第一设备向第二设备发送第一读取请求,该第一读取请求携带第一数据的标识;
该第一设备向第二设备发送第二读取请求,该第二读取请求携带第二数据的标识;
该第一设备接收该第二设备发送的该第一数据;
该第一设备接收该第二设备发送的该第二数据。
本申请实施例第四方面提供了另一种数据读取方法,可以包括:
第二设备接收第一设备发送的第一读取请求,该第一读取请求携带第一数据的标识;
该第二设备接收该第一设备发送的第二读取请求,该第二读取请求携带第一数据的标识;
该第二设备向该第一设备发送第一数据;
该第二设备向该第一设备发送第二数据。
本申请实施例第五方面提供了一种第一设备,可以包括:
收发单元,用于向第二设备发送第一指令,该第一指令用于指示该第二设备预留第一数据的第一内存空间;向该第二设备发送第二指令和第三指令,该第二指令携带该第一数据,该第二指令用于指示该第二设备在该第一内存空间中写入该第一数据,该第三指令用于指示该第二设备预留第二数据的第二内存空间;向该第二设备发送第四指令和第五指令,该第四指令用于指示该第二设备在校验该第一数据的完整性成功后在预设的第一硬盘空间中写入该第一数据,该第五指令携带该第二数据,该第五指令用于指示该第二设备在该第二内存空间中写入该第二数据;向该第二设备发送第六指令,该第六指令用于指示该第二设备在校验该第二数据的完整性成功后在预设的第二硬盘空间中写入该第二数据。
可选的,在本申请的一些实施例中,
该收发单元,还用于接收第二设备发送的失败消息,该失败消息由该第二设备在校验该第一数据的完整性失败后生成;根据该失败消息重新向该第二设备发送该第二指令。
本申请实施例第六方面提供了一种第二设备,可以包括:
收发单元,用于接收第一设备发送的第一指令;接收该第一设备发送的第二指令和第三指令,该第二指令携带该第一数据;接收该第一设备发送的第四指令和第五指令,该第五指令携带第二数据;接收该第一设备发送的第六指令;
处理单元,用于根据该第一指令预留第一数据的第一内存空间;在该第一内存空间中写入该第一数据;根据该第三指令预留第二数据的第二内存空间;若根据该第四指令校验该第一数据的完整性成功,则在预设的第一硬盘空间中写入该第一数据;根据该第五指令在该第二内存空间中写入该第二数据;若根据该第六指令校验该第二数据的完整性成功,则在预设的第二硬盘空间中写入该第二数据。
可选的,在本申请的一些实施例中,
该收发单元,还用于若根据该第三指令校验该第一数据的完整性失败,则向该第一设备发送失败消息;重新接收该第一设备发送的该第二指令,该重新接收的该第二指令由该第一设备根据该失败消息生成。
本申请实施例第七方面提供了另一种第一设备,可以包括:
收发单元,用于向第二设备发送第一读取请求,该第一读取请求携带第一数据的标识;向第二设备发送第二读取请求,该第二读取请求携带第二数据的标识;接收该第二设备发送的该第一数据;接收该第二设备发送的该第二数据。
本申请实施例第八方面提供了另一种第二设备,可以包括:
收发单元,用于接收第一设备发送的第一读取请求,该第一读取请求携带第一数据的标识;接收该第一设备发送的第二读取请求,该第二读取请求携带第一数据的标识;向该第一设备发送第一数据;向该第一设备发送第二数据。
本申请实施例第九方面还提供了一种第一设备,可以包括:
至少一个处理器,至少一个存储器,至少一个收发器;所述至少一个处理器,所述至少一个存储器和所述至少一个收发器通过线路通信耦合,所述第一设备通过所述至少一个收发器与所述第一设备之外的装置相通信,所述至少一个存储器用于存储程序指令,所述至少一个处理器用于执行所述至少一个存储器中存储的所述程序指令,使得所述第一设备执行如本申请实施例中第一方面及任一可选方式中所述的方法。
本申请实施例第十方面还提供了一种第二设备,可以包括:
至少一个处理器,至少一个存储器,至少一个收发器;所述至少一个处理器,所述至少一个存储器和所述至少一个收发器通过线路通信耦合,所述第二设备通过所述至少一个收发器与所述第二设备之外的装置相通信,所述至少一个存储器用于存储程序指令,所述至少一个处理器用于执行所述至少一个存储器中存储的所述程序指令,使得所述第二设备执行如本申请实施例中第二方面及任一可选方式中所述的方法。
本申请实施例第九方面还提供了另一种第一设备,可以包括:
至少一个处理器,至少一个存储器,至少一个收发器;所述至少一个处理器,所述至少一个存储器和所述至少一个收发器通过线路通信耦合,所述第一设备通过所述至少一个收发器与所述第一设备之外的装置相通信,所述至少一个存储器用于存储程序指令,所述至少一个处理器用于执行所述至少一个存储器中存储的所述程序指令,使得所述第一设备执行如本申请实施例中第三方面及任一可选方式中所述的方法。
本申请实施例第十方面还提供了另一种第二设备,可以包括:
至少一个处理器,至少一个存储器,至少一个收发器;所述至少一个处理器,所述至少一个存储器和所述至少一个收发器通过线路通信耦合,所述第二设备通过所述至少一个收发器与所述第二设备之外的装置相通信,所述至少一个存储器用于存储程序指令,所述至少一个处理器用于执行所述至少一个存储器中存储的所述程序指令,使得所述第二设备执行如本申请实施例中第四方面及任一可选方式中所述的方法。
本申请实施例第十一方面还提供了一种计算机存储介质,包括指令,当其在计算机上运行时,使得计算机执行如前述第一方面或第二方面及任一可选方式中所述的方法。
本申请实施例第十二方面还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行如前述第一方面或第二方面及任一可选方式中所述的方法。
本申请实施例第十三方面还提供了一种计算机存储介质,包括指令,当其在计算机上运行时,使得计算机执行如前述第三方面或第四方面及任一可选方式中所述的方法。
本申请实施例第十四方面还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行如前述第三方面或第四方面及任一可选方式中所述的方法。
从以上技术方案可以看出,本申请实施例具有以下优点:
将第一数据和第二数据的读写过程分别分为多个指令或多个步骤完成,其中,第一数据的指令和第二数据的读写的过程均采用异步的方式执行。相比较现有技术中,一个数据的读写过程执行完毕才能进行下一个数据的读写过程的方式,本实施例中,采用异步的方式:在第一数据的读写过程还未结束时,即可以开始第二数据的读写过程,有效减少了第二数据读写过程的等待时间,从而减少了数据读写时的延迟。并且,由于减少了读写数据时的延迟,第一设备和第二设备每次进行数据交互的时间周期都有了较大的减少,与发生数据网络中断、程序异常和宕机等异常问题交互的时间窗口的机会大大降低,可以有效提高读写数据的可靠性。
附图说明
图1为本申请实施例中一种数据写入方法的一个实施例示意图;
图2为本申请实施例中一种数据读取方法的一个实施例示意图;
图3为本申请实施例中一种第一设备的一个实施例示意图;
图4为本申请实施例中一种第二设备的一个实施例示意图;
图5为本申请实施例中一种第一设备的另一个实施例示意图;
图6为本申请实施例中一种第二设备的另一个实施例示意图;
图7为本申请实施例中一种第一设备的另一个实施例示意图;
图8为本申请实施例中一种第二设备的另一个实施例示意图;
图9为本申请实施例中一种第一设备的另一个实施例示意图;
图10为本申请实施例中一种第二设备的另一个实施例示意图。
具体实施方式
随着网络通信技术、高性能运算、大数据存储等技术的高速发展,企业的发展已经越来越离不开信息技术(information technology,IT)的推动,因此在更多的行业领域,IT技术之争已经被放到了空前的高度,成为企业创新、提升自身竞争力的主要手段。在网络通信技术应用、高性能运算应用以及大数据存储技术应用,以及相关的企业级智能的智能运维(artificial intelligence for IT operations,AIOPS),自动化IT运维等技术中,都涉及海量的IO操作,对于IO操作的性能,包括带宽、每秒进行读写操作的次数(input/outputoperations per second,IOPS)以及延迟都是系统使用效率的重要因素,都直接影响整个IT系统的竞争力。
目前的IO指令的执行方式为同步方式:IO指令中的各个步骤串行执行,直至该次IO指令完成后,服务器才可以执行下一个IO指令。
基于此,本申请实施例中提供了一种数据写入方法和一种数据读取方法,用于提高数据的写入速度和读取速度。
在本申请实施例中,根据IO指令的执行过程,可以将IO指令的执行过程拆分为指令的下发,指令的数据传输和指令的完成确认等三个独立的过程。并且对应的,在SCSI协议中为该三个过程设定三个对应的指令。该三个指令的执行过程在第一设备和第二设备之间进行。第一设备和第二设备可以是,满足SCSI协议、具有读写与交互功能的任何设备,例如手持电脑,移动终端等。本申请实施例中第一设备和第二设备均封装有该三个指令对应的接口,但对第一设备和第二设备的具体形式不做具体限定。
需要说明的是,一个IO流程中,该三个指令串行执行,分别对应完成该三个过程,但对于不同的IO流程,三个指令以异步的方式执行:第一设备和第二设备首先执行第一批次数据的第一指令对应的流程,再执行第一批次数据的第二指令对应的流程。而在执行第一批次数据的第二指令对应的流程时,第一设备和第二设备可以执行第二批次数据的第一指令对应的流程,进而当第一批次数据的第二指令对应的流程完成后,执行第三指令对应的流程时,第一设备和第二设备可以执行第二批次数据的第二指令对应的流程,当第一批次数据的第三指令对应的流程完成后,再执行第二批次数据的第三指令对应的流程。
IO指令可以分为写入指令和读取指令,而在进行数据写入和读取时,三个指令有所不同,下面就这两个方面分别进行说明。
具体如下图1所示,图1为本申请实施例中提供的一种数据写入方法的实施例示意图,包括:
101、第一设备向第二设备发送第一指令。
本实施例中,当第一设备响应用户操作或者其他设备向第二设备进行写入操作时,第一设备确定待写入的数据,其中,待写入的数据包括第一数据和第二数据。第一设备分别确定该第一数据和该第二数据的索引,该索引分别为该第一数据和第二数据在数据库中的编号,与该第一数据和第二数据具有唯一对应的关系。之后,该第一设备向该第二设备发送第一指令,该第一指令携带了该第一数据的卷id、数据长度和数据偏移,还可以携带该第一数据对应的索引。
102、第二设备根据第一指令预留第一数据的第一内存空间。
本实施例中,第二设备获取到第一指令后,根据第一指令预留可以存储该第一数据的第一内存空间及第一硬盘空间,该第一硬盘空间为第二设备通过第一指令携带的卷ID、数据长度和数据偏移确定的该第一数据要写入的卷的数据部分。第二设备确定该卷的数据部分后,并对其进行锁定,防止该部分其他数据的写入冲突。若该指令中还携带有该第一数据对应的索引,则该第二设备记录将该索引临时记录在本地。
可选的,在一种可能的实现方式中,第二设备确定预留好第一内存空间后,向第一设备发送第一响应。
可选的,在一种可能的实现方式中,若第二设备当前的内存空间不足以存储第一数据,则第二设备可以等待一段时间直至可以预留第一内存空间,或者第二设备关闭当前系统中优先级低的进程,释放内存,再预留第一内存空间。
103、第一设备向第二设备发送第二指令和第三指令,第二指令携带第一数据。
本实施例中,第一设备向第二设备发送第一指令,指示第二设备预留第一内存空间后,第一设备向第二设备发送第二指令和第三指令,该第二指令携带第一数据及该第一数据对应的索引,该第三指令携带了该第二数据的卷id、数据长度和数据偏移,还可以携带该第二数据对应的索引。
可选的,在一种可能的实现方式中,第二设备确定预留好第二数据的内存空间后,向第一设备发送第三响应。
104、第二设备根据第二指令在第一内存空间中写入第一数据。
本实施例中,第一设备获取到第一数据后,根据第二指令将该第一数据写入预留的第一内存空间中,该第一内存空间与该第一数据的索引具有对应关系。
可选的,在一种可能的实现方式中,第二设备在预留的第一内存空间中写入该第一数据后,可以向第一设备发送第二响应,用于指示第一设备第一数据已接收成功。
105、第二设备根据第三指令预留第二数据的第二内存空间。
本实施例中,第二设备获取到第三指令后,根据第三指令预留可以存储该第二数据的第二内存空间及第二硬盘空间,该第二硬盘空间为第二设备通过第三指令携带的卷ID、数据长度和数据偏移确定的该第二数据要写入的卷的数据部分。第二设备确定该卷的数据部分后,并对其进行锁定,防止该部分其他数据的写入冲突。若该指令中还携带有该第二数据对应的索引,则该第二设备记录将该索引临时记录在本地。
可选的,在一种可能的实现方式中,第二设备确定预留好第二内存空间后,向第一设备发送第三响应。
需要说明的是,步骤104与步骤105无必然的执行次序,即可以先执行104,也可以先执行105,或者同时执行,具体此处不做限定。
106、第一设备向第二设备发送第四指令和第五指令,第五指令携带第二数据。
本实施例中,第一设备向第二设备发送第一数据后,第一设备向第二设备发送第四指令,该第四指令携带第一数据的索引和第一校验码。其中,该第一校验码由该第一设备利用循环冗余校验(cyclic redundancy check,CRC)对该第一数据进行处理后生成。
需要说明的是,第一设备在向第二设备发送第二指令时,同时向第二设备发送第五指令,其中第五指令携带第二数据及该第二数据对应的索引。
107、第二设备根据第四指令对第一数据的完整性进行校验。
本实施例中,第二设备获取该第四指令中第一数据对应的索引及第一校验码后,根据该索引从对应的第一内存空间中找到对应的第一数据,并利用CRC技术对第一内存空间中保存的第一数据进行处理,得到第二校验码,根据第一校验码与第二校验码的对比校验第一数据的完整性。其中,CRC技术为现有技术中进行数据完整性校验的常用手段,具体此处不再赘述。
108、若第一数据的完整性校验成功,则第二设备在预设的第一硬盘空间中写入该第一数据。
本实施例中,若第一校验码与第二校验码相同,则第二设备确定接收到的第一数据的完整性校验成功,并将该第一数据从第一内存空间移动到第一硬盘空间,即预留的卷的位置。之后,第二设备释放第一内存空间中保存的第一数据。
可选的,在一种可能的实现方式中,当第二设备将第一数据写入预留的卷的数据位置成功后,第二设备向第一设备发送第四响应,该第四响应用以指示第一设备第一数据写入第二设备成功。
可选的,在一种可能的实现方式中,若第一数据的完整性校验失败,则第二设备向第一设备发送失败消息。
本实施例中,若第一校验码与第二校验码不同,则第二设备确定第一内存空间中接收的第一数据的完整性校验失败,并向第一设备发送失败消息。
进一步的,第一设备根据该失败消息向第二设备重新发送第二指令。
本实施例中,第一设备接收到该失败消息,通过该失败消息确定第一数据的完整性校验失败后,该第一设备可以重新向该第二设备发送该第二指令,该重新发送的第二指令携带该第一数据。第一设备接收到该第二指令后,继续执行之后的流程,直至第一数据的完整性校验成功。
109、第二设备根据第五指令在第二内存空间中写入第二数据。
本实施例中,第一设备获取到第二数据后,根据第二指令将该第二数据写入第二内存空间中,该第二内存空间与该第二数据的索引具有对应关系。
可选的,在一种可能的实现方式中,第二设备在第二内存空间中写入了该第二数据后,向第一设备发送第二响应,用于表示第二数据已接收成功。
需要说明的是,步骤107与步骤109无必然的执行次序,即可以先执行107,也可以先执行109,或者同时执行,具体此处不做限定。
110、第一设备向第二设备发送第六指令。
本实施例中,第一设备向第二设备发送第二数据后,第一设备向第二设备发送第六指令,该第六指令携带第二数据的索引和第三校验码。其中,该第三校验码由该第一设备利用循环冗余校验(cyclic redundancy check,CRC)对该第二数据进行处理后生成。
111、第二设备根据第六指令对第二数据的完整性进行校验。
本实施例中,第二设备获取该第六指令中第一数据对应的索引及第三校验码后,根据该索引从对应的第二内存空间中找到对应的第二数据,并利用CRC技术对第二内存空间中保存的第二数据进行处理,得到第四校验码,根据第三校验码与第四校验码的对比校验第二数据的完整性。其中,CRC技术为现有技术中进行数据完整性校验的常用手段,具体此处不再赘述。
112、若第二数据的完整性校验成功,则第二设备在预设的第二硬盘空间中写入该第二数据。
本实施例中,若第三校验码与第四校验码相同,则第二设备确定接收到的第二数据的完整性校验成功,并将该第二数据从第二内存空间移动到第二硬盘空间,即预留的卷的位置。之后,第二设备释放第二内存空间中保存的第二数据。
可选的,在一种可能的实现方式中,当第二设备将第一数据写入预留的卷的数据位置成功后,第二设备向第一设备发送第六响应,该第六响应用以指示第一设备该第二数据写入第二设备成功。
可选的,在一种可能的实现方式中,若第二数据的完整性校验失败,则第二设备向第一设备发送失败消息。
本实施例中,若第一校验码与第二校验码不同,则第二设备确定第二内存空间中接收的第二数据的完整性校验失败,并向第一设备发送失败消息。
进一步的,第一设备根据该失败消息向第二设备重新发送第二指令。
本实施例中,第一设备接收到该失败消息,通过该失败消息确定第二数据的完整性校验失败后,该第一设备可以重新向该第二设备发送该第五指令,该重新发送的第五指令携带该第二数据。第一设备接收到该第五指令后,继续执行之后的流程,直至第二数据的完整性校验成功。
可选的,在一些可能的实现方式中,为了使第一设备和第二设备上的应用可以灵活选用写入方式,可以开发指令选择算法,根据应用的IO特征和习惯,以及用户的要求,智能选择和使用对应的指令。
从以上技术方案可以看出,本申请实施例具有以下优点:
将第一数据和第二数据的写入过程分为多个指令完成,其中,第一数据的指令和第二数据的指令采用异步的方式执行。相比较现有技术中,一个数据写入完成后才能进行下一个数据写入过程的方式,本实施例中,采用异步的方式:在第一数据的写入过程还未结束时,即可以开始第二数据的写入过程,有效减少了第二数据写入过程的等待时间,从而减少了数据写入时的延迟。并且,由于减少了延迟,第一设备和第二设备每次进行数据交互的时间周期都有了较大的减少,与发生数据网络中断、程序异常和宕机等异常问题交互的时间窗口的机会大大降低,可以有效提高数据的可靠性。
上述实施例中对进行第一数据和第二数据写入的情况进行了说明,对比现有技术中第一数据和第二数据的读取情况下的缺陷,下面给出在读取情况下的说明。
下面具体参见图2,图2为本申请实施例中提供的一种数据读取方法的实施例示意图,包括:
201、第一设备向第二设备发送第一读取请求,该第一读取请求携带第一数据的标识。
本实施例中,第一设备在响应用户操作或者接收其他设备请求后,确定从第二设备待读取的数据,待读取的数据包括第一数据和第二数据。之后,第一设备向第二设备发送第一读取请求,该第一读取请求携带有第一数据的标识,该标识可以是数据的文件路径信息、文件名信息或者文件类别信息等。
202、第一设备向第二设备发送第二读取请求,该第二读取请求携带第二数据的标识。
本实施例中,第一设备在向第二设备发送第一读取请求后,向第二设备发送第二读取请求,该第二读取请求携带有第二数据的标识,该标识可以是数据的文件路径信息、文件名信息或者文件类别信息等。
203、第二设备向该第一设备发送该第一数据。
本实施例中,第二设备接收到第一读取请求后,根据第一读取请求携带的第一数据的标识,确定第一数据,并向该第一设备发送该第一数据。
需要说明的是,步骤202与步骤203无必然的执行次序,即可以先执行202,也可以先执行203,或者同时执行,具体此处不做限定。
204、第二设备向该第一设备发送该第二数据。
本实施例中,第二设备接收到第二读取请求后,根据第二读取请求携带的第二数据的标识,确定第二数据,并向该第一设备发送该第二数据。
从以上技术方案可以看出,本申请实施例具有以下优点:
将第一数据和第二数据的读取过程分为多个步骤完成,其中,第一数据读取的步骤和第二数据读取的步骤采用异步的方式执行。相比较现有技术中,一个数据的读取过程在该数据读取完毕才能进行下一个数据的读取过程的方式,本实施例中,采用异步的方式:在第一数据的读取过程还未结束时,即可以开始第二数据的读取过程,有效减少了第二数据读取过程的等待时间,从而减少了数据读取时的延迟。并且,由于减少了延迟,第一设备和第二设备每次进行数据交互的时间周期都有了较大的减少,与发生数据网络中断、程序异常和宕机等异常问题交互的时间窗口的机会大大降低,可以有效提高数据的可靠性。
下面具体参照图3,图3为本申请实施例中第一设备的一个实施例示意图,包括:
收发单元301,用于向第二设备发送第一指令,该第一指令用于指示该第二设备预留第一数据的第一内存空间;向该第二设备发送第二指令和第三指令,该第二指令携带该第一数据,该第二指令用于指示该第二设备在该第一内存空间中写入该第一数据,该第三指令用于指示该第二设备预留第二数据的第二内存空间;向该第二设备发送第四指令和第五指令,该第四指令用于指示该第二设备在校验该第一数据的完整性成功后在预设的第一硬盘空间中写入该第一数据,该第五指令携带该第二数据,该第五指令用于指示该第二设备在该第二内存空间中写入该第二数据;向该第二设备发送第六指令,该第六指令用于指示该第二设备在校验该第二数据的完整性成功后在预设的第二硬盘空间中写入该第二数据。
可选的,在本申请的一些实施例中,
收发单元301,还用于接收第二设备发送的失败消息,该失败消息由该第二设备在校验该第一数据的完整性失败后生成;根据该失败消息重新向该第二设备发送该第二指令。
下面具体参照图4,图4为本申请实施例中第二设备的一个实施例示意图,包括:
收发单元401,用于接收第一设备发送的第一指令;接收该第一设备发送的第二指令和第三指令,该第二指令携带该第一数据;接收该第一设备发送的第四指令和第五指令,该第五指令携带第二数据;接收该第一设备发送的第六指令;
处理单元402,用于根据该第一指令预留第一数据的第一内存空间;在该第一内存空间中写入该第一数据;根据该第三指令预留第二数据的第二内存空间;若根据该第四指令校验该第一数据的完整性成功,则在预设的第一硬盘空间中写入该第一数据;根据该第五指令在该第二内存空间中写入该第二数据;若根据该第六指令校验该第二数据的完整性成功,则在预设的第二硬盘空间中写入该第二数据。
可选的,在本申请的一些实施例中,
收发单元401,还用于若根据该第三指令校验该第一数据的完整性失败,则向该第一设备发送失败消息;重新接收该第一设备发送的该第二指令,该重新接收的该第二指令由该第一设备根据该失败消息生成。
下面具体参照图5,图5为本申请实施例中第一设备的另一个实施例示意图,包括:
收发单元501,用于向第二设备发送第一读取请求,该第一读取请求携带第一数据的标识;向第二设备发送第二读取请求,该第二读取请求携带第二数据的标识;接收该第二设备发送的该第一数据;接收该第二设备发送的该第二数据。
下面具体参照图6,图6为本申请实施例中第二设备的另一个实施例示意图,包括:
收发单元601,用于接收第一设备发送的第一读取请求,该第一读取请求携带第一数据的标识;接收该第一设备发送的第二读取请求,该第二读取请求携带第一数据的标识;向该第一设备发送第一数据;向该第一设备发送第二数据。
下面具体参照图7,图7为本申请实施例中第一设备的另一个实施例示意图,可以包括:
至少一个处理器701,至少一个存储器702,至少一个收发器703,所述至少一个处理器701,所述至少一个存储器702和所述至少一个收发器703通过线路通信耦合,所述终端设备通过至少一个收发器703与所述第一设备之外的装置相通信,所述至少一个存储器702用于存储程序指令,所述至少一个处理器701用于执行所述至少一个存储器702中存储的所述程序指令,使得所述第一设备执行如图1所示实施例中及任一可选方式中第一设备所执行的方法。
下面具体参照图8,图8为本申请实施例中第二设备的另一个实施例示意图,可以包括:
至少一个处理器801,至少一个存储器802,至少一个收发器803,所述至少一个处理器801,所述至少一个存储器802和所述至少一个收发器803通过线路通信耦合,所述终端设备通过至少一个收发器803与所述第二设备之外的装置相通信,所述至少一个存储器802用于存储程序指令,所述至少一个处理器801用于执行所述至少一个存储器802中存储的所述程序指令,使得所述第二设备执行如图1所示实施例中及任一可选方式中第二设备所执行的方法。
下面具体参照图9,图9为本申请实施例中第一设备的另一个实施例示意图,可以包括:
至少一个处理器901,至少一个存储器902,至少一个收发器903,所述至少一个处理器901,所述至少一个存储器902和所述至少一个收发器903通过线路通信耦合,所述终端设备通过至少一个收发器903与所述第一设备之外的装置相通信,所述至少一个存储器902用于存储程序指令,所述至少一个处理器901用于执行所述至少一个存储器902中存储的所述程序指令,使得所述第一设备执行如图2所示实施例中及任一可选方式中第一设备所执行的方法。
下面具体参照图10,图10为本申请实施例中第二设备的另一个实施例示意图,可以包括:
至少一个处理器1001,至少一个存储器1002,至少一个收发器1003,所述至少一个处理器1001,所述至少一个存储器1002和所述至少一个收发器1003通过线路通信耦合,所述终端设备通过至少一个收发器1003与所述第二设备之外的装置相通信,所述至少一个存储器1002用于存储程序指令,所述至少一个处理器1001用于执行所述至少一个存储器1002中存储的所述程序指令,使得所述第二设备执行如图2所示实施例中及任一可选方式中第二设备所执行的方法。
本申请实施例还提供了一种计算机存储介质,包括指令,当其在计算机上运行时,使得计算机执行如前述图1所示实施例中任一可选方式中所述的方法。
本申请实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行如前述图1所示实施例中及任一可选方式中所述的方法。
本申请实施例还提供了一种计算机存储介质,包括指令,当其在计算机上运行时,使得计算机执行如前述图2所示实施例中任一可选方式中所述的方法。
本申请实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行如前述图2所示实施例中及任一可选方式中所述的方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (10)
1.一种数据写入方法,其特征在于,包括:
第一设备向第二设备发送第一指令,所述第一指令用于指示所述第二设备预留第一数据的第一内存空间;
所述第一设备向所述第二设备发送第二指令和第三指令,所述第二指令携带所述第一数据,所述第二指令用于指示所述第二设备在所述第一内存空间中写入所述第一数据,所述第三指令用于指示所述第二设备预留第二数据的第二内存空间;
所述第一设备向所述第二设备发送第四指令和第五指令,所述第四指令用于指示所述第二设备在校验所述第一数据的完整性成功后在预设的第一硬盘空间中写入所述第一数据,所述第五指令携带所述第二数据,所述第五指令用于指示所述第二设备在所述第二内存空间中写入所述第二数据;
所述第一设备向所述第二设备发送第六指令,所述第六指令用于指示所述第二设备在校验所述第二数据的完整性成功后在预设的第二硬盘空间中写入所述第二数据。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述第一设备接收第二设备发送的失败消息,所述失败消息由所述第二设备在校验所述第一数据的完整性失败后生成;
所述第一设备根据所述失败消息重新向所述第二设备发送所述第二指令。
3.一种数据写入方法,其特征在于,包括:
第二设备接收第一设备发送的第一指令;
所述第二设备根据所述第一指令预留第一数据的第一内存空间;
所述第二设备接收所述第一设备发送的第二指令和第三指令,所述第二指令携带所述第一数据;
所述第二设备在所述第一内存空间中写入所述第一数据;
所述第二设备根据所述第三指令预留第二数据的第二内存空间;
所述第二设备接收所述第一设备发送的第四指令和第五指令,所述第五指令携带第二数据;
若所述第二设备根据所述第四指令校验所述第一数据的完整性成功,则所述第二设备在预设的第一硬盘空间中写入所述第一数据;
所述第二设备根据所述第五指令在所述第二内存空间中写入所述第二数据;
所述第二设备接收所述第一设备发送的第六指令;
若所述第二设备根据所述第六指令校验所述第二数据的完整性成功,则所述第二设备在预设的第二硬盘空间中写入所述第二数据。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
若所述第二设备根据所述第三指令校验所述第一数据的完整性失败,则所述第二设备向所述第一设备发送失败消息;
所述第二设备重新接收所述第一设备发送的所述第二指令,所述重新接收的所述第二指令由所述第一设备根据所述失败消息生成。
5.一种数据读取方法,其特征在于,包括:
第一设备向第二设备发送第一读取请求,所述第一读取请求携带第一数据的标识;
所述第一设备向第二设备发送第二读取请求,所述第二读取请求携带第二数据的标识;
所述第一设备接收所述第二设备发送的所述第一数据;
所述第一设备接收所述第二设备发送的所述第二数据。
6.一种数据读取方法,其特征在于,包括:
第二设备接收第一设备发送的第一读取请求,所述第一读取请求携带第一数据的标识;
所述第二设备接收所述第一设备发送的第二读取请求,所述第二读取请求携带第一数据的标识;
所述第二设备向所述第一设备发送第一数据;
所述第二设备向所述第一设备发送第二数据。
7.一种第一设备,其特征在于,包括:
收发单元,用于向第二设备发送第一指令,所述第一指令用于指示所述第二设备预留第一数据的第一内存空间;向所述第二设备发送第二指令和第三指令,所述第二指令携带所述第一数据,所述第二指令用于指示所述第二设备在所述第一内存空间中写入所述第一数据,所述第三指令用于指示所述第二设备预留第二数据的第二内存空间;向所述第二设备发送第四指令和第五指令,所述第四指令用于指示所述第二设备在校验所述第一数据的完整性成功后在预设的第一硬盘空间中写入所述第一数据,所述第五指令携带所述第二数据,所述第五指令用于指示所述第二设备在所述第二内存空间中写入所述第二数据;向所述第二设备发送第六指令,所述第六指令用于指示所述第二设备在校验所述第二数据的完整性成功后在预设的第二硬盘空间中写入所述第二数据。
8.一种第二设备,其特征在于,包括:
收发单元,用于接收第一设备发送的第一指令;接收所述第一设备发送的第二指令和第三指令,所述第二指令携带所述第一数据;接收所述第一设备发送的第四指令和第五指令,所述第五指令携带第二数据;接收所述第一设备发送的第六指令;
处理单元,用于根据所述第一指令预留第一数据的第一内存空间;在所述第一内存空间中写入所述第一数据;根据所述第三指令预留第二数据的第二内存空间;若根据所述第四指令校验所述第一数据的完整性成功,则在预设的第一硬盘空间中写入所述第一数据;根据所述第五指令在所述第二内存空间中写入所述第二数据;若根据所述第六指令校验所述第二数据的完整性成功,则在预设的第二硬盘空间中写入所述第二数据。
9.一种第一设备,其特征在于,包括:
收发单元,用于向第二设备发送第一读取请求,所述第一读取请求携带第一数据的标识;向第二设备发送第二读取请求,所述第二读取请求携带第二数据的标识;接收所述第二设备发送的所述第一数据;接收所述第二设备发送的所述第二数据。
10.一种第二设备,其特征在于,包括:
收发单元,用于接收第一设备发送的第一读取请求,所述第一读取请求携带第一数据的标识;接收所述第一设备发送的第二读取请求,所述第二读取请求携带第一数据的标识;向所述第一设备发送第一数据;向所述第一设备发送第二数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910285631.5A CN109992212B (zh) | 2019-04-10 | 2019-04-10 | 一种数据写入方法和一种数据读取方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910285631.5A CN109992212B (zh) | 2019-04-10 | 2019-04-10 | 一种数据写入方法和一种数据读取方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109992212A true CN109992212A (zh) | 2019-07-09 |
CN109992212B CN109992212B (zh) | 2020-03-27 |
Family
ID=67132977
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910285631.5A Active CN109992212B (zh) | 2019-04-10 | 2019-04-10 | 一种数据写入方法和一种数据读取方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109992212B (zh) |
Citations (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4470115A (en) * | 1982-03-12 | 1984-09-04 | Bell Telephone Laboratories Incorporated | Input/output method |
US20030128454A1 (en) * | 2002-01-04 | 2003-07-10 | International Business Machines Corporation | Concurrent read and write access to simulated sequential data of a removable random access data storage medium |
US20040044811A1 (en) * | 2002-08-30 | 2004-03-04 | Aljosa Vrancic | System and method for transferring data over a communication medium using double-buffering |
CN1770110A (zh) * | 2004-11-03 | 2006-05-10 | 国际商业机器公司 | 对I/O完成进行无锁InfiniBandTM轮询的方法、系统和存储介质 |
CN101084490A (zh) * | 2004-03-31 | 2007-12-05 | 双子星移动科技公司 | 同步的消息队列 |
CN101477443A (zh) * | 2008-01-03 | 2009-07-08 | 上海奇码数字信息有限公司 | 与非闪存控制系统和控制方法 |
CN101646994A (zh) * | 2006-12-06 | 2010-02-10 | 弗森多系统公司(dba弗森-艾奥) | 利用内存库交错管理固态存储器的命令的装置、系统及方法 |
CN101667105A (zh) * | 2009-09-02 | 2010-03-10 | 北京龙芯中科技术服务中心有限公司 | 一种对动态内存进行动态读写访问分组的调度装置和方法 |
CN102298508A (zh) * | 2011-09-07 | 2011-12-28 | 记忆科技(深圳)有限公司 | 基于流的固态硬盘预读取的方法及装置 |
CN102750226A (zh) * | 2011-02-28 | 2012-10-24 | 苹果公司 | 具有非易失性存储器的系统的高效缓冲 |
CN103064636A (zh) * | 2012-12-24 | 2013-04-24 | 创新科存储技术有限公司 | 一种固态硬盘读写方法以及一种固态硬盘 |
CN103186438A (zh) * | 2013-04-02 | 2013-07-03 | 浪潮电子信息产业股份有限公司 | 一种提高磁盘阵列数据重构效率的方法 |
CN103324444A (zh) * | 2013-05-24 | 2013-09-25 | 浪潮电子信息产业股份有限公司 | 一种主机端与存储端协同的多控io调度方法 |
CN104571956A (zh) * | 2014-12-29 | 2015-04-29 | 成都致云科技有限公司 | 一种数据写入方法及拆分装置 |
CN104699414A (zh) * | 2013-12-09 | 2015-06-10 | 华为技术有限公司 | 一种数据读写方法及存储设备 |
CN104991745A (zh) * | 2015-07-21 | 2015-10-21 | 浪潮(北京)电子信息产业有限公司 | 一种存储系统数据写入方法和系统 |
CN105786410A (zh) * | 2016-03-01 | 2016-07-20 | 深圳市瑞驰信息技术有限公司 | 一种提高数据存储系统处理速度的方法及数据存储系统 |
CN105786406A (zh) * | 2016-02-26 | 2016-07-20 | 湖南国科微电子股份有限公司 | 支持多通道主控并发的CE NAND Flash的页模型构建方法及页模型 |
CN106411777A (zh) * | 2016-09-27 | 2017-02-15 | 福建中金在线信息科技有限公司 | 一种处理高并发数据的方法和系统 |
US20170097916A1 (en) * | 2015-10-02 | 2017-04-06 | International Business Machines Corporation | Handling CPU Hotplug Events In RCU Without Sleeplocks |
CN106843770A (zh) * | 2017-01-23 | 2017-06-13 | 北京思特奇信息技术股份有限公司 | 一种分布式文件系统中小文件数据存储、读取方法及装置 |
US20170206035A1 (en) * | 2016-01-19 | 2017-07-20 | Qualcomm Incorporated | Random-Access Disjoint Concurrent Sparse Writes to Heterogeneous Buffers |
CN107025074A (zh) * | 2017-04-25 | 2017-08-08 | 航天科技控股集团股份有限公司 | 一种基于记录仪平台的图片存储方法 |
CN107092445A (zh) * | 2017-05-31 | 2017-08-25 | 郑州云海信息技术有限公司 | 一种多通道ssd固态盘io调度方法及装置 |
CN107147543A (zh) * | 2017-04-19 | 2017-09-08 | 武汉票据交易中心有限公司 | 一种面向PC客户端的服务器的socket通信方法 |
CN107256131A (zh) * | 2017-06-15 | 2017-10-17 | 深圳市云舒网络技术有限公司 | 一种基于tcmu虚拟磁盘分布式块存储系统的性能优化方法 |
CN108491160A (zh) * | 2018-03-13 | 2018-09-04 | 北京奇艺世纪科技有限公司 | 一种数据写入方法及装置 |
US20180285007A1 (en) * | 2017-04-04 | 2018-10-04 | Sandisk Technologies Llc | Memory maintenance operations during refresh window |
-
2019
- 2019-04-10 CN CN201910285631.5A patent/CN109992212B/zh active Active
Patent Citations (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4470115A (en) * | 1982-03-12 | 1984-09-04 | Bell Telephone Laboratories Incorporated | Input/output method |
US20030128454A1 (en) * | 2002-01-04 | 2003-07-10 | International Business Machines Corporation | Concurrent read and write access to simulated sequential data of a removable random access data storage medium |
CN1265273C (zh) * | 2002-01-04 | 2006-07-19 | 昆腾公司 | 对数据存储介质并行读写访问的方法、数据存储驱动器以及自动数据存储库 |
US20040044811A1 (en) * | 2002-08-30 | 2004-03-04 | Aljosa Vrancic | System and method for transferring data over a communication medium using double-buffering |
CN101084490A (zh) * | 2004-03-31 | 2007-12-05 | 双子星移动科技公司 | 同步的消息队列 |
CN1770110A (zh) * | 2004-11-03 | 2006-05-10 | 国际商业机器公司 | 对I/O完成进行无锁InfiniBandTM轮询的方法、系统和存储介质 |
CN101646994A (zh) * | 2006-12-06 | 2010-02-10 | 弗森多系统公司(dba弗森-艾奥) | 利用内存库交错管理固态存储器的命令的装置、系统及方法 |
CN101477443A (zh) * | 2008-01-03 | 2009-07-08 | 上海奇码数字信息有限公司 | 与非闪存控制系统和控制方法 |
CN101667105A (zh) * | 2009-09-02 | 2010-03-10 | 北京龙芯中科技术服务中心有限公司 | 一种对动态内存进行动态读写访问分组的调度装置和方法 |
CN102750226A (zh) * | 2011-02-28 | 2012-10-24 | 苹果公司 | 具有非易失性存储器的系统的高效缓冲 |
CN102298508A (zh) * | 2011-09-07 | 2011-12-28 | 记忆科技(深圳)有限公司 | 基于流的固态硬盘预读取的方法及装置 |
CN103064636A (zh) * | 2012-12-24 | 2013-04-24 | 创新科存储技术有限公司 | 一种固态硬盘读写方法以及一种固态硬盘 |
CN103186438A (zh) * | 2013-04-02 | 2013-07-03 | 浪潮电子信息产业股份有限公司 | 一种提高磁盘阵列数据重构效率的方法 |
CN103324444A (zh) * | 2013-05-24 | 2013-09-25 | 浪潮电子信息产业股份有限公司 | 一种主机端与存储端协同的多控io调度方法 |
CN104699414A (zh) * | 2013-12-09 | 2015-06-10 | 华为技术有限公司 | 一种数据读写方法及存储设备 |
CN104571956A (zh) * | 2014-12-29 | 2015-04-29 | 成都致云科技有限公司 | 一种数据写入方法及拆分装置 |
CN104991745A (zh) * | 2015-07-21 | 2015-10-21 | 浪潮(北京)电子信息产业有限公司 | 一种存储系统数据写入方法和系统 |
US20170097916A1 (en) * | 2015-10-02 | 2017-04-06 | International Business Machines Corporation | Handling CPU Hotplug Events In RCU Without Sleeplocks |
US20170206035A1 (en) * | 2016-01-19 | 2017-07-20 | Qualcomm Incorporated | Random-Access Disjoint Concurrent Sparse Writes to Heterogeneous Buffers |
CN105786406A (zh) * | 2016-02-26 | 2016-07-20 | 湖南国科微电子股份有限公司 | 支持多通道主控并发的CE NAND Flash的页模型构建方法及页模型 |
CN105786410A (zh) * | 2016-03-01 | 2016-07-20 | 深圳市瑞驰信息技术有限公司 | 一种提高数据存储系统处理速度的方法及数据存储系统 |
CN106411777A (zh) * | 2016-09-27 | 2017-02-15 | 福建中金在线信息科技有限公司 | 一种处理高并发数据的方法和系统 |
CN106843770A (zh) * | 2017-01-23 | 2017-06-13 | 北京思特奇信息技术股份有限公司 | 一种分布式文件系统中小文件数据存储、读取方法及装置 |
US20180285007A1 (en) * | 2017-04-04 | 2018-10-04 | Sandisk Technologies Llc | Memory maintenance operations during refresh window |
CN107147543A (zh) * | 2017-04-19 | 2017-09-08 | 武汉票据交易中心有限公司 | 一种面向PC客户端的服务器的socket通信方法 |
CN107025074A (zh) * | 2017-04-25 | 2017-08-08 | 航天科技控股集团股份有限公司 | 一种基于记录仪平台的图片存储方法 |
CN107092445A (zh) * | 2017-05-31 | 2017-08-25 | 郑州云海信息技术有限公司 | 一种多通道ssd固态盘io调度方法及装置 |
CN107256131A (zh) * | 2017-06-15 | 2017-10-17 | 深圳市云舒网络技术有限公司 | 一种基于tcmu虚拟磁盘分布式块存储系统的性能优化方法 |
CN108491160A (zh) * | 2018-03-13 | 2018-09-04 | 北京奇艺世纪科技有限公司 | 一种数据写入方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN109992212B (zh) | 2020-03-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110135985B (zh) | 一种区块链上交易的并行执行方法及系统 | |
CN103180840B (zh) | 动态允许和禁止写xfr_rdy的方法和系统 | |
CN108363670B (zh) | 一种数据传输的方法、装置、设备和系统 | |
JP5159902B2 (ja) | 入出力処理システム内のチャネル・サブシステムと通信するように構成された制御装置において可変長のデバイス・コマンド・ワード(dcw)を処理するための方法 | |
CN108519862A (zh) | 区块链系统的存储方法、装置、系统和存储介质 | |
US7739371B2 (en) | Computer system | |
CN114047712B (zh) | 一种基于反射内存网的半实物仿真系统的数据通信方法 | |
US9804903B2 (en) | Data processing apparatus for pipeline execution acceleration and method thereof | |
US5860003A (en) | I/O controller software with each I/O command having a plurality of nets, each with a group of threads | |
JP2023036774A (ja) | 共有メモリのアクセス制御方法、共有メモリのアクセス制御装置、電子機器および自動運転車両 | |
CN109992219A (zh) | 分布式存储方法、装置、设备及计算机可读存储介质 | |
US20150242144A1 (en) | Storage device, controller, and non-transitory computer-readable recording medium having stored therein control program | |
CN103002046A (zh) | 多系统数据拷贝的rdma架构 | |
US20160162202A1 (en) | Programmable, high performance solid state drive controller architecture | |
CN109634989A (zh) | 一种hive任务执行引擎选择方法和系统 | |
CN109542781A (zh) | 区块链共识算法测试方法、装置、计算装置和存储介质 | |
CN106293966B (zh) | 一种lfs系统中ap层与sp层的通信方法及lfs系统 | |
CN108833477B (zh) | 基于共享内存的消息传输方法、系统和装置 | |
CN101788888A (zh) | 一种实现目标端驱动的方法及该目标端驱动 | |
CN103929475A (zh) | 一种以太网架构的硬盘存储系统及硬盘数据操作方法 | |
CN109992212A (zh) | 一种数据写入方法和一种数据读取方法 | |
US7254329B2 (en) | Method and system for multi-initiator support to streaming devices in a fibre channel network | |
CN105471930A (zh) | 一种读取分布式数据的方法、系统和设备 | |
CN110069222A (zh) | 应用数据迁移方法、装置、新存储系统及介质 | |
CN109800110A (zh) | 数据备份方法、系统及电子设备、存储介质和备份装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |