一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

数据处理方法及装置与流程

2021-11-05 20:16:00 来源:中国专利 TAG:


1.本说明书实施例涉及计算机技术领域,特别涉及一种数据处理方法。


背景技术:

2.在数据调用的过程中,使用用户态文件系统可以降低开发的复杂度,以减少对底层造作系统内核的依赖,然而,由于操作系统内核和用户态之间需要额外(通常是通过事件等待和通知)的协调,用户态文件系统通常比在内核中运行产生更多的延迟成本,具有较低的性能,而部分性能开销是由于fuse(filesystem in userspace)中的现有等待机制,用户空间文件系统使用该机制与内核协调以获取文件系统访问请求,并且内核使用该机制等待请求完成,进而这种等待机制会导致系统访问文件的时间较长、cpu利用率不高。


技术实现要素:

3.有鉴于此,本说明书实施例提供了一种数据处理方法。本说明书一个或者多个实施例同时涉及一种数据处理装置,一种计算设备,一种计算机可读存储介质以及一种计算机程序,以解决现有技术中存在的技术缺陷。
4.根据本说明书实施例的第一方面,提供了一种数据处理方法,包括:
5.接收目标项目的数据处理请求,在确定目标进程基于所述数据处理请求返回的目标数据为空的情况下,确定等待返回所述目标数据的目标等待时间;
6.确定等待返回所述目标数据的当前等待时间,在所述当前等待时间小于所述目标等待时间的情况下,将执行所述数据处理请求对应的处理器分配给下一个目标项目的数据处理请求。
7.根据本说明书实施例的第二方面,提供了一种数据处理装置,包括:
8.时间确定模块,被配置为接收目标项目的数据处理请求,在确定目标进程基于所述数据处理请求返回的目标数据为空的情况下,确定等待返回所述目标数据的目标等待时间;
9.处理模块,被配置为确定等待返回所述目标数据的当前等待时间,在所述当前等待时间小于所述目标等待时间的情况下,将执行所述数据处理请求对应的处理器分配给下一个目标项目的数据处理请求。
10.根据本说明书实施例的第三方面,提供了一种计算设备,包括:
11.存储器和处理器;
12.所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令,其中,所述处理器执行所述计算机可执行指令时实现所述数据处理方法的步骤。
13.根据本说明书实施例的第四方面,提供了一种计算机可读存储介质,其存储有计算机可执行指令,该指令被处理器执行时实现任意一项所述数据处理方法的步骤。
14.根据本说明书实施例的第五方面,提供了一种计算机程序,其中,当所述计算机程序在计算机中执行时,令计算机执行上述数据处理方法的步骤。
15.本说明书一个实施例通过接收目标项目的数据处理请求,在确定目标进程基于所述数据处理请求返回的目标数据为空的情况下,确定等待返回所述目标数据的目标等待时间;确定等待返回所述目标数据的当前等待时间,在所述当前等待时间小于所述目标等待时间的情况下,将执行所述数据处理请求对应的处理器分配给下一个目标项目的数据处理请求。
16.具体的,通过目标进程在未返回目标数据的过程中,确定等待该目标数据返回的预设等待时间,并在未超出该预设等待时间的情况下,将执行该数据处理请求对应的处理器分配给下一个目标项目的数据处理请求的占用,该种方式不会因等待目标数据的时间过长,而长时间地占用处理器,进而可实现处理器的较高的利用率,提高用户的使用体验。
附图说明
17.图1是本说明书一个实施例提供的一种数据处理方法的系统结构示意图;
18.图2是本说明书一个实施例提供的一种数据处理方法的流程图;
19.图3是本说明书一个实施例提供的一种数据处理方法的进程等待过程的流程图;
20.图4是本说明书一个实施例提供的一种数据处理方法计算目标等待时间的流程图;
21.图5是本说明书一个实施例提供的一种数据处理方法的事件等待处理过程流程图;
22.图6是本说明书一个实施例提供的一种数据处理装置的结构示意图;
23.图7是本说明书一个实施例提供的一种计算设备的结构框图。
具体实施方式
24.在下面的描述中阐述了很多具体细节以便于充分理解本说明书。但是本说明书能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本说明书内涵的情况下做类似推广,因此本说明书不受下面公开的具体实施的限制。
25.在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本说明书一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
26.应当理解,尽管在本说明书一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”。
27.首先,对本说明书一个或多个实施例涉及的名词术语进行解释。
28.fuse(filesystem in userspace,用户空间文件系统):是linux中用于挂载某些网络空间,如ssh,到本地文件系统的模块。
29.用户态:指非特权状态。在此状态下,执行的代码被硬件限定,不能进行某些操作,
比如写入其他进程的存储空间,以防止给操作系统带来安全隐患。
30.本说明书实施例提供的数据处理方法,通过确定目标数据为空时,可以根据历史等待目标数据的等待时间,预计此次等待目标数据所需要的时间,并基于此次预计的等待时间确定等待所需目标数据的多种等待方法,方法一,考虑到对处理器的使用率低,但本身带来的延时高的方式;方法二,考虑到对处理器的使用率高,但本身带来的延时低的方式。通过上述两种方式需要系统自我调节,也可称为自适应等待,以在追求低延时和避免浪费处理器这两个方面进行考量实现平衡。进而,本方法通过动态判断上述两种方式的有效性,决定是否在短暂期间用方法二,以低延时提高用户的体验,或是直接用方法一。
31.基于此,在本说明书中,提供了一种数据处理方法,本说明书同时涉及一种数据处理装置,一种计算设备,一种计算机可读存储介质以及一种计算机程序,在下面的实施例中逐一进行详细说明。
32.图1示出了根据本说明书一个实施例提供的一种数据处理方法的系统结构示意图。
33.图1中fuse内核模块可以理解为应用程序的处理进程,图1中的用户空间文件系统进程可以理解为用户态文件系统进程,具体的,在应用程序向fuse内核模块的文件系统处理代码模块发送文件系统调用请求之后,文件系统处理代码对该文件系统调用请求(fuse请求)进行打包封装处理,将处理后的fuse请求放置在待处理队列中,在确定有需要从用户控件文件系统中获得的目标数据的情况下,将该fuse请求放置在正处理队列中,同时,用户空间文件系统进程会确定正处理队列中是否有需要获取的目标数据,从设备处理代码模块中获取fuse请求,并将该fuse请求通过fuse库进行数据格式转换,再基于fuse接口获取相应的目标数据,并再次通过fuse库进行格式处理,将处理后的目标数据返回至fuse内核模块,则该目标数据作为fuse请求的回复数据返回至应用程序。
34.需要说明的是,在fuse内核模块向用户空间文件系统中获取目标数据的过程,是需要一定的处理时间,那么此事件的等待时间是确定整个任务执行时间的重要因素。
35.实际应用中,当应用程序对基于fuse的用户控件文件系统进行文件的调用时,fuse请求会通过fuse内核模块从应用程序线程传输到用户空间文件系统线程。在文件系统处理请求后,fuse回复以相反的方向返回到应用程序线程。总的来说,对于同步fuse请求,其完成涉及内核中的两个事件等待(event wait)。一个是用户文件系统线程在内核中等待新的fuse请求;另一种是让应用程序线程在内核中等待对其fuse请求的回复。内核事件等待和后续通知需要花费几微秒的时间才能完成,对于可以由用户空间文件系统快速处理的请求,两次事件等待的开销是较高的,其端对端的延迟基本上就来自于两个事件等待的时延。事件等待这一方式自身的时延还掩盖了高性能存储设备(例如基于持久内存技术的设备)能够提供的低延迟优势。
36.基于此,本说明书实施例提供的一种数据处理方法,旨在减少内核和用户空间文件系统之间现有等待方案的延迟,参见图2,图2示出了本说明书实施例提供了一种数据处理方法的流程图,具体包括以下步骤。
37.步骤202:接收目标项目的数据处理请求,在确定目标进程基于所述数据处理请求返回的目标数据为空的情况下,确定等待返回所述目标数据的目标等待时间。
38.其中,目标项目的数据处理请求可以理解为对目标项目所需数据的数据查询请
求、数据编辑请求、数据处理请求等。
39.具体实施时,在fuse内核模块接收到数据处理请求之后,会基于该数据处理请求接收到目标进程返回的目标数据,在fuse内核模块获取到相应的目标数据之后,才可相应地进行后续的数据处理操作,但接收目标进程返回的目标数据的过程,需要一个等待时间,而在实际应用中,该等待的时间影响服务器数据处理的效率,也会影响用户的体验,因此,对于该时间的等待时间则是本说明书实施例提供的数据处理方法考虑的重点方向。
40.基于此,在fuse内核模块接收到数据处理请求之后,在确定目标进程返回的目标数据为空的情况下,或者是说,在确定目标进程还未返回相应的目标数据的情况下,fuse内核模块可以先确定可以等待返回目标数据的目标等待时间,进而实现对后续目标数据的处理。
41.进一步地,所述在确定目标进程基于所述数据处理请求返回的目标数据为空的情况下,确定等待返回所述目标数据的目标等待时间之前,还包括:
42.将所述数据处理请求进行封装处理,将处理后的数据处理请求放置待处理队列。
43.实际应用中,在fuse内核模块接收到目标项目的数据处理请求之后,fuse内核模块中的文件系统处理代码将接收到的数据处理请求进行打包、封装处理,生成封装后的数据处理请求,该数据处理请求可包括数据大小、请求数据的时间以及数据的长度等信息,并将封装后的数据处理请求放置在待处理队列中。
44.本说明书实施例提供的数据处理方法,将数据处理请求放置在待处理队列中,便于后续目标进程在待处理队列中查看是否有所需的数据。
45.由于不确定目标进程返回目标数据的时间,fuse内核模块的处理进程在未被配置为睡眠状态,且还没接收到目标数据的情况下,确定一个目标等待时间;具体的,所述在确定目标进程基于所述数据处理请求返回的目标数据为空的情况下,确定等待返回所述目标数据的目标等待时间,包括:
46.在确定目标进程从所述待处理队列中获取的所述数据处理请求未被配置为睡眠状态,且所述目标进程基于数据处理请求返回的目标数据为空的情况下,确定等待返回所述目标数据的目标等待时间。
47.需要说明的是,传统数据处理进程中在确定未接收到目标进程返回的目标数据的情况下,可将数据处理进程进入睡眠状态,即事件等待状态,在确定接收到目标进程返回的目标数据的情况下,才会将该数据处理进程唤醒,继续执行后续数据处理的过程,具体的实现步骤可参见图3,图3中示出了本说明书实施例提供的数据处理方法的进程等待过程的流程图。
48.步骤302:数据处理进程等待目标数据。
49.步骤304:数据处理进程判定是否接收到目标数据,若是,则执行步骤308,若否,则执行步骤306。
50.步骤306:数据处理进程进入事件等待,继续执行步骤304。
51.步骤308:数据处理进程被唤醒,返回目标数据。
52.基于此,在上述实施例中数据处理进程在进入睡眠状态情况下,将会产生睡眠、等待、唤醒对应的等待时间,若在数据处理进程刚进入睡眠状态的情况下,就接收到了目标数据,那么还需要对该数据处理进程执行唤醒之后,再处理数据,该唤醒过程还是会花费一定
的时间,通常可能为几微秒,进而会产生一些不必要的等待时间,因此本说明书实施例提供的数据处理方法,可预先设置一个目标等待时间,以减少进程的一些不必要的等待时间。
53.实际应用中,在fuse内核模块的处理进程确定数据处理请求还未被配置为睡眠状态,且目标进程返回的目标数据为空的情况下,可计算出该数据处理进程能够等待目标进程返回目标数据的目标等待时间。需要说明的是,目标进程可实时从fuse内核模块中的待处理队列查找是否有需要执行的数据处理请求,在待处理队列中有目标进程需要处理的数据处理请求的情况下,目标进程会将该数据处理请求从待处理队列中获取,目标进程会将该数据处理请求通过fuse库进行格式处理,并基于处理后的数据处理请求对所需的目标数据进行处理,由于目标进程在获取目标数据的过程中,可能因为各种原因导致目标数据的处理时间较长,因此将目标数据返回至fuse内核模块的时间也会相对较长。
54.本说明书实施例提供的数据处理方法,在数据处理进程还未进入睡眠状态,且返回的目标数据为空的情况下,通过确定数据处理进程等待返回目标数据的目标等待时间,以减少等待目标数据的时间过长,导致的数据处理时延。
55.进一步地,预设的目标等待时间是基于哪些因素确定,可参考目标项目的不同需求确定出不同的目标等待时间;具体的,所述确定等待返回所述目标数据的目标等待时间,包括:
56.基于所述目标项目确定所述目标项目的历史等待时间以及项目属性信息,并基于所述历史等待时间以及所述项目属性信息确定所述目标数据的目标等待时间。
57.其中,目标项目的历史等待时间可以理解为在该目标项目的历史数据处理操作的过程中,数据处理进程的历史等待时间;项目属性信息可以理解为该目标项目的类型、处理的复杂度等基本属性信息,根据该项目属性信息可以确定出该数据处理请求的处理需求。
58.实际应用中,数据处理进程可根据目标项目的历史等待时间以及项目属性信息,确定出该数据处理进程等待目标数据的目标等待时间,可参见图4,图4示出了本说明书实施例提供的数据处理方法计算目标等待时间的流程图。
59.步骤402:判断是否为此次数据处理进程计算过目标等待时间,若是,则执行步骤412,若否,则执行步骤404。
60.步骤404:根据该数据处理请求的历史等待时间,估计此次需要等待的时间g;根据项目属性信息配置的等待时间p;数据处理进程的事件等待的净开销时间d。
61.步骤406:判断是否需要进入事件等待,即g<p d,若是,则执行步骤408,若否,则执行步骤410。
62.步骤408:数据处理进程确定等待时间p为目标等待时间。
63.步骤410:数据处理进程确定目标等待时间为0。
64.步骤412:数据处理进程返回目标等待时间。
65.例如,配置忙等待时间(根据项目属性信息配置的等待时间)p为10微秒,事件等待的净开销时间为5微秒,若根据上一次历史目标数据到来时间g为20微秒,则也可以认为此次目标数据到来时间也可能是20微秒,因此,在此次等待时间的预计下,忙等待10微秒是没有意义的,可以直接做事件等待;若根据上一次历史目标数据到来时间g为12微秒,而事件等待本身耗费5微秒的开销,因此,目标数据可能在7

12微秒之间到来,进而忙等待10微秒是有价值的,可以将数据处理进程置为忙等待阶段。
66.需要说明的是,若g>=p d,则将数据处理进程配置为忙等待可能无价值,就要设忙等待时间为0,否则,可设此次需要忙等待的时间为配置的忙等待时间p,其中,配置的忙等待时间也可以根据部署场景、系统特征、所需数据类型等配置不同的等待时间。
67.本说明书实施例通过目标项目的历史等待时间以及项目属性信息确定目标数据的目标等待时间,能够准确地预设出该目标项目的自适应的进程等待时间,便于后续通过该目标等待时间判定是否需要该数据处理进程进入睡眠状态,以提升cpu的处理效率。
68.此外,本说明书另一实施例提供的数据处理方法,还可基于目标数据的数据类型确定目标的目标等待时间;具体的,所述在确定目标进程基于所述数据处理请求返回的目标数据为空的情况下,确定等待返回所述目标数据的目标等待时间,包括:
69.在确定目标进程基于所述数据处理请求返回的目标数据为空的情况下,基于数据处理请求中携带的数据属性信息确定所述目标数据的数据类型,并基于所述数据类型确定等待返回所述目标数据的目标等待时间。
70.具体实施时,数据处理进程在确定目标进程基于数据处理请求返回的目标数据为空的情况下,基于数据处理请求中携带的数据属性信息确定目标数据的数据类型,确定该数据处理请求所需的目标数据是否为特定的数据类型,实际应用中,还可基于不同的数据类型,配置不同的等待时间,根据不同的场景设置的等待时间便于后续精准地控制该数据处理请求最长等待的时间,进而减少不必要的延时,提高cpu的处理效率。
71.需要说明的是,上述两个实施例提供的目标等待时间的确定方法,本说明书对此不做任何限定,还可考虑其他部署场景、系统特征等不同方式确定目标等待时间。
72.本说明书实施例提供的数据处理方法,还可根据数据类型确定不同的目标等待时间,进而能够准确地预设出该目标项目的自适应的进程等待时间,便于后续通过该目标等待时间判定是否需要该数据处理进程进入睡眠状态,以提升cpu的处理效率。
73.步骤204:确定等待返回所述目标数据的当前等待时间,在所述当前等待时间小于所述目标等待时间的情况下,将执行所述数据处理请求对应的处理器分配给下一个目标项目的数据处理请求。
74.具体实施时,在确定出数据处理进程能够等待的目标等待时间之后,还需要确定数据处理进程当前的等待时间,在确定当前等待时间小于目标等待时间的情况下,将该数据处理进程执行该数据处理请求对应的处理器分配给下一个执行目标项目的数据处理请求。
75.实际应用中,将执行所述数据处理请求对应的处理器分配给下一个目标项目的数据处理请求,可以理解为调用操作系统内核调度(比如schedule)是指要求内核调度程序选择下一个要运行的进程/线程。用此方法时,线程若发现没有所需目标数据,就暂时让出cpu给其他线程执行,这是对数据可用性进行一定程度的循环轮询,也不会持续占着cpu资源。若数据在线程循轮间内到达,线程可以较快的处理数据,避免进入睡眠而后被唤醒所需的多微秒延迟。同样,通常只有当数据需求线程和提供线程在不同的cpu上运行时才有意义。原因是,如果数据需求线程和提供线程在同一cpu上先后交换的调度运行,其端对端的时延就比较长。
76.本说明书实施例提供上述对数据处理方法的详细说明,表明在数据处理进程的当前等待时间小于目标等待时间的情况下,可以将执行该数据处理请求的处理器分配至下一
个线程使用,以避免cpu资源不必要的占用,进而提高了cpu利用率。
77.进一步地,本说明书另一实施例提供的数据处理方法,在数据处理进程的当前等待时间大于等于目标等待时间的情况下,数据处理进程可配置为睡眠状态;具体的,所述确定等待返回所述目标数据的当前等待时间之后,还包括:
78.在所述当前等待时间大于等于所述目标等待时间的情况下,将所述数据处理请求配置为睡眠状态。
79.实际应用中,在数据处理进程等待返回目标数据的当前等待时间大于等于目标等待时间的情况下,表明等待时间较长,可将该数据处理请求对应的处理进程配置为睡眠状态,以减少处理资源的浪费。该种方式也可以称为等待队列方法(比如基于wait_queue_head_t的线程睡眠、被唤醒),当目标数据只能在相当一段时间后可到达,则睡眠等待方法是较佳的选择,比如,一定时间后,当进程用其他的方法还未等到目标数据,进程可以切换到等待队列方法,也就是睡在相应的事件上,直到目标数据到后被进程唤醒。
80.本说明书实施例提供的数据处理方法,是在当前等待时间大于等于目标等待时间的情况下,将数据处理请求再配置为睡眠状态,该方式并未在开始等待的时候就进入睡眠状态,而是在后续条件满足的情况下,才将数据处理请求配置为睡眠状态,进而能够避免在进程刚进入睡眠状态的情况下,就接收到了目标数据,在对进程唤醒的过程中还需浪费额外的时间,减少进程的等待时间。
81.在将数据处理进程配置为睡眠状态之后,直到目标进程返回目标数据之后,才会将数据处理进程唤醒,处理该目标数据;具体的,所述将所述数据处理请求配置为睡眠状态之后,还包括:
82.在确定目标进程基于所述数据处理请求返回所述目标数据的情况下,将所述数据处理请求配置为唤醒状态,并基于所述目标数据处理所述数据处理请求。
83.实际应用中,数据处理进程会不断重复检查是否有接收到返回的目标数据,在确定目标进程基于该数据处理请求已经返回目标数据的情况下,将数据处理进程配置为唤醒状态,再继续进行后续的处理该数据处理请求的过程,其中,数据处理进程对目标数据的处理包括对目标数据直接返回至应用程序,还包括对接收到的目标数据进行其他的处理过程,本说明书实施例对此不做任何限定。
84.本说明书实施例提供的数据处理方法,在数据处理进程确定目标进程已经返回了目标数据的情况下,可将数据处理请求从睡眠状态唤醒,执行后续的数据处理请求。
85.此外,在数据处理进程的等待过程中,在将此次数据处理请求对应的处理器分配给下一个数据处理请求的情况下,还需要不断地检查该数据处理进程是否接收到目标数据,以便于执行后续的进程;具体的,所述将执行所述数据处理请求对应的处理器分配给下一个目标项目的数据处理请求之后,还包括:
86.判断所述目标进程是否基于所述数据处理请求返回目标数据,
87.若是,则基于所述目标数据处理所述数据处理请求;
88.若否,则重新确定等待返回所述目标数据的目标等待时间。
89.实际应用中,在该数据处理进程已经将执行该数据处理请求对应的处理器分配给下一个目标项目的数据处理请求之后,还需要不断检查目标数据是否从目标进程中返回,在确定接收到返回的目标数据之后,则继续执行数据处理的过程,在未接收到返回的目标
数据之后,可以重新计算目标等待时间,可能会对重新计算的目标等待时间进行调整,以适应当前进程执行状态。
90.本说明书实施例提供的数据处理方法,通过在fuse内核模块的数据处理进程中不断轮询判定是否接收到目标数据,进而可快速地重新确定目标数据的新的等待时间,实现动态调整数据处理进程的等待方法,进而平衡对cpu的使用率。
91.下述结合附图5,图5示出了本说明书一个实施例提供的一种数据处理方法的事件等待处理过程流程图,具体包括以下步骤。
92.步骤502:数据处理进程等待目标数据。
93.步骤504:数据处理进程判断目标进程是否返回目标数据,若是,则执行步骤514,若否,则执行步骤506。
94.步骤506:数据处理进程计算目标等待时间。
95.步骤508:数据处理进程确定当前等待时间是否小于目标等待时间,若是,则执行步骤510,若否,则执行步骤512。
96.步骤510:数据处理进程将该数据处理请求对应的处理器分配至下一数据处理请求。
97.步骤512:数据处理进程配置为睡眠状态,进入事件等待阶段。
98.步骤514:数据处理进程记录当前等待时间。
99.步骤516:数据处理进程返回目标数据。
100.实际应用中,为了避免事件等待的开销,本实施例在事件等待中引入了忙等待(busy waiting),又称忙轮询的初始阶段。需要说明的是,所述忙等待可以理解为上述实施例的时间等待过程。若在忙等待期间,进程寻求的条件已被满足,进程将继续执行后续的逻辑,这样就不会有事件等待的成本。但若在忙等待期间所寻求的条件不能满足,则该方法会回退到原有的事件等待,因此该方法可称为忙事件等待(busy

event wait)。
101.进一步地,该方法用户空间文件系统线程在内核运行设备处理代码时,会在一个忙循环中不断地查看是否有新的待处理的fuse请求,若新的fuse请求在该忙循环期间到来,会被用户空间文件系统进程发现并做立即处理;若新的fuse请求在忙循环期间到达,进程会回退到一个和待处理队列绑定的事件上等待,做事件等待的进程会被操作系统内核挂起,下一个fuse请求到达待处理队列时,内核才会唤醒在相应事件上等待的用户空间文件系统线程。用户空间文件系统处理了一个fuse请求后,会把相应的fuse回复发送的内核。然后,内核的设备处理代码以相同的方式将回复发送回内核中的文件系统处理代码,若用户空间文件系统可以足够快地处理请求,则文件系统处理代码可能在忙循环等待fuse回复期间,在该理想化的情况下,两个原有的事件等待都被忙循环替代了,应用程序进程(数据处理进程)观察到的端到端延迟可以低至3

4微秒,相比之下,若两个原有的事件等待在fuse请求和回复都用上了,端到端的延迟则会达到8

9微秒,当然具体的延迟数值会因系统配置而异,但忙事件等待(busy

event wait)能较大地降低事件等待(event wait)的延迟。
102.忙等待的有效性在一定程度上取决于应用程序进程和用户空间文件系统进程是在相同还是不同的cpu上运行,在设置忙等待期时,需要在请求延迟和cpu利用率之间进程权衡,以达到理想的io吞吐量。忙等待时间应根据文件系统和底层存储系统的性能特征进行设置,但作为参考值,对于基于持久内存技术的系统和基于ssd的系统,大约10微秒的忙
等待时间可以实现良好的平衡。为了进一步减少cpu消耗并潜在地增加吞吐量,还可以根据系统运行至观察到的延迟,来动态地调整忙等待的阶段。需要说明的是,若服务fuse请求所需的实际时间超过了忙等待阶段,忙等待只会浪费cpu资源,因此,本说明书实施例又对此进行进一步改进,在每一处要等待数据的方法,系统记录下上一次从开始需要数据到数据到达间的延迟,那么,每次要等数据是,先比较一下上次观察到的延迟,和配置的忙等待时间加上一个事件等待的净开销(作为参考值,事件等待的净开销会到达5微秒)。如果前者的值较大,忙等待就预计没有效果,系统可以跳过忙等待阶段,直接做事件等待,否则,就重新启用忙等待,这一具有动态启用和禁用忙等待阶段能力的忙事件等待方法被称为自适应忙事件等待(adaptive busy

event wait),也称为自适应等待(adaptive waiting)。
103.综上,本说明书实施例提供的数据处理方法,通过一种自适应等待方案,以降低内核和基于fuse的用户空间文件系统之间只用的内核事件等待的延时,该方式在事件等待之前引入一个忙等待的初始阶段,并根据观察到的历史数据延迟值,来预测忙等待期的有效性,从而来动态启用或禁用忙等待期。
104.与上述方法实施例相对应,本说明书还提供了数据处理装置实施例,图6示出了本说明书一个实施例提供的一种数据处理装置的结构示意图。如图6所示,该装置包括:
105.时间确定模块602,被配置为接收目标项目的数据处理请求,在确定目标进程基于所述数据处理请求返回的目标数据为空的情况下,确定等待返回所述目标数据的目标等待时间;
106.处理模块604,被配置为确定等待返回所述目标数据的当前等待时间,在所述当前等待时间小于所述目标等待时间的情况下,将执行所述数据处理请求对应的处理器分配给下一个目标项目的数据处理请求。
107.可选地,所述装置,还包括:
108.封装模块,被配置为将所述数据处理请求进行封装处理,将处理后的数据处理请求放置待处理队列。
109.可选地,所述时间确定模块602,进一步被配置为:
110.在确定目标进程从所述待处理队列中获取的所述数据处理请求未被配置为睡眠状态,且所述目标进程基于数据处理请求返回的目标数据为空的情况下,确定等待返回所述目标数据的目标等待时间。
111.可选地,所述时间确定模块602,进一步被配置为:
112.基于所述目标项目确定所述目标项目的历史等待时间以及项目属性信息,并基于所述历史等待时间以及所述项目属性信息确定所述目标数据的目标等待时间。
113.可选地,所述装置,还包括:
114.配置模块,被配置为在所述当前等待时间大于等于所述目标等待时间的情况下,将所述数据处理请求配置为睡眠状态。
115.可选地,所述处理模块604,进一步被配置为:
116.在确定目标进程基于所述数据处理请求返回所述目标数据的情况下,将所述数据处理请求配置为唤醒状态,并基于所述目标数据处理所述数据处理请求。
117.可选地,所述装置,还包括:
118.判断模块,被配置为判断所述目标进程是否基于所述数据处理请求返回目标数
据,
119.若是,则基于所述目标数据处理所述数据处理请求;
120.若否,则重新确定等待返回所述目标数据的目标等待时间。
121.可选地,所述时间确定模块602,进一步被配置为:
122.在确定目标进程基于所述数据处理请求返回的目标数据为空的情况下,基于数据处理请求中携带的数据属性信息确定所述目标数据的数据类型,并基于所述数据类型确定等待返回所述目标数据的目标等待时间。
123.本说明书实施例提供的数据处理装置,通过目标进程在未返回目标数据的过程中,确定等待该目标数据返回的预设等待时间,并在未超出该预设等待时间的情况下,将执行该数据处理请求对应的处理器分配给下一个目标项目的数据处理请求的占用,该种方式不会因等待目标数据的时间过长,而长时间地占用处理器,进而可实现处理器的较高的利用率,提高用户的使用体验。
124.上述为本实施例的一种数据处理装置的示意性方案。需要说明的是,该数据处理装置的技术方案与上述的数据处理方法的技术方案属于同一构思,数据处理装置的技术方案未详细描述的细节内容,均可以参见上述数据处理方法的技术方案的描述。
125.图7示出了根据本说明书一个实施例提供的一种计算设备700的结构框图。该计算设备700的部件包括但不限于存储器710和处理器720。处理器720与存储器710通过总线730相连接,数据库750用于保存数据。
126.计算设备700还包括接入设备740,接入设备740使得计算设备700能够经由一个或多个网络760通信。这些网络的示例包括公用交换电话网(pstn)、局域网(lan)、广域网(wan)、个域网(pan)或诸如因特网的通信网络的组合。接入设备740可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(nic))中的一个或多个,诸如ieee802.11无线局域网(wlan)无线接口、全球微波互联接入(wi

max)接口、以太网接口、通用串行总线(usb)接口、蜂窝网络接口、蓝牙接口、近场通信(nfc)接口,等等。
127.在本说明书的一个实施例中,计算设备700的上述部件以及图7中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图7所示的计算设备结构框图仅仅是出于示例的目的,而不是对本说明书范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
128.计算设备700可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或pc的静止计算设备。计算设备700还可以是移动式或静止式的服务器。
129.其中,处理器720用于执行如下计算机可执行指令,该计算机可执行指令被处理器执行时实现上述数据处理方法的步骤。
130.上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的数据处理方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述数据处理方法的技术方案的描述。
131.本说明书一实施例还提供一种计算机可读存储介质,其存储有计算机可执行指
令,该计算机可执行指令被处理器执行时实现上述数据处理方法的步骤。
132.上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的数据处理方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述数据处理方法的技术方案的描述。
133.本说明书一实施例还提供一种计算机程序,其中,当所述计算机程序在计算机中执行时,令计算机执行上述数据处理方法的步骤。
134.上述为本实施例的一种计算机程序的示意性方案。需要说明的是,该计算机程序的技术方案与上述的数据处理方法的技术方案属于同一构思,计算机程序的技术方案未详细描述的细节内容,均可以参见上述数据处理方法的技术方案的描述。
135.上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
136.所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read

only memory)、随机存取存储器(ram,random access memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
137.需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本说明书实施例并不受所描述的动作顺序的限制,因为依据本说明书实施例,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本说明书实施例所必须的。
138.在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
139.以上公开的本说明书优选实施例只是用于帮助阐述本说明书。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书实施例的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本说明书实施例的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本说明书。本说明书仅受权利要求书及其全部范围和等效物的限制。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献