CN115952202A - 一种查询方法 - Google Patents
一种查询方法 Download PDFInfo
- Publication number
- CN115952202A CN115952202A CN202310163779.8A CN202310163779A CN115952202A CN 115952202 A CN115952202 A CN 115952202A CN 202310163779 A CN202310163779 A CN 202310163779A CN 115952202 A CN115952202 A CN 115952202A
- Authority
- CN
- China
- Prior art keywords
- query
- fragment
- fragments
- queue
- target
- 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
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及计算机通信领域,尤其设计一种查询方法。该方法包括:接收客户端通过全双工通信连接发送的查询请求,依据查询请求的查询参数,将查询请求划分为多个查询分片;将多个查询分片放入优先级不同的多个队列;针对线程池中的每个线程,通过线程从满足预设条件的队列中读取目标查询分片,并对目标查询分片执行查询操作以获取查询结果;其中,查询操作包括:检测高速缓存数据库中是否存在目标查询分片的查询结果,若是,则从高速缓存数据库中获取查询结果;若否,则从业务数据库中查找目标查询分片对应的查询结果,并将查询结果写入至高速缓存数据库;将查询结果通过全双工通信连接发送给客户端,从而提高查询效率。
Description
技术领域
本申请涉及计算机通信领域,尤其涉及一种查询方法。
背景技术
随着互联网、大数据的发展,数据查询速度变得越来越重要。现有的数据查询方式是客户端向服务器发送查询请求,服务器依据查询请求中的查询参数,从业务数据库中查找与该查询参数对应的数据,并将查找到的数据作为查询结果返回给客户端。
然而,当查询参数对应的待查找的数据量巨大时,就会花费大量的时间来进行查询,致使客户端无法及时获取到想要查询的数据。
发明内容
本申请提供一种查询方法,可以使得客户端快速获取其想要查询的数据。
根据本申请的第一方面,提供一种查询方法,所述方法应用于存储系统的服务器,所述存储系统还包括高速缓存数据库和业务数据库,所述方法包括:
接收客户端通过全双工通信连接发送的查询请求,依据所述查询请求的查询参数,将所述查询请求划分为多个查询分片;
将所述多个查询分片放入优先级不同的多个队列;
针对线程池中的每个线程,通过该线程从满足预设条件的队列中读取目标查询分片,并对该目标查询分片执行查询操作以获取查询结果;其中,所述查询操作包括:检测所述高速缓存数据库中是否存在所述目标查询分片的查询结果,若是,则从所述高速缓存数据库中获取所述查询结果;若否,则从业务数据库中查找该目标查询分片对应的查询结果,并将所述查询结果写入至所述高速缓存数据库;
将所述查询结果通过所述全双工通信连接发送给所述客户端。
可选地,在所述将所述多个查询分片放入优先级不同的多个队列之前,所述方法还包括:
在检测到线程池中当前处于工作状态的线程数量未超过预设阈值时,执行所述将多个查询分片放入优先级不同的多个队列的步骤;
所述方法还包括:
在检测到线程池中当前处于工作状态的线程数量超过预设阈值时,将每个查询分片作为目标查询分片,并对该目标查询分片执行所述查询操作。
可选地,所述查询参数为查询时段;
所述依据所述查询请求的查询参数,将所述查询请求划分为多个查询分片,包括:
依据所述查询时段的起始时间和第一预设时间间隔,确定目标标准时刻;
依据所述目标标准时刻、所述第一预设时间间隔和第二预设时间间隔,将所述查询时段划分为至少一个子时段,并确定每个子时段对应的查询分片;
其中,划分出的子时段的数量小于预设数量阈值;时间在所述查询时段的起始时刻与目标标准时刻之间的子时段的长度为第二预设时间间隔,时间在所述目标标准时刻之后的所有非最后一个子时段的长度为第一预设时间间隔,所述目标标准时刻是基于所述查询时段所对应的通用时间点和所述第一预设时间间隔确定出的;所述第二预设时间间隔小于第一预设时间间隔。
可选地,所述依据所述查询时段的起始时间和第一预设时间间隔,确定目标标准时刻,包括:
确定所述查询时段的起始时间对应的通用时间点,并依据所述通用时间点、以及预设的第一时间间隔确定至少一个标准时刻;
从至少一个标准时刻中,挑选出与所述起始时间的距离最近、且晚于所述起始时间的标准时刻,并将挑选出的标准时刻作为目标标准时刻。
可选地,所述多个队列包括普通队列,各普通队列的优先级不同;所述查询参数为查询时段;
所述将所述多个查询分片放入优先级不同的多个队列,包括:
按照各查询分片的时间段从后到前的顺序、以及各普通队列优先级从高到低的顺序,向每个普通队列存储该普通队列所支持的固定数量的查询分片;
若在每个普通队列储存了其所支持的固定数量的查询分片后,仍存在未被存储的查询分片,则将未被存储的查询分片存储至优先级最低的普通队列。
可选地,所述通过该线程从满足预设条件的队列中读取目标查询分片,包括:
检测线程共有锁是否被占用;
若未被占用,则为该线程占用所述共有锁;
在占用所述共有锁后,通过该线程从所述队列中读取目标查询分片。
可选地,在占用所述共有锁后,所述方法还包括:
检测所述满足预设条件的队列的查询分片的数量是否高于预设数量阈值;
若是,则在所述线程池中建立新的线程。
可选地,在所述从业务数据库中查找该目标查询分片对应的查询结果之前,包括:
检测与该目标查询分片关联的查询分片是否有查询结果;其中所述关联的查询分片与所述目标查询分片属于同一查询请求;
若该目标查询分片关联的查询分片有查询结果,则执行所述从业务数据库中查找该目标查询分片对应的查询结果的步骤;
所述方法还包括:
若该目标查询分片关联的查询分片无查询结果,则在确定该目标查询分片是其对应的查询请求的最后一个查询分片时,将该查询分片划分为多个查询子分片,并将所述查询子分片存储至所述保留队列。
可选地,所述方法还包括:
当监听到查询到了保留队列中的查询子分片的查询结果时,将保留队列的其他查询子分片从该保留队列中移除,并将其他查询子分片存储至普通队列。
可选地,所述预设条件的队列包括:
优先级最高且存在查询分片的队列;或者,
优先级高于预设阈值且存在查询分片的队列。
由上述描述可知,本申请基于查询请求中的查询参数,将查询请求切分成多个查询分片,并将多个查询分片放入优先级不同的任务队列中。多个线程可以从任务队列中获取查询分片,多个线程可以并行执行查询操作。由于多个线程可以并发地对查询分片执行查询操作,所以会大大提高查询效率。
此外,本申请还在存储系统中增加了高速缓存数据库,线程在执行查询操作时,可以先查找高速缓存数据库中是否有查询结果,若没有查询结果,才进一步从业务数据库中获取查询结果。由于增设了高速缓存数据库,所以提高了查询操作的执行速度。
此外,在本申请中,客户端和服务器之间还建立全双工通信连接。由于全双工通信连接具有通信双方可以实时双向传输数据的特性,所以使得服务器在查找到查询分片的查询结果后可以主动发送给客户端,使得客户端可以及时获得全部或者部分查询结果,提高了用户的用户体验。
附图说明
图1是本申请一示例性实施例示出的一种传统的组网架构示意图;
图2是本申请一示例性实施例示出的一种组网架构图;
图3是本申请一示例性实施例示出的一种查询方法的流程示意图;
图4是本申请一示例性实施例示出的一种子时段划分方式的流程图;
图5是本申请一示例性实施例示出的一种查询分片的分配方法的流程图;
图6是本申请一示例性实施例示出的一种电子设备硬件结构图;
图7是本申请一示例性实施例示出的一种查询装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
本申请旨在提出一种查询方法,在本申请中,本申请基于查询请求中的查询参数,将查询请求切分成多个查询分片,并将多个查询分片放入优先级不同的任务队列中。多个线程可以从任务队列中获取查询分片,多个线程可以并行执行查询操作。由于多个线程可以并发地对查询分片执行查询操作,所以会大大提高查询效率。
此外,本申请还在存储系统中增加了高速缓存数据库,线程在执行查询操作时,可以先查找高速缓存数据库中是否有查询结果,若没有查询结果,才进一步从业务数据库中获取查询结果。由于增设了高速缓存数据库,所以提高了查询操作的执行速度。
此外,在本申请中,客户端和服务器之间还建立全双工通信连接。由于全双工通信连接具有通信双方可以实时双向传输数据的特性,所以使得服务器在查找到查询分片的查询结果后可以主动发送给客户端,使得客户端可以及时获得全部或者部分查询结果,提高了用户的用户体验。
参见图1,图1是本申请一示例性实施例示出的一种传统的组网架构示意图。该组网包括:客户端、服务器和业务数据库。
客户端向服务器发送查询请求,服务器依据查询请求中的查询参数,从业务数据库中查找与该查询参数对应的数据,并将查找到的数据作为查询结果返回给客户端。
然而,当查询参数对应的待查找的数据量巨大时,就会花费大量的时间来进行查询,致使客户端无法及时获取到想要查询的数据。
基于此,本申请图1所示的组网中增加了高速缓存数据库。
参见图2,图2是本申请一示例性实施例示出的一种组网架构图,该组网包括:客户端、服务器、业务数据库和高速缓存数据库。
由于高速缓存数据库支持高速的读、写操作,所以高速缓存数据库的查询速度远远大于业务数据库。所以,为了提高查询速度,本申请在组网中引入了高速缓存数据库。
在查询时,服务器优先在高速缓存数据库中查找查询请求对应的查询结果,若高速缓存数据库中不存在查询请求对应的查询结果,服务器再去业务数据库中查找查询请求对应的查询结果,并将查询结果写入高速缓存数据库。
其中,上述高速缓存数据库可以是Redis(Remote Dictionary Server,远程字典服务)数据库。当然,在实际应用中,上述高速缓存数据库也可以是其他数据库,这里只是示例性地说明,不对其进行具体地限定。
参见图3,图3是本申请一示例性实施例示出的一种查询方法的流程示意图,该方法可应用在存储系统的服务器上,可包括如下所示步骤。
步骤301:接收客户端通过全双工通信连接发送的查询请求,依据所述查询请求的查询参数,将所述查询请求划分为多个查询分片。
在传统的查询中,通常采用HTTP(Hyper Text Transfer Protocol,超文本传输协议)连接进行查询,HTTP连接的是非全双工通信连接,换句话来说HTTP协议是无状态协议,这就导致了HTTP连接不会对发送过的请求和响应的通信状态进行持久化处理,也就导致了其无法实时双向持续传输数据。
具体来说,客户端与服务器在建立HTTP连接后,客户端向服务器发送查询请求,客户端一直处于等待状态,直至服务器返回数据。这就使得,当服务器需要查询大量数据时,由于数据量大,导致查询时间长,客户端就一直处于等待状态。此外,服务器无法主动向客户端通知查询结果。因此,增加了对于网络的占用,降低了系统的可用性。
本申请使用全双工通信连接。全双工通信连接是指,在客户端与服务器建立全双工通信连接后,客户端与服务器可以实时进行双向数据传输,服务器也可以主动向客户端返回数据。由于采用了全双工通信连接,使得服务器可以主动向客户端返回查询结果,无需客户端定时短轮询服务器是否返回查询结果,也无需客户端长期处于等待状态,所以可以有效地减少对于网络的占用,提供系统的利用率。
其中,全双工通信连接是指在连接建立完成后,双方可以实时进行双向数据传输。全双工通信连接可包括websocket(一种在单个TCP连接上进行全双工通信的协议)连接,当然也可以包括其他连接,这里只是对全双工通信连接进行示例性地说明,不对其进行具体地限定。
下面通过步骤3011至步骤3012对步骤301进行详细地说明。
步骤3011:接收客户端通过全双工通信连接发送的查询请求。
在本申请中,当客户端接收到用户的查询请求后,可与服务器建立全双工连接。然后,客户端可以通过全双工连接向服务器发送查询请求。
服务器可以接收客户端通过全双工通信连接发送的查询请求。
步骤3012:依据所述查询请求中的查询参数,将所述查询请求划分为多个查询分片。
在本申请中,查询请求携带了查询参数,查询参数指示了需要查询的数据。
比如查询参数可以是某一时间段,表明需要查询某一时间段内采集的数据。
再比如查询参数是地理位置,则表明需要查找该地理位置对应的数据。
本申请只是对查询参数进行示例性第说明,不对查询参数进行限定,只要具有连续可分割性的参数都可以。
下面以查询参数是查询时段为例,对步骤3012进行详细地说明。
下面通过步骤A1至步骤A2对步骤3012的实现方式进行具体地说明。
步骤A1:服务器依据所述查询时段的起始时间和第一预设时间间隔,确定目标标准时刻。
在本申请实施例中,服务器可确定所述查询时段的起始时间对应的通用时间点,并依据所述通用时间点、以及预设的第一时间间隔确定至少一个标准时刻。然后,服务器可从至少一个标准时刻中,挑选出与所述起始时间的距离最近、且晚于所述起始时间的标准时刻,并将挑选出的标准时刻作为目标标准时刻。
其中,通用时间点是指共识的时间点。比如每个小时的起点,如0:00、1:00、...、13:00等。当然,通用时间点还可以是每个小时的半点等,每两个小时的起点,这里只是对通用时间点进行说明,不对其进行具体地限定。
例如,假设查询参数是查询时段,查询时段为11:02-11:12,第一预设时间间隔为5分钟,通用时间点为每个小时的起点。
服务器可确定查询时段的起始时间为11:02。
然后,服务器可确定该起始时间(11:02)对应的通用时间点(11:00)。然后服务器依据通用时间点(即11:00)和第一预设时间间隔(即5分钟),确定至少一个标准时刻(比如11:00、11:05、11:10、11:15、11:20、....、11:55等)。
服务器可从至少一个标准时刻中确定出与起始时间(11:02)距离最近且晚于起始时间的目标标准时刻(即11:05)。
步骤A2:服务器依据目标标准时刻、第一预设时间间隔和第二预设时间间隔,所述查询时段划分为至少一个子时段,并确定每个子时段对应的查询分片。
其中,划分出的子时段的数量小于预设数量阈值;时间在所述查询时段的起始时刻与目标标准时刻之间的子时段的长度为第二预设时间间隔,时间在所述目标标准时刻之后的所有非最后一个子时段的长度为第一预设时间间隔,所述目标标准时刻是基于所述查询时段所对应的通用时间点和所述第一预设时间间隔确定出的;所述第二预设时间间隔小于第一预设时间间隔。
上述预设数量阈值,是指存储系统可最大支持的分片数量。在本申请中,一个查询请求的分片数量不超过预设数量阈值,以此来保证当查询参数对应的查询范围巨大时,不会切出大量的分片,影响存储系统的性能。
下面通过具体的例子对步骤A2实现方式进行具体地限定。
例1:仍以上述例子进行举例,假设查询参数是查询时段,查询时段为11:02-11:12,第一预设时间间隔为5分钟,第二预设时间间隔为1分钟,通用时间点为每个小时的起点,假设预设数量阈值为10。
由上述例子可知,服务器确定出的目标标准时刻为11:05。
服务器可将依据目标标准时刻对查询时段进行划分,得到多个子时段,服务器可划分出11:02-11:03、11:03-11:04、11:04-11:05(即时间在所述查询时段的起始时刻与目标标准时刻之间的子时段的长度为第二预设时间间隔),划分出11:05-11:10(即时间在所述目标标准时刻之后的所有非最后一个子时段的长度为第一预设时间间隔),11:10-11:12(最后一个子时段)。
由此可见,服务器划分出了6个子时段,在目标标准时刻(11:05)之前的子时段有3个,分别是11:02-11:03、11:03-11:04、11:04-11:05。这三个在目标标准时刻之前的子时段的时间间隔为第二预设时间间隔。
在目标标准时刻(11:05)之后的子时段有1个,是11:05-11:10。由此可见,在目标标准时刻之后的非最后一个子时段的时间间隔是第二预设时间间隔。
最后一个子时段为11:10-11:12。
例2:假设查询参数是查询时段,查询时段为11:04-11:13,第一预设时间间隔为5分钟,第二预设时间间隔为1分钟,通用时间点为每个小时的起点,假设预设数量阈值为10。
服务器可先确定查询时段的起始时间11:04对应的通用时间点11:00。然后服务器依据通用时间点(即11:00)和第一预设时间间隔(即5分钟),确定至少一个标准时刻(比如11:00、11:05、11:10、11:15、11:20、....、11:55等)。
服务器可从至少一个标准时刻中确定出与起始时间(11:04)距离最近且晚于起始时间的目标标准时刻(即11:05)。
服务器可以依据11:05,第一预设时间间隔(即5分钟)、第二时间间隔(即10分钟),将查询时段11:04-11:13划分成多个子时段,多个子时段分别为11:04-11:05,11:05-11:10,11:10-11:13;
由此可见,服务器划分出了3个子时段,在目标标准时刻(11:05)之前的子时段有1个,是11:04-11:05、在目标标准时刻(11:05)之后的子时段有1个,是11:05-11:10;最后一个子时段为11:10-11:13。
这样划分的好处在于,采用目标标准时刻、第一预设时间间隔、第二预设时间间隔划分查询时段,可以使不同查询时段划分出的很多子时段重合,从而使得查询命中缓存数据库的命中率提高,从而有效提高查询效率。
仍以上述例1和例2举例,虽然两个例子的查询时段不同,但是划分出的子时段11:04-11:05,以及11:05-11:10重合,这使得在进行例2查询时,可以在缓存数据库中复用例1中这两个时段的查询结果,从而提高查询效率。
参见图4,下面通过步骤401至步骤409对上述子时段划分方式进行详细地说明。
步骤401:依据第一预设时间间隔,确定距离查询时段的起始时间最近的目标标准时刻,并分割点设置为起始时间。
步骤402:判断分割点与目标标准时刻的间隔是否大于第二预设时间间隔、以及判断分割点是否小于或等于目标标准时刻;
若分割点与目标标准时刻的间隔大于第二预设时间间隔、且分割点小于或等于目标标准时刻,则执行步骤403。
若分割点与目标标准时刻的间隔小于第二预设时间间隔、或分割点大于目标标准时刻,则执行步骤404。
步骤403:将分割点代表的时间点放入结果集,并将分割点增加第二预设时间间隔;
步骤404:判断目标标准时刻是否大于查询时段的结束时间;
若是,则执行步骤408;
若否,则执行步骤405。
步骤405:将分割点设置为目标标准时刻,并将分割点代表的目标标准时刻放入结果集,并将分割点增加第一预设时间间隔;
步骤406:判断分割点是否小于查询时段的结束时间、以及判断结果集中的时间点分割出的子时段数量是否小于预设数量阈值;
若分割点小于查询时段的结束时间、且判断结果集中的时间点分割出的子时段数量小于预设数量阈值,则返回步骤405;
若分割点大于或等于查询时段的结束时间、或者判断结果集中的时间点分割出的子时段数量大于预设数量阈值,则执行步骤407。
步骤407:查询时段的结束时间放入结果集;
步骤408:确定无法分割;
步骤409:结束。
例3,假设查询时段为11:03-12:03,开始时间为11:03,结束时间为12:03,假设第一预设时间间隔为5分钟,第二预设时间间隔为2分钟。
①假设按五分钟间隔计算距离开始时间最近的目标标准时刻为11时5分。
②第一次判断的分割点为开始时间,即11时3分与11时5分间隔是否大于等于一分钟,且11时3分是否大于12时3分,判断后发现大于一分钟且11时3分小于12时3分,则进行切割,同时对分割点进行增加一分钟的操作,即第一切片时间为11时3分至11时4分。
③开始第二次判断的分割点是11时4分,判断11时4分与11时5分间隔是否大于一分钟,且11时4分是否大于12时3分,判断后发现时间间隔等于一分钟,且未到结束时间,则不进行切割,开始执行第4步。
④目标标准时刻即11时5分是否大于结束范围12时3分,判断后结果为不大于,则开始执行第5步。
⑤将分割点设置为11时5分,并将11点5分放入结果集,即此次切割结果为11时4分至11时5分,分割点增加五分钟即11点10分。(此时一共有两个时间分片,分别为11时3分至11时4分,11时4分至11时5分。)
⑥判断分割点11点10分是否大于结束时间即12时3分,并且现有分片数是否大于10,如果是,则不再进行分片,直接将10片之后的时间作为一个大的时间分片返回。否则循环执行第4步,第5步,第6步。此时11点10分的例子是可以进行分片的,执行到4之后,11点10分小于12时3分,开始执行第5步。
上述逻辑执行完成后,分片结果为: 11时3分至11时4分,11时4分至11时5分,11时5分至11时10分,11时10分至11时15分,11时15分至11时20分,11时20分至11时25分,11时25分至11时30分,11时30分至11时35分,11时35分至11时40分,11时40分至11时45分(至此,达到了10个分片,后续不继续分片),11时45分至12时3分。
步骤302:将所述多个查询分片放入优先级不同的多个队列。
下面从步骤302的触发机制以及步骤302的实现方式两方面对步骤302进行详细地说明。
1)触发机制
在本申请中,设置了多种查询模式,一种是普通查询模式,另一种是多线程高速查询模式。服务器在执行查询操作前,可先检测当前并发请求是否过多,若并发请求过多,则执行普通查询模式。若并发请求不多,则执行多线程高速查询模式,以使得存储系统可以在较优的性能下实现高速查询。
在实现时,服务器可检测到线程池中当前处于工作状态的线程数量是否超过预设阈值。
在检测到线程池中当前处于工作状态的线程数量未超过预设阈值,服务器可执行所述将多个查询分片放入优先级不同的多个队列的步骤。换句话来说,在检测到线程池中当前处于工作状态的线程数量未超过预设阈值时,服务器可执行多线程高速查询模式,通过多线程并发查询各查询分片的查询结果。
在检测到线程池中当前处于工作状态的线程数量超过预设阈值时,将每个查询分片作为目标查询分片,并对该目标查询分片执行所述查询操作。换句话来说,在检测到线程池中当前处于工作状态的线程数量超过预设阈值时,服务器可通过普通查询模式查询各查询分片的查询结果。
其中,上述预设阈值是指存储系统可支持的最大并发线程数量,上述预设阈值可以依据存储系统的性能来确定。比如上述预设阈值可以设置为10,这里只是对预设阈值进行示例性地说明,不对其进行具体地限定。
2)步骤302的实现方式
在本申请中,设置了多种任务队列,包括普通队列和保留队列。
其中,保留队列的优先级最高,普通队列也具有优先级,普通队列的最高优先级低于保留队列的优先级。
队列的优先级越高,队列中的查询分片就被线程优先进行处理。
在本申请中,服务器可将所述多个查询分片放入优先级不同的多个普通队列,使得重要的分片被优先处理。
在实现步骤302时,服务器可按照各查询分片的时间段从后到前的顺序、以及各队列优先级从高到低的顺序,向每个普通队列存储该普通队列所支持的固定数量的查询分片。
若在每个队列储存了其所支持的固定数量的查询分片后,仍存在未被存储的查询分片,服务器则将未被存储的查询分片存储至优先级最低的普通队列。
在实现时,服务器可按照各查询分片时间段的从后向前的顺序,依次获取查询分片。然后,服务器按照普通队列优先级从高到低的顺序,将查询分片依次放入到各普通队列,使得每个普通队列被放入了该普通队列所支持的固定数量的查询分片。
若在每个队列储存了其所支持的固定数量的查询分片后,仍存在未被存储的查询分片,服务器则将未被存储的查询分片存储至优先级最低的普通队列。
例如,假设查询请求M被分成了7个查询分片,这7个分片按时间段由后向前的顺序分别是查询分片M1、查询分片M2、查询分片M3、查询分片M4、查询分片M5、查询分片M6和查询分片M7。
查询请求N被分成了3个查询分片,这3个查询分片按时间段由后向前的顺序分别是查询分片N1、查询分片N2和查询分片N3。
假设有3个普通队列,这三个队列的优先级由高到低的顺序依次是普通队列A、普通队列B和普通队列C。假设普通队列A、普通队列B和普通队列C分别支持的查询分片的固定数量依次为1,2,2。
对于查询请求M来说,服务器可将查询分片M1放入普通队列A中,将查询分片M2、M3放入普通队列B,查询分片M4、M5放入普通队列C中。服务器发现在每个普通队列储存了其所支持的固定数量的查询分片后,仍存在未被存储的查询分片M6和M7,服务器则将查询分片M6和M7放入优先级最低的普通队列C中。
对于查询请求N来说,服务器可将查询分片BN1放入普通队列A中,将查询分片N2、N3放入普通队列B。
参见图5,下面通过步骤501至步骤506对上述查询分片的分配方法进行详细地说明。
步骤501:将第一计数变量的初始值设置为1,将第二计数变量的初始值设置为0,将第三计数变量的初始值设置为0;
步骤502:判断第一计数变量是否小于普通队列数且第二计数变量是否小于分片数;
第一计算变量代表目标处理到第几个队列。
第二计数变量代表目前共处理多少查询分片。
第三计数变量代表对于当前队列,处理了多少查询分片。
若是,则执行步骤503;
若否,则执行步骤506。
步骤503:判断第三计数变量是否小于普通队列当前所支持的分片数量且第二计数变量是否小于分片数;
若是,则执行步骤504;
若否,则执行步骤505。
步骤504:将查询分片放入到第一计数变量所指示的普通队列,并将第三计数变量加1;
在执行完步骤504后返回步骤503。
步骤505:将查询分片放入到第一计数变量所指示的普通队列,并将第一计数变量加1;
在执行步骤505后返回步骤502。
步骤506:将剩余查询分片放入最低优先级队列。
假设,第一计数变量为i,第二计数变量为count,第三计数变量为j。
假设配置了5个普通队列,从第一普通队列到第五普通队列分别支持的分片数量为1片、2片、2片、2片。
假设分片结果为上述例3的分片结果,即11时3分至12时3分的11片结果。
1)此时i为1,配置队列数为5,count为0,分片数为11片,满足继续执行条件 i<配置队列数且 count<分片数。
2)此时j为0,第一普通队列支持的查询分片数量为1,count为0,查询分片数为11,满足继续执行条件 j<队列优先级数量且 count<分片数。
将第一个查询分片放入结果集合,对j进行加1操作,对count进行加1操作,即此时j为1,count为1,当前结果集合包含分片:11时3分至11时4分。继续执行第2步。
此时j为1,第一普通队列支持的查询分片数量为1,count为1,分片数为11,不满足继续执行条件 j<队列优先级数量(1<1) 且 count<分片数。
将当前结果集合放入第i个队列,此时的i为1,即将11时3分至11时4分这个分片放入第1个队列。并对i进行加1操作,则此时i为2。继续执行第1步逻辑。
此时i为2,配置普通队列数为5,count为1,查询分片数为11片,满足继续执行条件i<配置队列数且 count<分片数。
此时j为0,第二普通队列支持的查询分片数量为2,count为1,查询分片数为11,满足继续执行条件 j<队列优先级数量且 count<分片数。
将第二个分片放入结果集合,对j进行加1操作,对count进行加1操作,即此时j为1,count为2,当前结果集合包含分片:11时4分至11时5分。继续执行第2步。
此时j为1,第二普通队列支持的查询分片数量为2,count为2,查询分片数为11,满足继续执行条件 j<队列优先级数量且 count<分片数。
将第三个分片放入结果集合,对j进行加1操作,对count进行加1操作,即此时j为2,count为3,当前结果集合包含分片:11时4分至11时5分,11时5分至11时10分。继续执行第2步。
此时j为2,第三普通队列支持的查询分片数量为2,count为3,查询分片数为11,不满足继续执行条件 j<队列优先级数量(2<2) 且 count<分片数
将当前结果集合放入第i个队列,此时的i为2,即将11时4分至11时5分,11时5分至11时10分这两个分片放入第2个队列。并对i进行加1操作,则此时i为3。继续执行第1步逻辑
经过多次循环,直到i为5,普通队列中依次分别包含分片结果如下: 第1队列包含11时3分至11时4分,第2队列包含11时4分至11时5分,11时5分至11时10分,第3队列包含11时10分至11时15分,11时15分至11时20分,第4队列包含11时20分至11时25分,11时25分至11时30分。
此时将剩余所有的分片结果放入最低队列,也就是第4队列。故此时第4队列包含11时20分至11时25分,11时25分至11时30分,11时30分至11时35分,11时35分至11时40分,11时40分至11时45分,11时45分至12时3分。
由上述描述可知,本申请设置了优先级不同的多个普通队列,并且每个普通队列都被设置了其所支持的分片数量,使得每个请求的不同时段的分片被分配在了不同优先级的普通队列中,从而保证了每个查询请求都有部分查询分片可以被优先查询,得到查询结果。
步骤303:针对线程池中的每个处于工作状态的线程,服务通过该线程从满足预设条件的队列中读取目标查询分片。
在本申请实施例中,为了保证满足预设条件的队列中的查询分片可以快速被执行查询操作。服务器在执行步骤303之前,服务器可检测该满足预设条件的队列中的查询分片的数量是否高于预设数量阈值。
若满足预设条件的队列中的查询分片的数量高于预设数量阈值,则在该线程池中建立新的线程。
本申请通过上述机制建立了线程弹性机制,在查询分片任务较多时,可以建立新的线程,从而保证更多的线程同时工作,更加快速处理较多的查询分片。
此外,在本申请中,为了防止多个线程同时从满足预设条件的队列中读取目标查询分片而造成错误等问题,保证每个时刻仅有一个线程从满足预设条件的队列中读取目标查询分片,本申请设置了线程共有锁。
线程池中的每个线程(包括新建的线程)在确定执行完当前查询分片的查询操作后,可检测线程共有所锁是否被占用。若该线程共有锁未被占用,则获取该线程共有锁。在获取该线程共有锁后,从满足预设条件的队列中读取一个查询分片,作为目标查询分片。
此外,在本申请中,上述预设条件可以包括:优先级最高且存在查询分片的队列;或者,优先级高于预设阈值且存在查询分片的队列。这里只是对预设阈值进行示例性地说明,不对其进行具体地限定。
在从满足预设条件的队列中读取目标查询分片时,线程可从优先级最高的且存在查询分片的队列中读取一个查询分片,作为目标查询分片。或者,线程可从优先级高于预设阈值且存在查询分片的任意队列中读取一个查询分片,作为目标查询分片。
步骤304:服务器通过上述线程对该目标查询分片执行查询操作以获取查询结果。
在实现时,在线程读取到目标查询分片后,线程可检测所述高速缓存数据库中是否存在所述目标查询分片的查询结果。
若高速缓存数据库中存在所述目标查询分片的查询结果,则从所述高速缓存数据库中获取所述查询结果。
若高速缓存数据库中不存在所述目标查询分片的查询结果,则从业务数据库中查找该目标查询分片对应的查询结果,并将所述查询结果写入至所述高速缓存数据库。
此外,在本申请实施例中,为了保证查询请求可以有部分查询分片被快速查询。
在本申请实施例中,若高速缓存数据库中不存在所述目标查询分片的查询结果,在从业务数据库中查找该目标查询分片对应的查询结果之前,服务器可检测该目标查询分片是否是该目标查询分片对应的查询请求的最后一个分片。
若该目标查询分片不是该目标查询分片对应的查询请求的最后一个分片,线程则执行从业务数据库中查找该目标查询分片对应的查询结果的操作。
若该目标查询分片是该目标查询分片对应的查询请求的最后一个分片,线程可检测与该目标查询分片关联的查询分片是否有查询结果;其中所述关联的查询分片与所述目标查询分片属于同一查询请求;
若该目标查询分片关联的查询分片有查询结果,线程则执行所述从业务数据库中查找该目标查询分片对应的查询结果的步骤。
若该目标查询分片关联的查询分片没有查询结果,线程则可将该查询分片划分为多个查询子分片,并将所述查询子分片存储至所述保留队列,使得多个查询子分片可以被优先处理。
此外,在本申请实施例中,服务器当监听到查询到了保留队列中的查询子分片的查询结果时,将保留队列的其他查询子分片从该保留队列中移除,并将其他查询子分片存储至普通队列,从而使得保留队列中没有查询子分片,使得保留队列可以随时处理需要被优先处理的查询分片。
步骤305:服务器将所述查询结果通过所述全双工通信连接返回给所述客户端。
在一种可选的实现方式中,服务器在查询到每个查询分片的查询结果后,可以将该查询分片的查询结果通过全双工通信连接返回给客户端。
在另一种可选地实现方式中,服务器可以等到查询请求的所有查询分片都有查询结果后,再将该查询请求的所有查询分片的查询结果通过全双工通信连接返回给客户端。
这里只是示例性地说明,不对其进行具体地限定。
由上述描述可知,第一方面,本申请基于查询请求中的查询参数,将查询请求切分成多个查询分片,并将多个查询分片放入优先级不同的任务队列中。多个线程可以从任务队列中获取查询分片,多个线程可以并行执行查询操作。由于多个线程可以并发地对查询分片执行查询操作,所以会大大提高查询效率。
第二方面,本申请还在存储系统中增加了高速缓存数据库,线程在执行查询操作时,可以先查找高速缓存数据库中是否有查询结果,若没有查询结果,才进一步从业务数据库中获取查询结果。由于增设了高速缓存数据库,所以提高了查询操作的执行速度。
第三方面,在本申请中,客户端和服务器之间还建立全双工通信连接。由于全双工通信连接具有通信双方可以实时双向传输数据的特性,所以使得服务器在查找到查询分片的查询结果后可以主动发送给客户端,使得客户端可以及时获得全部或者部分查询结果,提高了用户的用户体验。
第四方面,本申请采用目标标准时刻来划分查询时段,使得不同的查询请求被划分出的查询子时段尽可能相同,从而使得不同查询请求的查询分片尽可能相同,进而保证高速缓存数据库记录的查询结果可以被尽可能地复用。
第五方面,本申请设置了多种查询方式,当存储系统的并发线程数高于预设阈值时,采用普通查询方式,当存储系统的并发线程数低于预设阈值时,采用多线程并发查询方式,使得存储系统在性能可靠的情况实现高速查询。
第六方面,本申请的队列除了包括普通队列外,还包括优先级最高的保留队列。保留队列通常情况下为空,当有紧急的查询分片需要处理时,可以将查询分片放入保留队列,使得保留队列处理最紧急的查询分片(比如某一查询请求的非最后一个查询分片都没有查询结果是,最后一个查询分片被划分出的查询子分片)。
参见图6,图6是本申请一示例性实施例示出的一种电子设备硬件结构图。
与前述查询方法的实施例相对应,本申请还提供了查询装置的实施例。
本申请查询装置的实施例可以应用在电子设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在电子设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图6所示,为本申请查询装置所在电子设备的一种硬件结构图,除了图6所示的处理器、内存、网络出接口、以及非易失性存储器之外,实施例中装置所在的电子设备通常根据该电子设备的实际功能,还可以包括其他硬件,对此不再赘述。
参见图7,图7是本申请一示例性实施例示出的一种查询装置的框图。
该查询装置应用于存储系统的服务器,所述存储系统还包括高速缓存数据库和业务数据库,所述装置包括:
接收单元701,用于接收客户端通过全双工通信连接发送的查询请求,依据所述查询请求的查询参数,将所述查询请求划分为多个查询分片;
分配单元702,用于将所述多个查询分片放入优先级不同的多个队列;
查询单元703,用于针对线程池中的每个线程,通过该线程从满足预设条件的队列中读取目标查询分片,并对该目标查询分片执行查询操作以获取查询结果;其中,所述查询操作包括:检测所述高速缓存数据库中是否存在所述目标查询分片的查询结果,若是,则从所述高速缓存数据库中获取所述查询结果;若否,则从业务数据库中查找该目标查询分片对应的查询结果,并将所述查询结果写入至所述高速缓存数据库;
发送单元704,用于将所述查询结果通过所述全双工通信连接返回给所述客户端。
可选地,所述分配单元702,在将所述多个查询分片放入优先级不同的多个队列之前,还用于在检测到线程池中当前处于工作状态的线程数量未超过预设阈值时,执行所述将多个查询分片放入优先级不同的多个队列的步骤;在检测到线程池中当前处于工作状态的线程数量超过预设阈值时,将每个查询分片作为目标查询分片,并对该目标查询分片执行所述查询操作。
可选地,所述查询参数为查询时段;
所述接收单元701,在依据所述查询请求的查询参数,将所述查询请求划分为多个查询分片时,用于依据所述查询时段的起始时间和第一预设时间间隔,确定目标标准时刻;依据所述目标标准时刻、所述第一预设时间间隔和第二预设时间间隔,将所述查询时段划分为至少一个子时段,并确定每个子时段对应的查询分片;其中,划分出的子时段的数量小于预设数量阈值;时间在所述查询时段的起始时刻与目标标准时刻之间的子时段的长度为第二预设时间间隔,时间在所述目标标准时刻之后的所有非最后一个子时段的长度为第一预设时间间隔,所述目标标准时刻是基于所述查询时段所对应的通用时间点和所述第一预设时间间隔确定出的;所述第二预设时间间隔小于第一预设时间间隔。
可选地,所述接收单元701,在依据所述查询时段的起始时间和第一预设时间间隔,确定目标标准时刻时,用于确定所述查询时段的起始时间对应的通用时间点,并依据所述通用时间点、以及预设的第一时间间隔确定至少一个标准时刻;从至少一个标准时刻中,挑选出与所述起始时间的距离最近、且晚于所述起始时间的标准时刻,并将挑选出的标准时刻作为目标标准时刻。
可选地,所述多个队列包括普通队列,各普通队列的优先级不同;所述查询参数为查询时段;
所述分配单元702,在将所述多个查询分片放入优先级不同的多个队列时,用于按照各查询分片的时间段从后到前的顺序、以及各普通队列优先级从高到低的顺序,向每个普通队列存储该普通队列所支持的固定数量的查询分片;若在每个普通队列储存了其所支持的固定数量的查询分片后,仍存在未被存储的查询分片,则将未被存储的查询分片存储至优先级最低的普通队列。
可选地,所述查询单元703,在通过该线程从满足预设条件的队列中读取目标查询分片时,用于检测线程共有锁是否被占用;若未被占用,则为该线程占用所述共有锁;在占用所述共有锁后,通过该线程从所述队列中读取目标查询分片。
可选地,所述查询单元703,在占用所述共有锁后,还用于检测所述满足预设条件的队列的查询分片的数量是否高于预设数量阈值;若是,则在所述线程池中建立新的线程。
可选地,所述查询单元703,在从业务数据库中查找该目标查询分片对应的查询结果之前,还用于检测与该目标查询分片关联的查询分片是否有查询结果;其中所述关联的查询分片与所述目标查询分片属于同一查询请求;若该目标查询分片关联的查询分片有查询结果,则执行所述从业务数据库中查找该目标查询分片对应的查询结果的步骤;若该目标查询分片关联的查询分片无查询结果,则在确定该目标查询分片是其对应的查询请求的最后一个查询分片时,将该查询分片划分为多个查询子分片,并将所述查询子分片存储至所述保留队列。
可选地,所述查询单元703,还用于当监听到查询到了保留队列中的查询子分片的查询结果时,将保留队列的其他查询子分片从该保留队列中移除,并将其他查询子分片存储至普通队列。
可选地,所述预设条件的队列包括:
优先级最高且存在查询分片的队列;或者,
优先级高于预设阈值且存在查询分片的队列。
此外,本申请还提供一种电子设备,包括:
存储器,用于存放计算机程序;
处理器,用于执行所述存储器上所存放的计算机程序时,实现上述查询方法,这里不再赘述。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (10)
1.一种查询方法,其特征在于,所述方法应用于存储系统的服务器,所述存储系统还包括高速缓存数据库和业务数据库,所述方法包括:
接收客户端通过全双工通信连接发送的查询请求,依据所述查询请求的查询参数,将所述查询请求划分为多个查询分片;
将所述多个查询分片放入优先级不同的多个队列;
针对线程池中的每个线程,通过该线程从满足预设条件的队列中读取目标查询分片,并对该目标查询分片执行查询操作以获取查询结果;其中,所述查询操作包括:检测所述高速缓存数据库中是否存在所述目标查询分片的查询结果,若是,则从所述高速缓存数据库中获取所述查询结果;若否,则从业务数据库中查找该目标查询分片对应的查询结果,并将所述查询结果写入至所述高速缓存数据库;
将所述查询结果通过所述全双工通信连接发送给所述客户端。
2.根据权利要求1所述的查询方法,其特征在于,在所述将所述多个查询分片放入优先级不同的多个队列之前,所述方法还包括:
在检测到线程池中当前处于工作状态的线程数量未超过预设阈值时,执行所述将所述多个查询分片放入优先级不同的多个队列的步骤;
所述方法还包括:
在检测到线程池中当前处于工作状态的线程数量超过预设阈值时,将每个查询分片作为目标查询分片,并对该目标查询分片执行所述查询操作。
3.根据权利要求1所述的查询方法,其特征在于,所述查询参数为查询时段;
所述依据所述查询请求的查询参数,将所述查询请求划分为多个查询分片,包括:
依据所述查询时段的起始时间和第一预设时间间隔,确定目标标准时刻;
依据所述目标标准时刻、所述第一预设时间间隔和第二预设时间间隔,将所述查询时段划分为至少一个子时段,并确定每个子时段对应的查询分片;
其中,划分出的子时段的数量小于预设数量阈值;时间在所述查询时段的起始时刻与目标标准时刻之间的子时段的长度为第二预设时间间隔,时间在所述目标标准时刻之后的所有非最后一个子时段的长度为第一预设时间间隔,所述目标标准时刻是基于所述查询时段所对应的通用时间点和所述第一预设时间间隔确定出的;所述第二预设时间间隔小于第一预设时间间隔。
4.根据权利要求3所述的查询方法,其特征在于,所述依据所述查询时段的起始时间和第一预设时间间隔,确定目标标准时刻,包括:
确定所述查询时段的起始时间对应的通用时间点,并依据所述通用时间点、以及预设的第一时间间隔确定至少一个标准时刻;
从至少一个标准时刻中,挑选出与所述起始时间的距离最近、且晚于所述起始时间的标准时刻,并将挑选出的标准时刻作为目标标准时刻。
5.根据权利要求1所述的查询方法,其特征在于,所述多个队列包括普通队列,各普通队列的优先级不同;所述查询参数为查询时段;
所述将所述多个查询分片放入优先级不同的多个队列,包括:
按照各查询分片的时间段从后到前的顺序、以及各普通队列优先级从高到低的顺序,向每个普通队列存储该普通队列所支持的固定数量的查询分片;
若在每个普通队列储存了其所支持的固定数量的查询分片后,仍存在未被存储的查询分片,则将未被存储的查询分片存储至优先级最低的普通队列。
6.根据权利要求1所述的查询方法,其特征在于,所述通过该线程从满足预设条件的队列中读取目标查询分片,包括:
检测线程共有锁是否被占用;
若未被占用,则为该线程占用所述共有锁;
在占用所述共有锁后,通过该线程从所述队列中读取目标查询分片。
7.根据权利要求6所述的查询方法,其特征在于,在占用所述共有锁后,所述方法还包括:
检测所述满足预设条件的队列的查询分片的数量是否高于预设数量阈值;
若是,则在所述线程池中建立新的线程。
8.根据权利要求1所述的查询方法,其特征在于,所述多个队列还包括保留队列;
在所述从业务数据库中查找该目标查询分片对应的查询结果之前,包括:
检测与该目标查询分片关联的查询分片是否有查询结果;其中所述关联的查询分片与所述目标查询分片属于同一查询请求;
若该目标查询分片关联的查询分片有查询结果,则执行所述从业务数据库中查找该目标查询分片对应的查询结果的步骤;
所述方法还包括:
若该目标查询分片关联的查询分片无查询结果,则在确定该目标查询分片是其对应的查询请求的最后一个查询分片时,将该查询分片划分为多个查询子分片,并将所述查询子分片存储至所述保留队列。
9.根据权利要求8所述的查询方法,其特征在于,所述方法还包括:
当监听到查询到了保留队列中的查询子分片的查询结果时,将保留队列的其他查询子分片从该保留队列中移除,并将其他查询子分片存储至普通队列。
10.根据权利要求1所述的查询方法,其特征在于,所述预设条件的队列包括:
优先级最高且存在查询分片的队列;或者,
优先级高于预设阈值且存在查询分片的队列。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310163779.8A CN115952202B (zh) | 2023-02-24 | 2023-02-24 | 一种基于高速缓存的大数据分片查询方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310163779.8A CN115952202B (zh) | 2023-02-24 | 2023-02-24 | 一种基于高速缓存的大数据分片查询方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115952202A true CN115952202A (zh) | 2023-04-11 |
CN115952202B CN115952202B (zh) | 2023-08-22 |
Family
ID=87282758
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310163779.8A Active CN115952202B (zh) | 2023-02-24 | 2023-02-24 | 一种基于高速缓存的大数据分片查询方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115952202B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106021284A (zh) * | 2016-04-29 | 2016-10-12 | 乐视控股(北京)有限公司 | 数据查询方法、数据监测方法及装置 |
CN107657058A (zh) * | 2017-10-19 | 2018-02-02 | 上海大汉三通数据通信有限公司 | 一种数据的查询方法及相关装置 |
CN111414407A (zh) * | 2020-02-13 | 2020-07-14 | 中国平安人寿保险股份有限公司 | 数据库的数据查询方法、装置、计算机设备及存储介质 |
CN112084217A (zh) * | 2020-09-17 | 2020-12-15 | 腾讯科技(深圳)有限公司 | 一种数据处理方法和相关装置 |
US20210216557A1 (en) * | 2020-01-13 | 2021-07-15 | EMC IP Holding Company LLC | Continuous query scheduling and splitting in a cluster-based data storage system |
CN113778689A (zh) * | 2021-09-22 | 2021-12-10 | 重庆允成互联网科技有限公司 | 一种分布式定时任务运行方法、系统、设备及存储介质 |
CN114880368A (zh) * | 2022-05-26 | 2022-08-09 | 平安普惠企业管理有限公司 | 数据查询方法、装置、电子设备及可读存储介质 |
CN115004168A (zh) * | 2020-03-10 | 2022-09-02 | 深圳市欢太科技有限公司 | 数据推送方法、装置、服务器及存储介质 |
-
2023
- 2023-02-24 CN CN202310163779.8A patent/CN115952202B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106021284A (zh) * | 2016-04-29 | 2016-10-12 | 乐视控股(北京)有限公司 | 数据查询方法、数据监测方法及装置 |
CN107657058A (zh) * | 2017-10-19 | 2018-02-02 | 上海大汉三通数据通信有限公司 | 一种数据的查询方法及相关装置 |
US20210216557A1 (en) * | 2020-01-13 | 2021-07-15 | EMC IP Holding Company LLC | Continuous query scheduling and splitting in a cluster-based data storage system |
CN111414407A (zh) * | 2020-02-13 | 2020-07-14 | 中国平安人寿保险股份有限公司 | 数据库的数据查询方法、装置、计算机设备及存储介质 |
CN115004168A (zh) * | 2020-03-10 | 2022-09-02 | 深圳市欢太科技有限公司 | 数据推送方法、装置、服务器及存储介质 |
CN112084217A (zh) * | 2020-09-17 | 2020-12-15 | 腾讯科技(深圳)有限公司 | 一种数据处理方法和相关装置 |
CN113778689A (zh) * | 2021-09-22 | 2021-12-10 | 重庆允成互联网科技有限公司 | 一种分布式定时任务运行方法、系统、设备及存储介质 |
CN114880368A (zh) * | 2022-05-26 | 2022-08-09 | 平安普惠企业管理有限公司 | 数据查询方法、装置、电子设备及可读存储介质 |
Non-Patent Citations (1)
Title |
---|
葛微: "大数据索引和查询优化技术与系统研究", 《中国优秀硕士学位论文全文数据库》 * |
Also Published As
Publication number | Publication date |
---|---|
CN115952202B (zh) | 2023-08-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101721892B1 (ko) | 쿼리 관리 | |
JP6114829B2 (ja) | 仮想環境における演算インフラストラクチャのリアルタイム最適化 | |
US8826284B1 (en) | Scalable task scheduling | |
JP3987384B2 (ja) | 実行キュー管理 | |
JP4205369B2 (ja) | スリープキュー管理 | |
US8572621B2 (en) | Selection of server for relocation of application program based on largest number of algorithms with identical output using selected server resource criteria | |
JP2004520655A (ja) | 分散型コンピュータシステムにおける資源の選択 | |
US8627325B2 (en) | Scheduling memory usage of a workload | |
US20140310712A1 (en) | Sequential cooperation between map and reduce phases to improve data locality | |
US10521258B2 (en) | Managing test services in a distributed production service environment | |
US8190857B2 (en) | Deleting a shared resource node after reserving its identifier in delete pending queue until deletion condition is met to allow continued access for currently accessing processor | |
US20120221810A1 (en) | Request management system and method | |
CN109033814B (zh) | 智能合约触发方法、装置、设备及存储介质 | |
CA2631255A1 (en) | Scalable scheduling of tasks in heterogeneous systems | |
CN115952202A (zh) | 一种查询方法 | |
CN111061557B (zh) | 均衡分布式内存数据库负载的方法和装置 | |
US7680921B2 (en) | Management system, management computer, managed computer, management method and program | |
CN116244072A (zh) | 一种针对栅栏同步的gpgpu微架构系统 | |
CN115495249A (zh) | 一种云端集群的任务执行方法 | |
US7865514B2 (en) | Computer system and database management method using the same | |
CN116701293B (zh) | 一种基于arm集群服务器的多通道数据并行传输方法及系统 | |
US11240305B2 (en) | Task allocation among devices in a distributed data storage system | |
US7222178B2 (en) | Transaction-processing performance by preferentially reusing frequently used processes | |
CN116755868B (zh) | 任务处理系统及方法 | |
CN116635840A (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 |