数据处理方法、数据处理装置以及相关设备制造方法及图纸

技术编号:37246568 阅读:21 留言:0更新日期:2023-04-20 23:26
本申请提供了一种数据处理方法,应用于计算机领域。方法包括以下步骤:获取循环存储队列的第一全局读指针。循环存储队列包括多个存储区域。第一全局读指针指向多个存储区域中的第一存储区域。获取第一存储区域的第一写标识。第一写标识表征第一存储区域中已存储数据的空间大小。第一全局写指针确定第一存储区域中已被分配的空间大小。若第一存储区域中已存储数据的空间大小等于第一存储区域中已被分配的空间大小,则读取第一子区域中的第一数据。在本申请中,通过增加第一写标识,使得乱序commit不会影响读取的数据的正确性。因此,本申请可以通过乱序commit提高系统的运行效率。申请可以通过乱序commit提高系统的运行效率。申请可以通过乱序commit提高系统的运行效率。

【技术实现步骤摘要】
数据处理方法、数据处理装置以及相关设备


[0001]本申请涉及计算机领域,尤其涉及数据处理方法、数据处理装置以及相关设备。

技术介绍

[0002]在操作系统中,循环存储队列是一种特殊的先进先出队列。循环存储队列将存储空间中的最后一个位置连接第一个位置,形成逻辑上的环状空间。
[0003]图1为循环存储队列的结构示意图。如图1所示,循环存储队列包括对应的全局写指针和全局读指针。沿逆时针方向,全局写指针和全局读指针之间的区域为存储区域b。全局读指针和全局写指针之间的区域为区域a。区域a中的数据即将被读取,区域b即将被写入数据。随着数据的写入和读取,全局写指针和全局读指针沿逆时针方向移动。例如,在线程1分配到了子区域b1后,全局写指针移动至子区域b2。在线程2分配到了子区域b2后,全局写指针移动至剩余区域b3。在写入数据后,不同的线程执行顺序commit。具体地,在子区域b1中写入数据后,线程1执行commit操作。commit操作表征子区域b1中已写入数据。子区域b1中的数据可以被读取。类似地,在子区域b2中写入数据后,线程2执行commi本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种数据处理方法,其特征在于,包括:获取循环存储队列的第一全局读指针,所述循环存储队列包括M个存储区域,M为大于1的整数,所述第一全局读指针指向所述M个存储区域中的第一存储区域的第一子区域;获取所述第一存储区域的第一写标识,所述第一写标识表征所述第一存储区域中已存储数据的空间大小;若满足第一条件,则读取所述第一子区域中的第一数据;所述第一条件包括:所述第一存储区域中已存储数据的空间大小等于所述第一存储区域中已被分配的空间大小。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:根据所述循环存储队列的第一全局写指针确定所述第一存储区域中已被分配的空间大小;其中,若所述第一全局写指针指向所述第一存储区域以外的存储区域,则确定所述第一存储区域中已被分配的空间大小等于所述第一存储区域总的空间大小;和/或,若所述第一全局写指针指向所述第一存储区域,则确定所述第一存储区域中已被分配的空间大小等于第一字节的位置和所述第一存储区域的起始位置的差值,所述第一全局写指针指向所述第一存储区域中的所述第一字节。3.根据权利要求1或2所述的方法,其特征在于,在读取所述第一子区域中的所述第一数据前,所述方法还包括:获取所述第一存储区域的第一读标识,所述第一读标识表征所述第一存储区域中已被读取的数据的数据大小;确定所述第一写标识和所述第一读标识的大小关系;所述第一条件还包括:所述第一写标识大于所述第一读标识。4.根据权利要求1至3中任意一项所述的方法,其特征在于,所述第一子区域和所述第一数据的大小为X字节,X为大于0的整数;在读取所述第一子区域中的所述第一数据后,所述方法还包括:通过所述X更新所述第一存储区域的第一读标识,更新后的所述第一读标识等于所述第一读标识和所述X之和。5.根据权利要求1至4中任意一项所述的方法,其特征在于,所述方法还包括:获取所述循环存储队列的第二全局写指针,所述第二全局写指针指向所述第一存储区域中的第二字节,所述第二字节为所述第一存储区域的起始位置;若所述第二字节的位置与所述第一存储区域的终点位置的差值大于或等于所述X,则在所述第一子区域中写入所述第一数据。6.根据权利要求1至4中任意一项所述的方法,其特征在于,所述方法还包括:获取所述循环存储队列的第三全局写指针,所述第三全局写指针指向所述第一存储区域的第三字节;获取待写入的第二数据的大小,所述第二数据的大小为N字节;若所述第三字节的位置与所述第一存储区域的终点位置表征所述第一存储区域的剩余区域小于所述N字节,则为所述剩余区域添加目标标识,所述目标标识用于表征所述剩余区域为无效子区域。
7.根据权利要求1至6中任意一项所述的方法,其特征在于,在读取所述第一子区域中的所述第一数据前,所述方法还包括:确定所述第一子区域中是否为无效子区域;所述第一条件还包括:所述第一子区域不是无效子区域。8.根据权利要求6所述的方法,其特征在于,所述方法还包括:若满足第二条件,则更新所述第三全局写指针,更新后的所述第三全局写指针指向第二存储区域,所述第二存储区域为所述第一存储区域的下一个存储区域;所述第二条件包括:所述第二存储区域未被分配过,或第三全局读指针指向所述第二存储区域以外的存储区域,所述第二存储区域的第二写标识除以所述第二存储区域的总的空间大小等于整数,所述第二写标识表征所述第二存储区域中已存储数据的空间大小。9.根据权利要求8所述的方法,其特征在于,在更新所述第三全局写指针前,所述方法还包括:将所述第二写标识清零;所述第一全局读指针包括第一读区域指针和第一区域内读偏移指针,所述第一读区域指针指向所述第一存储区域,所述第一区域内读偏移指针指向所述第一存储区域中的第二字节,所述第一全局写指针包括第一写区域指针和第一区域内写偏移指针;在读取所述第一子区域中的所述第一数据后,所述方法还包括:若所述第一读区域指针和所述第一写区域指针的差值大于所述M,则将所述第一读标识清零。10.根据权利要求9所述的方法,其特征在于,所述方法还包括:若所述第一读区域指针和所述第一写区域指针的差值大于所述M,则更新所述第一读区域指针,更新后的所述第一读区域指针等于所述第一写区域指针和Z的差值,Z=M-1。11.根据权利要求8所述的方法,其特征在于,所述第二条件还包括:所述第二存储区域的第二读标识除以所述第二存储区域的总的空间大小等于整数,所述第二读标识表征所述第二存储区域中已被读取的数据的数据大小。12.一种数据处理装置,其特征在于,包括:第一获取模块,用于获取循环存储队列的第一全局读指针,所述循环存储队列包括M个存储区域,M为大于1的整数,所述第一全局读指针指向所述M个存储区域中的第一存储区域的第一子区域;第二获取模块,用于获取所述第一存储区域的第一写标识,所述第一写标识表征所述第一存储区域中已存储数据的空间大小;处理模块,用于确定所述第一存...

【专利技术属性】
技术研发人员:陈更雷继棠付明
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1