CN115794446A - 一种消息处理方法、装置、电子设备和存储介质 - Google Patents

一种消息处理方法、装置、电子设备和存储介质 Download PDF

Info

Publication number
CN115794446A
CN115794446A CN202310066189.3A CN202310066189A CN115794446A CN 115794446 A CN115794446 A CN 115794446A CN 202310066189 A CN202310066189 A CN 202310066189A CN 115794446 A CN115794446 A CN 115794446A
Authority
CN
China
Prior art keywords
message
messages
determining
type
preset
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
Application number
CN202310066189.3A
Other languages
English (en)
Other versions
CN115794446B (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.)
Suzhou Inspur Intelligent Technology Co Ltd
Original Assignee
Suzhou Inspur Intelligent 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 Suzhou Inspur Intelligent Technology Co Ltd filed Critical Suzhou Inspur Intelligent Technology Co Ltd
Priority to CN202310066189.3A priority Critical patent/CN115794446B/zh
Publication of CN115794446A publication Critical patent/CN115794446A/zh
Application granted granted Critical
Publication of CN115794446B publication Critical patent/CN115794446B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明实施例提供了一种消息处理方法、装置、电子设备和可读存储介质,所述方法包括:获取消息队列中下一个待处理的消息,并确定所述消息的消息类型为单层式存储类型或三层式存储类型;若所述消息的消息类型为单层式存储类型,则记录所述消息,并确定当前已记录的消息个数,根据所述消息个数确定是否暂不执行对所述消息的处理操作或执行对所述消息的处理操作;若所述消息的消息类型为三层式存储类型,则执行对所述消息的处理操作。通过采用上述方法,对消息队列的消息按类型分批处理,在不修改原有消息队列模型的基础上,通过分辨消息类型实现了消息优先处理机制。

Description

一种消息处理方法、装置、电子设备和存储介质
技术领域
本发明涉及计算机技术领域,特别是涉及一种消息处理方法、一种消息处理装置、一种电子设备和一种计算机可读存储介质。
背景技术
消息是在两台计算机间传送的数据单位。消息被发送到队列中。消息队列是在消息的传输过程中保存消息的容器。
后端执行命令即处理各种消息,顺序写时一般分为TLC(Trinary-Level Cell,三层式存储单元)消息和SLC(Single Level Cell,单层式存储单元)消息。其中TLC消息为用户的实际写命令,处理越快则顺序写带宽越快;SLC消息为记录命令执行中生成的参数,需要保证数据正确性,但所处理数据不算入带宽内。每个LUN(Logical UnitNumber,逻辑单元号)都是一个执行单元,一般都有一个独立消息队列即List,用于存放待执行的消息。这个队列一般采用链表形式实现,链表默认采用先进先出原则,即按顺序依次执行。在某些场景下,按顺序依次执行会降低连续写带宽性能。
发明内容
鉴于上述问题,提出了本发明实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种消息处理方法和相应的一种消息处理装置、一种电子设备,以及一种计算机可读存储介质。
本发明实施例公开了一种消息处理方法,所述方法包括:
获取消息队列中下一个待处理的消息,并确定所述消息的消息类型为单层式存储类型或三层式存储类型;
若所述消息的消息类型为单层式存储类型,则记录所述消息,并确定当前已记录的消息个数,根据所述消息个数确定是否暂不执行对所述消息的处理操作或执行对所述消息的处理操作;
若所述消息的消息类型为三层式存储类型,则执行对所述消息的处理操作。
可选地,所述根据所述消息个数确定是否暂不执行对所述消息的处理操作或执行对所述消息的处理操作,包括:
若所述消息个数小于预设消息个数阈值,则确定暂不执行对所述消息的处理操作;
若所述消息个数不小于所述预设消息个数阈值,则确定执行对所述消息的处理操作。
可选地,所述记录所述消息,包括:
确定是否存在临时存储列表;其中,所述临时存储列表用于临时存放等待处理的单层式存储类型消息;
若不存在所述临时存储列表,则创建所述临时存储列表,并将所述消息的信息记录至所述临时存储列表中;
若存在所述临时存储列表,则将所述消息的信息记录至所述临时存储列表中。
可选地,所述确定当前已记录的消息个数,包括:
统计当前所述临时存储列表中记录的消息总个数。
可选地,所述统计当前所述临时存储列表中记录的消息总个数,包括:
通过计数器进行计数以确定所述临时存储列表中记录的消息总个数。
可选地,所述若所述消息个数不小于所述预设消息个数阈值,则确定执行对所述消息的处理操作,包括:
若所述消息个数不小于所述预设消息个数阈值,则确定所述临时存储列表中记录的各所述消息,并按照记录的先后顺序依次执行对各所述消息的处理操作。
可选地,所述方法还包括:
在执行完成对各所述消息的处理操作之后,将各所述消息的信息从所述临时存储列表中删除。
可选地,所述若所述消息个数小于预设消息个数阈值,则确定暂不执行对所述消息的处理操作之后,还包括:
继续从所述消息队列中获取下一个待处理的消息。
可选地,所述方法还包括:
确定所述消息队列中属于单层式存储类型的消息总个数,以及确定所述消息队列中属于三层式存储类型的消息总个数;
根据属于单层式存储类型的消息总个数和属于三层式存储类型的消息总个数之间的数量关系,确定所述预设消息个数阈值。
可选地,所述根据属于单层式存储类型的消息总个数和属于三层式存储类型的消息总个数之间的数量关系,确定所述预设消息个数阈值,包括:
计算属于单层式存储类型的消息总个数与属于三层式存储类型的消息总个数的比值;
根据所述比值,确定所述预设消息个数阈值。
可选地,所述根据所述比值,确定所述预设消息个数阈值,包括:
若所述比值大于预设比值,则将预设第一数值确定为所述预设消息个数阈值。
可选地,所述若所述比值大于预设比值,则将预设第一数值确定为所述预设消息个数阈值,包括:
若所述比值大于所述预设比值,且所述消息队列中的消息总个数大于预设队列消息个数阈值,则将所述预设第一数值确定为所述预设消息个数阈值。
可选地,所述方法还包括:
获取基于执行顺序写或顺序读操作生成的待处理的消息,并将待处理的消息存放至所述消息队列中。
可选地,所述单层式存储类型的消息为系统请求消息;所述三层式存储类型的消息为用户请求消息。
可选地,所述执行对所述消息的处理操作,包括:
确定与所述消息队列对应的LUN逻辑单元;
采用所述LUN逻辑单元执行对所述消息的处理操作。
可选地,所述消息队列包括读消息队列和写消息队列,所述获取消息队列中下一个待处理的消息,包括:
从所述读消息队列中获取下一个待处理的读消息;或,
从所述写消息队列中获取下一个待处理的写消息。
可选地,所述确定所述消息的消息类型为单层式存储类型或三层式存储类型之前,还包括:
确定所述消息队列中是否存在单层式存储类型的消息和三层式存储类型的消息。
本发明实施例还公开了一种消息处理装置,所述装置包括:
消息获取及消息类型确定模块,用于获取消息队列中下一个待处理的消息,并确定所述消息的消息类型为单层式存储类型或三层式存储类型;
消息记录及处理操作执行确定模块,用于若所述消息的消息类型为单层式存储类型,则记录所述消息,并确定当前已记录的消息个数,根据所述消息个数确定是否暂不执行对所述消息的处理操作或执行对所述消息的处理操作;
处理操作执行模块,用于若所述消息的消息类型为三层式存储类型,则执行对所述消息的处理操作。
可选地,所述消息记录及处理操作执行确定模块,包括:
处理操作确定暂不执行子模块,用于若所述消息个数小于预设消息个数阈值,则确定暂不执行对所述消息的处理操作;
处理操作确定执行子模块,用于若所述消息个数不小于所述预设消息个数阈值,则确定执行对所述消息的处理操作。
可选地,所述消息记录及处理操作执行确定模块,包括:
临时存储列表确定子模块,用于确定是否存在临时存储列表;其中,所述临时存储列表用于临时存放等待处理的单层式存储类型消息;
临时存储列表创建及消息记录子模块,用于若不存在所述临时存储列表,则创建所述临时存储列表,并将所述消息的信息记录至所述临时存储列表中;
消息记录子模块,用于若存在所述临时存储列表,则将所述消息的信息记录至所述临时存储列表中。
可选地,所述消息记录及处理操作执行确定模块,包括:
消息总个数统计子模块,用于统计当前所述临时存储列表中记录的消息总个数。
可选地,所述消息总个数统计子模块,包括:
计数单元,用于通过计数器进行计数以确定所述临时存储列表中记录的消息总个数。
可选地,所述处理操作确定执行子模块,包括:
处理操作顺序执行单元,用于若所述消息个数不小于所述预设消息个数阈值,则确定所述临时存储列表中记录的各所述消息,并按照记录的先后顺序依次执行对各所述消息的处理操作。
可选地,所述装置还包括:
消息信息删除模块,用于在执行完成对各所述消息的处理操作之后,将各所述消息的信息从所述临时存储列表中删除。
可选地,所述装置还包括:
消息获取模块,用于继续从所述消息队列中获取下一个待处理的消息。
可选地,所述装置还包括:
消息总个数分类确定模块,用于确定所述消息队列中属于单层式存储类型的消息总个数,以及确定所述消息队列中属于三层式存储类型的消息总个数;
预设消息个数阈值确定模块,用于根据属于单层式存储类型的消息总个数和属于三层式存储类型的消息总个数之间的数量关系,确定所述预设消息个数阈值。
可选地,所述预设消息个数阈值确定模块,包括:
比值计算子模块,用于计算属于单层式存储类型的消息总个数与属于三层式存储类型的消息总个数的比值;
预设消息个数阈值确定子模块,用于根据所述比值,确定所述预设消息个数阈值。
可选地,所述预设消息个数阈值确定子模块,包括:
预设消息个数阈值确定单元,用于若所述比值大于预设比值,则将预设第一数值确定为所述预设消息个数阈值。
可选地,所述预设消息个数阈值确定单元,包括:
预设消息个数阈值确定子单元,用于若所述比值大于所述预设比值,且所述消息队列中的消息总个数大于预设队列消息个数阈值,则将所述预设第一数值确定为所述预设消息个数阈值。
可选地,所述装置还包括:
消息获取及消息存放模块,用于获取基于执行顺序写或顺序读操作生成的待处理的消息,并将待处理的消息存放至所述消息队列中。
可选地,所述单层式存储类型的消息为系统请求消息;所述三层式存储类型的消息为用户请求消息。
可选地,所述处理操作确定执行子模块,包括:
LUN逻辑单元确定单元,用于确定与所述消息队列对应的LUN逻辑单元;
处理操作执行单元,用于采用所述LUN逻辑单元执行对所述消息的处理操作。
可选地,所述消息队列包括读消息队列和写消息队列,所述消息获取及消息类型确定模块,包括:
读消息获取子模块,用于从所述读消息队列中获取下一个待处理的读消息;或,
写消息获取子模块,用于从所述写消息队列中获取下一个待处理的写消息。
可选地,所述装置还包括:
消息存在确定模块,用于确定所述消息队列中是否存在单层式存储类型的消息和三层式存储类型的消息。
本发明实施例还公开了一种电子设备,包括:处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上所述一种消息处理方法。
本发明实施例还公开了一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如上所述一种消息处理方法。
本发明实施例包括以下优点:
在本发明实施例中,可以获取消息队列中下一个待处理的消息,并确定该消息的消息类型为单层式存储类型或三层式存储类型,如果该消息类型为单层式存储类型,则记录该消息,并确定当前已记录的消息个数,根据该消息个数确定是否暂不执行对该消息的处理操作或执行对该消息的处理操作;如果该消息类型为三层式存储类型,则直接执行对该消息的处理操作。通过采用上述方法,对消息队列的消息按类型分批处理,在不修改原有消息队列模型的基础上,通过分辨消息类型实现了消息优先处理机制。在TLC消息混杂SLC消息的场景下,实现了对TLC消息的优先处理,对SLC消息的集中处理,更有效地利用了内存空间,总线尽可能高效处理用户的TLC消息,只在总线相对空闲时再处理SLC消息,更有效利用了总线带宽,提升了顺序读写性能。
附图说明
图1是本发明实施例提供的一种消息处理方法的步骤流程图;
图2是本发明实施例提供的另一种消息处理方法的步骤流程图;
图3是本发明实施例提供的一种消息处理装置的结构框图;
图4本发明实施例提供的一种电子设备的结构框图;
图5是本发明实施例提供的一种计算机可读存储介质的结构框图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其它实施例,都属于本发明保护的范围。
后端执行命令即处理各种消息,顺序写时一般分为TLC(Trinary-Level Cell,三层式存储单元)请求消息和SLC(Single Level Cell,单层式存储单元)请求消息。其中TLC消息为用户的实际写命令,处理越快则顺序写带宽越快;SLC消息为记录命令执行中生成的参数,需要保证数据正确性,但所处理数据不算入带宽内。每个LUN(Logical UnitNumber,逻辑单元号)都是一个执行单元,一般都有一个独立消息队列即List,用于存放待执行的消息。这个队列一般采用链表形式实现,链表默认采用先进先出原则,即按顺序依次执行。
在顺序写场景下,每个LUN都会连续收到TLC写、SLC写的混合消息,由于只有一个List(消息队列),所以会按照接收顺序依次执行请求消息,这样先收到的SLC消息则会阻塞后收到的TLC消息处理,会导致SLC消息之后的TLC消息经常处于等待处理状态,即延缓了TLC消息处理,从而降低了连续写带宽性能。
为了解决以上问题,本发明拟提供一种克服上述问题或者至少部分地解决上述问题的一种消息处理方法和相应的一种消息处理装置、一种电子设备,以及一种计算机可读存储介质。
本发明实施例的核心构思之一在于,可以获取消息队列中下一个待处理的消息,并确定该消息的消息类型为单层式存储类型或三层式存储类型,如果该消息类型为单层式存储类型,则记录该消息,并确定当前已记录的消息个数,根据该消息个数确定是否暂不执行对该消息的处理操作或执行对该消息的处理操作;如果该消息类型为三层式存储类型,则直接执行对该消息的处理操作。通过采用上述方法,对消息队列的消息按类型分批处理,在不修改原有消息队列模型的基础上,通过分辨消息类型实现了消息优先处理机制。在TLC消息混杂SLC消息的场景下,实现了对TLC消息的优先处理,对SLC消息的集中处理,更有效地利用了内存空间,总线尽可能高效处理用户的TLC消息,只在总线相对空闲时再处理SLC消息,更有效利用了总线带宽,提升了顺序读写性能。
参照图1,示出了本发明实施例提供的一种消息处理方法的步骤流程图,具体可以包括如下步骤:
步骤101,获取消息队列中下一个待处理的消息,并确定消息的消息类型为单层式存储类型或三层式存储类型。
在本发明实施例中,可以获取消息队列中下一个待处理的消息,并可以确定该消息的消息类型是单层式存储类型还是三层式存储类型。其中,单层式存储类型的消息即为SLC消息,三层式存储类型的消息即为TLC消息。
步骤102,若消息的消息类型为单层式存储类型,则记录消息,并确定当前已记录的消息个数,根据消息个数确定是否暂不执行对消息的处理操作或执行对消息的处理操作。
如果消息类型为单层式存储类型,则可以记录该消息,并确定当前时刻已经记录的消息个数,根据当前已经记录的消息个数确定是否暂不执行对该消息的处理操作或直接执行对该消息的处理操作,即可以根据当前已经记录的消息个数确定消息的处理时机。其中,处理时机可以包括直接执行或延缓执行等。
步骤103,若消息的消息类型为三层式存储类型,则执行对消息的处理操作。
如果消息类型为三层式存储类型,则可以直接执行对该消息的处理操作。
综上,在本发明实施例中,可以获取消息队列中下一个待处理的消息,并确定该消息的消息类型为单层式存储类型或三层式存储类型,如果该消息类型为单层式存储类型,则记录该消息,并确定当前已记录的消息个数,根据该消息个数确定是否暂不执行对该消息的处理操作或执行对该消息的处理操作;如果该消息类型为三层式存储类型,则直接执行对该消息的处理操作。通过采用上述方法,对消息队列的消息按类型分批处理,在不修改原有消息队列模型的基础上,通过分辨消息类型实现了消息优先处理机制。在TLC消息混杂SLC消息的场景下,实现了对TLC消息的优先处理,对SLC消息的集中处理,更有效地利用了内存空间,总线尽可能高效处理用户的TLC消息,只在总线相对空闲时再处理SLC消息,更有效利用了总线带宽,提升了顺序读写性能。
参照图2,示出了本发明实施例提供的另一种消息处理方法的步骤流程图,具体可以包括如下步骤:
步骤201,获取消息队列中下一个待处理的消息,并确定消息的消息类型为单层式存储类型或三层式存储类型。
本发明实施例中的消息类型包括单层式存储类型和三层式存储类型。
在本发明一种可选的实施例中,消息队列包括读消息队列和写消息队列,步骤201中获取消息队列中下一个待处理的消息,具体可以包括如下子步骤:
从读消息队列中获取下一个待处理的读消息;或,从写消息队列中获取下一个待处理的写消息。
在本发明实施例中,可以是从读消息队列中获取下一个待处理的读消息,或者,从写消息队列中获取下一个待处理的写消息。
在本发明一种可选的实施例中,执行确定消息的消息类型为单层式存储类型或三层式存储类型的步骤之前,具体还可以执行如下步骤:
确定消息队列中是否存在单层式存储类型的消息和三层式存储类型的消息。
在本发明实施例中,可以先确定同一个消息队列中是否同时存在单层式存储类型的消息和三层式存储类型的消息,即消息队列中混合有单层式存储类型的消息和三层式存储类型的消息。
步骤202,若消息的消息类型为单层式存储类型,则记录消息,并确定当前已记录的消息个数。
如果消息类型为单层式存储类型,则可以记录该消息,并确定截止当前时刻已经记录的消息个数。
在本发明一种可选的实施例中,步骤202中记录消息,具体可以包括如下子步骤:
确定是否存在临时存储列表;若不存在临时存储列表,则创建临时存储列表,并将消息的信息记录至临时存储列表中;若存在临时存储列表,则将消息的信息记录至临时存储列表中。
其中,临时存储列表用于临时存放等待处理的单层式存储类型消息。
在本发明实施例中,可以确定是否存在临时存储列表,如果不存在临时存储列表,则新建一个,之后可以将消息的信息记录到该临时存储列表中;如果已经存在临时存储列表,则可以直接将消息的信息记录到临时存储列表。
在本发明一种可选的实施例中,步骤202中确定当前已记录的消息个数,具体可以包括如下子步骤:
统计当前临时存储列表中记录的消息总个数。
当前已记录的消息个数,具体是指当前时刻临时存储列表中记录的消息总个数。
在本发明一种可选的实施例中,统计当前临时存储列表中记录的消息总个数,具体可以包括如下子步骤:
通过计数器进行计数以确定临时存储列表中记录的消息总个数。
步骤203,若消息个数小于预设消息个数阈值,则确定暂不执行对消息的处理操作。
在本发明实施例中,如果消息个数小于预设消息个数阈值,则可以确定暂不执行对该消息的处理操作。其中,预设消息个数阈值用于限制可以跳过暂不处理的单层式存储类型消息的个数。
在本发明一种可选的实施例中,执行步骤203若消息个数小于预设消息个数阈值,则确定暂不执行对消息的处理操作之后,具体还可以执行如下步骤:
继续从消息队列中获取下一个待处理的消息。
步骤204,若消息个数不小于预设消息个数阈值,则确定执行对消息的处理操作。
在本发明实施例中,如果消息个数不小于预设消息个数阈值,则可以确定执行对该消息的处理操作。
在本发明一种可选的实施例中,步骤204中若消息个数不小于预设消息个数阈值,则确定执行对消息的处理操作,具体可以包括如下子步骤:
若消息个数不小于预设消息个数阈值,则确定临时存储列表中记录的各消息,并按照记录的先后顺序依次执行对各消息的处理操作。
如果消息个数不小于预设消息个数阈值,则可以确定当前时刻临时存储列表中记录的各消息,并按照记录的先后顺序依次执行对各消息的处理操作。
在本发明一种可选的实施例中,在执行完成对各消息的处理操作之后,将各消息的信息从临时存储列表中删除。
临时存储列表中单层式存储类型消息全部执行完毕后,清空临时存储列表中的单层式存储类型消息。
步骤205,若消息的消息类型为三层式存储类型,则执行对消息的处理操作。
如果消息类型为三层式存储类型,则可以直接执行对该消息的处理操作。
在本发明一种可选的实施例中,执行对消息的处理操作,具体可以包括如下子步骤:
确定与消息队列对应的LUN逻辑单元;采用LUN逻辑单元执行对消息的处理操作。
消息队列具有与其对应的LUN逻辑单元,采用对应的LUN逻辑单元执行对消息的处理操作。
在本发明一种可选的实施例中,具体还可以执行如下步骤:
确定消息队列中属于单层式存储类型的消息总个数,以及确定消息队列中属于三层式存储类型的消息总个数;根据属于单层式存储类型的消息总个数和属于三层式存储类型的消息总个数之间的数量关系,确定预设消息个数阈值。
在本发明实施例中,具体可以根据消息队列中属于单层式存储类型的消息总个数和属于三层式存储类型的消息总个数之间的数量关系,确定可以等待处理的单层式存储类型消息的个数阈值(预设消息个数阈值)。即不同消息队列,对应的预设消息个数阈值可能不同。
在本发明一种可选的实施例中,根据属于单层式存储类型的消息总个数和属于三层式存储类型的消息总个数之间的数量关系,确定预设消息个数阈值,具体可以包括如下子步骤:
计算属于单层式存储类型的消息总个数与属于三层式存储类型的消息总个数的比值;根据比值,确定预设消息个数阈值。
在本发明一种可选的实施例中,根据比值,确定预设消息个数阈值,具体可以包括如下子步骤:
若比值大于预设比值,则将预设第一数值确定为预设消息个数阈值。
在本发明一种可选的实施例中,若比值大于预设比值,则将预设第一数值确定为预设消息个数阈值,具体可以包括如下子步骤:
若比值大于预设比值,且消息队列中的消息总个数大于预设队列消息个数阈值,则将预设第一数值确定为预设消息个数阈值。
在消息队列中需要处理的消息总个数较多的前提下,才将预设第一数值确定为预设消息个数阈值。
在本发明一种可选的实施例中,具体还可以执行如下步骤:
获取基于执行顺序写或顺序读操作生成的待处理的消息,并将待处理的消息存放至消息队列中。
其中,单层式存储类型的消息为系统请求消息;三层式存储类型的消息为用户请求消息。
在具体应用中,SLC消息通常为系统请求消息,TLC消息通常为用户请求消息。用户执行顺序写或顺序读时会发送TLC消息,同时也会穿插发送少量SLC消息。TLC消息用于处理用户数据,SLC消息用于记录产品参数信息。为了提升用户可见的带宽,则应尽可能优先、快速处理TLC消息。
本发明根据每个LUN消息处理机制存在的问题,初始化时根据不同消息类型(一般用户消息为TLC消息、系统消息为SLC消息)比例设定可连续处理SLC消息的一个阈值,并新建一个临时存储列表用于临时存储等待处理的SLC消息。在获取当前消息类型为SLC类型时,可以暂时不处理并将其存放在新建的临时存储列表中,再直接获取下一个待处理的消息并判断该消息的消息类型。如果为TLC类型则正常获取并执行;如果仍为SLC类型则继续取出并临时存放在临时存储列表中,当跳过次数低于初始设定的阈值时继续获取下一个待处理的消息并判断该消息的消息类型,否则直接按顺序对临时存储列表中各个SLC消息进行处理操作。如此,通过优化机制,在同一消息队列中,对TLC消息实现了优先处理,减小了TLC消息等待时间,对SLC消息实现了集中处理,也能正确、及时完成产品信息记录供调用。因为减少了TLC消息总耗时,用户态可以看到顺序读写带宽有明显提升。
其中,具体实施流程可以如下所示:
1、新建临时存储列表用于存放待执行的SLC消息,根据消息队列中TLC消息、SLC消息的个数比例设定SLC消息的预设消息个数阈值。当TLC消息、SLC消息混合下发时,为了防止由于优先处理TLC消息,导致发送SLC消息模块等待完成消息时间过长出现告警等异常;
2、从消息队列中获取消息并判断消息类型,消息类型应该为TLC消息或SLC消息,为步骤三、步骤四分类处理做准备;
3、如果获取到为TLC消息,由于TLC消息为用户发送的请求消息,无需等待直接正常执行,尽可能早处理早返回完成消息;
4、如果获取到为SLC消息,则存放在临时新建的临时存储列表中,临时存储列表中待处理SLC消息计数加一并与步骤一设定的阈值比较。当待处理SLC消息计数小于阈值时,则执行步骤二继续获取下一个消息并判断消息类型;当临时存储列表中待处理SLC消息计数大于或等于阈值时,则按照顺序依次执行待处理SLC消息,SLC消息全部执行完毕后对临时存储列表中待处理SLC消息个数清零;
最终实现了消息队列中所有消息执行,但并不是依次执行。可以根据消息类型(TLC、SLC消息)决定优先级,优先级较高(TLC)先执行,优先级较低(SLC)后执行。高优先级消息可以尽早执行并返回,低优先级消息也能在可接受时间段内执行完毕,既提升了顺序读写带宽性能,也能完整实现产品功能。在混合消息较多场景下,对带宽利用率有明显提升。
此外,本申请还可以进一步扩展应用于消息队列中混合有多种消息类型的场景,例如SLC、MLC(Multi Level Cell,多层式储存单元)、TLC消息混合场景,仍然可以采用该方案,根据实际性能需求,对重要消息类型实现优先处理。本发明通过对消息处理顺序的优化,优先处理用户可见的TLC消息,充分发挥CPU算力,以实现产品性能的提升。该方法不仅限于后端处理消息。也适用其他模块消息处理机制,消息队列中包含多种消息的场景。
综上,在本发明实施例中,可以获取消息队列中下一个待处理的消息,并确定该消息的消息类型为单层式存储类型或三层式存储类型,如果该消息类型为单层式存储类型,则记录该消息,并确定当前已记录的消息个数,根据该消息个数确定是否暂不执行对该消息的处理操作或执行对该消息的处理操作;如果该消息类型为三层式存储类型,则直接执行对该消息的处理操作。通过采用上述方法,对消息队列的消息按类型分批处理,在不修改原有消息队列模型的基础上,通过分辨消息类型实现了消息优先处理机制。在TLC消息混杂SLC消息的场景下,实现了对TLC消息的优先处理,对SLC消息的集中处理,更有效地利用了内存空间,总线尽可能高效处理用户的TLC消息,只在总线相对空闲时再处理SLC消息,更有效利用了总线带宽,提升了顺序读写性能。
本发明对List的消息按类型分批处理,在不修改原有List模型的基础上,新建一个SLCCMD List(临时存储列表),通过消息类型实现了消息优先处理机制。比如在顺序写场景下,TLC消息混杂着SLC消息,且SLC消息会对TLC消息造成阻塞,进而导致TLC消息处理较慢,影响产品性能。采用这种方式实现了对TLC消息的优先处理,对SLC消息的集中处理。
本发明通过在处理消息时,不再依次执行。在所消耗内存资源未增加、不修改一个队列链表基本原理的前提下,只通过增加几个参数判断的不太复杂的逻辑,就可以根据消息类型实现对TLC消息的优先处理。体现在产品层面,则是更高效、更充分的发挥了每个LUN逻辑单元及总线的性能,可以对顺序读写带宽有明显提升。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
参照图3,示出了本发明实施例提供的一种消息处理装置的结构框图,具体可以包括如下模块:
消息获取及消息类型确定模块301,用于获取消息队列中下一个待处理的消息,并确定所述消息的消息类型为单层式存储类型或三层式存储类型;
消息记录及处理操作执行确定模块302,用于若所述消息的消息类型为单层式存储类型,则记录所述消息,并确定当前已记录的消息个数,根据所述消息个数确定是否暂不执行对所述消息的处理操作或执行对所述消息的处理操作;
处理操作执行模块303,用于若所述消息的消息类型为三层式存储类型,则执行对所述消息的处理操作。
在本发明实施例中,所述消息记录及处理操作执行确定模块,包括:
处理操作确定暂不执行子模块,用于若所述消息个数小于预设消息个数阈值,则确定暂不执行对所述消息的处理操作;
处理操作确定执行子模块,用于若所述消息个数不小于所述预设消息个数阈值,则确定执行对所述消息的处理操作。
在本发明实施例中,所述消息记录及处理操作执行确定模块,包括:
临时存储列表确定子模块,用于确定是否存在临时存储列表;其中,所述临时存储列表用于临时存放等待处理的单层式存储类型消息;
临时存储列表创建及消息记录子模块,用于若不存在所述临时存储列表,则创建所述临时存储列表,并将所述消息的信息记录至所述临时存储列表中;
消息记录子模块,用于若存在所述临时存储列表,则将所述消息的信息记录至所述临时存储列表中。
在本发明实施例中,所述消息记录及处理操作执行确定模块,包括:
消息总个数统计子模块,用于统计当前所述临时存储列表中记录的消息总个数。
在本发明实施例中,所述消息总个数统计子模块,包括:
计数单元,用于通过计数器进行计数以确定所述临时存储列表中记录的消息总个数。
在本发明实施例中,所述处理操作确定执行子模块,包括:
处理操作顺序执行单元,用于若所述消息个数不小于所述预设消息个数阈值,则确定所述临时存储列表中记录的各所述消息,并按照记录的先后顺序依次执行对各所述消息的处理操作。
在本发明实施例中,所述装置还包括:
消息信息删除模块,用于在执行完成对各所述消息的处理操作之后,将各所述消息的信息从所述临时存储列表中删除。
在本发明实施例中,所述装置还包括:
消息获取模块,用于继续从所述消息队列中获取下一个待处理的消息。
在本发明实施例中,所述装置还包括:
消息总个数分类确定模块,用于确定所述消息队列中属于单层式存储类型的消息总个数,以及确定所述消息队列中属于三层式存储类型的消息总个数;
预设消息个数阈值确定模块,用于根据属于单层式存储类型的消息总个数和属于三层式存储类型的消息总个数之间的数量关系,确定所述预设消息个数阈值。
在本发明实施例中,所述预设消息个数阈值确定模块,包括:
比值计算子模块,用于计算属于单层式存储类型的消息总个数与属于三层式存储类型的消息总个数的比值;
预设消息个数阈值确定子模块,用于根据所述比值,确定所述预设消息个数阈值。
在本发明实施例中,所述预设消息个数阈值确定子模块,包括:
预设消息个数阈值确定单元,用于若所述比值大于预设比值,则将预设第一数值确定为所述预设消息个数阈值。
在本发明实施例中,所述预设消息个数阈值确定单元,包括:
预设消息个数阈值确定子单元,用于若所述比值大于所述预设比值,且所述消息队列中的消息总个数大于预设队列消息个数阈值,则将所述预设第一数值确定为所述预设消息个数阈值。
在本发明实施例中,所述装置还包括:
消息获取及消息存放模块,用于获取基于执行顺序写或顺序读操作生成的待处理的消息,并将待处理的消息存放至所述消息队列中。
在本发明实施例中,所述单层式存储类型的消息为系统请求消息;所述三层式存储类型的消息为用户请求消息。
在本发明实施例中,所述处理操作确定执行子模块,包括:
LUN逻辑单元确定单元,用于确定与所述消息队列对应的LUN逻辑单元;
处理操作执行单元,用于采用所述LUN逻辑单元执行对所述消息的处理操作。
在本发明实施例中,所述消息队列包括读消息队列和写消息队列,所述消息获取及消息类型确定模块,包括:
读消息获取子模块,用于从所述读消息队列中获取下一个待处理的读消息;或,
写消息获取子模块,用于从所述写消息队列中获取下一个待处理的写消息。
在本发明实施例中,所述装置还包括:
消息存在确定模块,用于确定所述消息队列中是否存在单层式存储类型的消息和三层式存储类型的消息。
综上,在本发明实施例中,可以获取消息队列中下一个待处理的消息,并确定该消息的消息类型为单层式存储类型或三层式存储类型,如果该消息类型为单层式存储类型,则记录该消息,并确定当前已记录的消息个数,根据该消息个数确定是否暂不执行对该消息的处理操作或执行对该消息的处理操作;如果该消息类型为三层式存储类型,则直接执行对该消息的处理操作。通过采用上述方法,对消息队列的消息按类型分批处理,在不修改原有消息队列模型的基础上,通过分辨消息类型实现了消息优先处理机制。在TLC消息混杂SLC消息的场景下,实现了对TLC消息的优先处理,对SLC消息的集中处理,更有效地利用了内存空间,总线尽可能高效处理用户的TLC消息,只在总线相对空闲时再处理SLC消息,更有效利用了总线带宽,提升了顺序读写性能。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本发明实施例还提供了一种电子设备,如图4所示,包括:处理器401、存储器402及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现上述一种消息处理方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本发明实施例还提供了一种计算机可读存储介质,如图5所示,计算机可读存储介质上存储计算机程序501,所述计算机程序被处理器执行时实现上述一种消息处理方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其它可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其它可编程数据处理终端设备上,使得在计算机或其它可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种消息处理方法和一种消息处理装置、一种电子设备和一种计算机可读存储介质,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (20)

1.一种消息处理方法,其特征在于,所述方法包括:
获取消息队列中下一个待处理的消息,并确定所述消息的消息类型为单层式存储类型或三层式存储类型;
若所述消息的消息类型为单层式存储类型,则记录所述消息,并确定当前已记录的消息个数,根据所述消息个数确定是否暂不执行对所述消息的处理操作或执行对所述消息的处理操作;
若所述消息的消息类型为三层式存储类型,则执行对所述消息的处理操作。
2.根据权利要求1所述的方法,其特征在于,所述根据所述消息个数确定是否暂不执行对所述消息的处理操作或执行对所述消息的处理操作,包括:
若所述消息个数小于预设消息个数阈值,则确定暂不执行对所述消息的处理操作;
若所述消息个数不小于所述预设消息个数阈值,则确定执行对所述消息的处理操作。
3.根据权利要求2所述的方法,其特征在于,所述记录所述消息,包括:
确定是否存在临时存储列表;其中,所述临时存储列表用于临时存放等待处理的单层式存储类型消息;
若不存在所述临时存储列表,则创建所述临时存储列表,并将所述消息的信息记录至所述临时存储列表中;
若存在所述临时存储列表,则将所述消息的信息记录至所述临时存储列表中。
4.根据权利要求3所述的方法,其特征在于,所述确定当前已记录的消息个数,包括:
统计当前所述临时存储列表中记录的消息总个数。
5.根据权利要求4所述的方法,其特征在于,所述统计当前所述临时存储列表中记录的消息总个数,包括:
通过计数器进行计数以确定所述临时存储列表中记录的消息总个数。
6.根据权利要求5所述的方法,其特征在于,所述若所述消息个数不小于所述预设消息个数阈值,则确定执行对所述消息的处理操作,包括:
若所述消息个数不小于所述预设消息个数阈值,则确定所述临时存储列表中记录的各所述消息,并按照记录的先后顺序依次执行对各所述消息的处理操作。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
在执行完成对各所述消息的处理操作之后,将各所述消息的信息从所述临时存储列表中删除。
8.根据权利要求6或7所述的方法,其特征在于,所述若所述消息个数小于预设消息个数阈值,则确定暂不执行对所述消息的处理操作之后,还包括:
继续从所述消息队列中获取下一个待处理的消息。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
确定所述消息队列中属于单层式存储类型的消息总个数,以及确定所述消息队列中属于三层式存储类型的消息总个数;
根据属于单层式存储类型的消息总个数和属于三层式存储类型的消息总个数之间的数量关系,确定所述预设消息个数阈值。
10.根据权利要求9所述的方法,其特征在于,所述根据属于单层式存储类型的消息总个数和属于三层式存储类型的消息总个数之间的数量关系,确定所述预设消息个数阈值,包括:
计算属于单层式存储类型的消息总个数与属于三层式存储类型的消息总个数的比值;
根据所述比值,确定所述预设消息个数阈值。
11.根据权利要求10所述的方法,其特征在于,所述根据所述比值,确定所述预设消息个数阈值,包括:
若所述比值大于预设比值,则将预设第一数值确定为所述预设消息个数阈值。
12.根据权利要求11所述的方法,其特征在于,所述若所述比值大于预设比值,则将预设第一数值确定为所述预设消息个数阈值,包括:
若所述比值大于所述预设比值,且所述消息队列中的消息总个数大于预设队列消息个数阈值,则将所述预设第一数值确定为所述预设消息个数阈值。
13.根据权利要求12所述的方法,其特征在于,所述方法还包括:
获取基于执行顺序写或顺序读操作生成的待处理的消息,并将待处理的消息存放至所述消息队列中。
14.根据权利要求13所述的方法,其特征在于,所述单层式存储类型的消息为系统请求消息;所述三层式存储类型的消息为用户请求消息。
15.根据权利要求14所述的方法,其特征在于,所述执行对所述消息的处理操作,包括:
确定与所述消息队列对应的LUN逻辑单元;
采用所述LUN逻辑单元执行对所述消息的处理操作。
16.根据权利要求1所述的方法,其特征在于,所述消息队列包括读消息队列和写消息队列,所述获取消息队列中下一个待处理的消息,包括:
从所述读消息队列中获取下一个待处理的读消息;或,
从所述写消息队列中获取下一个待处理的写消息。
17.根据权利要求1所述的方法,其特征在于,所述确定所述消息的消息类型为单层式存储类型或三层式存储类型之前,还包括:
确定所述消息队列中是否存在单层式存储类型的消息和三层式存储类型的消息。
18.一种消息处理装置,其特征在于,所述装置包括:
消息获取及消息类型确定模块,用于获取消息队列中下一个待处理的消息,并确定所述消息的消息类型为单层式存储类型或三层式存储类型;
消息记录及处理操作执行确定模块,用于若所述消息的消息类型为单层式存储类型,则记录所述消息,并确定当前已记录的消息个数,根据所述消息个数确定是否暂不执行对所述消息的处理操作或执行对所述消息的处理操作;
处理操作执行模块,用于若所述消息的消息类型为三层式存储类型,则执行对所述消息的处理操作。
19.一种电子设备,其特征在于,包括:处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1-17中任一项所述一种消息处理方法。
20.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如权利要求1-17中任一项所述一种消息处理方法。
CN202310066189.3A 2023-01-18 2023-01-18 一种消息处理方法、装置、电子设备和存储介质 Active CN115794446B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310066189.3A CN115794446B (zh) 2023-01-18 2023-01-18 一种消息处理方法、装置、电子设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310066189.3A CN115794446B (zh) 2023-01-18 2023-01-18 一种消息处理方法、装置、电子设备和存储介质

Publications (2)

Publication Number Publication Date
CN115794446A true CN115794446A (zh) 2023-03-14
CN115794446B CN115794446B (zh) 2023-05-09

Family

ID=85429984

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310066189.3A Active CN115794446B (zh) 2023-01-18 2023-01-18 一种消息处理方法、装置、电子设备和存储介质

Country Status (1)

Country Link
CN (1) CN115794446B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200941499A (en) * 2008-03-25 2009-10-01 Asmedia Technology Inc Hybrid flash memory storage device and method of controlling the same
KR20140006234A (ko) * 2012-06-29 2014-01-16 에스케이하이닉스 주식회사 데이터 저장 장치 및 그 동작 방법
CN103942151A (zh) * 2014-04-10 2014-07-23 深圳市硅格半导体有限公司 闪存的数据存储方法及装置
CN108509480A (zh) * 2017-02-23 2018-09-07 西部数据技术公司 配置为执行非阻塞控制更新操作的数据存储设备
CN114281251A (zh) * 2021-12-10 2022-04-05 重庆邮电大学 面向3d tlc闪存存储器的数据分配与重编程优化方法
CN114911424A (zh) * 2022-06-21 2022-08-16 维沃移动通信有限公司 数据存储方法、数据存储装置和电子设备

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200941499A (en) * 2008-03-25 2009-10-01 Asmedia Technology Inc Hybrid flash memory storage device and method of controlling the same
KR20140006234A (ko) * 2012-06-29 2014-01-16 에스케이하이닉스 주식회사 데이터 저장 장치 및 그 동작 방법
CN103942151A (zh) * 2014-04-10 2014-07-23 深圳市硅格半导体有限公司 闪存的数据存储方法及装置
CN108509480A (zh) * 2017-02-23 2018-09-07 西部数据技术公司 配置为执行非阻塞控制更新操作的数据存储设备
CN114281251A (zh) * 2021-12-10 2022-04-05 重庆邮电大学 面向3d tlc闪存存储器的数据分配与重编程优化方法
CN114911424A (zh) * 2022-06-21 2022-08-16 维沃移动通信有限公司 数据存储方法、数据存储装置和电子设备

Also Published As

Publication number Publication date
CN115794446B (zh) 2023-05-09

Similar Documents

Publication Publication Date Title
CN107239339B (zh) 系统性能优化参数确定方法、系统性能优化方法及装置
US11010094B2 (en) Task management method and host for electronic storage device
CN110532205B (zh) 数据传输方法、装置、计算机设备和计算机可读存储介质
KR20060129873A (ko) 휴대단말기의 메모리 정리 방법
CN111324303B (zh) Ssd垃圾回收方法、装置、计算机设备及存储介质
WO2021093365A1 (zh) 一种gpu显存管理控制方法及相关装置
CN110287038A (zh) 提升Spark Streaming框架的数据处理效率的方法及系统
CN112416255A (zh) 一种用户写入速度控制方法、装置、设备和介质
CN112948169A (zh) 数据备份的方法、装置、设备和存储介质
CN117251275A (zh) 多应用异步i/o请求的调度方法及系统、设备及介质
WO2021068515A1 (zh) 存储系统中数据管理方法和装置
CN115794446B (zh) 一种消息处理方法、装置、电子设备和存储介质
CN110955388A (zh) 一种存储服务器及其数据存储方法、装置和存储介质
US20230100110A1 (en) Computing resource management method, electronic equipment and program product
CN115981893A (zh) 消息队列任务处理方法、装置、服务器及存储介质
CN111090627B (zh) 基于池化的日志存储方法、装置、计算机设备及存储介质
CN108304252B (zh) 一种任务调度方法及装置
EP3585017A2 (en) Technologies for providing adaptive polling of packet queues
CN113778624B (zh) 对象的处理方法和装置、智能终端及存储介质
CN104714779A (zh) 指令处理方法及装置
CN114301927B (zh) 一种分布式系统中主节点选取方法、装置及介质
CN117055820B (zh) 一种固态硬盘的命令处理方法、固态硬盘和存储介质
CN112003860B (zh) 适用于远程直接内存访问的内存管理方法、系统及介质
CN113032171B (zh) 一种控制方法及装置
CN116980641B (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