CN110046132B - 一种元数据请求处理方法、装置、设备及可读存储介质 - Google Patents
一种元数据请求处理方法、装置、设备及可读存储介质 Download PDFInfo
- Publication number
- CN110046132B CN110046132B CN201910292839.XA CN201910292839A CN110046132B CN 110046132 B CN110046132 B CN 110046132B CN 201910292839 A CN201910292839 A CN 201910292839A CN 110046132 B CN110046132 B CN 110046132B
- Authority
- CN
- China
- Prior art keywords
- log information
- cache
- log
- metadata
- metadata request
- 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.)
- Active
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 24
- 230000004044 response Effects 0.000 claims abstract description 75
- 238000000034 method Methods 0.000 claims abstract description 55
- 238000004590 computer program Methods 0.000 claims description 9
- 238000012163 sequencing technique Methods 0.000 claims description 2
- 230000000694 effects Effects 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 3
- 230000009977 dual effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000011112 process operation Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/14—Details of searching files based on file metadata
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/172—Caching, prefetching or hoarding of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/1734—Details of monitoring file system events, e.g. by the use of hooks, filter drivers, logs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1805—Append-only file systems, e.g. using logs or journals to store data
- G06F16/1815—Journaling file systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Library & Information Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种元数据请求处理方法,该方法包括:在向第一客户端发送第一应答消息之后,接收第二客户端发送的第二元数据请求;按照第二元数据请求对元数据进行处理,并生成第二日志信息和第二应答消息;向第二客户端发送第二应答消息,并将第二日志信息写入缓存;在缓存内的日志信息量达到指定数值时,将缓存内的日志信息写到OSD。该方法,可缩短接收和处理两个元数据请求的间隔时间,可提升元数据请求的处理速度。进一步还可以流水线型方式来加速元数据请求的处理速度,提高系统的并发处理能力,提升用户体验。本发明还公开了一种元数据请求处理装置、设备及可读存储介质,具有相应的技术效果。
Description
技术领域
本发明涉及存储技术领域,特别是涉及一种元数据请求处理方法、装置、设备及可读存储介质。
背景技术
为了保证元数据操作的可靠性,通常会在元数据服务器使用writeahead方式,即写前日志来记录元数据操作。
在writeahead方式下,元数据请求处理流程较长,元数据服务器使用一个线程完成了元数据的接收、元数据缓存的查找、元数据的修改处理、日志的生成、写入日志缓存以及日志缓存存满需要刷新到OSD上这些任务。且,为了保障数据的一致性,在每次完成上一个元数据请求的全部流程后,才能继续处理下一个元数据请求。如此,便使得元数据服务器请求处理速度受到限制,难以提高请求处理速度,进而导致系统出现卡顿的情况,影响用户体验。
综上所述,如何有效地提升元数据请求的处理速度等问题,是目前本领域技术人员急需解决的技术问题。
发明内容
本发明的目的是提供一种元数据请求处理方法、装置、设备及可读存储介质,以提高元数据请求的处理速度。
为解决上述技术问题,本发明提供如下技术方案:
一种元数据请求处理方法,包括:
在向第一客户端发送第一应答消息之后,接收第二客户端发送的第二元数据请求;其中,所述第一应答消息为处理所述第一客户端发送的第一元数据请求时产生的;
按照所述第二元数据请求对元数据进行处理,并生成第二日志信息和第二应答消息;
向所述第二客户端发送所述第二应答消息,并将所述第二日志信息写入缓存;
在所述缓存内的日志信息量达到指定数值时,将缓存内的日志信息写到OSD。
优选地,将所述第二日志信息写入缓存,包括:
从双写缓存中,确定出所述日志信息量未达指定数值的未满缓存;
将所述第二日志信息写入所述未满缓存。
优选地,在所述缓存内的日志信息量达到指定数值时,将缓存内的日志信息写到OSD,包括:
从所述双写缓存中,确定出所述日志信息量已达指定数值的已满缓存;
将所述已满缓存内的所述日志信息写入所述OSD。
优选地,所述生成第二日志信息,包括:
将所述第二日志信息写入日志处理链表中;
相应地,将所述第二日志信息写入缓存,包括:
从所述日志处理链表中读取所述第二日志信息,以追加方式将所述第二日志信息按照日志形式写入所述缓存中。
优选地,从所述日志处理链表中读取所述第二日志信息,以追加方式将所述第二日志信息按照日志形式写入所述缓存中,包括:
从所述日志处理链表中读取所述第二日志信息;其中,所述第二日志信息包括日志时间;
将所述第二日志信息内的所述日志时间进行序列号,并定位本次缓存写位置;
以追加方式,将日志时间序列化后的第二日志信息按照所述日志形式写入所述缓存中。
优选地,将所述第二日志信息内的所述日志时间进行序列号,包括:
将所述日志时间的类对象数据成员转化为目标字符串。
优选地,按照所述第二元数据请求对元数据进行处理,包括:
从所述第二元数据请求中,确定出操作类型和目标元数据;所述操作类型包括接收操作、查找操作和修改操作;
按照所述操作类型对所述目标元数据进行处理。
一种元数据请求处理装置,包括:
处理请求接收模块,用于在向第一客户端发送第一应答消息之后,接收第二客户端发送的第二元数据请求;其中,所述第一应答消息为处理所述第一客户端发送的第一元数据请求时产生的;
请求处理模块,用于按照所述第二元数据请求对元数据进行处理,并生成第二日志信息和第二应答消息;
应答模块,用于向所述第二客户端发送所述第二应答消息;
日志存储模块,用于将所述第二日志信息写入缓存,在所述缓存内的日志信息量达到指定数值时,将缓存内的日志信息写到OSD。
一种元数据请求处理设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现上述元数据请求处理方法的步骤。
一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述元数据请求处理方法的步骤。
应用本发明实施例所提供的方法,在向第一客户端发送第一应答消息之后,接收第二客户端发送的第二元数据请求;其中,第一应答消息为处理第一客户端发送的第一元数据请求时产生的;按照第二元数据请求对元数据进行处理,并生成第二日志信息和第二应答消息;向第二客户端发送第二应答消息,并将第二日志信息写入缓存;在缓存内的日志信息量达到指定数值时,将缓存内的日志信息写到OSD。
在向第一客户端发送第一应答消息之后,便可接收第二客户端发送的第二元数据请求。其中,第一应答消息为对第一客户端发送的第一元数据请求进行处理时,产生的。得到第二元数据请求之后,便可按照第二元数据请求对元数据进行处理。在对元数据进行处理时,还可生成第二日志信息和第二应答消息。考虑到在缓存中存储日志信息,以及将缓存中的日志信息写入存储的过程对元数据服务器处理下一个元数据请求并不影响,为了提高元数据请求的效率,此时可直接将第二应答消息发送给第二客户端。相应地,将第二应答消息发送给第二客户端之后,便可接收下一个元数据请求。在向第二客户端发送第二应答消息时,还可将第二日志信息写入缓存,以及在缓存写满之后,将日志信息写到OSD。由于无需等待日志信息写入存储时,便将应答消息发送给客户端,如此,便可缩短接收和处理两个元数据请求的间隔时间,可提升元数据请求的处理速度。
由于本发明实施例所提供的方法,在反馈了上一个元数据请求的应答消息之后,便可接收下一个元数据请求。因此,可采用多个进程的方式实现并行处理元数据请求。例如,可采用三个不同进程实现,具体的,可令进程一专门处理接收请求至返回应答消息的步骤;令进程二专门处理将日志信息写入缓存的步骤;令进程三专门处理将缓存内的日志信息写到OSD的操作。如此,在元数据请求并发量较大时,可实现分阶段,以流水线型方式来加速元数据请求的处理速度,提高系统的并发处理能力,提升用户体验。
相应地,本发明实施例还提供了与上述元数据请求处理方法相对应的元数据请求处理装置、设备和可读存储介质,具有上述技术效果,在此不再赘述。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中一种元数据请求处理方法的实施流程图;
图2为现有的元数据请求处理流程示意图;
图3为本发明实施例中一种元数据请求处理流程示意图;
图4为本发明实施例中一种元数据请求处理装置的结构示意图;
图5为本发明实施例中一种元数据请求处理设备的结构示意图;
图6为本发明实施例中一种元数据请求处理设备的具体结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一:
需要说明的是,为了便于描述,采用了第一和第二的描述词,在本申请中的第一和第二之间仅表示先后顺序,客户端、元数据请求、应答消息和日志信息前冠以第一或第二,仅用于区别于分别属于不同对应关系,例如第一客户端指前一个元数据请求的发送者,第二客户端指后一个元数据请求的发送者,第一客户端和第二客户端实质上可为同一个客户端,也可为不同的客户端端,而第一响应消息则表明该响应消息与第一元数据请求具有对应关系。
请参考图1,图1为本发明实施例中一种元数据请求处理方法的流程图,该方法可应用于分布式文件系统内的元数据服务器中。该方法包括以下步骤:
S101、在向第一客户端发送第一应答消息之后,接收第二客户端发送的第二元数据请求。
其中,第一应答消息为处理第一客户端发送的第一元数据请求时产生的。
在元数据服务器向第一客户端发送了第一应答消息之后,便可接收第二客户端发送的第二元数据请求。也就是说,在将处理上一个元数据请求的过程中产生的应答消息发送给相应客户端之后,无论上一个元数据请求的日志信息是否写入缓存或是否已被写入存储时,便可直接接收下一个元数据处理请求。
S102、按照第二元数据请求对元数据进行处理,并生成第二日志信息和第二应答消息。
接收到第二元数据请求之后,便可直接对元数据进行处理,且在处理过程中会生成与第二元数据请求对应的第二日志信息和第二应答消息。
其中,按照第二元数据请求对元数据进行处理,包括:
步骤一、从第二元数据请求中,确定出操作类型和目标元数据;操作类型包括接收操作、查找操作和修改操作;
步骤二、按照操作类型对目标元数据进行处理。
为便于描述,下面将上述两个步骤结合起来进行说明。
接收到第二元数据请求之后,可对第二元数据请求进行解析,首先从第二元数据请求中确定出操作类型和目标元数据。例如,规定不同的操作标签标示不同的操作类型,以元数据索引节点号唯一确定目标元数据,即仅需读取第二元数请求携带的操作标签和元数据索引节点号以及对应查找表,便可确定出操作类型和目标元数据。其中,操作类型包括但不限于接收操作、查找操作和修改操作。然后,按照操作类型对目标元数据进行处理。例如当操作类型为查找时,目标元数据为A元数据,则查找A元数据即可。
处理完成之后,此时已获得第二日志信息和第二应答消息,由于发送应答消息和存储日志信息并无关联关系,特别地,存储日志信息对处理下一个元数据请求并无影响,基于此,此时可执行步骤S103的操作。
S103、向第二客户端发送第二应答消息,并将第二日志信息写入缓存。
得到第二应答消息之后,可直接将第二应答信息发送给第二客户端,而无需在第二日志信息存储妥当。为了保障元数据的可靠性,且减少与OSD的IO交互,在将应答消息发送给第二客户端的同时或之后,可将第二日志信息写入缓存中。
在生成第二日志信息时,若将第二日志信息写入日志处理链表中;
其中,将第二日志信息写入缓存的操作具体为:从日志处理链表中读取第二日志信息,以追加方式将第二日志信息按照日志形式写入缓存中。以追加方式将第二日志信息按照日志形式写入缓存,可避免覆盖之前写入的日志。具体的,在将日志写入缓存之前,还需对第二日志信息进行处理,具体过程如下:
步骤一、从日志处理链表中读取第二日志信息;第二日志信息包括日志时间;
步骤二、将第二日志信息内的日志时间进行序列号,并定位本次缓存写位置;
步骤三、以追加方式,将日志时间序列化后的第二日志信息按照日志形式写入缓存中。
为便于描述,下面将上述三个步骤结合起来进行说明。
其中,将第二日志信息内的日志时间进行序列号,即将日志时间的类对象数据成员转化为目标字符串。
从日志处理链表中依次取出日志时间,通过追加形式加入写缓存中。在加入写缓存前需要做一些准备操作:日志时间的序列化和定位写缓存的写位置。其中,日志时间的序列化主要是把日志时间类对象的数据成员转化到一个bufferlist中,类似于转化一个字符串,这样便于网络传输。定位写的位置可以通过记录保存上次写完缓存后的位置。
S104、在缓存内的日志信息量达到指定数值时,将缓存内的日志信息写到OSD。
在本发明实施例中可预先设置缓存刷新的日志信息量的指定数值,如4M,即当缓存内的日志信息量达到该指定数值时,将缓存内的日志信息批量写到OSD(Object StorageDevice,提供存储资源,如存储池,硬盘等常见掉电不丢失的存储介质),以此来降低与OSD之间的IO数量,减少占用系统资源。其中,指定数值可根据具体的系统以及应用场景的需求而设置,如可选用5M、6M等数值。
应用本发明实施例所提供的方法,在向第一客户端发送第一应答消息之后,接收第二客户端发送的第二元数据请求;其中,第一应答消息为处理第一客户端发送的第一元数据请求时产生的;按照第二元数据请求对元数据进行处理,并生成第二日志信息和第二应答消息;向第二客户端发送第二应答消息,并将第二日志信息写入缓存;在缓存内的日志信息量达到指定数值时,将缓存内的日志信息写到OSD。
在向第一客户端发送第一应答消息之后,便可接收第二客户端发送的第二元数据请求。其中,第一应答消息为对第一客户端发送的第一元数据请求进行处理时,产生的。得到第二元数据请求之后,便可按照第二元数据请求对元数据进行处理。在对元数据进行处理时,还可生成第二日志信息和第二应答消息。考虑到在缓存中存储日志信息,以及将缓存中的日志信息写入存储的过程对元数据服务器处理下一个元数据请求并不影响,为了提高元数据请求的效率,此时可直接将第二应答消息发送给第二客户端。相应地,将第二应答消息发送给第二客户端之后,便可接收下一个元数据请求。在向第二客户端发送第二应答消息时,还可将第二日志信息写入缓存,以及在缓存写满之后,将日志信息写到OSD。由于无需等待日志信息写入存储时,便将应答消息发送给客户端,如此,便可缩短接收和处理两个元数据请求的间隔时间,可提升元数据请求的处理速度。
由于本发明实施例所提供的方法,在反馈了上一个元数据请求的应答消息之后,便可接收下一个元数据请求。因此,可采用多个进程的方式实现并行处理元数据请求。例如,可采用三个不同进程实现,具体的,可令进程一专门处理接收请求至返回应答消息的步骤;令进程二专门处理将日志信息写入缓存的步骤;令进程三专门处理将缓存内的日志信息写到OSD的操作。如此,在元数据请求并发量较大时,可实现分阶段,以流水线型方式来加速元数据请求的处理速度,提高系统的并发处理能力,提升用户体验。
需要说明的是,基于上述实施例,本发明实施例还提供了相应的改进方案。在优选/改进实施例中涉及与上述实施例中相同步骤或相应步骤之间可相互参考,相应的有益效果也可相互参照,在本文的优选/改进实施例中不再一一赘述。
优选地,考虑到通常写缓存存储至指定大小之后,就需要通过网络写到OSD上,这段时间内时不能再写日志操作,如果网络状态不好,那就需要等很长时间,而此时日志缓存处理链表中日志会不断的加入,导致日志缓存占用的内存不断增加,严重时可能会影响系统的性能。为解决这一问题,基于上述实施例的方法,提出双写缓存的解决方法,具体的,即设置双写缓存,在执行上述步骤S103中的将第二日志信息写入缓存的步骤时,具体包括执行以下步骤:
步骤一、从双写缓存中,确定出日志信息量未达指定数值的未满缓存;
步骤二、将第二日志信息写入未满缓存。
为便于描述,下面将上述两个步骤结合起来进行说明。
利用双写缓存,交替写日志,在一个写缓存满时,日志信息提交到另一个缓存中。即在将第二日志信息写入缓存时,首先从双写缓存中确定出日志信息量未达到指定数值的未满缓存,然后将第二日志信息写入未满缓存中。
相应地,在将缓存内的日志信息写到OSD的过程中,在双写缓存的基础上,即为从双写缓存中,确定出日志信息量已达指定数值的已满缓存;将已满缓存内的日志信息写入OSD。具体的,可使用一个单独的线程处理将日志信息提交到OSD的过程。
实施例二:
为便于本领域技术人员更好的理解本发明实施例所提供的方法,下面结合现有技术以及具体的应用场景为例,对本发明实施例所提供的方法进行详细说明。
考虑到日志处理部分与后续元数据的处理之间没有影响关系,所以可以对元数据请求处理的粒度进行细分,分为三个处理阶段:元数据的处理、日志写缓存和日志缓存存满刷新到OSD上,对这三个阶段使用流水线型,从而加快元数据的处理速度。
其中,元数据请求阶段,主要执行接受、查找和修改元数据操作、同时生成相关的日志信息,在执行完这些操作后就可以继续处理下一个元数据请求。相较于其他系统,缩短了元数据操作流程,加快了元数据处理的速度。此阶段会产生日志信息,由于三个阶段细分后分别由不通的线程进行管理,所以需要设计把这个阶段生成的日志信息交给日志写缓存阶段,这里使用生产者消费者模式来管理生成的日志。
日志写缓存阶段,从日志处理链表中一次取出日志时间,通过追加形式加入写缓存中。在加入写缓存前需要做一些准备操作:日志时间的序列化和定位写缓存的写位置。日志时间的序列化主要是把日志时间类对象的数据成员转化到一个bufferlist中,类似于转化一个字符串,这样便于网络传输。定位写的位置可以通过记录保存上次写完缓存后的位置。
日志缓存刷新阶段,在日志的写缓存存满一个对象大小(同上文的指定数值)时,就需要通过网络写到存储池上,这段时间内时不能再写日志操作,如果网络状态不好,那就需要等很长时间,而此时日志缓存处理链表中日志会不断的加入,导致日志缓存占用的内存不断增加,严重时可能会影响系统的性能。本设计使用双写缓存,交替写日志,在一个写缓存满时,日志提交到另一个缓存中,同时满的缓存提交到存储池上,并使用一个单独的服务线程处理提交到存储池的过程。
请参考图2,图2为现有的元数据请求处理流程示意图。可见,目前元数据请求处理流程较长,元数据服务器使用一个线程完成了元数据消息的接收、元数据缓存的查找、元数据的修改处理、日志的生成、写入日志缓存以及日志缓存存满需要刷新到OSD上这些任务。只有当每次完成了上述流程,才能继续处理下一个元数据请求,元数据服务器请求处理速度收到限制。
分别设计三个不同的线程处理不同阶段的操作之后,请参考图3,图3为本发明实施例中一种元数据请求处理流程示意图。从图3可看出,相当于原有的处理方式下,处理一个请求的时间,应用本发明实施例所提供的元数据请求处理方法的方式下,可处理多个请求。如此,不仅可缩短单个元数据请求的应答时间,还可应对元数据请求并发量较大的场景。
实施例三:
相应于上面的方法实施例,本发明实施例还提供了一种元数据请求处理装置,下文描述的元数据请求处理装置与上文描述的元数据请求处理方法可相互对应参照。
参见图4所示,该装置包括以下模块:
处理请求接收模块101,用于在向第一客户端发送第一应答消息之后,接收第二客户端发送的第二元数据请求;其中,第一应答消息为处理第一客户端发送的第一元数据请求时产生的;
请求处理模块102,用于按照第二元数据请求对元数据进行处理,并生成第二日志信息和第二应答消息;
应答模块103,用于向第二客户端发送第二应答消息;
日志存储模块104,用于将第二日志信息写入缓存,在缓存内的日志信息量达到指定数值时,将缓存内的日志信息写到OSD。
应用本发明实施例所提供的装置,在向第一客户端发送第一应答消息之后,接收第二客户端发送的第二元数据请求;其中,第一应答消息为处理第一客户端发送的第一元数据请求时产生的;按照第二元数据请求对元数据进行处理,并生成第二日志信息和第二应答消息;向第二客户端发送第二应答消息,并将第二日志信息写入缓存;在缓存内的日志信息量达到指定数值时,将缓存内的日志信息写到OSD。
在向第一客户端发送第一应答消息之后,便可接收第二客户端发送的第二元数据请求。其中,第一应答消息为对第一客户端发送的第一元数据请求进行处理时,产生的。得到第二元数据请求之后,便可按照第二元数据请求对元数据进行处理。在对元数据进行处理时,还可生成第二日志信息和第二应答消息。考虑到在缓存中存储日志信息,以及将缓存中的日志信息写入存储的过程对元数据服务器处理下一个元数据请求并不影响,为了提高元数据请求的效率,此时可直接将第二应答消息发送给第二客户端。相应地,将第二应答消息发送给第二客户端之后,便可接收下一个元数据请求。在向第二客户端发送第二应答消息时,还可将第二日志信息写入缓存,以及在缓存写满之后,将日志信息写到OSD。由于无需等待日志信息写入存储时,便将应答消息发送给客户端,如此,便可缩短接收和处理两个元数据请求的间隔时间,可提升元数据请求的处理速度。
由于本发明实施例所提供的装置,在反馈了上一个元数据请求的应答消息之后,便可接收下一个元数据请求。因此,可采用多个进程的方式实现并行处理元数据请求。例如,可采用三个不同进程实现,具体的,可令进程一专门处理接收请求至返回应答消息的步骤;令进程二专门处理将日志信息写入缓存的步骤;令进程三专门处理将缓存内的日志信息写到OSD的操作。如此,在元数据请求并发量较大时,可实现分阶段,以流水线型方式来加速元数据请求的处理速度,提高系统的并发处理能力,提升用户体验。
在本发明的一种具体实施方式中,日志存储模块104,具体用于从双写缓存中,确定出日志信息量未达指定数值的未满缓存;将第二日志信息写入未满缓存。
在本发明的一种具体实施方式中,日志存储模块104,具体用于从双写缓存中,确定出日志信息量已达指定数值的已满缓存;将已满缓存内的日志信息写入OSD。
在本发明的一种具体实施方式中,日志存储模块104,具体用于在将第二日志信息写入日志处理链表中时,则从日志处理链表中读取第二日志信息,以追加方式将第二日志信息按照日志形式写入缓存中。
在本发明的一种具体实施方式中,日志存储模块104,具体用于从日志处理链表中读取第二日志信息;第二日志信息包括日志时间;将第二日志信息内的日志时间进行序列号,并定位本次缓存写位置;以追加方式,将日志时间序列化后的第二日志信息按照日志形式写入缓存中。
在本发明的一种具体实施方式中,日志存储模块104,具体用于将日志时间的类对象数据成员转化为目标字符串。
在本发明的一种具体实施方式中,请求处理模块102,用于从第二元数据请求中,确定出操作类型和目标元数据;操作类型包括接收操作、查找操作和修改操作;按照操作类型对目标元数据进行处理。
实施例四:
相应于上面的方法实施例,本发明实施例还提供了一种元数据请求处理设备,下文描述的一种元数据请求处理设备与上文描述的一种元数据请求处理方法可相互对应参照。
参见图5所示,该元数据请求处理设备包括:
存储器D1,用于存储计算机程序;
处理器D2,用于执行计算机程序时实现上述方法实施例的元数据请求处理方法的步骤。
具体的,请参考图6,图6为本实施例提供的一种元数据请求处理设备的具体结构示意图,该元数据请求处理设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)322(例如,一个或一个以上处理器)和存储器332,一个或一个以上存储应用程序342或数据344的存储介质330(例如一个或一个以上海量存储设备)。其中,存储器332和存储介质330可以是短暂存储或持久存储。存储在存储介质330的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对数据处理设备中的一系列指令操作。更进一步地,中央处理器322可以设置为与存储介质330通信,在元数据请求处理设备301上执行存储介质330中的一系列指令操作。
元数据请求处理设备301还可以包括一个或一个以上电源326,一个或一个以上有线或无线网络接口350,一个或一个以上输入输出接口358,和/或,一个或一个以上操作系统341。例如,Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等。
上文所描述的元数据请求处理方法中的步骤可以由元数据请求处理设备的结构实现。
实施例五:
相应于上面的方法实施例,本发明实施例还提供了一种可读存储介质,下文描述的一种可读存储介质与上文描述的一种元数据请求处理方法可相互对应参照。
一种可读存储介质,可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述方法实施例的元数据请求处理方法的步骤。
该可读存储介质具体可以为U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、磁碟或者光盘等各种可存储程序代码的可读存储介质。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
Claims (8)
1.一种元数据请求处理方法,其特征在于,包括:
在向第一客户端发送第一应答消息之后,接收第二客户端发送的第二元数据请求;其中,所述第一应答消息为处理所述第一客户端发送的第一元数据请求时产生的;
按照所述第二元数据请求对元数据进行处理,并生成第二日志信息和第二应答消息;
向所述第二客户端发送所述第二应答消息,并将所述第二日志信息写入缓存;
在所述缓存内的日志信息量达到指定数值时,将缓存内的日志信息写到OSD;
其中,将所述第二日志信息写入缓存,包括:
从双写缓存中,确定出所述日志信息量未达指定数值的未满缓存;
将所述第二日志信息写入所述未满缓存;
其中,所述生成第二日志信息,包括:
将所述第二日志信息写入日志处理链表中;
相应地,将所述第二日志信息写入缓存,包括:
从所述日志处理链表中读取所述第二日志信息,以追加方式将所述第二日志信息按照日志形式写入所述缓存中。
2.根据权利要求1所述的元数据请求处理方法,其特征在于,在所述缓存内的日志信息量达到指定数值时,将缓存内的日志信息写到OSD,包括:
从所述双写缓存中,确定出所述日志信息量已达指定数值的已满缓存;
将所述已满缓存内的所述日志信息写入所述OSD。
3.根据权利要求1所述的元数据请求处理方法,其特征在于,从所述日志处理链表中读取所述第二日志信息,以追加方式将所述第二日志信息按照日志形式写入所述缓存中,包括:
从所述日志处理链表中读取所述第二日志信息;其中,所述第二日志信息包括日志时间;
将所述第二日志信息内的所述日志时间进行序列号,并定位本次缓存写位置;
以追加方式,将日志时间序列化后的第二日志信息按照所述日志形式写入所述缓存中。
4.根据权利要求3所述的元数据请求处理方法,其特征在于,将所述第二日志信息内的所述日志时间进行序列号,包括:
将所述日志时间的类对象数据成员转化为目标字符串。
5.根据权利要求1至3任一项所述的元数据请求处理方法,其特征在于,按照所述第二元数据请求对元数据进行处理,包括:
从所述第二元数据请求中,确定出操作类型和目标元数据;所述操作类型包括接收操作、查找操作和修改操作;
按照所述操作类型对所述目标元数据进行处理。
6.一种元数据请求处理装置,其特征在于,包括:
处理请求接收模块,用于在向第一客户端发送第一应答消息之后,接收第二客户端发送的第二元数据请求;其中,所述第一应答消息为处理所述第一客户端发送的第一元数据请求时产生的;
请求处理模块,用于按照所述第二元数据请求对元数据进行处理,并生成第二日志信息和第二应答消息;
应答模块,用于向所述第二客户端发送所述第二应答消息;
日志存储模块,用于将所述第二日志信息写入缓存,在所述缓存内的日志信息量达到指定数值时,将缓存内的日志信息写到OSD;
其中,所述日志存储模块,具体用于从双写缓存中,确定出所述日志信息量未达指定数值的未满缓存;将所述第二日志信息写入所述未满缓存;
其中,所述日志存储模块,具体用于在将所述第二日志信息写入日志处理链表中时,则从所述日志处理链表中读取所述第二日志信息,以追加方式将所述第二日志信息按照日志形式写入所述缓存中。
7.一种元数据请求处理设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至5任一项所述元数据请求处理方法的步骤。
8.一种可读存储介质,其特征在于,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述元数据请求处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910292839.XA CN110046132B (zh) | 2019-04-15 | 2019-04-15 | 一种元数据请求处理方法、装置、设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910292839.XA CN110046132B (zh) | 2019-04-15 | 2019-04-15 | 一种元数据请求处理方法、装置、设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110046132A CN110046132A (zh) | 2019-07-23 |
CN110046132B true CN110046132B (zh) | 2022-04-22 |
Family
ID=67276855
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910292839.XA Active CN110046132B (zh) | 2019-04-15 | 2019-04-15 | 一种元数据请求处理方法、装置、设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110046132B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112000623A (zh) * | 2020-08-07 | 2020-11-27 | 北京浪潮数据技术有限公司 | 一种元数据的存取方法、装置和计算机可读存储介质 |
CN112506686A (zh) * | 2020-11-05 | 2021-03-16 | 北京和利时系统工程有限公司 | 一种dcs控制器日志系统实现方法和装置 |
CN113821479A (zh) * | 2021-08-27 | 2021-12-21 | 济南浪潮数据技术有限公司 | 一种基于元数据加载的数据请求处理方法和装置 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103309767A (zh) * | 2012-03-08 | 2013-09-18 | 阿里巴巴集团控股有限公司 | 一种客户端日志处理方法和装置 |
CN103902479A (zh) * | 2014-03-27 | 2014-07-02 | 浪潮电子信息产业股份有限公司 | 一种基于元数据日志的元数据缓存快速重建机制 |
CN104881371A (zh) * | 2015-05-29 | 2015-09-02 | 清华大学 | 持久性内存事务处理缓存管理方法与装置 |
CN105447081A (zh) * | 2015-11-04 | 2016-03-30 | 国云科技股份有限公司 | 面向云平台的一种政务舆情监控方法 |
CN108319543A (zh) * | 2018-01-24 | 2018-07-24 | 广州江南科友科技股份有限公司 | 一种计算机日志数据的异步处理方法及其介质、系统 |
CN108664214A (zh) * | 2017-03-31 | 2018-10-16 | 北京忆恒创源科技有限公司 | 用于固态存储设备的分布式缓存的掉电处理方法与装置 |
CN108932158A (zh) * | 2018-06-28 | 2018-12-04 | 郑州云海信息技术有限公司 | 一种元数据服务器事务处理的方法、装置及mds服务器 |
CN109144413A (zh) * | 2018-07-27 | 2019-01-04 | 郑州云海信息技术有限公司 | 一种元数据管理方法及装置 |
CN109213425A (zh) * | 2017-06-30 | 2019-01-15 | 北京忆恒创源科技有限公司 | 利用分布式缓存在固态存储设备中处理原子命令 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011031796A2 (en) * | 2009-09-08 | 2011-03-17 | Fusion-Io, Inc. | Apparatus, system, and method for caching data on a solid-state storage device |
CN103237045B (zh) * | 2013-02-22 | 2015-12-09 | 北方工业大学 | 大规模实时交通数据的并行处理系统和并行处理方法 |
CN103729442B (zh) * | 2013-12-30 | 2017-11-24 | 华为技术有限公司 | 记录事务日志的方法和数据库引擎 |
CN107203560B (zh) * | 2016-03-18 | 2020-07-07 | 中国移动通信集团宁夏有限公司 | 数据库、多数据库操作事务一致性保证方法及系统 |
CN108076090B (zh) * | 2016-11-11 | 2021-05-18 | 华为技术有限公司 | 数据处理方法和存储管理系统 |
-
2019
- 2019-04-15 CN CN201910292839.XA patent/CN110046132B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103309767A (zh) * | 2012-03-08 | 2013-09-18 | 阿里巴巴集团控股有限公司 | 一种客户端日志处理方法和装置 |
CN103902479A (zh) * | 2014-03-27 | 2014-07-02 | 浪潮电子信息产业股份有限公司 | 一种基于元数据日志的元数据缓存快速重建机制 |
CN104881371A (zh) * | 2015-05-29 | 2015-09-02 | 清华大学 | 持久性内存事务处理缓存管理方法与装置 |
CN105447081A (zh) * | 2015-11-04 | 2016-03-30 | 国云科技股份有限公司 | 面向云平台的一种政务舆情监控方法 |
CN108664214A (zh) * | 2017-03-31 | 2018-10-16 | 北京忆恒创源科技有限公司 | 用于固态存储设备的分布式缓存的掉电处理方法与装置 |
CN109213425A (zh) * | 2017-06-30 | 2019-01-15 | 北京忆恒创源科技有限公司 | 利用分布式缓存在固态存储设备中处理原子命令 |
CN108319543A (zh) * | 2018-01-24 | 2018-07-24 | 广州江南科友科技股份有限公司 | 一种计算机日志数据的异步处理方法及其介质、系统 |
CN108932158A (zh) * | 2018-06-28 | 2018-12-04 | 郑州云海信息技术有限公司 | 一种元数据服务器事务处理的方法、装置及mds服务器 |
CN109144413A (zh) * | 2018-07-27 | 2019-01-04 | 郑州云海信息技术有限公司 | 一种元数据管理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110046132A (zh) | 2019-07-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110442560B (zh) | 一种日志重演方法、装置、服务器和存储介质 | |
US9747124B2 (en) | Distributed virtual machine image management for cloud computing | |
CN110046132B (zh) | 一种元数据请求处理方法、装置、设备及可读存储介质 | |
CN111414389B (zh) | 一种数据处理方法、装置、电子设备及存储介质 | |
US10649905B2 (en) | Method and apparatus for storing data | |
US20120331333A1 (en) | Stream Data Processing Failure Recovery Method and Device | |
US10031948B1 (en) | Idempotence service | |
US20060015542A1 (en) | Performance metric-based selection of one or more database server instances to perform database recovery | |
US10613992B2 (en) | Systems and methods for remote procedure call | |
US10235223B2 (en) | High-performance computing framework for cloud computing environments | |
US11947842B2 (en) | Method for writing data in append mode, device and storage medium | |
CN113806300B (zh) | 数据存储方法、系统、装置、设备及存储介质 | |
CN109582649B (zh) | 一种元数据存储方法、装置、设备及可读存储介质 | |
CN103605630A (zh) | 一种虚拟服务器系统及其数据读写方法 | |
CN112416654B (zh) | 一种数据库日志重演方法、装置、设备及存储介质 | |
CN110673959A (zh) | 用于处理任务的系统、方法和装置 | |
CN111309432B (zh) | 一种故障演练方法、装置及系统 | |
CN108062224B (zh) | 基于文件句柄的数据读写方法、装置及计算设备 | |
CN111800511B (zh) | 同步登录态的处理方法、系统、设备及可读存储介质 | |
CN111444148A (zh) | 基于MapReduce的数据传输方法和装置 | |
CN115904240A (zh) | 数据处理方法、装置、电子设备和存储介质 | |
US20150268986A1 (en) | Distributed batch job promotion within enterprise computing environments | |
CN117093335A (zh) | 分布式存储系统的任务调度方法及装置 | |
CN110399296B (zh) | 测试客户端与服务端之间交互接口的方法、系统和介质 | |
GB2516092A (en) | Method and system for implementing a bit array in a cache line |
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 |