CN108108463A - 基于时间片调度的同步任务处理方法及装置 - Google Patents

基于时间片调度的同步任务处理方法及装置 Download PDF

Info

Publication number
CN108108463A
CN108108463A CN201711478190.8A CN201711478190A CN108108463A CN 108108463 A CN108108463 A CN 108108463A CN 201711478190 A CN201711478190 A CN 201711478190A CN 108108463 A CN108108463 A CN 108108463A
Authority
CN
China
Prior art keywords
task
synchronous
queue
synchronous task
bit stream
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
CN201711478190.8A
Other languages
English (en)
Other versions
CN108108463B (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.)
Beijing Qihoo Technology Co Ltd
Original Assignee
Beijing Qihoo 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 Beijing Qihoo Technology Co Ltd filed Critical Beijing Qihoo Technology Co Ltd
Priority to CN201711478190.8A priority Critical patent/CN108108463B/zh
Publication of CN108108463A publication Critical patent/CN108108463A/zh
Application granted granted Critical
Publication of CN108108463B publication Critical patent/CN108108463B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • G06F9/4831Task transfer initiation or dispatching by interrupt, e.g. masked with variable priority
    • G06F9/4837Task transfer initiation or dispatching by interrupt, e.g. masked with variable priority time dependent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Debugging And Monitoring (AREA)
  • Multi Processors (AREA)

Abstract

本发明公开了一种基于时间片调度的同步任务处理方法及装置。所述方法包括:根据至少一个从节点发送的同步请求,生成同步任务;将所述同步任务置入任务队列中;由线程池中的任一空闲线程从所述任务队列中获取并执行同步任务;判断同步任务的执行时间是否已到达预设时间片规定的时间,若是,将所述同步任务重置入所述任务队列中。采用本方案,可实现线程数与主从关系个数的解耦,通过低于系统中主从同步关系个数的线程数完成系统中大量的主从同步工作,从而大幅降低系统开销,节约系统资源。

Description

基于时间片调度的同步任务处理方法及装置
技术领域
本发明涉及计算机技术领域,具体涉及一种基于时间片调度的同步任务处理方法及装置。
背景技术
主从结构的分布式系统以其具有高灵活性,高数据可靠性,低服务节点负荷,较高的数据的读写效率,以及可实现读写分离等特点,已成为一种常用的数据库结构。
在主从结构的分布式系统中,为实现系统中各个主从节点的数据同步,通常为已经建立的各个主从关系分配单独的同步线程,每个主从同步关系中的主节点通过对应的同步线程顺序地向从节点发送同步数据,从而实现主从节点间的数据同步。
然而,采用上述方法处理同步任务时,系统中的同步线程数与主从关系的个数一一对应,当系统中的主从关系数量较多时,会造成系统中线程数的膨胀,从而增加系统开销,影响系统性能;并且,与每个主从关系对应的同步线程通常处于空闲状态,从而引起系统资源的浪费。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的基于时间片调度的同步任务处理方法及装置。
根据本发明的一个方面,提供了一种基于时间片调度的同步任务处理方法,包括:
根据至少一个从节点发送的同步请求,生成同步任务;
将所述同步任务置入任务队列中;
由线程池中的任一空闲线程从所述任务队列中获取并执行同步任务;
判断同步任务的执行时间是否已到达预设时间片规定的时间,若是,将所述同步任务重置入所述任务队列中。
根据本发明的另一方面,提供了一种基于时间片调度的同步任务处理装置,包括:
生成模块,适于根据至少一个从节点发送的同步请求,生成同步任务;
置入模块,适于将所述同步任务置入任务队列中;
执行模块,适于由线程池中的任一空闲线程从所述任务队列中获取并执行同步任务;
重置模块,适于判断同步任务的执行时间是否已到达预设时间片规定的时间,若是,将所述同步任务重置入所述任务队列中。
根据本发明的又一方面,提供了一种计算设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行上述基于时间片调度的同步任务处理方法对应的操作。
根据本发明的再一方面,提供了一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如上述基于时间片调度的同步任务处理方法对应的操作。
根据本发明提供的基于时间片调度的同步任务处理方法及装置,首先根据至少一个从节点发送的同步请求,生成同步任务;并将同步任务置入任务队列中;由线程池中的任一空闲线程从所述任务队列中获取并执行同步任务;最后判断同步任务的执行时间是否已到达预设时间片规定的时间,若是,将所述同步任务重置入所述任务队列中。采用本方案,可实现线程数与主从关系个数的解耦,通过低于系统中主从同步关系个数的线程数完成系统中大量的主从同步任务,从而大幅降低系统开销,节约系统资源。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明一个实施例提供的基于时间片调度的同步任务处理方法的流程示意图;
图2示出了根据本发明另一个实施例提供的基于时间片调度的同步任务处理方法的流程示意图;
图3示出了根据本发明一个实施例提供的基于时间片调度的同步任务处理装置的结构框图;
图4示出了根据本发明一个实施例提供的计算设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了根据本发明一个实施例提供的基于时间片调度的同步任务处理方法的流程示意图。如图1所示,该方法包括:
步骤S110,根据至少一个从节点发送的同步请求,生成同步任务。
在具体的实施过程中,每当主节点接收到至少一个从节点发送的同步请求,或者,每当至少一个从节点向主节点发送同步请求时,根据该同步请求生成相应的同步任务。例如,从节点P2向主节点P1发送trysync请求(同步请求)时,可根据该trysync请求中包含的信息,如请求同步的主节点的信息、请求同步的日志文件名称(如日志名称为binlog1)、请求同步的日志偏移量(如日志偏移量为12字节)等生成同步任务task1,task1具体为将主节点P1侧日志名称为binlog1,偏移量为12字节之后的日志同步至从节点P2。
步骤S120,将同步任务置入任务队列中。
具体地,在同步任务生成后,将该同步任务放置于预先配置的任务队列中。其中,可每隔预设周期,按照任务生成时间的先后次序依次将该周期内生成的所有的同步任务放置于任务队列中,从而实现将同步任务批量置入任务队列中;也可在每当生成一个同步任务后,将该同步任务置入任务队列中。
步骤S130,由线程池中的任一空闲线程从任务队列中获取并执行同步任务。
在系统中预先配置线程池,并在配置的线程池中设置多条线程。其中,线程池中线程的数量小于任务队列中同步任务的数量;或者,线程池中线程的数量远小于系统中主从关系的数量,例如,当系统中存在1000个主从关系时,线程池中线程个数可以为10,从而大幅降低系统开销。可选的,线程池中线程的数量可维持不变,也可根据任务队列中同步任务的数目等因素动态地增减。
进一步地,每当线程池中含有空闲线程时,线程池中的任一空闲线程从任务队列中获取并执行同步任务。可选的,在空闲线程从任务队列中获取同步任务的过程中,可按照同步任务放入任务队列的先后次序,依次获取当前任务队列中放入任务队列最早的同步任务。
步骤S140,判断同步任务的执行时间是否已到达预设时间片规定的时间,若是,将同步任务重置入任务队列中。
其中,为保证任务队列中的每个同步任务均能被线程池中的线程所执行,本步骤中当线程池中的线程在执行同步任务的过程中,判断同步任务的执行时间是否已到达预设时间片规定的时间,若是,则将同步任务重置入任务队列中,否则,则继续执行当前的同步任务,直至达到预设时间片规定的时间后将该同步任务重置入任务队列中,或者直至该同步任务完成后将该同步任务删除。
举例来说,若预设时间片为2s,当线程池中包含有空闲线程W1,当前的任务队列中置入任务队列最早的为task2,其次为重置入任务队列中的task1时,则空闲线程W1获取并执行task2,当线程W1执行task2的时间达到2s时,停止执行task2,并将执行后的task2重置入任务队列中;若在线程W1执行task2的过程中,线程池中的W2线程空闲,则W2线程获取并执行重置入任务队列中的task1(即当前任务队列中放入任务队列最早的同步任务),当W2线程执行重置入任务队列中的task1的时间达到2s时,将执行后的task1再次重置入任务队列中。
根据本实施例提供的基于时间片调度的同步任务处理方法,首先根据至少一个从节点发送的同步请求,生成同步任务;并将同步任务置入任务队列中;由线程池中的任一空闲线程从所述任务队列中获取并执行同步任务;最后判断同步任务的执行时间是否已到达预设时间片规定的时间,若是,将所述同步任务重置入所述任务队列中。采用本方案,可实现线程数与主从关系个数的解耦,通过远低于系统中主从同步关系个数的线程数完成系统中大量的主从同步任务,从而大幅降低系统开销,节约系统资源。
图2示出了根据本发明另一个实施例提供的基于时间片调度的同步任务处理方法的流程示意图。如图2所示,该方法包括:
步骤S210,根据至少一个从节点发送的同步请求,生成同步任务。
在具体的实施过程中,每当主节点接收到至少一个从节点发送的同步请求,或者,每当至少一个从节点向主节点发送同步请求时,根据该同步请求生成相应的同步任务。
其中,生成的同步任务中携带有任务描述信息。该任务描述信息包括表名称、数据分片标识、从节点标识以及同步偏移量等。可选的,同步偏移量信息中携带有同步日志的文件名称。
步骤S220,将同步任务置入任务队列中。
在同步任务生成后,将该同步任务放置于预先配置的任务队列中。其中,本发明对任务队列的具体实现方式不做限定,例如,任务队列可以为基于链表数据结构实现的任务队列,也可以为基于动态数组实现的任务队列。
具体地,在将同步任务置入任务队列的过程中,按照同步任务生成的先后顺序将同步任务置入任务队列。例如,每当生成一个同步任务后,便将该同步任务置入任务队列中。
步骤S230,根据同步任务携带的任务描述信息,生成任务键值。
具体地,根据同步任务携带的任务描述信息中的表名称、数据分片标识、以及从节点标识生成任务键值。其中,本发明对根据同步任务携带的任务描述信息生成任务键值的具体方法不做限定,例如可通过哈希算法根据同步任务携带的任务描述信息中的表名称、数据分片标识、以及从节点标识生成任务键值。
由于在数据库系统中,一个数据库系统通常对应于至少一个数据表,每个数据表均有其对应的表名称,并且,同一数据库系统中每个数据表的表名称不同;而在每个数据表中可划分为至少一个数据分片,每个数据分片均有与其相对应的数据分片标识,同一表中的每个数据分片的数据分片标识不同;在每个数据分片中可对应至少一个主从关系,而每个主从关系中的从节点具有其相对应的从节点标识,同一数据分片中的从节点标识不同。从而通过表名称、数据分片标识、以及从节点标识可确定出数据库系统中唯一的主从关系,同一主从关系对应的同步任务的任务键值相同。例如,在T1时刻,数据库系统中table1中的partition1的从节点P2向主节点P1发送同步请求,生成同步任务task1,则根据task1携带的任务描述信息(表名称为table1,数据分片标识为partition1,从节点标识为P2),生成的任务键值为key1;在T2时刻,数据库系统中table1中的partition1的从节点P2重新向主节点P1发送同步请求,生成task2,则task2的任务键值也为key1,即同一个主从关系对应的所有同步任务的任务键值相同。
步骤S240,查询任务信息表中是否已存储包含所述任务键值的任务信息,若否,执行步骤S250;若是,执行步骤S260。
具体地,在步骤S230生成任务键值之后,在任务信息表中查询是否存在该任务键值对应的任务信息,若任务信息表中未存储有包含该任务键值的任务信息,则执行步骤S250;若任务信息表中存储有包含该任务键值的任务信息,则执行步骤S260。
可选的,任务信息表初始状态中未包含任何任务键值的任务信息,则当首次执行本步骤时,任务信息表中未存储有包含该任务键值的任务信息,则进一步执行步骤S250。
步骤S250,将包含任务键值以及与任务键值对应的同步任务在任务队列中的队列位置的任务信息存储在任务信息表中。
具体地,若任务信息表中未存储有包含该任务键值的任务信息,则在将同步任务置入任务队列中之后,将该任务键值以及与任务键值对应的同步任务在任务队列中的队列位置的任务信息存储在任务信息表中。
举例来说,在步骤S210中,T1时刻数据库系统中table1中的partition1的从节点P2向主节点P1发送同步请求,生成同步任务task1,则将task1放入任务队列中(对应步骤S220),并记录task1在任务队列中的位置location1;并进一步地根据task1携带的任务描述信息(表名称为table1,数据分片标识为partition1,从节点标识为P2)生成任务键值key1(对应步骤S230),若任务信息表中未存储有key1的任务信息,则将任务键值key1,以及location1关联存储在任务信息表中。
步骤S260,更新任务信息表中所述任务键值对应的同步任务在任务队列中的队列位置。
若任务信息表中已存储有包含所述任务键值的任务信息,则在将同步任务置入任务队列中之后,更新任务信息表中任务键值对应的同步任务在任务队列中的队列位置。
具体地,在一种可选的实施方式中(实施方式一),若任务信息表中已存储有包含所述任务键值的任务信息,则将任务信息表中所述任务键值对应的队列位置中的同步任务从任务队列中删除,并将所述任务键值对应的新生成的同步任务存储至任务信息表中任务键值对应的队列位置中。
在另一种可选的实施方式中(实施方式二),若任务信息表中已存储有包含所述任务键值的任务信息,则将新生成的同步任务放入任务队列中,并将任务信息表中所述任务键值对应的队列位置中的同步任务从任务队列中删除,将任务信息表中任务键值对应的同步任务在任务队列中的队列位置更新为新生成的同步任务在任务队列中的队列位置。
举例来说,T1时刻,数据库系统中的table1中的partition1的从节点P2向主节点P1发送同步请求,生成同步任务task1,则将task1放入任务队列中,并生成任务键值key1,若任务信息表中未存储有key1及key1的任务信息,则将任务键值key1及task1在任务队列中的队列位置location1关联存储在任务信息表中;若在T2时刻(T2>T1),由于从节点P2与主节点P1同步异常,从节点P2重新向主节点P1发起同步请求,生成同步任务task2,由于task2与task1为同一主从关系对应的同步任务,则task2与task1具有相同的任务键值key1,则在步骤S240查询任务信息表后发现存在key1的任务信息时,可将任务信息表中key1对应的队列位置location1中的同步任务task1从任务队列中删除,并将task2存储在队列位置location1中(对应实施方式一);也可以将task2放入任务队列中,并记录task2在任务队列中的位置location2,将location1中的同步任务task1从任务队列中删除,将任务信息表中key1对应的同步任务在任务队列中的队列位置更新为location2(对应实施方式二)。
步骤S270,线程池中的空闲线程根据指针指向的队列位置获取同步任务,根据同步任务携带的任务描述信息执行同步任务。
在系统中预先配置线程池,并在配置的线程池中设置多条线程。其中,线程池中线程的数量小于任务队列中同步任务的数量;或者,线程池中线程的数量远小于系统中主从关系的数量,例如,当系统中存在1000个主从关系时,线程池中线程个数可以为10,从而大幅降低系统开销。可选的,线程池中线程的数量可维持不变,也可根据任务队列中同步任务的数目等因素动态地增减。
其中,线程池中的线程用于执行任务队列中的同步任务。具体地,线程池中的空闲线程根据指针指向的队列位置获取同步任务。进一步地,线程池中的空闲线程根据指针指向获取当前任务队列中放入任务队列最早的同步任务,即当前任务队列中最先放入任务队列的同步任务将被空闲线程优先取出。例如,当前任务队列中包含有3个同步任务,其中,task2在T1时刻重置入当前任务队列,task1在T2时刻(T2>T1)置入当前任务队列,task3为T3时刻(T3>T2)置入当前任务队列,则当前指针指向task2对应的队列位置(即当前任务队列中最早放入任务队列的同步任务),当线程池中有空闲线程worker1及worker2时,空闲线程worker1根据指针指向获取task2;在worker1获取task2之后,指针指向task1对应的队列位置,则空闲线程worker2根据指针指向获取task1。
进一步地,在线程池中的空闲线程根据指针指向的队列位置获取同步任务之后,根据同步任务携带的任务描述信息执行同步任务。具体地,线程池中的空闲线程根据同步任务携带的表名称、数据分片标识、从节点标识以及同步偏移量执行同步任务,并在执行同步任务过程中,根据同步任务的执行情况动态刷新同步偏移量。例如,线程worker2获取的task1携带的任务描述信息为“表名称:table1;数据分片标识:partition1;从节点标识:P2;同步偏移量:binlog1的第20字节”,则线程worker2将系统中table1中的partition1中的主节点侧的日志名称为binlog1的日志文件中第20字节之后的日志文件同步至从节点P2,并在执行过程中,不断刷新同步偏移量。
可选的,在线程池中的空闲线程获取并执行同步任务之后,将任务信息表中已被执行的同步任务的任务键值对应的队列位置更新为指定值。其中,指定值可以为空指针。例如,当线程worker2获取task1后,将任务信息表中task1的任务键值对应的队列位置更新为空指针。
步骤S280,判断同步任务的执行时间是否已到达预设时间片规定的时间,若是,将同步任务重置入任务队列中。
其中,为保证任务队列中的每个同步任务均能被线程池中的线程所执行,本步骤中当线程池中的线程在执行同步任务的过程中,判断同步任务的执行时间是否已到达预设时间片规定的时间,若是,则将同步任务重置入任务队列中,否则,则继续执行当前的同步任务,直至达到预设时间片规定的时间后将该同步任务重置入任务队列中,或者直至该同步任务结束后将该同步任务删除。
可选的,在将同步任务重置入任务队列之前,在任务信息表中查询该待重置入的同步任务的任务键值对应的是否为指定值,若是,则将该同步任务重置入任务队列中,并在同步任务重置入任务队列后,将该同步任务的任务键值对应的指定值更新为重置后的队列位置;若否,则根据任务标识确定是否丢弃该待重置入的同步任务,具体地,若任务信息表中查询该待重置入的同步任务的任务键值对应的不是指定值,则比较任务信息表中同步任务的任务标识与待重置入任务队列的同步任务的任务标识,若比较结果表明任务信息表中同步任务为较晚生成的同步任务,则丢弃该待重置入任务队列的同步任务;若比较结果表明任务信息表中同步任务为较早生成的同步任务,则将该待重置入任务队列的同步任务重置于任务队列中,并将该同步任务的任务键值对应的队列位置更新为重置入任务队列后的队列位置。
举例来说,worker1线程在获取并执行task1后,在任务信息表中task1的任务键值key1对应的队列位置更新为空指针(即指定值),当worker1线程执行task1的时间达到预设时间片规定的时间时,需将执行后task1重置入任务队列中,此时,若在任务信息表中查询key1对应的为空指针,则将执行后的task1重置入任务队列,并key1对应的空指针更新为task1重置入任务队列的队列位置;若在worker1线程获取并执行task1过程中,系统中生成了与task1具有相同任务键值key1的同步任务task2,则将task2放入任务队列中,并将任务信息表中key1对应的空指针更新为task2在任务队列中的位置,当worker1线程执行task1的时间达到预设时间片规定的时间时,需将执行后task1重置入任务队列中,此时,由于任务信息表中的key1对应的不是空指针,而是task2在任务队列中的队列位置,则需进一步比较待重置同步任务task1与任务信息表中的同步任务task2的任务标识,其中,任务标识中携带有标识任务生成先后顺序的信息(例如,针对同一主从关系生成的同步任务,根据同步任务生成时间由早到晚的顺序,任务标识数值依次递增),若比较结果表明任务信息表中的同步任务task2为较晚生成的同步任务,则丢弃该待重置入任务队列的同步任务task1,若比较结果表明该任务信息表中同步任务task2为较早生成的同步任务,则将执行后的task1重置于任务队列中,并在任务信息表中key1对应的任务队列位置更新为task1重置于任务队列后的队列位置。
可选的,在同步任务的执行时间已到达预设时间片规定的时间后,获取该同步任务当前的快照信息,并将该快照信息与该同步任务对应的任务键值关联存储至任务信息表中。当接收到对同步任务的同步状态查询请求时,根据任务信息表中与同步任务对应的任务键值关联存储的快照信息获取查询结果,从而当同步任务在执行过程中接收到对该同步任务的查询请求时,无需加锁操作便可获取查询结果,提高了同步任务的执行效率。其中,快照信息包括该同步任务的同步偏移量信息。例如,在task1执行时间已到达预设时间片规定的时间后,获取当前task1中的同步偏移量的快照信息,当接收到针对task1的同步状态查询请求时,可根据获取的task1中的同步偏移量的快照信息获取查询结果,并将该查询结果反馈给用户。
此外,在一种可选的实施方式中,本实施例中的任务队列为多个,不同任务队列的优先级不同,同一个任务队列中的同步任务的优先级相同。则在步骤S220中,需先确定生成的同步任务的优先级,将该同步任务置入与该同步任务的优先级相对应的任务队列中。则在步骤S270中,线程池中的空闲线程根据任务队列的优先级信息从任务队列中获取并执行同步任务。具体地,在步骤S270中,线程池中的空闲线程优先获取并执行优先级高的任务队列中的同步任务。可选的,在任务执行过程中,任务队列和/同步任务的优先级可动态调整,例如,根据某个任务队列中同步任务执行的时间,同步任务的属性等动态调整任务队列和/或同步任务的优先级。
为了避免某个任务队列占用过多的时间片,而使优先级较低的任务队列中的生成时间很早的同步任务迟迟不能执行,在具体实施时,判断任一任务队列连续占用时间片的数量是否大于第一预设阈值,若是,则将该任务队列的优先级调低一级或多级。为了避免某个同步任务占用过多的时间片,在具体实施时,判断任一同步任务在预设时间段内占用的时间片的数量是否大于第二预设阈值,若是,则在重置过程中,将该同步任务重置入优先级较低的任务队列中。
根据本实施例提供的基于时间片调度的同步任务处理方法,首先根据至少一个从节点发送的同步请求,生成同步任务;并将同步任务置入任务队列中;根据同步任务携带的任务描述信息,生成任务键值;并查询任务信息表中是否已存储包含所述任务键值的任务信息,若否,则将包含任务键值以及与任务键值对应的同步任务在任务队列中的队列位置的任务信息存储在任务信息表中,若是,则更新任务信息表中所述任务键值对应的同步任务在任务队列中的队列位置;线程池中的空闲线程根据指针指向的队列位置获取同步任务,根据同步任务携带的任务描述信息执行同步任务;最后判断同步任务的执行时间是否已到达预设时间片规定的时间,若是,将同步任务重置入任务队列中。采用本方案,可实现线程数与主从关系个数的解耦,通过低于系统中主从同步关系个数的线程数完成系统中大量的主从同步任务,从而大幅降低系统开销,节约系统资源;并且,在同步任务的执行时间已到达预设时间片规定的时间后,获取该同步任务当前的快照信息,根据快照信息获取针对该同步任务同步状态查询请求对应的查询结果,从而当同步任务在执行过程中接收到对该同步任务的查询请求时,无需加锁操作便可获取查询结果,提高了同步任务的执行效率;此外,本方案通过将同步任务置入与同步任务的优先级相对应的任务队列中。并使线程池中的空闲线程根据任务队列的优先级信息从任务队列中获取并执行同步任务,从而可根据同步任务的优先属性等确定同步任务的执行顺序或执行效率,满足针对不同的同步任务具有不同执行效率的个性化需求。
图3示出了根据本发明一个实施例提供的基于时间片调度的同步任务处理装置的结构框图。如图3所示,该装置包括:生成模块31、置入模块32、执行模块33、以及重置模块34。
生成模块31,适于根据至少一个从节点发送的同步请求,生成同步任务。
置入模块32,适于将同步任务置入任务队列中。
执行模块33,适于由线程池中的任一空闲线程从任务队列中获取并执行同步任务。
重置模块34,适于判断同步任务的执行时间是否已到达预设时间片规定的时间,若是,将同步任务重置入任务队列中。
可选的,执行模块33进一步适于:空闲线程根据指针指向的队列位置获取同步任务,根据同步任务携带的任务描述信息执行同步任务。
可选的,任务描述信息包括:表名称、数据分片标识、从节点标识以及同步偏移量。
可选的,本装置还包括:刷新模块(图中未示出),适于根据同步任务的执行情况动态刷新所述同步偏移量。
可选的,本装置还包括:任务键值生成模块(图中未示出)、任务信息查询模块(图中未示出)、存储模块(图中未示出)、以及第一位置更新模块(图中未示出)。
其中,任务键值生成模块适于根据同步任务携带的任务描述信息,生成任务键值。
任务信息查询模块,适于查询任务信息表中是否已存储包含所述任务键值的任务信息。
存储模块,适于若任务信息表中未存储有包含所述任务键值的任务信息,则在将同步任务置入任务队列中之后,将包含任务键值以及与任务键值对应的同步任务在任务队列中的队列位置的任务信息存储在任务信息表中。
第一位置更新模块,适于若任务信息表中已存储有包含所述任务键值的任务信息,在将同步任务置入任务队列中之后,更新任务信息表中所述任务键值对应的同步任务在任务队列中的队列位置。
可选的,本装置还包括:第二位置更新模块(图中未示出),适于在由线程池中的任一空闲线程从任务队列中获取并执行同步任务之后,将任务信息表中已被执行的同步任务的任务键值对应的队列位置更新为指定值。
可选的,本装置还包括:判断模块(图中未示出)、第三位置更新模块(图中未示出)、以及任务丢弃模块(图中未示出)。
其中,判断模块,适于在将同步任务重置入任务队列中之前,在任务信息表中查询同步任务的任务键值对应的是否为指定值。
第三位置更新模块,适于若判断模块判断结果为是,则在将同步任务重置入任务队列中之后,将同步任务的任务键值对应的指定值更新为重置后的队列位置。
任务丢弃模块,适于若判断模块判断结果为否,则根据任务标识确定是否丢弃同步任务。
进一步可选的,任务丢弃模块进一步适于:比较任务信息表中同步任务的任务标识与待重置入任务队列的同步任务的任务标识,若比较结果表明任务信息表中同步任务为较晚生成的同步任务,则丢弃待重置入任务队列的同步任务。
可选的,本装置还包括:快照存储模块(图中未示出),适于当同步任务的执行时间已到达预设时间片规定的时间时,获取同步任务当前的快照信息,将快照信息与同步任务对应的任务键值关联存储至所述任务信息表中。
可选的,本装置还包括:查询请求接收模块(图中未示出)以及快照信息查询模块(图中未示出)。
其中,查询请求接收模块适于接收对同步任务的同步状态查询请求。
快照信息查询模块,适于根据任务信息表中与同步任务对应的任务键值关联存储的快照信息获取查询结果。
可选的,置入模块32进一步适于:确定同步任务的优先级;将同步任务置入与同步任务的优先级相对应的任务队列中。
可选的,执行模块33进一步适于:由线程池中的任一空闲线程根据任务队列的优先级信息从所述任务队列中获取并执行同步任务。
根据本实施例提供的基于时间片调度的同步任务处理装置,首先根据至少一个从节点发送的同步请求,生成同步任务;并将同步任务置入任务队列中;由线程池中的任一空闲线程从所述任务队列中获取并执行同步任务;最后判断同步任务的执行时间是否已到达预设时间片规定的时间,若是,将所述同步任务重置入所述任务队列中。采用本方案,可实现线程数与主从关系个数的解耦,通过远低于系统中主从同步关系个数的线程数完成系统中大量的主从同步任务,从而大幅降低系统开销,节约系统资源。
根据本发明一个实施例提供了一种非易失性计算机存储介质,所述计算机存储介质存储有至少一可执行指令,该计算机可执行指令可执行上述任意方法实施例中,的基于时间片调度的同步任务处理方法。
图4示出了根据本发明一个实施例提供的一种计算设备的结构示意图,本发明具体实施例并不对计算设备的具体实现做限定。
如图4所示,该计算设备可以包括:处理器(processor)402、通信接口(Communications Interface)404、存储器(memory)406、以及通信总线408。
其中:
处理器402、通信接口404、以及存储器406通过通信总线408完成相互间的通信。
通信接口404,用于与其它设备比如客户端或其它服务器等的网元通信。
处理器402,用于执行程序410,具体可以执行上述基于时间片调度的同步任务处理方法实施例中的相关步骤。
具体地,程序410可以包括程序代码,该程序代码包括计算机操作指令。
处理器402可能是中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。计算设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。
存储器406,用于存放程序410。存储器406可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
程序410具体可以用于使得处理器402执行以下操作:
根据至少一个从节点发送的同步请求,生成同步任务;
将所述同步任务置入任务队列中;
由线程池中的任一空闲线程从所述任务队列中获取并执行同步任务;
判断同步任务的执行时间是否已到达预设时间片规定的时间,若是,将所述同步任务重置入所述任务队列中。
在一种可选的实施方式中,程序410具体可以用于使得处理器402执行以下操作:
所述空闲线程根据指针指向的队列位置获取同步任务,根据所述同步任务携带的任务描述信息执行同步任务。
在一种可选的实施方式中,所述任务描述信息包括:表名称、数据分片标识、从节点标识以及同步偏移量;则程序410具体可以用于使得处理器402执行以下操作:
在执行同步任务过程中,根据同步任务的执行情况动态刷新所述同步偏移量。
在一种可选的实施方式中,程序410具体可以用于使得处理器402执行以下操作:
根据同步任务携带的任务描述信息,生成任务键值;
查询任务信息表中是否已存储包含所述任务键值的任务信息;
若所述任务信息表中未存储有包含所述任务键值的任务信息,则在所述将同步任务置入任务队列中之后,将包含任务键值以及与任务键值对应的同步任务在任务队列中的队列位置的任务信息存储在任务信息表中;
若所述任务信息表中已存储有包含所述任务键值的任务信息,则在所述将同步任务置入任务队列中之后,所述方法还包括:更新所述任务信息表中所述任务键值对应的同步任务在任务队列中的队列位置。
在一种可选的实施方式中,程序410具体可以用于使得处理器402执行以下操作:
将所述任务信息表中已被执行的同步任务的任务键值对应的队列位置更新为指定值。
在一种可选的实施方式中,程序410具体可以用于使得处理器402执行以下操作:
在所述任务信息表中查询同步任务的任务键值对应的是否为所述指定值;
若是,则在将同步任务重置入所述任务队列中之后,将所述同步任务的任务键值对应的指定值更新为重置后的队列位置;
若否,则根据任务标识确定是否丢弃所述同步任务。
在一种可选的实施方式中,程序410具体可以用于使得处理器402执行以下操作:
比较所述任务信息表中同步任务的任务标识与待重置入任务队列的同步任务的任务标识,若比较结果表明所述任务信息表中同步任务为较晚生成的同步任务,则丢弃所述待重置入任务队列的同步任务。
在一种可选的实施方式中,程序410具体可以用于使得处理器402执行以下操作:
获取所述同步任务当前的快照信息,将所述快照信息与所述同步任务对应的任务键值关联存储至所述任务信息表中。
在一种可选的实施方式中,程序410具体可以用于使得处理器402执行以下操作:
接收对同步任务的同步状态查询请求;
根据所述任务信息表中与所述同步任务对应的任务键值关联存储的快照信息获取查询结果。
在一种可选的实施方式中,程序410具体可以用于使得处理器402执行以下操作:
确定所述同步任务的优先级;
将所述同步任务置入与所述同步任务的优先级相对应的任务队列中。
在一种可选的实施方式中,程序410具体可以用于使得处理器402执行以下操作:
由线程池中的任一空闲线程根据任务队列的优先级信息从所述任务队列中获取并执行同步任务。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的基于时间片调度的同步任务处理装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
本发明公开了:A1.一种基于时间片调度的同步任务处理方法,包括:
根据至少一个从节点发送的同步请求,生成同步任务;
将所述同步任务置入任务队列中;
由线程池中的任一空闲线程从所述任务队列中获取并执行同步任务;
判断同步任务的执行时间是否已到达预设时间片规定的时间,若是,将所述同步任务重置入所述任务队列中。
A2.根据A1所述的方法,其中,所述由线程池中的任一空闲线程从所述任务队列中获取并执行同步任务进一步包括:
所述空闲线程根据指针指向的队列位置获取同步任务,根据所述同步任务携带的任务描述信息执行同步任务。
A3.根据A2所述的方法,其中,所述任务描述信息包括:表名称、数据分片标识、从节点标识以及同步偏移量;
在执行同步任务过程中,所述方法还包括:根据同步任务的执行情况动态刷新所述同步偏移量。
A4.根据A1-A3中任一项所述的方法,其中,在所述生成同步任务之后,所述方法还包括:
根据同步任务携带的任务描述信息,生成任务键值;
查询任务信息表中是否已存储包含所述任务键值的任务信息;
若所述任务信息表中未存储有包含所述任务键值的任务信息,则在所述将同步任务置入任务队列中之后,将包含任务键值以及与任务键值对应的同步任务在任务队列中的队列位置的任务信息存储在任务信息表中;
若所述任务信息表中已存储有包含所述任务键值的任务信息,则在所述将同步任务置入任务队列中之后,所述方法还包括:更新所述任务信息表中所述任务键值对应的同步任务在任务队列中的队列位置。
A5.根据A4所述的方法,其中,在所述由线程池中的任一空闲线程从所述任务队列中获取并执行同步任务之后,所述方法还包括:
将所述任务信息表中已被执行的同步任务的任务键值对应的队列位置更新为指定值。
A6.根据A5所述的方法,其中,在所述将同步任务重置入所述任务队列中之前,所述方法还包括:在所述任务信息表中查询同步任务的任务键值对应的是否为所述指定值;
若是,则在将同步任务重置入所述任务队列中之后,将所述同步任务的任务键值对应的指定值更新为重置后的队列位置;
若否,则根据任务标识确定是否丢弃所述同步任务。
A7.根据A6所述的方法,其中,所述根据任务标识确定是否丢弃所述同步任务具体为:比较所述任务信息表中同步任务的任务标识与待重置入任务队列的同步任务的任务标识,若比较结果表明所述任务信息表中同步任务为较晚生成的同步任务,则丢弃所述待重置入任务队列的同步任务。
A8.根据A4-A7中任一项所述的方法,其中,在同步任务的执行时间已到达预设时间片规定的时间后,所述方法还包括:
获取所述同步任务当前的快照信息,将所述快照信息与所述同步任务对应的任务键值关联存储至所述任务信息表中。
A9.根据A8所述的方法,其中,所述方法还包括:
接收对同步任务的同步状态查询请求;
根据所述任务信息表中与所述同步任务对应的任务键值关联存储的快照信息获取查询结果。
A10.根据A1-A9中任一项所述的方法,其中,所述将所述同步任务置入任务队列中进一步包括:
确定所述同步任务的优先级;
将所述同步任务置入与所述同步任务的优先级相对应的任务队列中。
A11.根据A10所述的方法,其中,所述由线程池中的任一空闲线程从所述任务队列中获取并执行同步任务进一步包括:
由线程池中的任一空闲线程根据任务队列的优先级信息从所述任务队列中获取并执行同步任务。
本发明还公开了:B12.一种基于时间片调度的同步任务处理装置,包括:
生成模块,适于根据至少一个从节点发送的同步请求,生成同步任务;
置入模块,适于将所述同步任务置入任务队列中;
执行模块,适于由线程池中的任一空闲线程从所述任务队列中获取并执行同步任务;
重置模块,适于判断同步任务的执行时间是否已到达预设时间片规定的时间,若是,将所述同步任务重置入所述任务队列中。
B13.根据B12所述的装置,其中,所述执行模块进一步适于:
所述空闲线程根据指针指向的队列位置获取同步任务,根据所述同步任务携带的任务描述信息执行同步任务。
B14.根据B13所述的装置,其中,所述任务描述信息包括:表名称、数据分片标识、从节点标识以及同步偏移量;
在执行同步任务过程中,所述装置还包括:
刷新模块,适于根据同步任务的执行情况动态刷新所述同步偏移量。
B15.根据B12-B14中任一项所述的装置,其中,在所述生成同步任务之后,所述装置还包括:
任务键值生成模块,适于根据同步任务携带的任务描述信息,生成任务键值;
任务信息查询模块,适于查询任务信息表中是否已存储包含所述任务键值的任务信息;
存储模块,适于若所述任务信息表中未存储有包含所述任务键值的任务信息,则在所述将同步任务置入任务队列中之后,将包含任务键值以及与任务键值对应的同步任务在任务队列中的队列位置的任务信息存储在任务信息表中;
第一位置更新模块,适于若所述任务信息表中已存储有包含所述任务键值的任务信息,在所述将同步任务置入任务队列中之后,更新所述任务信息表中所述任务键值对应的同步任务在任务队列中的队列位置。
B16.根据B15所述的装置,其中,所述装置还包括:
第二位置更新模块,适于在所述由线程池中的任一空闲线程从所述任务队列中获取并执行同步任务之后,将所述任务信息表中已被执行的同步任务的任务键值对应的队列位置更新为指定值。
B17.根据B16所述的装置,其中,所述装置还包括:
判断模块,适于在所述将同步任务重置入所述任务队列中之前,在所述任务信息表中查询同步任务的任务键值对应的是否为所述指定值;
第三位置更新模块,适于若所述判断模块判断结果为是,则在将同步任务重置入所述任务队列中之后,将所述同步任务的任务键值对应的指定值更新为重置后的队列位置;
任务丢弃模块,适于若所述判断模块判断结果为否,则根据任务标识确定是否丢弃所述同步任务。
B18.根据B17所述的装置,其中,所述任务丢弃模块进一步适于:比较所述任务信息表中同步任务的任务标识与待重置入任务队列的同步任务的任务标识,若比较结果表明所述任务信息表中同步任务为较晚生成的同步任务,则丢弃所述待重置入任务队列的同步任务。
B19.根据B15-B18中任一项所述的装置,其中,所述装置还包括:
快照存储模块,适于当同步任务的执行时间已到达预设时间片规定的时间时,获取所述同步任务当前的快照信息,将所述快照信息与所述同步任务对应的任务键值关联存储至所述任务信息表中。
B20.根据B19所述的装置,其中,所述装置还包括:
查询请求接收模块,适于接收对同步任务的同步状态查询请求;
快照信息查询模块,适于根据所述任务信息表中与所述同步任务对应的任务键值关联存储的快照信息获取查询结果。
B21.根据B12-B20中任一项所述的装置,其中,所述置入模块进一步适于:
确定所述同步任务的优先级;
将所述同步任务置入与所述同步任务的优先级相对应的任务队列中。
B22.根据B21所述的装置,其中,所述执行模块进一步适于:
由线程池中的任一空闲线程根据任务队列的优先级信息从所述任务队列中获取并执行同步任务。
本发明还公开了:C23.一种计算设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如A1-A11中任一项所述的基于时间片调度的同步任务处理方法对应的操作。
本发明还公开了:D24.一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如A1-A11中任一项所述的基于时间片调度的同步任务处理方法对应的操作。

Claims (10)

1.一种基于时间片调度的同步任务处理方法,包括:
根据至少一个从节点发送的同步请求,生成同步任务;
将所述同步任务置入任务队列中;
由线程池中的任一空闲线程从所述任务队列中获取并执行同步任务;
判断同步任务的执行时间是否已到达预设时间片规定的时间,若是,将所述同步任务重置入所述任务队列中。
2.根据权利要求1所述的方法,其中,所述由线程池中的任一空闲线程从所述任务队列中获取并执行同步任务进一步包括:
所述空闲线程根据指针指向的队列位置获取同步任务,根据所述同步任务携带的任务描述信息执行同步任务。
3.根据权利要求2所述的方法,其中,所述任务描述信息包括:表名称、数据分片标识、从节点标识以及同步偏移量;
在执行同步任务过程中,所述方法还包括:根据同步任务的执行情况动态刷新所述同步偏移量。
4.根据权利要求1-3中任一项所述的方法,其中,在所述生成同步任务之后,所述方法还包括:
根据同步任务携带的任务描述信息,生成任务键值;
查询任务信息表中是否已存储包含所述任务键值的任务信息;
若所述任务信息表中未存储有包含所述任务键值的任务信息,则在所述将同步任务置入任务队列中之后,将包含任务键值以及与任务键值对应的同步任务在任务队列中的队列位置的任务信息存储在任务信息表中;
若所述任务信息表中已存储有包含所述任务键值的任务信息,则在所述将同步任务置入任务队列中之后,所述方法还包括:更新所述任务信息表中所述任务键值对应的同步任务在任务队列中的队列位置。
5.根据权利要求4所述的方法,其中,在所述由线程池中的任一空闲线程从所述任务队列中获取并执行同步任务之后,所述方法还包括:
将所述任务信息表中已被执行的同步任务的任务键值对应的队列位置更新为指定值。
6.根据权利要求5所述的方法,其中,在所述将同步任务重置入所述任务队列中之前,所述方法还包括:在所述任务信息表中查询同步任务的任务键值对应的是否为所述指定值;
若是,则在将同步任务重置入所述任务队列中之后,将所述同步任务的任务键值对应的指定值更新为重置后的队列位置;
若否,则根据任务标识确定是否丢弃所述同步任务。
7.根据权利要求6所述的方法,其中,所述根据任务标识确定是否丢弃所述同步任务具体为:比较所述任务信息表中同步任务的任务标识与待重置入任务队列的同步任务的任务标识,若比较结果表明所述任务信息表中同步任务为较晚生成的同步任务,则丢弃所述待重置入任务队列的同步任务。
8.一种基于时间片调度的同步任务处理装置,包括:
生成模块,适于根据至少一个从节点发送的同步请求,生成同步任务;
置入模块,适于将所述同步任务置入任务队列中;
执行模块,适于由线程池中的任一空闲线程从所述任务队列中获取并执行同步任务;
重置模块,适于判断同步任务的执行时间是否已到达预设时间片规定的时间,若是,将所述同步任务重置入所述任务队列中。
9.一种计算设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如权利要求1-7中任一项所述的基于时间片调度的同步任务处理方法对应的操作。
10.一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如权利要求1-7中任一项所述的基于时间片调度的同步任务处理方法对应的操作。
CN201711478190.8A 2017-12-29 2017-12-29 基于时间片调度的同步任务处理方法及装置 Active CN108108463B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711478190.8A CN108108463B (zh) 2017-12-29 2017-12-29 基于时间片调度的同步任务处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711478190.8A CN108108463B (zh) 2017-12-29 2017-12-29 基于时间片调度的同步任务处理方法及装置

Publications (2)

Publication Number Publication Date
CN108108463A true CN108108463A (zh) 2018-06-01
CN108108463B CN108108463B (zh) 2021-08-24

Family

ID=62214862

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711478190.8A Active CN108108463B (zh) 2017-12-29 2017-12-29 基于时间片调度的同步任务处理方法及装置

Country Status (1)

Country Link
CN (1) CN108108463B (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110097268A (zh) * 2019-04-19 2019-08-06 北京金山安全软件有限公司 一种任务分配方法、装置、电子设备及存储介质
CN110292312A (zh) * 2019-06-04 2019-10-01 口碑(上海)信息技术有限公司 饮品订单的处理方法及装置
CN110688231A (zh) * 2018-07-04 2020-01-14 阿里巴巴集团控股有限公司 读写请求统计信息的处理方法、装置和系统
CN111027101A (zh) * 2019-12-17 2020-04-17 北京交大思诺科技股份有限公司 一种运行周期可灵活分配的安全计算机平台
CN111190751A (zh) * 2019-12-30 2020-05-22 广州酷狗计算机科技有限公司 基于歌单的任务处理方法、装置、计算机设备及存储介质
CN111488317A (zh) * 2020-04-16 2020-08-04 北京雷石天地电子技术有限公司 一种基于文件变化内容的文件同步方法和装置
CN111488318A (zh) * 2020-04-16 2020-08-04 北京雷石天地电子技术有限公司 一种基于多级反馈队列的文件同步方法和装置
CN112559243A (zh) * 2019-09-25 2021-03-26 阿里巴巴集团控股有限公司 数据快照方法、装置、电子设备及计算机可读存储介质
CN113342839A (zh) * 2021-08-06 2021-09-03 北京开科唯识技术股份有限公司 数据处理方法、装置、终端设备和存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101452404A (zh) * 2008-12-09 2009-06-10 中兴通讯股份有限公司 一种嵌入式操作系统的任务调度装置及方法
CN101957780A (zh) * 2010-08-17 2011-01-26 中国电子科技集团公司第二十八研究所 一种基于资源状态信息的网格任务调度处理器及方法
US20130060736A1 (en) * 2010-07-06 2013-03-07 Martin Casado Method and apparatus for replicating network information base in a distributed network control system with multiple controller instances
CN104731956A (zh) * 2015-04-02 2015-06-24 北京奇虎科技有限公司 同步数据的方法、系统及相关数据库
US9135083B2 (en) * 2008-07-14 2015-09-15 International Business Machines Corporation Methods for single-owner multi-consumer work queues for repeatable tasks
CN105389209A (zh) * 2015-12-25 2016-03-09 中国建设银行股份有限公司 一种异步批量任务处理方法及系统
CN107423303A (zh) * 2016-05-24 2017-12-01 北京京东尚科信息技术有限公司 数据同步的方法和系统

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9135083B2 (en) * 2008-07-14 2015-09-15 International Business Machines Corporation Methods for single-owner multi-consumer work queues for repeatable tasks
CN101452404A (zh) * 2008-12-09 2009-06-10 中兴通讯股份有限公司 一种嵌入式操作系统的任务调度装置及方法
US20130060736A1 (en) * 2010-07-06 2013-03-07 Martin Casado Method and apparatus for replicating network information base in a distributed network control system with multiple controller instances
CN101957780A (zh) * 2010-08-17 2011-01-26 中国电子科技集团公司第二十八研究所 一种基于资源状态信息的网格任务调度处理器及方法
CN104731956A (zh) * 2015-04-02 2015-06-24 北京奇虎科技有限公司 同步数据的方法、系统及相关数据库
CN105389209A (zh) * 2015-12-25 2016-03-09 中国建设银行股份有限公司 一种异步批量任务处理方法及系统
CN107423303A (zh) * 2016-05-24 2017-12-01 北京京东尚科信息技术有限公司 数据同步的方法和系统

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110688231A (zh) * 2018-07-04 2020-01-14 阿里巴巴集团控股有限公司 读写请求统计信息的处理方法、装置和系统
CN110688231B (zh) * 2018-07-04 2023-02-28 阿里巴巴集团控股有限公司 读写请求统计信息的处理方法、装置和系统
CN110097268A (zh) * 2019-04-19 2019-08-06 北京金山安全软件有限公司 一种任务分配方法、装置、电子设备及存储介质
CN110292312A (zh) * 2019-06-04 2019-10-01 口碑(上海)信息技术有限公司 饮品订单的处理方法及装置
CN112559243A (zh) * 2019-09-25 2021-03-26 阿里巴巴集团控股有限公司 数据快照方法、装置、电子设备及计算机可读存储介质
CN111027101A (zh) * 2019-12-17 2020-04-17 北京交大思诺科技股份有限公司 一种运行周期可灵活分配的安全计算机平台
CN111027101B (zh) * 2019-12-17 2021-11-12 北京交大思诺科技股份有限公司 一种运行周期可灵活分配的安全计算机平台
CN111190751A (zh) * 2019-12-30 2020-05-22 广州酷狗计算机科技有限公司 基于歌单的任务处理方法、装置、计算机设备及存储介质
CN111190751B (zh) * 2019-12-30 2023-12-08 广州酷狗计算机科技有限公司 基于歌单的任务处理方法、装置、计算机设备及存储介质
CN111488317A (zh) * 2020-04-16 2020-08-04 北京雷石天地电子技术有限公司 一种基于文件变化内容的文件同步方法和装置
CN111488318A (zh) * 2020-04-16 2020-08-04 北京雷石天地电子技术有限公司 一种基于多级反馈队列的文件同步方法和装置
CN113342839A (zh) * 2021-08-06 2021-09-03 北京开科唯识技术股份有限公司 数据处理方法、装置、终端设备和存储介质

Also Published As

Publication number Publication date
CN108108463B (zh) 2021-08-24

Similar Documents

Publication Publication Date Title
CN108108463A (zh) 基于时间片调度的同步任务处理方法及装置
US9665404B2 (en) Optimization of map-reduce shuffle performance through shuffler I/O pipeline actions and planning
US9852204B2 (en) Read-only operations processing in a paxos replication system
US10157108B2 (en) Multi-way, zero-copy, passive transaction log collection in distributed transaction systems
CN104731956B (zh) 同步数据的方法、系统及相关数据库
CN107113341B (zh) 用于数据划分的分布式关系数据库管理系统中事务的高吞吐量处理的系统
CN107391628A (zh) 数据同步方法及装置
US9218210B2 (en) Distributed processing system
JP2014123365A (ja) MapReduceフレームワークにおけるデータ処理の最適化のためのデバイスおよび方法
CN113204428B (zh) 资源调度方法、装置、电子设备以及计算机可读存储介质
CN106933664B (zh) 一种Hadoop集群的资源调度方法及装置
TW201627882A (zh) 先決式資料庫系統及其資料搬移方法
CN108924187B (zh) 基于机器学习的任务处理方法、装置和终端设备
JP6519111B2 (ja) データ処理制御方法、データ処理制御プログラムおよびデータ処理制御装置
CN108241539B (zh) 基于分布式系统的交互式大数据查询方法、装置、存储介质和终端设备
WO2017054650A1 (zh) 任务分发方法、装置及系统
CN111105066B (zh) 资源受限项目调度方法、装置、计算机设备、及存储介质
CN107391634A (zh) 数据迁移方法及装置
CN107451013A (zh) 基于分布式系统的数据恢复方法、装置及系统
CN111179008B (zh) 一种信息状态的更新方法、装置、系统及存储介质
CN107204998B (zh) 处理数据的方法和装置
JP2022521412A (ja) 分散システムにおける非同期ストレージ管理
US9336049B2 (en) Method, system, and program for scheduling jobs in a computing system
CN113761052A (zh) 数据库同步方法和装置
WO2017018978A1 (en) Scheduling jobs in a computing cluster

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