CN111984202A - 一种数据处理方法、装置、电子设备和存储介质 - Google Patents
一种数据处理方法、装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN111984202A CN111984202A CN202010920225.4A CN202010920225A CN111984202A CN 111984202 A CN111984202 A CN 111984202A CN 202010920225 A CN202010920225 A CN 202010920225A CN 111984202 A CN111984202 A CN 111984202A
- Authority
- CN
- China
- Prior art keywords
- task queue
- endian
- disk
- cache
- stored
- 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
Links
Images
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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0674—Disk device
- G06F3/0676—Magnetic disk device
-
- 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
-
- 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
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)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请涉及区块存储系统,公开了一种数据处理方法、装置、电子设备和存储介质,该方法包括:获取磁盘的访问频次;在所述磁盘的访问频次低于预设访问频次时,停止从第一任务队列中将第一字节序写入第一缓存;从所述第一任务队列中将所述第一字节序写入第二缓存,在所述第一任务队列中所述第一字节序的位置位于第二字节序的位置之后,且在所述第一任务队列中所述第一字节序的位置与所述第二字节序的位置相邻,所述第二字节序为所述第一缓存的最后一个字节序;在所述第一缓存中存储的字节序均写入所述磁盘后,将所述第二缓存中存储的字节序写入所述磁盘。实施本申请实施例,提高磁盘写入效率。
Description
技术领域
本申请涉及区块链技术领域,尤其涉及一种数据处理方法、装置、电子设备和存储介质。
背景技术
目前,在区块链系统中,需要将区块存储到磁盘中。一般来说,会先将区块写入缓存中,再从缓存写入磁盘。在这个过程中,可能存在磁盘利用率过高的问题。在这种情况下,由于磁盘在从缓存中写入区块时都是一次性刷新,这导致磁盘利用率持续增加,磁盘写入效率持续降低。因此,亟需一种解决在磁盘利用率过高时如何提高磁盘写入效率的方案。
发明内容
本申请实施例提供了一种数据处理方法、装置、电子设备和存储介质,实施本申请实施例,提高磁盘写入效率。
本申请第一方面提供了一种数据处理方法,包括:
获取磁盘的访问频次;
在所述磁盘的访问频次低于预设访问频次时,停止从第一任务队列中将第一字节序写入第一缓存;
从所述第一任务队列中将所述第一字节序写入第二缓存,在所述第一任务队列中所述第一字节序的位置位于第二字节序的位置之后,且在所述第一任务队列中所述第一字节序的位置与所述第二字节序的位置相邻,所述第二字节序为所述第一缓存的最后一个字节序;
在所述第一缓存中存储的字节序均写入所述磁盘后,将所述第二缓存中存储的字节序写入所述磁盘。
本申请第二方面提供了一种数据处理装置,包括获取模块和处理模块,其中,
所述获取模块,用于获取磁盘的访问频次;
所述处理模块,用于在所述磁盘的访问频次低于预设访问频次时,停止从第一任务队列中将第一字节序写入第一缓存;从所述第一任务队列中将所述第一字节序写入第二缓存,在所述第一任务队列中所述第一字节序的位置位于第二字节序的位置之后,且在所述第一任务队列中所述第一字节序的位置与所述第二字节序的位置相邻,所述第二字节序为所述第一缓存的最后一个字节序;在所述第一缓存中存储的字节序均写入所述磁盘后,将所述第二缓存中存储的字节序写入所述磁盘。
本申请第三方面提供了一种数据处理的电子设备,包括处理器、存储器、通信接口以及一个或多个程序,其中,所述一个或多个程序被存储在所述存储器中,并且被生成由所述处理器执行,以执行一种数据处理方法任一项方法中的步骤的指令。
本申请第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机程序,所述存储计算机程序被所述处理器执行,以实现一种数据处理方法任一项所述的方法。
可以看出,上述技术方案中,在磁盘的访问频次低于预设访问频次时,即磁盘利用率过高时,停止从第一任务队列中将第一字节序写入第一缓存,避免了由于第一缓存中缓存的字节序过多导致在刷新磁盘时磁盘的利用率再次增高的问题。同时,通过降低第一缓存的缓存大小,同时增加第二缓存,从而在刷新磁盘时,可以先将第一缓存中存储的字节序写入磁盘,再将第二缓存中存储的字节序写入磁盘,从而实现了在磁盘利用率过高时降低了一次性从缓存刷新到磁盘的数据量,进而提高了磁盘写入效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
其中:
图1为本申请实施例提供的一种数据处理系统的示意图;
图2为本申请实施例提供的一种数据处理方法的流程示意图;
图3为本申请实施例提供的一种第一字节序与第二字节序的关系示意图;
图4为本申请实施例提供的又一种数据处理方法的流程示意图;
图5为本申请实施例提供的一种数据处理装置的示意图;
图6为本申请的实施例涉及的硬件运行环境的电子设备结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
以下分别进行详细说明。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
首先,参见图1,图1为本申请实施例提供的一种数据处理系统的示意图,该数据处理系统100包括数据处理装置110。该数据处理装置110用于处理、存储区块。该数据处理系统100可以包括集成式单体设备或者多设备,为方便描述,本申请将数据处理系统100统称为区块链节点。显然该区块链节点可以包括各种具有无线通信功能的手持设备、车载设备、可穿戴设备、计算设备或连接到无线调制解调器的其他处理设备,以及各种形式的用户设备(User Equipment,UE),移动台(Mobile Station,MS),终端设备(terminal device)等等。
进一步的,为了使得本申请实施例更加的清楚,在此对本申请实施例中的部分概念或内容作简单介绍。
区块链是一种按照时间顺序将数据区块相连的一种链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。该区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
进一步的,区块链的特性有开放、共识、去中心、去信任、透明、双方匿名、不可篡改以及可追溯等。其中,开放与透明意为任何人都可以参与到区块链网络,每一台设备都能作为一个节点,每个节点都允许获得一份完整的数据库拷贝。节点基于一套共识机制,通过竞争计算共同维护整个区块链。任一节点失效,其余节点仍能正常工作。其中,去中心化与去信任意为区块链由众多节点共同组成一个端到端的网络,不存在中心化的设备和管理机构。节点之间数据交换通过数字签名技术进行数据处理,无需互相信任,只要按照系统既定的规则进行,节点之间不能也无法欺骗其他节点。其中,透明与双方匿名意为区块链的运行规则是公开的,所有的数据信息也是公开的,因此每一笔交易都对所有节点可见。由于节点与节点之间是去信任的,因此节点之间无需公开身份,每个参与的节点都是匿名的。其中,不可篡改和可追溯意为每个甚至多个节点对数据库的修改无法影响其他节点的数据库,除非能控制整个网络中超过51%的节点同时修改,这是几乎不可能发生的。区块链中的,每一笔交易都通过密码学方法与相邻两个区块串联,因此可以追溯到任何一笔交易记录。
具体的,区块链可以利用块链式数据结构来数据处理与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算方式。因此,区块链技术不可篡改的特性从根本上改变了中心化的信用创建方式,有效提高了数据的不可更改性以及安全性。其中,由于智能合约使得所有的条款编写为程序,这些条款可在区块链上自动执行,保证了当存在触发智能合约的条件时,区块链能强制根据智能合约中的内容执行,且不受任何外力阻挡,从而保证了合约的有效性和执行力,不仅能够大大降低成本,也能提高效率。区块链上的各个节点都有相同的账本,能够确保账本记录过程是公开透明的。区块链技术可以实现了一种点对点的、公开透明的直接交互,使得高效率、大规模、无中心化代理的信息交互方式成为了现实。
另外,在将交易数据写入区块链时,需要对交易数据进行数据处理,在数据处理通过时,才会将交易数据写入区块链。在现有方案中,在对交易数据进行数据处理时,只能对单条交易数据进行数据处理。例如,对交易数据1进行数据处理时,无法对交易数据2进行数据处理。当交易数据1所有的数据处理完成后,才可以对交易数据2进行数据处理。因此,这种数据处理方式效率低。
基于此,本申请实施例提出一种数据处理方法以解决上述问题,下面对本申请实施例进行详细介绍。
参见图2,图2为本申请实施例提供的一种数据处理方法的流程示意图。该数据处理方法可以应用于区块链节点,如图2所示,所述方法包括:
201、获取磁盘的访问频次。
202、在所述磁盘的访问频次低于预设访问频次时,停止从第一任务队列中将第一字节序写入第一缓存。
其中,第一缓存的剩余存储空间大于零。
其中,第一字节序为第一区块对应的二进制序列。
其中,预设访问频次可以由管理员设置,也可以配置在区块链节点的配置文件中,在此不做限制。
其中,第一任务队列用于存放多个区块一一对应的多个二进制序列,进一步的,多个区块包括第一区块。
203、从所述第一任务队列中将所述第一字节序写入第二缓存,在所述第一任务队列中所述第一字节序的位置位于第二字节序的位置之后,且在所述第一任务队列中所述第一字节序的位置与所述第二字节序的位置相邻,所述第二字节序为所述第一缓存的最后一个字节序。
其中,多个区块还包括第二区块。进一步的,第二字节序为第二区块对应的二进制序列。
其中,第二缓存的存储空间小于第一缓存的存储空间。进一步的,第一缓存的存储空间与第二缓存的存储空间之间的差值是根据磁盘的访问频次确定的。
举例来说,参见图3,图3为本申请实施例提供的一种第一字节序与第二字节序的关系示意图。如图3所示,第一任务队列包括第一字节序和第二字节序,在第一任务队列中第一字节序的位置位于第二字节序的位置之后,且在第一任务队列中第一字节序的位置与第二字节序的位置相邻。可以理解的,在从第一任务队列中读取字节序时,第一缓存还有剩余存储空间,即区块链节点可以将第二字节序写入第一缓存。由于,此时,磁盘的访问频次低于预设访问频次,则停止从第一任务队列中将第一字节序写入第一缓存。进一步的,区块链节点可以将第一字节序写入第二缓存。需要说明的,在第一缓存中,第二字节序为第一缓存的最后一个字节序,且第一缓存还有剩余的存储空间。在第二缓存中,第一字节序为第一缓存的第一个字节序。另外,从图3可以看出,第一缓存的存储空间大于第二缓存的存储空间。
204、在所述第一缓存中存储的字节序均写入所述磁盘后,将所述第二缓存中存储的字节序写入所述磁盘。
可以看出,上述技术方案中,在磁盘的访问频次低于预设访问频次时,即磁盘利用率过高时,停止从第一任务队列中将第一字节序写入第一缓存,避免了由于第一缓存中缓存的字节序过多导致在刷新磁盘时磁盘的利用率再次增高的问题。同时,通过降低第一缓存的缓存大小,同时增加第二缓存,从而在刷新磁盘时,可以先将第一缓存中存储的字节序写入磁盘,再将第二缓存中存储的字节序写入磁盘,从而实现了在磁盘利用率过高时降低了一次性从缓存刷新到磁盘的数据量,进而提高了磁盘写入效率。
参见图4,图4为本申请实施例提供的又一种数据处理方法的流程示意图。该数据处理方法可以应用于区块链节点,其中,如图4所示,所述在所述磁盘的访问频次低于预设访问频次时,停止从第一任务队列中将第一字节序写入第一缓存之前,所述方法还包括:
401、获取N个区块。
其中,所述N为大于1的整数。
402、在序列化进程上并行对所述N个区块进行序列化,得到N个字节序,所述N个区块一一对应所述N个字节序。
其中,N个字节序中的每个字节序为二进制字节序。
403、将所述N个字节序存入第二任务队列。
404、检测排序进程是否处于忙碌状态。
若否,执行步骤405。
在一种可能的实施方式中,所述方法还包括:若是,则在所述排序进程处于空闲状态时从所述第二任务队列中获取所述N个字节序;获取所述N个区块对应的N个区块高度;在所述排序进程上按照所述N个区块高度从小到大的顺序对所述N个字节序进行排序,得到排序后的N个字节序;将所述排序后的N个字节序存入所述第一任务队列。
可以看出,上述技术方案中,实现了在排序进程处于空闲状态时将排序后的字节序存入任务队列,为后续快速写入磁盘做准备。
405、从所述第二任务队列中获取所述N个字节序。
406、获取所述N个区块对应的N个区块高度。
407、在所述排序进程上按照所述N个区块高度从小到大的顺序对所述N个字节序进行排序,得到排序后的N个字节序。
408、将所述排序后的N个字节序存入所述第一任务队列。
可以看出,上述技术方案中,实现了在排序进程处于忙碌状态时将排序后的字节序存入任务队列,为后续快速写入磁盘做准备。
在一种可能的实施方式中,所述在所述第一缓存中存储的字节序均写入所述磁盘后,将所述第二缓存中存储的字节序写入所述磁盘,包括:
获取第三任务队列的长度,所述第三任务队列中位于队列头的字节序将写入所述磁盘,所述第三任务队列用于存放所述第一缓存中存储的字节序;
根据所述磁盘的访问频次,调整第四任务队列的长度,所述第四任务队列的长度小于所述第三任务队列的长度,所述第四任务队列用于存放所述第二缓存中存储的字节序;
在所述第三任务队列中存放的字节序均写入所述磁盘后,将所述第四任务队列中存放的字节序写入所述磁盘。
可以看出,上述技术方案中,通过调整队列长度,实现了在磁盘利用率过高时降低了一次性从缓存刷新到磁盘的数据量,进而提高了磁盘写入效率。
在一种可能的实施方式中,所述第三任务队列包括至少一个任务队列P,所述至少一个任务队列P中的每个任务队列均用于存放所述第一缓存中存储的字节序;所述至少一个任务队列P包括任务队列P1、任务队列P2、任务队列P3和任务队列P4,位于任务队列P1队列头的字节序是从第一缓存中读取的第一个字节序,位于任务队列P2队列尾的字节序是从第一缓存中读取的最后一个字节序,第三字节序和第四字节序在所述第一缓存中相邻,且在所述第一缓存中所述第三字节序位于所述第四字节序之前,位于所述任务队列P3队列尾的字节序为所述第三字节序,位于所述任务队列P4队列头的字节序为所述第四字节序,在所述将所述第四任务队列中存放的字节序写入所述磁盘之前,所述方法还包括:
在将所述任务队列P1存入的字节序均写入所述磁盘后,将所述任务队列P3中存入的字节序写入所述磁盘;
在将所述任务队列P4中存入的字节序均写入所述磁盘后,将所述任务队列P2中存入的字节序写入所述磁盘。
可以看出,上述技术方案中,通过从多个任务队列中读取字节序,并分别将读取的字节序刷新到磁盘,从而实现了在磁盘利用率过高时降低了一次性从缓存刷新到磁盘的数据量,进而提高了磁盘写入效率。
在一种可能的实施方式中,所述第四任务队列可以包括至少一个任务队列Q,所述至少一个任务队列Q中的每个任务队列Q均用于存放所述第二缓存中存储的字节序;所述至少一个任务队列Q包括任务队列Q1、任务队列Q2、任务队列Q3和任务队列Q4,位于任务队列Q1队列头的字节序是从第二缓存中读取的第一个字节序,位于任务队列Q2队列尾的字节序是从第二缓存中读取的最后一个字节序,第五字节序和第六字节序在所述第二缓存中相邻,且在所述第二缓存中所述第五字节序位于所述第六字节序之前,位于所述任务队列Q3队列尾的字节序为所述第五字节序,位于所述任务队列Q4队列头的字节序为所述第六字节序,所述将所述第二缓存中存储的字节序写入所述磁盘,所述方法包括:
在将所述任务队列Q1存入的字节序均写入所述磁盘后,将所述任务队列Q3中存入的字节序写入所述磁盘;
在将所述任务队列Q4中存入的字节序均写入所述磁盘后,将所述任务队列Q2中存入的字节序写入所述磁盘。
可以看出,上述技术方案中,通过从多个任务队列中读取字节序,并分别将读取的字节序刷新到磁盘,从而实现了在磁盘利用率过高时降低了一次性从缓存刷新到磁盘的数据量,进而提高了磁盘写入效率。
参见图5,图5为本申请实施例提供的一种数据处理装置的示意图。其中,如图5所示,本申请实施例提供的一种数据处理装置500包括获取模块501和处理模块502,其中,
所述获取模块501,用于获取磁盘的访问频次。
所述处理模块502,用于在所述磁盘的访问频次低于预设访问频次时,停止从第一任务队列中将第一字节序写入第一缓存;从所述第一任务队列中将所述第一字节序写入第二缓存,在所述第一任务队列中所述第一字节序的位置位于第二字节序的位置之后,且在所述第一任务队列中所述第一字节序的位置与所述第二字节序的位置相邻,所述第二字节序为所述第一缓存的最后一个字节序;在所述第一缓存中存储的字节序均写入所述磁盘后,将所述第二缓存中存储的字节序写入所述磁盘。
可以看出,上述技术方案中,在磁盘的访问频次低于预设访问频次时,即磁盘利用率过高时,停止从第一任务队列中将第一字节序写入第一缓存,避免了由于第一缓存中缓存的字节序过多导致在刷新磁盘时磁盘的利用率再次增高的问题。同时,通过降低第一缓存的缓存大小,同时增加第二缓存,从而在刷新磁盘时,可以先将第一缓存中存储的字节序写入磁盘,再将第二缓存中存储的字节序写入磁盘,从而实现了在磁盘利用率过高时降低了一次性从缓存刷新到磁盘的数据量,进而提高了磁盘写入效率。
在一种可能的实施方式中,在所述磁盘的访问频次低于预设访问频次时,停止从第一任务队列中将第一字节序写入第一缓存之前,所述获取模块501,还用于获取N个区块,所述N为大于1的整数;所述处理模块502,还用于在序列化进程上并行对所述N个区块进行序列化,得到N个字节序,所述N个区块一一对应所述N个字节序;将所述N个字节序存入第二任务队列;检测排序进程是否处于忙碌状态;若否,则从所述第二任务队列中获取所述N个字节序;获取所述N个区块对应的N个区块高度;在所述排序进程上按照所述N个区块高度从小到大的顺序对所述N个字节序进行排序,得到排序后的N个字节序;将所述排序后的N个字节序存入所述第一任务队列。
可以看出,上述技术方案中,实现了在排序进程处于忙碌状态时将排序后的字节序存入任务队列,为后续快速写入磁盘做准备。
在一种可能的实施方式中,所述获取模块501,还用于获取所述N个区块对应的N个区块高度;所述处理模块502,还用于在所述排序进程上按照所述N个区块高度从小到大的顺序对所述N个字节序进行排序,得到排序后的N个字节序;将所述排序后的N个字节序存入所述第一任务队列。
可以看出,上述技术方案中,实现了在排序进程处于空闲状态时将排序后的字节序存入任务队列,为后续快速写入磁盘做准备。
在一种可能的实施方式中,在所述第一缓存中存储的字节序均写入所述磁盘后,将所述第二缓存中存储的字节序写入所述磁盘时,所述获取模块501,用于获取第三任务队列的长度,所述第三任务队列中位于队列头的字节序将写入所述磁盘,所述第三任务队列用于存放所述第一缓存中存储的字节序;所述处理模块502,用于根据所述磁盘的访问频次,调整第四任务队列的长度,所述第四任务队列的长度小于所述第三任务队列的长度,所述第四任务队列用于存放所述第二缓存中存储的字节序;在所述第三任务队列中存放的字节序均写入所述磁盘后,将所述第四任务队列中存放的字节序写入所述磁盘。
可以看出,上述技术方案中,通过调整队列长度,实现了在磁盘利用率过高时降低了一次性从缓存刷新到磁盘的数据量,进而提高了磁盘写入效率。
在一种可能的实施方式中,所述第三任务队列包括至少一个任务队列P,所述至少一个任务队列P中的每个任务队列均用于存放所述第一缓存中存储的字节序;所述至少一个任务队列P包括任务队列P1、任务队列P2、任务队列P3和任务队列P4,位于任务队列P1队列头的字节序是从第一缓存中读取的第一个字节序,位于任务队列P2队列尾的字节序是从第一缓存中读取的最后一个字节序,第三字节序和第四字节序在所述第一缓存中相邻,且在所述第一缓存中所述第三字节序位于所述第四字节序之前,位于所述任务队列P3队列尾的字节序为所述第三字节序,位于所述任务队列P4队列头的字节序为所述第四字节序,在所述将所述第四任务队列中存放的字节序写入所述磁盘之前,所述处理模块502,还用于在将所述任务队列P1存入的字节序均写入所述磁盘后,将所述任务队列P3中存入的字节序写入所述磁盘;在将所述任务队列P4中存入的字节序均写入所述磁盘后,将所述任务队列P2中存入的字节序写入所述磁盘。
可以看出,上述技术方案中,通过从多个任务队列中读取字节序,并分别将读取的字节序刷新到磁盘,从而实现了在磁盘利用率过高时降低了一次性从缓存刷新到磁盘的数据量,进而提高了磁盘写入效率。
在一种可能的实施方式中,所述第四任务队列可以包括至少一个任务队列Q,所述至少一个任务队列Q中的每个任务队列Q均用于存放所述第二缓存中存储的字节序;所述至少一个任务队列Q包括任务队列Q1、任务队列Q2、任务队列Q3和任务队列Q4,位于任务队列Q1队列头的字节序是从第二缓存中读取的第一个字节序,位于任务队列Q2队列尾的字节序是从第二缓存中读取的最后一个字节序,第五字节序和第六字节序在所述第二缓存中相邻,且在所述第二缓存中所述第五字节序位于所述第六字节序之前,位于所述任务队列Q3队列尾的字节序为所述第五字节序,位于所述任务队列Q4队列头的字节序为所述第六字节序,在将所述第二缓存中存储的字节序写入所述磁盘时,所述处理模块502,用于在将所述任务队列Q1存入的字节序均写入所述磁盘后,将所述任务队列Q3中存入的字节序写入所述磁盘;在将所述任务队列Q4中存入的字节序均写入所述磁盘后,将所述任务队列Q2中存入的字节序写入所述磁盘。
可以看出,上述技术方案中,通过从多个任务队列中读取字节序,并分别将读取的字节序刷新到磁盘,从而实现了在磁盘利用率过高时降低了一次性从缓存刷新到磁盘的数据量,进而提高了磁盘写入效率。
参见图6,图6为本申请的实施例涉及的硬件运行环境的电子设备结构示意图。
本申请实施例提供了一种数据处理的电子设备,包括处理器、存储器、通信接口以及一个或多个程序,其中,所述一个或多个程序被存储在所述存储器中,并且被配置由所述处理器执行,以执行包括任一项数据处理方法中的步骤的指令。其中,如图6所示,本申请的实施例涉及的硬件运行环境的电子设备可以包括:
处理器601,例如CPU。
存储器602,可选的,存储器可以为高速RAM存储器,也可以是稳定的存储器,例如磁盘存储器。
通信接口603,用于实现处理器601和存储器602之间的连接通信。
本领域技术人员可以理解,图6中示出的电子设备的结构并不构成对其的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图6所示,存储器602中可以包括操作系统、网络通信模块以及一个或多个程序。操作系统是管理和控制服务器硬件和软件资源的程序,支持一个或多个程序的运行。网络通信模块用于实现存储器602内部各组件之间的通信,以及与电子设备内部其他硬件和软件之间通信。
在图6所示的电子设备中,处理器601用于执行存储器602中一个或多个程序,实现以下步骤:
获取磁盘的访问频次;
在所述磁盘的访问频次低于预设访问频次时,停止从第一任务队列中将第一字节序写入第一缓存;
从所述第一任务队列中将所述第一字节序写入第二缓存,在所述第一任务队列中所述第一字节序的位置位于第二字节序的位置之后,且在所述第一任务队列中所述第一字节序的位置与所述第二字节序的位置相邻,所述第二字节序为所述第一缓存的最后一个字节序;
在所述第一缓存中存储的字节序均写入所述磁盘后,将所述第二缓存中存储的字节序写入所述磁盘。
本申请涉及的电子设备的具体实施可参见上述数据处理方法的各实施例,在此不做赘述。
本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机程序,所述存储计算机程序被所述处理器执行,以实现以下步骤:
获取磁盘的访问频次;
在所述磁盘的访问频次低于预设访问频次时,停止从第一任务队列中将第一字节序写入第一缓存;
从所述第一任务队列中将所述第一字节序写入第二缓存,在所述第一任务队列中所述第一字节序的位置位于第二字节序的位置之后,且在所述第一任务队列中所述第一字节序的位置与所述第二字节序的位置相邻,所述第二字节序为所述第一缓存的最后一个字节序;
在所述第一缓存中存储的字节序均写入所述磁盘后,将所述第二缓存中存储的字节序写入所述磁盘。
本申请涉及的计算机可读存储介质的具体实施可参见上述数据处理方法的各实施例,在此不做赘述。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应所述知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应所述知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (10)
1.一种数据处理方法,其特征在于,包括:
获取磁盘的访问频次;
在所述磁盘的访问频次低于预设访问频次时,停止从第一任务队列中将第一字节序写入第一缓存;
从所述第一任务队列中将所述第一字节序写入第二缓存,在所述第一任务队列中所述第一字节序的位置位于第二字节序的位置之后,且在所述第一任务队列中所述第一字节序的位置与所述第二字节序的位置相邻,所述第二字节序为所述第一缓存中的最后一个字节序;
在所述第一缓存中存储的字节序均写入所述磁盘后,将所述第二缓存中存储的字节序写入所述磁盘。
2.根据权利要求1所述的方法,其特征在于,所述在所述磁盘的访问频次低于预设访问频次时,停止从第一任务队列中将第一字节序写入第一缓存之前,所述方法还包括:
获取N个区块,所述N为大于1的整数;
在序列化进程上并行对所述N个区块进行序列化,得到N个字节序,所述N个区块一一对应所述N个字节序;
将所述N个字节序存入第二任务队列;
检测排序进程是否处于忙碌状态;
若否,则从所述第二任务队列中获取所述N个字节序;
获取所述N个区块对应的N个区块高度;
在所述排序进程上按照所述N个区块高度从小到大的顺序对所述N个字节序进行排序,得到排序后的N个字节序;
将所述排序后的N个字节序存入所述第一任务队列。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
若是,则在所述排序进程处于空闲状态时从所述第二任务队列中获取所述N个字节序;
获取所述N个区块对应的N个区块高度;
在所述排序进程上按照所述N个区块高度从小到大的顺序对所述N个字节序进行排序,得到排序后的N个字节序;
将所述排序后的N个字节序存入所述第一任务队列。
4.根据权利要求1-3任意一项所述的方法,其特征在于,所述在所述第一缓存中存储的字节序均写入所述磁盘后,将所述第二缓存中存储的字节序写入所述磁盘,包括:
获取第三任务队列的长度,所述第三任务队列中位于队列头的字节序将写入所述磁盘,所述第三任务队列用于存放所述第一缓存中存储的字节序;
根据所述磁盘的访问频次,调整第四任务队列的长度,所述第四任务队列的长度小于所述第三任务队列的长度,所述第四任务队列用于存放所述第二缓存中存储的字节序;
在所述第三任务队列中存放的字节序均写入所述磁盘后,将所述第四任务队列中存放的字节序写入所述磁盘。
5.根据权利要求4所述的方法,其特征在于,所述第三任务队列包括至少一个任务队列P,所述至少一个任务队列P中的每个任务队列均用于存放所述第一缓存中存储的字节序;所述至少一个任务队列P包括任务队列P1、任务队列P2、任务队列P3和任务队列P4,位于任务队列P1队列头的字节序是从第一缓存中读取的第一个字节序,位于任务队列P2队列尾的字节序是从第一缓存中读取的最后一个字节序,第三字节序和第四字节序在所述第一缓存中相邻,且在所述第一缓存中所述第三字节序位于所述第四字节序之前,位于所述任务队列P3队列尾的字节序为所述第三字节序,位于所述任务队列P4队列头的字节序为所述第四字节序,在所述将所述第四任务队列中存放的字节序写入所述磁盘之前,所述方法还包括:
在将所述任务队列P1存入的字节序均写入所述磁盘后,将所述任务队列P3中存入的字节序写入所述磁盘;
在将所述任务队列P4中存入的字节序均写入所述磁盘后,将所述任务队列P2中存入的字节序写入所述磁盘。
6.根据权利要求4所述的方法,其特征在于,所述第四任务队列可以包括至少一个任务队列Q,所述至少一个任务队列Q中的每个任务队列Q均用于存放所述第二缓存中存储的字节序;所述至少一个任务队列Q包括任务队列Q1、任务队列Q2、任务队列Q3和任务队列Q4,位于任务队列Q1队列头的字节序是从第二缓存中读取的第一个字节序,位于任务队列Q2队列尾的字节序是从第二缓存中读取的最后一个字节序,第五字节序和第六字节序在所述第二缓存中相邻,且在所述第二缓存中所述第五字节序位于所述第六字节序之前,位于所述任务队列Q3队列尾的字节序为所述第五字节序,位于所述任务队列Q4队列头的字节序为所述第六字节序,所述将所述第二缓存中存储的字节序写入所述磁盘,所述方法包括:
在将所述任务队列Q1存入的字节序均写入所述磁盘后,将所述任务队列Q3中存入的字节序写入所述磁盘;
在将所述任务队列Q4中存入的字节序均写入所述磁盘后,将所述任务队列Q2中存入的字节序写入所述磁盘。
7.一种数据处理装置,其特征在于,所述装置包括获取模块和处理模块,其中,
所述获取模块,用于获取磁盘的访问频次;
所述处理模块,用于在所述磁盘的访问频次低于预设访问频次时,停止从第一任务队列中将第一字节序写入第一缓存;从所述第一任务队列中将所述第一字节序写入第二缓存,在所述第一任务队列中所述第一字节序的位置位于第二字节序的位置之后,且在所述第一任务队列中所述第一字节序的位置与所述第二字节序的位置相邻,所述第二字节序为所述第一缓存的最后一个字节序;在所述第一缓存中存储的字节序均写入所述磁盘后,将所述第二缓存中存储的字节序写入所述磁盘。
8.根据权利要求7所述的装置,其特征在于,在所述磁盘的访问频次低于预设访问频次时,停止从第一任务队列中将第一字节序写入第一缓存之前,
所述获取模块,还用于获取N个区块,所述N为大于1的整数;
所述处理模块,还用于在序列化进程上并行对所述N个区块进行序列化,得到N个字节序,所述N个区块一一对应所述N个字节序;将所述N个字节序存入第二任务队列;检测排序进程是否处于忙碌状态;若否,则从所述第二任务队列中获取所述N个字节序;获取所述N个区块对应的N个区块高度;在所述排序进程上按照所述N个区块高度从小到大的顺序对所述N个字节序进行排序,得到排序后的N个字节序;将所述排序后的N个字节序存入所述第一任务队列。
9.一种数据处理的电子设备,其特征在于,包括处理器、存储器、通信接口以及一个或多个程序,其中,所述一个或多个程序被存储在所述存储器中,并且被生成由所述处理器执行,以执行权利要求1-6任一项方法中的步骤的指令。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储计算机程序,所述存储计算机程序被所述处理器执行,以实现权利要求1-6任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010920225.4A CN111984202A (zh) | 2020-09-03 | 2020-09-03 | 一种数据处理方法、装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010920225.4A CN111984202A (zh) | 2020-09-03 | 2020-09-03 | 一种数据处理方法、装置、电子设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111984202A true CN111984202A (zh) | 2020-11-24 |
Family
ID=73448478
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010920225.4A Pending CN111984202A (zh) | 2020-09-03 | 2020-09-03 | 一种数据处理方法、装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111984202A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112765280A (zh) * | 2021-02-03 | 2021-05-07 | 腾讯科技(深圳)有限公司 | 区块数据存储方法、装置、计算机可读介质及电子设备 |
-
2020
- 2020-09-03 CN CN202010920225.4A patent/CN111984202A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112765280A (zh) * | 2021-02-03 | 2021-05-07 | 腾讯科技(深圳)有限公司 | 区块数据存储方法、装置、计算机可读介质及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8381230B2 (en) | Message passing with queues and channels | |
CN112395300B (zh) | 基于区块链的数据处理方法、装置、设备及可读存储介质 | |
CN112667414A (zh) | 基于消息队列的消息消费方法、装置、计算机设备及介质 | |
CN108985066B (zh) | 一种智能合约安全漏洞检测方法、装置、终端及存储介质 | |
CN111344706A (zh) | 区块链上的高容量交易性能的优化 | |
CN112671760A (zh) | 基于Socket的客户端跨平台网络通信方法及其相关设备 | |
CN105009089B (zh) | 用于促进对指令违反行为的管理的设备和方法 | |
CN109191287A (zh) | 一种区块链智能合约的分片方法、装置及电子设备 | |
US7606906B2 (en) | Bundling and sending work units to a server based on a weighted cost | |
EP4030314A1 (en) | Blockchain-based data processing method, apparatus and device, and readable storage medium | |
CN114035987A (zh) | 基于消息队列的数据传输方法、装置、电子设备及介质 | |
CN114675964A (zh) | 基于联邦决策树模型训练的分布式调度方法、系统及介质 | |
CN111984735A (zh) | 一种数据归档方法、装置、电子设备和存储介质 | |
CN110659905A (zh) | 交易验证方法、装置、终端设备以及存储介质 | |
CN112559476A (zh) | 一种用于提高目标系统性能的日志存储方法及其相关设备 | |
CN112181307A (zh) | 基于区块链的分布式数据冗余存储方法和电子设备 | |
US8543722B2 (en) | Message passing with queues and channels | |
CN111338688A (zh) | 数据长效缓存方法、装置、计算机系统及可读存储介质 | |
CN112733531B (zh) | 虚拟资源分配方法、装置、电子设备及计算机存储介质 | |
CN111984202A (zh) | 一种数据处理方法、装置、电子设备和存储介质 | |
CN111464319B (zh) | 一种基于中心化块链式账本的交易存储、签名校验方法 | |
WO2022156087A1 (zh) | 数据血缘关系建立方法、装置、计算机设备及存储介质 | |
CN107111495A (zh) | 用于虚拟和接口方法调用的装置和方法 | |
CN1783121A (zh) | 用于执行设计自动化的方法和系统 | |
US20210165907A1 (en) | Systems and methods for intelligent and quick masking |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
CB02 | Change of applicant information |
Address after: 518000 Room 201, building A, No. 1, Qian Wan Road, Qianhai Shenzhen Hong Kong cooperation zone, Shenzhen, Guangdong (Shenzhen Qianhai business secretary Co., Ltd.) Applicant after: ONECONNECT FINANCIAL TECHNOLOGY Co.,Ltd. (SHANGHAI) Address before: Room 201, Building A, No. 1 Qianwan Road, Qianhaisheng Cooperation Zone, Shenzhen City, Guangdong Province, 518000 Applicant before: ONECONNECT FINANCIAL TECHNOLOGY Co.,Ltd. (SHANGHAI) |
|
CB02 | Change of applicant information | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |