一种数据同步的方法和装置与流程

文档序号:13519028阅读:118来源:国知局

本申请涉及数据处理技术领域,特别涉及一种数据同步的方法和装置。



背景技术:

目前,许多大型系统需要承载大量的数据操作。为了提升系统对数据操作的处理效率,系统可以将大量的数据操作分配到多个不同的设备上执行。由于不同的设备在执行不同的数据操作时生成不同的数据信息,因此,各个用于执行数据操作的设备之间需要进行数据同步,以使得各个设备上保存的数据信息完全一致,从而避免数据不一致而导致系统无法正常运行。

在现有技术中,多个设备之间的数据同步可以采用开源工具zookeeper实现。具体地,在系统中具有多个用于执行数据操作的设备下,对于每个设备上执行的每一个数据操作,zookeeper服务器为其创建一个目录节点并在该目录节点中记录该数据操作所产生的数据信息。对于任意一个用于执行数据操作的设备,该设备需要为zookeeper服务器中每一个目录节点采用一个单独的线程进行监听,这样该设备才能发现每一个目录节点下是否产生了新的数据操作对应的目录节点,从而才能将系统中所有新的数据操作对应的数据信息同步到该设备本地。但是,由于zookeeper服务器中具有大量数据操作对应的目录节点,该设备需要提供大量的线程监听zookeeper上新产生的数据信息,这往往超出了该设备硬件处理能力的上限,从而导致该设备对数据同步的速度大大降低以及该设备的负载过大。



技术实现要素:

本申请实施例所要解决的技术问题是,提供一种数据同步的方法和装置,以使得用于执行数据操作的设备能够采用一个线程监听到系统中所有新产生的数据信息,从而减轻该设备的负载并提高数据同步的速度。

第一方面,本申请实施例提供了一种数据同步的系统,包括数据库和用于执行数据操作的设备;

所述设备,用于向数据库发送携带有基准事件标识的第一查询请求,接收所述数据库发送的目标数据标识,向所述数据库发送携带有所述目标数据标识的第二查询请求,以及,接收并保存所述数据库发送的目标数据信息;

所述数据库,用于接收所述第一查询请求,根据所述基准事件标识确定目标事件标识,在事件表中查找所述目标事件标识对应的所述目标数据标识并向所述设备发送,接收所述第二查询请求,以及,在数据信息表中查找所述目标数据标识对应的所述目标数据信息并向所述设备发送;

其中,所述基准事件标识用于反映所述设备上已保存的数据信息,所述目标事件标识用于反映所述设备上未保存的数据信息;

所述目标事件标识用于标识在所述系统中出现过的目标数据操作事件,所述目标数据标识用于标识所述目标数据信息,所述目标数据信息是所述目标数据操作事件产生的信息。

第二方面,本申请实施例提供了一种数据同步的方法,应用于系统中用于执行数据操作的设备,包括:

向数据库发送携带有基准事件标识的第一查询请求,以便所述数据库根据所述基准事件标识确定目标事件标识,在事件表中查找所述目标事件标识对应的目标数据标识并向所述设备发送,其中,所述基准事件标识用于反映所述设备上已保存的数据信息,所述目标事件标识用于反映所述设备上未保存的数据信息;

向所述数据库发送携带有所述目标数据标识的第二查询请求,以便所述数据库在数据信息表中查找所述目标数据标识对应的目标数据信息并向所述设备发送;

接收并保存所述目标数据信息;

其中,所述目标事件标识用于标识在所述系统中出现过的目标数据操作事件,所述目标数据标识用于标识所述目标数据信息,所述目标数据信息是所述目标数据操作事件产生的信息。

第三方面,本申请实施例提供了一种数据同步的方法,应用于系统中的数据库,包括:

接收设备发送的第一查询请求,所述设备为所述系统中用于执行数据操作的设备,所述第一查询请求中携带有基准事件标识,所述基准事件标识用于反映所述设备上已保存的数据信息;

根据所述基准事件标识确定目标事件标识,并在事件表中查找所述目标事件标识对应的目标数据标识并向所述设备发送,所述目标事件标识用于反映所述设备上未保存的数据信息;

接收所述设备发送的第二查询请求,所述第二查询请求中携带有所述目标数据标识;

在数据信息表中查找所述目标数据标识对应的目标数据信息并向所述设备发送,以便所述设备保存所述目标数据信息;

其中,所述目标事件标识用于标识在所述系统中出现过的目标数据操作事件,所述目标数据标识用于标识所述目标数据信息,所述目标数据信息是所述目标数据操作事件产生的信息。

第四方面,本申请实施例提供了一种数据同步的装置,配置于系统中用于执行数据操作的设备,包括:

第一发送单元,用于向数据库发送携带有基准事件标识的第一查询请求,以便所述数据库根据所述基准事件标识确定目标事件标识,在事件表中查找所述目标事件标识对应的目标数据标识并向所述设备发送,其中,所述基准事件标识用于反映所述设备上已保存的数据信息,所述目标事件标识用于反映所述设备上未保存的数据信息;

第二发送单元,用于向所述数据库发送携带有所述目标数据标识的第二查询请求,以便所述数据库在数据信息表中查找所述目标数据标识对应的目标数据信息并向所述设备发送;

第一保存单元,用于接收并保存所述目标数据信息;

其中,所述目标事件标识用于标识在所述系统中出现过的目标数据操作事件,所述目标数据标识用于标识所述目标数据信息,所述目标数据信息是所述目标数据操作事件产生的信息。

第五方面,本申请实施例提供了一种数据同步的装置,配置于系统中的数据库,包括:

第一接收单元,用于接收设备发送的第一查询请求,所述设备为所述系统中用于执行数据操作的设备,所述第一查询请求中携带有基准事件标识,所述基准事件标识用于反映所述设备上已保存的数据信息;

第一查找单元,用于根据所述基准事件标识确定目标事件标识,并在事件表中查找所述目标事件标识对应的目标数据标识并向所述设备发送,所述目标事件标识用于反映所述设备上未保存的数据信息;

第二接收单元,用于接收所述设备发送的第二查询请求,所述第二查询请求中携带有所述目标数据标识;

第二查找单元,用于在数据信息表中查找所述目标数据标识对应的目标数据信息并向所述设备发送,以便所述设备保存所述目标数据信息;

其中,所述目标事件标识用于标识在所述系统中出现过的目标数据操作事件,所述目标数据标识用于标识所述目标数据信息,所述目标数据信息是所述目标数据操作事件产生的信息。

第六方面,本申请实施例提供了一种数据操作事件的监听方法,应用于系统中用于执行数据操作的设备,包括:

向数据库发送携带有基准事件标识的第一查询请求,以便所述数据库根据所述基准事件标识确定目标事件标识,在事件表中查找所述目标事件标识对应的目标数据标识并向所述设备发送;

接收所述数据库发送的所述目标事件标识,并根据所述目标事件标识识别所述系统中所述设备未同步过数据的目标数据操作事件;

其中,所述基准事件标识用于反映所述设备上已保存的数据信息,所述目标事件标识用于反映所述设备上未保存的数据信息,所述目标事件标识用于标识在所述系统中出现过的目标数据操作事件。

第七方面,本申请实施例提供了一种数据操作事件的监听方法,应用于系统中的数据库,包括:

接收设备发送的第一查询请求,所述设备为所述系统中用于执行数据操作的设备,所述第一查询请求中携带有基准事件标识,所述基准事件标识用于反映所述设备上已保存的数据信息;

根据所述基准事件标识确定目标事件标识,并在事件表中查找所述目标事件标识对应的目标数据标识并向所述设备发送,所述目标事件标识用于反映所述设备上未保存的数据信息;

其中,所述目标事件标识用于标识在所述系统中出现过的目标数据操作事件。

第八方面,本申请实施例提供了一种数据操作事件的监听装置,配置于系统中用于执行数据操作的设备,包括:

发送单元,用于向数据库发送携带有基准事件标识的第一查询请求,以便所述数据库根据所述基准事件标识确定目标事件标识,在事件表中查找所述目标事件标识对应的目标数据标识并向所述设备发送。

接收单元,用于接收所述数据库发送的所述目标事件标识;

识别单元,用于根据所述目标事件标识识别所述系统中所述设备未同步过数据的目标数据操作事件;

其中,所述基准事件标识用于反映所述设备上已保存的数据信息,所述目标事件标识用于反映所述设备上未保存的数据信息,所述目标事件标识用于标识在所述系统中出现过的目标数据操作事件。

第九方面,本申请实施例提供了一种数据操作事件的监听装置,其特征在于,配置于系统中的数据库,包括:

接收单元,用于接收设备发送的第一查询请求,所述设备为所述系统中用于执行数据操作的设备,所述第一查询请求中携带有基准事件标识,所述基准事件标识用于反映所述设备上已保存的数据信息;

查找单元,用于根据所述基准事件标识确定目标事件标识,并在事件表中查找所述目标事件标识对应的目标数据标识并向所述设备发送,所述目标事件标识用于反映所述设备上未保存的数据信息;

其中,所述目标事件标识用于标识在所述系统中出现过的目标数据操作事件。

第十方面,本申请实施例提供了一种数据同步的系统,包括数据库和用于执行数据操作的设备;

所述设备,用于在执行第一目标数据操作事件之后,生成对应于所述第一目标数据操作事件的记录指令并向所述数据库发送;

所述数据库,用于接收所述记录指令,为所述第一目标数据操作事件分配第一目标事件标识和第一目标数据标识,将所述第一目标事件标识与所述第一目标数据标识对应地记录到事件表中,将所述第一目标数据标识与所述第一目标数据操作事件产生的第一目标数据信息对应地记录到数据信息表中;

所述事件表和所述数据信息表用于所述系统中除所述设备之外其他用于执行数据操作的设备同步所述第一目标数据信息。

第十一方面,本申请实施例提供了一种数据同步的方法,应用于系统中用于执行数据操作的设备,包括:

在执行第一目标数据操作事件之后,生成对应于所述第一目标数据操作事件的记录指令并向所述数据库发送,以便所述数据库接收所述记录指令,为所述第一目标数据操作事件分配第一目标事件标识和第一目标数据标识,将所述第一目标事件标识与所述第一目标数据标识对应地记录到事件表中,将所述第一目标数据标识与所述第一目标数据操作事件产生的第一目标数据信息对应地记录到数据信息表中;

所述事件表和所述数据信息表用于所述系统中除所述设备之外其他用于执行数据操作的设备同步所述第一目标数据信息。

第十二方面,本申请实施例提供了一种数据同步的方法,应用于系统中的数据库,包括:

接收设备在执行第一目标数据操作事件之后发送的对应于所述第一目标数据操作事件的记录指令,所述设备为所述系统中用于执行数据操作的设备;

按照所述记录指令,为所述第一目标数据操作事件分配第一目标事件标识和第一目标数据标识,将所述第一目标事件标识与所述第一目标数据标识对应地记录到事件表中,将所述第一目标数据标识与所述第一目标数据操作事件产生的第一目标数据信息对应地记录到数据信息表中;

所述事件表和所述数据信息表用于所述系统中除所述设备之外其他用于执行数据操作的设备同步所述第一目标数据信息。

第十三方面,本申请实施例提供了一种数据同步的装置,配置于系统中用于执行数据操作的设备,包括:

生成单元,用于在执行第一目标数据操作事件之后,生成对应于所述第一目标数据操作事件的记录指令;

第一发送单元,用于向所述数据库发送所述记录指令,以便所述数据库接收所述记录指令,为所述第一目标数据操作事件分配第一目标事件标识和第一目标数据标识,将所述第一目标事件标识与所述第一目标数据标识对应地记录到事件表中,将所述第一目标数据标识与所述第一目标数据操作事件产生的第一目标数据信息对应地记录到数据信息表中;

所述事件表和所述数据信息表用于所述系统中除所述设备之外其他用于执行数据操作的设备同步所述第一目标数据信息。

第十四方面,本申请实施例提供了一种数据同步的装置,配置于系统中的数据库,包括:

第一接收单元,用于接收设备在执行第一目标数据操作事件之后发送的对应于所述第一目标数据操作事件的记录指令,所述设备为所述系统中用于执行数据操作的设备;

事件记录单元,用于按照所述记录指令,为所述第一目标数据操作事件分配第一目标事件标识和第一目标数据标识,将所述第一目标事件标识与所述第一目标数据标识对应地记录到事件表中,将所述第一目标数据标识与所述第一目标数据操作事件产生的第一目标数据信息对应地记录到数据信息表中;

所述事件表和所述数据信息表用于所述系统中除所述设备之外其他用于执行数据操作的设备同步所述第一目标数据信息。

与现有技术相比,本申请具有以下优点:

根据本申请实施例的技术方案,数据操作所产生的数据信息存储在在数据库的事件表和数据信息表中,事件表用于记录事件标识与数据标识之间的映射关系,数据信息表用于记录数据标识与数据信息之间的映射关系。具有映射关系的事件标识、数据标识和数据信息对应于系统中出现过的同一数据操作事件,其中,该事件标识用于标识该数据操作事件,该数据信息是该数据操作事件产生的信息,该数据标识用于标识该数据信息。若系统中用于执行数据操作的设备需要同步数据,该设备向数据库发送携带有基准事件标识的第一查询请求。该数据库根据该基准事件标识确定目标事件标识,在事件表中查找该目标事件标识对应的目标数据标识并向该所设备发送,其中,该基准事件标识用于反映该设备上已保存的数据信息,该目标事件标识用于反映该设备上未保存的数据信息。该设备响应于接收到目标数据标识,向该数据库发送携带有该目标数据标识的第二查询请求。该数据库在数据信息表中查找该目标数据标识对应的目标数据信息并向该设备发送。该设备接收并保存该目标数据信息。这样就实现了将该目标数据信息同步到该设备。由此可见,对于用于执行数据操作的设备来说,只需要采用一个线程向数据库发送携带基准事件标识的第一查询请求并接收目标数据标识,就可以监听到系统中所有新出现的数据操作事件,再通过向数据库发送携带目标数据标识的第二查询请求就可以同步到系统中所有新产生的数据信息,从而避免了设备因对系统中新产生数据信息的监听占用大量线程而超出设备的硬件处理能力上限,不仅提高了设备同步数据的速度,也减轻了设备自身的负载压力。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例中一应用场景所涉及的网络系统框架示意图;

图2为本申请实施例中所涉及的网络系统示例的框架示意图;

图3为本申请实施例中一种数据同步的系统示意图;

图4为本申请实施例中一种数据同步的系统示意图;

图5为本申请实施例中一种数据同步的方法的流程示意图;

图6为本申请实施例中一种数据同步的方法的流程示意图;

图7为本申请实施例中一种数据同步的方法的流程示意图;

图8为本申请实施例中一种数据同步的方法的流程示意图;

图9为本申请实施例中一种数据同步的方法的流程示意图;

图10为本申请实施例中一种数据同步的方法的流程示意图;

图11为本申请实施例中一种数据同步的装置的结构示意图;

图12为本申请实施例中一种数据同步的装置的结构示意图;

图13为本申请实施例中一种数据同步的装置的结构示意图;

图14为本申请实施例中一种数据同步的装置的结构示意图;

图15为本申请实施例中一种数据同步的装置的结构示意图;

图16为本申请实施例中一种数据同步的装置的结构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

本申请可用于众多通用或专用的计算系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络pc、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。

本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

本申请的发明人经过研究发现,在现有技术中,在具有多个用于执行数据操作的设备的系统中,若系统中出现的数据操作数量庞大,设备对数据信息的同步速度就会变得非常慢,并且,设备本身的负载也会变得过大。而现有技术之所以存在这些问题,原因在于,对于系统中出现过的每一个数据操作,zookeeper服务器为其创建一个目录节点并在该目录节点中记录该数据操作所产生的数据信息,因此,用于执行数据操作的设备需要为zookeeper服务器中每一个目录节点采用一个单独的线程进行监听,这样该设备才能发现每一个目录节点下是否出现了新的数据操作对应的目录节点,从而才能将系统中所有新产生的数据信息同步到该设备本地,而在系统中出现过数量庞大的数据操作的情况下,在zookeeper服务器中具有大量数据操作对应的目录节点,因此,该设备需要提供大量的线程监听zookeeper上新产生的数据信息,这往往超出了该设备硬件处理能力的上限,从而导致该设备对数据同步的速度大大降低以及该设备的负载过大。

为了解决现有技术的上述问题,在本申请实施例中,数据操作所产生的数据信息存储在数据库的事件表和数据信息表中,其中,系统中出现过的数据操作事件通过事件表进行记录,系统中产生的数据信息通过数据信息进行记录。具体地,事件表用于记录事件标识与数据标识之间的映射关系,数据信息表用于记录数据标识与数据信息之间的映射关系。具有映射关系的事件标识、数据标识和数据信息对应于系统中出现过的同一数据操作事件,其中,该事件标识用于标识该数据操作事件,该数据信息是该数据操作事件产生的信息,该数据标识用于标识该数据信息。对于用于执行数据操作的设备来说,只需要采用一个线程向数据库发送携带基准事件标识的第一查询请求,数据库就可以基于用于反映该设备上已保存的数据信息的基准事件标识在事件表中确定出用于反映该设备上未保存的数据信息的目标事件标识,并基于事件表向该设备返回与目标事件标识对应的目标数据标识,从而该设备就可以通过向数据库发送携带目标数据标识的第二查询请求而获得数据库基于数据信息表返回的与目标数据标识对应的目标数据信息,从而在该设备上实现目标数据信息的同步。由此可见,该设备只需要采用一个线程就可以监听到系统中所有新出现的数据操作事件并接收目标数据标识,再通过向数据库发送携带目标数据标识的第二查询请求就可以同步到系统中所有新产生的数据信息,从而避免了设备因对系统中新产生数据信息的监听占用大量线程而超出设备的硬件处理能力上限,不仅提高了设备同步数据的速度,也减轻了设备自身的负载压力。

举例说明,本申请实施例的场景之一,例如可以是应用到如图1所示的分布式系统。在该系统中具有多个用于执行数据操作的设备101。每个设备101都可以与数据库102进行交互。

在数据库102中存储有事件表和数据信息表,所有设备101执行过的数据操作事件通过事件表进行记录,所有设备101执行数据操作事件所产生的数据信息通过数据信息表进行记录。具体地,事件表用于记录事件标识与数据标识之间的映射关系,数据信息表用于记录数据标识与数据信息之间的映射关系。具有映射关系的事件标识、数据标识和数据信息对应于同一数据操作事件,其中,该事件标识用于标识该数据操作事件,该数据信息是该数据操作事件产生的信息,该数据标识用于标识该数据信息。

对于任意一个设备101来说,该设备101向数据库发送携带有基准事件标识的第一查询请求,该基准事件标识用于反映该设备101上已保存的数据信息。数据库102根据该基准事件标识可以在事件表中确定用于反映该设备101上未保存的数据信息的目标事件标识,并在事件表中查找目标事件标识对应的目标数据标识向该设备101发送。该设备101响应于接收到目标数据标识,向数据库102发送携带有目标数据标识的第二查询请求。数据库102在数据信息表中查找目标数据标识对应的目标数据信息向该设备101发送。该设备101接收并保存目标数据信息。这样就实现了在该设备101上同步目标数据信息。

作为一种示例,上述系统例如可以是如图2所示的分布式执行系统。所述设备101例如可以是分布式执行系统中的控制服务器201,所述数据库102例如可以是分布式执行系统中的数据库202。此外,分布式执行系统中还包括客户端任务执行服务器203。其中,控制服务器201为资源管理层,负责任务的分配、资源的分配、客户端的api接口等数据操作的执行。客户端任务执行服务器103为任务执行层,负责执行控制服务器101分配的任务。数据库103用于存储系统中出现过的数据操作事件及其产生的数据信息。在分布式执行系统中,控制服务器101可以被水平扩展成多台,各控制服务器101分担系统中数据操作的执行,因此,每一个控制服务器101需要从数据库103同步其他控制服务器101执行的数据操作所产生的数据信息。也即,控制服务器101是前述系统中用于执行数据操作的设备101。

可以理解的是,上述场景仅是本申请实施例提供的一个场景示例,本申请实施例并不限于此场景。

下面结合附图,详细说明本申请的各种非限制性实施方式。

示例性系统

参见图3,示出了本申请实施例中一种数据同步的系统示意图。本实施例的系统可以包括数据库302和用于执行数据操作的设备301。其中:

所述设备301,用于向数据库302发送携带有基准事件标识的第一查询请求,接收所述数据库302发送的目标数据标识,向所述数据库302发送携带有所述目标数据标识的第二查询请求,以及,接收并保存所述数据库302发送的目标数据信息;

所述数据库302,用于接收所述第一查询请求,根据所述基准事件标识确定目标事件标识,在事件表中查找所述目标事件标识对应的所述目标数据标识并向所述设备301发送,接收所述第二查询请求,以及,在数据信息表中查找所述目标数据标识对应的所述目标数据信息并向所述设备301发送;

其中,所述基准事件标识用于反映所述设备301上已保存的数据信息,所述目标事件标识用于反映所述设备301上未保存的数据信息;

所述目标事件标识用于标识在所述系统中出现过的目标数据操作事件,所述目标数据标识用于标识所述目标数据信息,所述目标数据信息是所述目标数据操作事件产生的信息。

在本实施例的一些实施方式中:

所述设备301,还用于响应于开机启动的触发指令,向所述数据库302发送第三查询请求,以及,接收并保存所述数据信息表中所有的数据信息;

所述数据库302,还用于接收所述第三查询请求,响应于第三查询请求将所述数据信息表中所有的数据信息发送给所述设备301。

在本实施例的另一些实施方式中,所述基准事件标识为用于表示基准数据操作事件在所述系统中的出现顺序的第一编码,所述基准数据操作事件为在所述设备301中已保存的数据信息所对应的数据操作事件中最后出现的事件,所述目标事件标识为用于表示所述目标数据操作事件在所述系统中的出现顺序的第二编码,所述第二编码大于所述第一编码。

在本实施例的又一些实施方式中,所述设备301,还用于:

判断所述目标事件标识所表示的第二出现顺序相对于所述基准事件标识所表示的第一出现顺序是否为递增的顺序;

响应于所述第一出现顺序相对于所述第二出现顺序为递增的顺序,执行所述向所述数据库发送携带有所述目标数据标识的第二查询请求;

响应于所述第一出现顺序相对于所述第二出现顺序不是递增的顺序,记录所述目标事件标识并判断最近n次记录的目标事件标识是否相同,并响应于最近n次记录的目标事件标识相同,执行向所述数据库发送携带有所述目标数据标识的第二查询请求,其中,n为预设值。

在本实施例的再一些实施方式中,

所述向所述数据库302发送携带有所述目标数据标识的第二查询请求,具体为:通过目标事件类型对应的事件处理程序向所述数据库302发送携带有所述目标数据标识的第二查询请求;

所述接收并保存所述数据库302发送的目标数据信息,具体为:通过所述目标事件类型对应的事件处理程序接收并保存所述目标数据信息;

所述数据库302,还用于在所述事件表中查找所述目标事件标识对应的目标事件类型并向所述设备302发送;

其中,所述目标事件类型用于表示所述目标数据操作事件的操作类型。

在本实施例的又再一些实施方式中,所述向数据库发送携带有基准事件标识的第一查询请求,具体为:按照预先设置的轮询周期,向所述数据库发送携带有所述基准事件标识的第一查询请求。

在本实施例中,对于用于执行数据操作的设备来说,只需要采用一个线程向数据库发送携带基准事件标识的第一查询请求并接收目标数据标识,就可以监听到系统中所有新出现的数据操作事件,再通过向数据库发送携带目标数据标识的第二查询请求就可以同步到系统中所有新产生的数据信息,从而避免了设备因对系统中新产生数据信息的监听占用大量线程而超出设备的硬件处理能力上限,不仅提高了设备同步数据的速度,也减轻了设备自身的负载压力。

参见图4,示出了本申请实施例中一种数据同步的系统示意图。本实施例的系统可以包括数据库402和用于执行数据操作的设备401。其中:

所述设备402,用于在执行第一目标数据操作事件之后,生成对应于所述第一目标数据操作事件的记录指令并向所述数据库401发送;

所述数据库401,用于接收所述记录指令,为所述第一目标数据操作事件分配第一目标事件标识和第一目标数据标识,将所述第一目标事件标识与所述第一目标数据标识对应地记录到事件表中,将所述第一目标数据标识与所述第一目标数据操作事件产生的第一目标数据信息对应地记录到数据信息表中;

所述事件表和所述数据信息表用于所述系统中除所述设备401之外其他用于执行数据操作的设备同步所述第一目标数据信息。

在本实施例的一些实施方式中:

所述设备401,还可以用于向数据库402发送携带有基准事件标识的第一查询请求,接收所述数据库402发送的第二目标数据标识,向所述数据库402发送携带有所述第二目标数据标识的第二查询请求,以及,接收并保存所述数据库402发送的所述第二目标数据信息;

所述数据库402,还可以用于接收所述第一查询请求,根据所述基准事件标识确定第二目标事件标识,在事件表中查找所述第二目标事件标识对应的所述第二目标数据标识并向所述设备401发送,接收所述第二查询请求,以及,在数据信息表中查找所述第二目标数据标识对应的所述第二目标数据信息并向所述设备401发送;

其中,所述基准事件标识用于反映所述设备401上已保存的数据信息,所述第二目标事件标识用于反映所述设备401上未保存的数据信息;

所述第二目标数据信息是第二目标数据操作事件产生的信息,所述第二目标数据事件是所述系统中除所述设备401之外其他用于执行数据操作的设备执行过的数据操作事件。

在本实施例的另一些实施方式中,所述基准事件标识可以为用于表示基准数据操作事件在所述系统中的出现顺序的第一编码,所述基准数据操作事件为在所述设备401中已保存的数据信息所对应的数据操作事件中最后出现的事件,所述目标事件标识为用于表示所述第二目标数据操作事件在所述系统中的出现顺序的第二编码,所述第二编码大于所述第一编码。

在本实施例的又一些实施方式中,所述设备401,还可以用于:

判断所述第二目标事件标识所表示的第二出现顺序相对于所述基准事件标识所表示的第一出现顺序是否为递增的顺序;

响应于所述第一出现顺序相对于所述第二出现顺序为递增的顺序,执行所述向所述数据库发送携带有所述第二目标数据标识的第二查询请求;

响应于所述第一出现顺序相对于所述第二出现顺序不是递增的顺序,记录所述第二目标事件标识并判断最近n次记录的第二目标事件标识是否相同;

响应于最近n次记录的第二目标事件标识相同,执行向所述数据库发送携带有所述第二目标数据标识的第二查询请求,其中,n为预设值。

在本实施例中,对于用于执行数据操作的设备来说,其所执行的数据操作事件及产生的数据信息可以记录到数据库的事件表和数据信息表中,这样,其他设备只需要采用一个线程向数据库发送查询请求,就可以监听到系统中所有新出现的数据操作事件,从而进一步就可以同步到系统中所有新产生的数据信息,这样就避免了设备因对系统中新产生数据信息的监听占用大量线程而超出设备的硬件处理能力上限,不仅提高了设备同步数据的速度,也减轻了设备自身的负载压力。

示例性方法

参见图5,示出了本申请实施例中一种数据同步的方法的流程示意图。本实施例的方法可以应用于系统中用于执行数据操作的设备。所述方法例如具体可以包括以下步骤:

501、向数据库发送携带有基准事件标识的第一查询请求,以便所述数据库根据所述基准事件标识确定目标事件标识,在事件表中查找所述目标事件标识对应的目标数据标识并向所述设备发送,其中,所述基准事件标识用于反映所述设备上已保存的数据信息,所述目标事件标识用于反映所述设备上未保存的数据信息。

在本实施例中,数据库中存储有事件表和数据信息表,系统执行数据操作而产生的数据信息是通过这两个数据表进行记录的。其中,事件表用于记录系统中所有出现过的数据操作事件,数据信息表用于与数据操作事件对应地记录系统中因执行数据操作而产生的所有数据信息。

在事件表中,具体可以记录事件标识与数据标识之间的映射关系。例如,在事件表中为系统中出现过的每一个数据操作事件设置一个表项,该表项包括用于标识该数据操作事件的事件标识以及用于描述该数据操作事件的事件信息,在该事件信息中包含数据标识,该数据标识用于标识该数据操作事件所产生的数据信息。

可以理解的是,除了数据标识,该事件信息还可以包括其他用于描述该数据操作事件的信息。作为一种示例,在图3所示的系统中,该事件信息例如可以包括“任务1添加到客户端执行服务器1中”、“增加客户端执行服务器1到控制服务器中”等。

在本实施例的一些实施方式中,在事件表中具体可以记录事件标识、事件类型、数据标识三者之间的映射关系。例如,在事件表中一个数据操作事件的表项中,包括该数据操作事件的事件标识、事件类型和事件信息。在该事件信息中包含用于标识该数据操作事件产生的数据信息的数据标识。该事件类型表示该数据操作事件的类型。作为一种示例,在图1所示的系统中,数据操作事件的类型例如可以包括“新增任务”、“新增一台客户端执行服务器”等。

在数据信息表中,具体可以记录数据标识与数据信息之间的映射关系。例如,在数据信息表中为系统中所产生的每一个数据信息设置一个表项,该表项包括该数据信息以及用于标识该数据信息的数据标识。

在本实施例中,数据操作例如可以包括增加数据的操作、删除数据的操作和修改数据的操作。系统执行过的每一个数据操作都可以被看作是一个事件。在系统中,数据操作事件可以通过事件标识进行标识。系统中出现的每一个数据操作事件都具有一个事件标识,并且,各个数据操作事件的事件标识是不同的,这样,事件标识可以起到标识和区分不同数据操作的作用。作为一种示例,对于一个数据操作事件来说,其事件标识可以是一个编码值,该编码值能够表示该数据操作事件在系统中的出现顺序。例如,对于系统中第一个出现的数据操作事件,其事件标识可以是编码值“1”。又如,对于系统中第二个出现的数据操作事件,其事件标识可以是编码值“2”。

此外,在系统中,数据信息可以通过数据标识进行标识。系统中因执行数据操作而产生的每一个数据信息都具有一个数据标识,并且,各个数据信息的数据标识是不同的,这样,数据标识可以起到标识和区分不同数据信息的作用。

在具体实现数据同步时,所述设备可以生成携带有基准事件标识的第一查询请求并向数据库发送,该基准事件标识能够反映出所述设备上已保存的数据信息。数据库响应于接收到第一查询请求,根据第一查询请求可以获得基准事件标识。根据该基准事件标识,数据库可以在事件表中记录的所有事件标识中确定出目标事件标识,该目标事件标识是用于反映所述设备上未保存的数据信息的事件标识,具体地说,该目标事件标识是目标数据操作事件的事件标识,该目标数据操作事件所产生的数据信息是在所述设备上当前未保存的数据信息。在确定出目标事件标识之后,数据库可以根据事件表中记录的映射关系查找出目标事件标识对应的目标数据标识,并向所述设备发送查找出的目标数据标识。

在本实施例的一些实施方式中,数据库在查找到目标事件标识之后,可以将目标事件标识与数据标识一起发送给所述设备。甚至,数据库可以将事件表中所述目标事件标识所在的映射关系都发送给所述设备,包括目标事件标识及其对应的目标事件信息、目标事件类型等。

需要说明的是,根据基准事件标识对目标事件标识的确定,可以有多种实现方式。

作为一种示例,对于基准事件标识用于标识的基准数据操作事件,该基准数据操作事件所产生的数据信息即是所述设备已保存的所有数据信息,对于目标事件标识用于标识的目标数据操作事件,该目标数据操作事件所产生的数据信息即是所述设备上未保存的所有数据信息。具体地,所述设备在保存每一个数据操作事件产生的数据信息时可以记录该数据操作事件的事件标识。若需要数据同步,所述设备可以以当前已记录的所有事件标识作为基准事件标识,向数据库发送携带有基准事件标识的第一查询请求。数据库响应于接收到第一查询请求,可以在事件表当前存储的事件标识中查找不属于基准事件标识的事件标识作为目标事件标识。

作为另一种示例,数据操作事件的事件标识具体为用于表示数据操作事件在系统中的出现顺序的编码,也即,所述基准事件标识为用于表示基准数据操作事件在所述系统中的出现顺序的第一编码,所述目标事件标识为用于表示所述目标数据操作事件在所述系统中的出现顺序的第二编码,其中,第二编码大于第一编码。对于基准事件标识用于标识的基准数据操作事件,所述基准数据操作事件是在所述设备中已保存的数据信息所对应的数据操作事件中最后出现的事件,或者说,所述基准数据操作事件是在用于产生所述设备中已保存的所有数据信息的所有数据操作事件中最后出现的事件,也即,在用于产生所述设备中已保存的所有数据信息的所有数据操作事件中,基准数据操作事件的事件标识是编码值最大的。具体地,所述设备在保存每一个数据操作事件产生的数据信息时可以记录该数据操作事件的事件标识。若需要数据同步,所述设备可以在当前已记录的所有事件标识中选取编码值最大的一个作为基准事件标识,向数据库发送携带有基准事件标识的第一查询请求。数据库响应于接收到第一查询请求,可以在事件表当前存储的事件标识中查找编码值大于基准事件标识的事件标识作为目标事件标识。

可以理解的是,考虑到系统中会不断地出现新的数据操作事件,数据库中也会不断地出现新的数据信息。为了使得所述设备能够不断地同步数据库中新的数据信息,在本实施例的一些实施方式中,步骤501例如可以具体为:按照预先设置的轮询周期,向所述数据库发送携带有所述基准事件标识的第一查询请求。

502、向所述数据库发送携带有所述目标数据标识的第二查询请求,以便所述数据库在数据信息表中查找所述目标数据标识对应的目标数据信息并向所述设备发送。

在具体实现时,所述设备响应于接收到数据库对第一查询请求的反馈信息,可以从反馈信息中获得目标数据标识。然后,所述设备再生成携带有目标数据标识的第二查询请求并向数据库发送。数据库响应于接收到第二查询请求,根据第一查询请求可以获得目标数据标识。在获得目标数据标识之后,数据库可以根据数据信息表中记录的映射关系查找出目标数据标识对应的数据信息,并向所述设备发送查找出的目标数据标识。

在本实施例的一些实施方式中,数据操作事件的事件标识具体为用于表示数据操作事件在系统中的出现顺序的编码,所述设备在保存每一个数据操作事件产生的数据信息时记录该数据操作事件的事件标识,基准事件标识是所述设备当前记录的最大编码值,目标事件标识是在数据库的事件表当前存储的事件标识中编码值大于基准事件标识的事件标识。此时,为避免所述设备在数据同步时遗漏数据信息,可以限定所述设备在目标事件标识与基准事件标识两者表示递增的顺序的条件下再去同步目标数据标识对应的数据信息。具体地,在数据库将目标事件标识发送给所述设备的情况下,本实施例例如还可以包括:判断所述目标事件标识所表示的第二出现顺序相对于所述基准事件标识所表示的第一出现顺序是否为递增的顺序;响应于所述第一出现顺序相对于所述第二出现顺序为递增的顺序,执行步骤502;响应于所述第一出现顺序相对于所述第二出现顺序不是递增的顺序,记录所述目标事件标识并判断最近n次记录的目标事件标识是否相同,其中,n为预设值;响应于最近n次记录的目标事件标识相同,执行步骤402。

可以理解的是,递增的顺序可以具体为,基准数据操作事件与目标数据操作事件是系统中出现顺序连续的多个数据操作事件,其中,基准数据操作事件是系统中先于所有目标数据操作事件出现的。也即,递增的顺序可以体现为,基准事件标识与目标事件标识是多个连续的编码值,其中,基准事件标识的编码值小于所有目标事件标识的编码值。更为具体地,若目标数据操作事件只有1个,则递增的顺序可以体现为,基准事件标识表示基准数据操作事件是系统中第m个出现的数据操作事件,目标事件标识表示目标数据操作事件是系统中第m+1个出现的数据操作事件。也即,基准事件标识为编码值“m”,目标事件标识为编码值“m+1”。若目标数据操作事件有多个,以n个目标数据操作事件为例,递增的顺序可以体现为,基准事件标识表示系统中第m个出现的数据操作事件,n个目标数据操作事件分别为系统中第m+1、m+2、……、m+n个出现的数据操作事件。也即,基准事件标识为编码值“m”,n个目标事件标识分别为编码值“m+1”、“m+2”、……、“m+n”。

在本实施例的一些实施方式中,数据库除了将目标数据标识发送给所述设备,还可以将目标事件类型发送给所述设备。在所述设备上可以为不同的事件类型配置不同的事件处理程序,通过事件类型对应的事件处理程序同步该事件类型对应的数据信息。具体地,步骤502例如可以具体为:通过目标事件类型对应的事件处理程序向所述数据库发送携带有所述目标数据标识的第二查询请求;其中,所述目标事件类型是所述数据库在所述事件表中查找所述目标事件标识对应的目标事件类型并向所述设备发送的,所述目标事件类型用于表示所述目标数据操作事件的操作类型。

503、接收并保存所述目标数据信息。

其中,所述目标事件标识用于标识在所述系统中出现过的目标数据操作事件,所述目标数据标识用于标识所述目标数据信息,所述目标数据信息是所述目标数据操作事件产生的信息。

可以理解的是,所述设备保存了所述目标数据信息,即相当于,所述目标数据信息同步到了所述设备上。

在本实施例的一些实施方式中,数据库除了将目标数据标识发送给所述设备,还可以将目标事件类型发送给所述设备。在所述设备上可以为不同的事件类型配置不同的事件处理程序,通过事件类型对应的事件处理程序同步该事件类型对应的数据信息。具体地,步骤503例如可以具体为:通过所述目标事件类型对应的事件处理程序接收并保存所述目标数据信息;其中,所述目标事件类型是所述数据库在所述事件表中查找所述目标事件标识对应的目标事件类型并向所述设备发送的,所述目标事件类型用于表示所述目标数据操作事件的操作类型。

需要说明的是,为了避免所述设备重启过程中丢失数据信息,以支持热启动下的数据同步功能,本实施例例如还可以包括:响应于开机启动的触发指令,向所述数据库发送第三查询请求,以便所述数据库响应于第三查询请求,将所述数据信息表中所有的数据信息发送给所述设备;接收并保存所述数据信息表中所有的数据信息。

在本实施例中,对于用于执行数据操作的设备来说,只需要采用一个线程向数据库发送携带基准事件标识的第一查询请求并接收目标数据标识,就可以监听到系统中所有新出现的数据操作事件,再通过向数据库发送携带目标数据标识的第二查询请求就可以同步到系统中所有新产生的数据信息,从而避免了设备因对系统中新产生数据信息的监听占用大量线程而超出设备的硬件处理能力上限,不仅提高了设备同步数据的速度,也减轻了设备自身的负载压力。

参见图6,示出了本申请实施例中一种数据同步的方法的流程示意图。本实施例的方法可以应用于系统中的数据库。所述方法例如具体可以包括以下步骤:

601、接收设备发送的第一查询请求,所述设备为所述系统中用于执行数据操作的设备,所述第一查询请求中携带有基准事件标识,所述基准事件标识用于反映所述设备上已保存的数据信息;

602、根据所述基准事件标识确定目标事件标识,并在事件表中查找所述目标事件标识对应的目标数据标识并向所述设备发送,所述目标事件标识用于反映所述设备上未保存的数据信息;

603、接收所述设备发送的第二查询请求,所述第二查询请求中携带有所述目标数据标识;

604、在数据信息表中查找所述目标数据标识对应的目标数据信息并向所述设备发送,以便所述设备保存所述目标数据信息;

其中,所述目标事件标识用于标识在所述系统中出现过的目标数据操作事件,所述目标数据标识用于标识所述目标数据信息,所述目标数据信息是所述目标数据操作事件产生的信息。

可选的,所述方法还包括:

接收所述设备发送的第三查询请求,所述第三查询请求是所述设备响应于开机启动的触发指令而发送的;

响应于第三查询请求,查找所述数据信息表中所有的数据信息并向所述设备发送,以便所述设备接收并保存所述数据信息表中的数据信息。

可选的,所述基准事件标识为用于表示基准数据操作事件在所述系统中的出现顺序的编码,所述基准数据操作事件为在所述设备中已保存的数据信息所对应的数据操作事件中最后出现的事件,所述目标事件标识为用于表示所述目标数据操作事件在所述系统中的出现顺序的编码,所述基准事件标识大于所述目标事件标识。

可选的,所述方法还包括:

在所述事件表中查找所述目标事件标识对应的目标事件类型并向所述设备发送,以便所述设备通过所述目标事件类型对应的事件处理器发送所述第二查询请求以及接收并保存所述目标数据信息;

其中,所述目标事件类型用于表示所述目标数据操作事件的操作类型。

在本实施例中,对于用于执行数据操作的设备来说,只需要采用一个线程向数据库发送携带基准事件标识的第一查询请求并接收目标数据标识,就可以监听到系统中所有新出现的数据操作事件,再通过向数据库发送携带目标数据标识的第二查询请求就可以同步到系统中所有新产生的数据信息,从而避免了设备因对系统中新产生数据信息的监听占用大量线程而超出设备的硬件处理能力上限,不仅提高了设备同步数据的速度,也减轻了设备自身的负载压力。

参见图7,示出了本申请实施例中一种数据操作事件的监听方法的流程示意图。本实施例的方法可以应用于系统中用于执行数据操作的设备。所述方法例如具体可以包括以下步骤:

701、向数据库发送携带有基准事件标识的第一查询请求,以便所述数据库根据所述基准事件标识确定目标事件标识,在事件表中查找所述目标事件标识对应的目标数据标识并向所述设备发送。

702、接收所述数据库发送的所述目标事件标识,并根据所述目标事件标识识别所述系统中所述设备未同步过数据的目标数据操作事件;

其中,所述基准事件标识用于反映所述设备上已保存的数据信息,所述目标事件标识用于反映所述设备上未保存的数据信息,所述目标事件标识用于标识在所述系统中出现过的目标数据操作事件。

可选的,所述基准事件标识为用于表示基准数据操作事件在所述系统中的出现顺序的第一编码,所述基准数据操作事件为在所述设备中已保存的数据信息所对应的数据操作事件中最后出现的事件,所述目标事件标识为用于表示所述目标数据操作事件在所述系统中的出现顺序的第二编码,所述第二编码大于所述第一编码。

可选的,所述根据所述目标事件标识识别所述系统中所述设备未同步过数据的目标数据操作事件,包括:

判断所述目标事件标识所表示的第二出现顺序相对于所述基准事件标识所表示的第一出现顺序是否为递增的顺序;

响应于所述第一出现顺序相对于所述第二出现顺序为递增的顺序,将所述目标事件标识对应的目标数据操作事件识别为所述系统中所述设备未同步过数据的目标数据操作事件;

响应于所述第一出现顺序相对于所述第二出现顺序不是递增的顺序,记录所述目标事件标识并判断最近n次记录的目标事件标识是否相同,其中,n为预设值;

响应于最近n次记录的目标事件标识相同,将所述目标事件标识对应的目标数据操作事件识别为所述系统中所述设备未同步过数据的目标数据操作事件。

可选的,所述向数据库发送携带有基准事件标识的第一查询请求,具体为:

按照预先设置的轮询周期,向所述数据库发送携带有所述基准事件标识的第一查询请求。

在本实施例中,对于用于执行数据操作的设备来说,只需要采用一个线程向数据库发送携带基准事件标识的第一查询请求并接收目标数据标识,就可以监听到系统中所有新出现的数据操作事件,从而避免了设备因对系统中新产生数据信息的监听占用大量线程而超出设备的硬件处理能力上限,减轻了设备自身的负载压力。

参见图8,示出了本申请实施例中一种数据操作事件的监听方法的流程示意图。本实施例的方法可以应用于系统中的数据库。所述方法例如具体可以包括以下步骤:

801、接收设备发送的第一查询请求,所述设备为所述系统中用于执行数据操作的设备,所述第一查询请求中携带有基准事件标识,所述基准事件标识用于反映所述设备上已保存的数据信息;

802、根据所述基准事件标识确定目标事件标识,并在事件表中查找所述目标事件标识对应的目标数据标识并向所述设备发送,所述目标事件标识用于反映所述设备上未保存的数据信息;

其中,所述目标事件标识用于标识在所述系统中出现过的目标数据操作事件。

可选的,所述基准事件标识为用于表示基准数据操作事件在所述系统中的出现顺序的编码,所述基准数据操作事件为在所述设备中已保存的数据信息所对应的数据操作事件中最后出现的事件,所述目标事件标识为用于表示所述目标数据操作事件在所述系统中的出现顺序的编码,所述基准事件标识大于所述目标事件标识。

在本实施例中,对于用于执行数据操作的设备来说,只需要采用一个线程向数据库发送携带基准事件标识的第一查询请求并接收目标数据标识,就可以监听到系统中所有新出现的数据操作事件,从而避免了设备因对系统中新产生数据信息的监听占用大量线程而超出设备的硬件处理能力上限,减轻了设备自身的负载压力。

可以理解的是,对于分布式系统中用于执行数据操作的一个设备,一方面其在自身执行数据操作时可以将自身执行的数据操作事件记录到数据库的事件表和数据信息表中,另一方面其可以从数据库的事件表和数据信息表中同步其他设备执行的数据操作事件所产生的数据信息。具体地,图9示出了本申请实施例中一种数据同步的方法的流程示意图。本实施例的方法可以应用于系统中用于执行数据操作的设备。所述方法例如具体可以包括以下步骤:

901、在执行第一目标数据操作事件之后,生成对应于所述第一目标数据操作事件的记录指令;

902、向所述数据库发送所述记录指令,以便所述数据库接收所述记录指令,为所述第一目标数据操作事件分配第一目标事件标识和第一目标数据标识,将所述第一目标事件标识与所述第一目标数据标识对应地记录到事件表中,将所述第一目标数据标识与所述第一目标数据操作事件产生的第一目标数据信息对应地记录到数据信息表中;

所述事件表和所述数据信息表用于所述系统中除所述设备之外其他用于执行数据操作的设备同步所述第一目标数据信息。

在本实施例的一些实施方式中,所述方法还可以包括:

向数据库发送携带有基准事件标识的第一查询请求,以便所述数据库根据所述基准事件标识确定第二目标事件标识,在事件表中查找所述第二目标事件标识对应的所述第二目标数据标识并向所述设备发送,其中,所述基准事件标识用于反映所述设备上已保存的数据信息,所述第二目标事件标识用于反映所述设备上未保存的数据信息;

向所述数据库发送携带有所述第二目标数据标识的第二查询请求,以便所述数据库在数据信息表中查找所述第二目标数据标识对应的所述第二目标数据信息并向所述设备发送;

接收并保存所述数据库发送的所述第二目标数据信息;

其中,所述第二目标数据信息是第二目标数据操作事件产生的信息,所述第二目标数据事件是所述系统中除所述设备之外其他用于执行数据操作的设备执行过的数据操作事件。

在本实施例的另一些实施方式中,所述基准事件标识可以为用于表示基准数据操作事件在所述系统中的出现顺序的第一编码,所述基准数据操作事件可以为在所述设备中已保存的数据信息所对应的数据操作事件中最后出现的事件,所述目标事件标识为用于表示所述第二目标数据操作事件在所述系统中的出现顺序的第二编码,所述第二编码大于所述第一编码。

在本实施例的又一些实施方式中,所述方法还可以包括:

判断所述第二目标事件标识所表示的第二出现顺序相对于所述基准事件标识所表示的第一出现顺序是否为递增的顺序;

响应于所述第一出现顺序相对于所述第二出现顺序为递增的顺序,执行所述向所述数据库发送携带有所述第二目标数据标识的第二查询请求;

响应于所述第一出现顺序相对于所述第二出现顺序不是递增的顺序,记录所述第二目标事件标识并判断最近n次记录的第二目标事件标识是否相同;

响应于最近n次记录的第二目标事件标识相同,执行向所述数据库发送携带有所述第二目标数据标识的第二查询请求,其中,n为预设值。

在本实施例中,对于用于执行数据操作的设备来说,其所执行的数据操作事件及产生的数据信息可以记录到数据库的事件表和数据信息表中,这样,其他设备只需要采用一个线程向数据库发送查询请求,就可以监听到系统中所有新出现的数据操作事件,从而进一步就可以同步到系统中所有新产生的数据信息,这样就避免了设备因对系统中新产生数据信息的监听占用大量线程而超出设备的硬件处理能力上限,不仅提高了设备同步数据的速度,也减轻了设备自身的负载压力。

此外,图10示出了本申请实施例中一种数据同步的方法的流程示意图。本实施例的方法可以应用于系统中的数据库。所述方法例如具体可以包括以下步骤:

1001、接收设备在执行第一目标数据操作事件之后发送的对应于所述第一目标数据操作事件的记录指令,所述设备为所述系统中用于执行数据操作的设备;

1002、按照所述记录指令,为所述第一目标数据操作事件分配第一目标事件标识和第一目标数据标识,将所述第一目标事件标识与所述第一目标数据标识对应地记录到事件表中,将所述第一目标数据标识与所述第一目标数据操作事件产生的第一目标数据信息对应地记录到数据信息表中;

所述事件表和所述数据信息表用于所述系统中除所述设备之外其他用于执行数据操作的设备同步所述第一目标数据信息。

在本实施例的一些实施方式中,所述方法还可以包括:

接收所述设备发送的第一查询请求,所述第一查询请求中携带有基准事件标识,所述基准事件标识用于反映所述设备上已保存的数据信息;

根据所述基准事件标识确定第二目标事件标识,在事件表中查找所述第二目标事件标识对应的所述第二目标数据标识并向所述设备发送,所述第二目标事件标识用于反映所述设备上未保存的数据信息;

接收所述设备发送的第二查询请求,所述第二查询请求中携带有所述第二目标数据标识;

在数据信息表中查找所述第二目标数据标识对应的所述第二目标数据信息并向所述设备发送,以便所述设备保存所述目标数据信息;

其中,所述第二目标数据信息是第二目标数据操作事件产生的信息,所述第二目标数据事件是所述系统中除所述设备之外其他用于执行数据操作的设备执行过的数据操作事件。

在本实施例的另一些实施方式中,所述基准事件标识为用于表示基准数据操作事件在所述系统中的出现顺序的第一编码,所述基准数据操作事件为在所述设备中已保存的数据信息所对应的数据操作事件中最后出现的事件,所述目标事件标识为用于表示所述第二目标数据操作事件在所述系统中的出现顺序的第二编码,所述第二编码大于所述第一编码。

在本实施例中,对于用于执行数据操作的设备来说,其所执行的数据操作事件及产生的数据信息可以记录到数据库的事件表和数据信息表中,这样,其他设备只需要采用一个线程向数据库发送查询请求,就可以监听到系统中所有新出现的数据操作事件,从而进一步就可以同步到系统中所有新产生的数据信息,这样就避免了设备因对系统中新产生数据信息的监听占用大量线程而超出设备的硬件处理能力上限,不仅提高了设备同步数据的速度,也减轻了设备自身的负载压力。

示例性设备

参见图11,示出了本申请实施例中一种数据同步的装置的结构示意图。本实施例的装置可以配置于系统中用于执行数据操作的设备,所述装置例如可以包括:

第一发送单元1101,用于向数据库发送携带有基准事件标识的第一查询请求,以便所述数据库根据所述基准事件标识确定目标事件标识,在事件表中查找所述目标事件标识对应的目标数据标识并向所述设备发送,其中,所述基准事件标识用于反映所述设备上已保存的数据信息,所述目标事件标识用于反映所述设备上未保存的数据信息;

第二发送单元1102,用于向所述数据库发送携带有所述目标数据标识的第二查询请求,以便所述数据库在数据信息表中查找所述目标数据标识对应的目标数据信息并向所述设备发送;

第一保存单元1103,用于接收并保存所述目标数据信息;

其中,所述目标事件标识用于标识在所述系统中出现过的目标数据操作事件,所述目标数据标识用于标识所述目标数据信息,所述目标数据信息是所述目标数据操作事件产生的信息。

可选的,所述装置还包括:

第三发送单元,用于响应于开机启动的触发指令,向所述数据库发送第三查询请求,以便所述数据库响应于第三查询请求,将所述数据信息表中所有的数据信息发送给所述设备;

第二保存单元,用于接收并保存所述数据信息表中所有的数据信息。

可选的,所述基准事件标识为用于表示基准数据操作事件在所述系统中的出现顺序的第一编码,所述基准数据操作事件为在所述设备中已保存的数据信息所对应的数据操作事件中最后出现的事件,所述目标事件标识为用于表示所述目标数据操作事件在所述系统中的出现顺序的第二编码,所述第二编码大于所述第一编码。

可选的,所述装置还包括:

第一判断单元,用于判断所述目标事件标识所表示的第二出现顺序相对于所述基准事件标识所表示的第一出现顺序是否为递增的顺序;

第一执行单元,用于响应于所述第一出现顺序相对于所述第二出现顺序为递增的顺序,执行所述向所述数据库发送携带有所述目标数据标识的第二查询请求;

第二判断单元,用于响应于所述第一出现顺序相对于所述第二出现顺序不是递增的顺序,记录所述目标事件标识并判断最近n次记录的目标事件标识是否相同,其中,n为预设值;

第二执行单元,用于响应于最近n次记录的目标事件标识相同,执行向所述数据库发送携带有所述目标数据标识的第二查询请求。

可选的,所述第二发送单元1102,具体用于:通过目标事件类型对应的事件处理程序向所述数据库发送携带有所述目标数据标识的第二查询请求;

所述第一保存单元1103,具体用于:通过所述目标事件类型对应的事件处理程序接收并保存所述目标数据信息;

其中,所述目标事件类型是所述数据库在所述事件表中查找所述目标事件标识对应的目标事件类型并向所述设备发送的,所述目标事件类型用于表示所述目标数据操作事件的操作类型。

可选的,所述第一发送单元1101,具体用于:按照预先设置的轮询周期,向所述数据库发送携带有所述基准事件标识的第一查询请求。

在本实施例中,对于用于执行数据操作的设备来说,只需要采用一个线程向数据库发送携带基准事件标识的第一查询请求并接收目标数据标识,就可以监听到系统中所有新出现的数据操作事件,再通过向数据库发送携带目标数据标识的第二查询请求就可以同步到系统中所有新产生的数据信息,从而避免了设备因对系统中新产生数据信息的监听占用大量线程而超出设备的硬件处理能力上限,不仅提高了设备同步数据的速度,也减轻了设备自身的负载压力。

参见图12,示出了本申请实施例中一种数据同步的装置的结构示意图。本实施例的装置可以配置于系统中的数据库,所述装置例如可以包括:

第一接收单元1201,用于接收设备发送的第一查询请求,所述设备为所述系统中用于执行数据操作的设备,所述第一查询请求中携带有基准事件标识,所述基准事件标识用于反映所述设备上已保存的数据信息;

第一查找单元1202,用于根据所述基准事件标识确定目标事件标识,并在事件表中查找所述目标事件标识对应的目标数据标识并向所述设备发送,所述目标事件标识用于反映所述设备上未保存的数据信息;

第二接收单元1203,用于接收所述设备发送的第二查询请求,所述第二查询请求中携带有所述目标数据标识;

第二查找单元1204,用于在数据信息表中查找所述目标数据标识对应的目标数据信息并向所述设备发送,以便所述设备保存所述目标数据信息;

其中,所述目标事件标识用于标识在所述系统中出现过的目标数据操作事件,所述目标数据标识用于标识所述目标数据信息,所述目标数据信息是所述目标数据操作事件产生的信息。

可选的,所述装置还包括:

第三接收单元,用于接收所述设备发送的第三查询请求,所述第三查询请求是所述设备响应于开机启动的触发指令而发送的;

第三查找单元,用于响应于第三查询请求,查找所述数据信息表中所有的数据信息并向所述设备发送,以便所述设备接收并保存所述数据信息表中的数据信息。

可选的,所述基准事件标识为用于表示基准数据操作事件在所述系统中的出现顺序的编码,所述基准数据操作事件为在所述设备中已保存的数据信息所对应的数据操作事件中最后出现的事件,所述目标事件标识为用于表示所述目标数据操作事件在所述系统中的出现顺序的编码,所述基准事件标识大于所述目标事件标识。

可选的,所述装置还包括:

第四查找单元,用于在所述事件表中查找所述目标事件标识对应的目标事件类型并向所述设备发送,以便所述设备通过所述目标事件类型对应的事件处理器发送所述第二查询请求以及接收并保存所述目标数据信息;

其中,所述目标事件类型用于表示所述目标数据操作事件的操作类型。

在本实施例中,对于用于执行数据操作的设备来说,只需要采用一个线程向数据库发送携带基准事件标识的第一查询请求并接收目标数据标识,就可以监听到系统中所有新出现的数据操作事件,再通过向数据库发送携带目标数据标识的第二查询请求就可以同步到系统中所有新产生的数据信息,从而避免了设备因对系统中新产生数据信息的监听占用大量线程而超出设备的硬件处理能力上限,不仅提高了设备同步数据的速度,也减轻了设备自身的负载压力。

参见图13,示出了本申请实施例中一种数据操作事件的监听装置的结构示意图。本实施例的装置可以配置于系统中用于执行数据操作的设备。所述装置例如可以包括:

发送单元1301,用于向数据库发送携带有基准事件标识的第一查询请求,以便所述数据库根据所述基准事件标识确定目标事件标识,在事件表中查找所述目标事件标识对应的目标数据标识并向所述设备发送。

接收单元1302,用于接收所述数据库发送的所述目标事件标识;

识别单元1303,用于根据所述目标事件标识识别所述系统中所述设备未同步过数据的目标数据操作事件;

其中,所述基准事件标识用于反映所述设备上已保存的数据信息,所述目标事件标识用于反映所述设备上未保存的数据信息,所述目标事件标识用于标识在所述系统中出现过的目标数据操作事件。

可选的,所述基准事件标识为用于表示基准数据操作事件在所述系统中的出现顺序的第一编码,所述基准数据操作事件为在所述设备中已保存的数据信息所对应的数据操作事件中最后出现的事件,所述目标事件标识为用于表示所述目标数据操作事件在所述系统中的出现顺序的第二编码,所述第二编码大于所述第一编码。

可选的,所述识别单元1303具体用于:

判断所述目标事件标识所表示的第二出现顺序相对于所述基准事件标识所表示的第一出现顺序是否为递增的顺序;

响应于所述第一出现顺序相对于所述第二出现顺序为递增的顺序,将所述目标事件标识对应的目标数据操作事件识别为所述系统中所述设备未同步过数据的目标数据操作事件;

响应于所述第一出现顺序相对于所述第二出现顺序不是递增的顺序,记录所述目标事件标识并判断最近n次记录的目标事件标识是否相同,其中,n为预设值;

响应于最近n次记录的目标事件标识相同,将所述目标事件标识对应的目标数据操作事件识别为所述系统中所述设备未同步过数据的目标数据操作事件。

可选的,所述发送单元1301具体用于:

按照预先设置的轮询周期,向所述数据库发送携带有所述基准事件标识的第一查询请求。

在本实施例中,对于用于执行数据操作的设备来说,只需要采用一个线程向数据库发送携带基准事件标识的第一查询请求并接收目标数据标识,就可以监听到系统中所有新出现的数据操作事件,从而避免了设备因对系统中新产生数据信息的监听占用大量线程而超出设备的硬件处理能力上限,减轻了设备自身的负载压力。

参见图14,示出了本申请实施例中一种数据操作事件的监听方法的结构示意图。本实施例的装置可以配置于系统中的数据库。所述装置例如可以包括:

接收单元1401,用于接收设备发送的第一查询请求,所述设备为所述系统中用于执行数据操作的设备,所述第一查询请求中携带有基准事件标识,所述基准事件标识用于反映所述设备上已保存的数据信息;

查找单元1402,用于根据所述基准事件标识确定目标事件标识,并在事件表中查找所述目标事件标识对应的目标数据标识并向所述设备发送,所述目标事件标识用于反映所述设备上未保存的数据信息;

其中,所述目标事件标识用于标识在所述系统中出现过的目标数据操作事件。

可选的,所述基准事件标识为用于表示基准数据操作事件在所述系统中的出现顺序的编码,所述基准数据操作事件为在所述设备中已保存的数据信息所对应的数据操作事件中最后出现的事件,所述目标事件标识为用于表示所述目标数据操作事件在所述系统中的出现顺序的编码,所述基准事件标识大于所述目标事件标识。

在本实施例中,对于用于执行数据操作的设备来说,只需要采用一个线程向数据库发送携带基准事件标识的第一查询请求并接收目标数据标识,就可以监听到系统中所有新出现的数据操作事件,从而避免了设备因对系统中新产生数据信息的监听占用大量线程而超出设备的硬件处理能力上限,减轻了设备自身的负载压力。

参见图15,示出了本申请实施例中一种数据同步的装置的结构示意图。本实施例的装置可以配置于系统中用于执行数据操作的设备,所述装置例如可以包括:

生成单元1501,用于在执行第一目标数据操作事件之后,生成对应于所述第一目标数据操作事件的记录指令;

第一发送单元1502,用于向所述数据库发送所述记录指令,以便所述数据库接收所述记录指令,为所述第一目标数据操作事件分配第一目标事件标识和第一目标数据标识,将所述第一目标事件标识与所述第一目标数据标识对应地记录到事件表中,将所述第一目标数据标识与所述第一目标数据操作事件产生的第一目标数据信息对应地记录到数据信息表中;

所述事件表和所述数据信息表用于所述系统中除所述设备之外其他用于执行数据操作的设备同步所述第一目标数据信息。

可选的,所述装置还包括:

第二发送单元,用于向数据库发送携带有基准事件标识的第一查询请求,以便所述数据库根据所述基准事件标识确定第二目标事件标识,在事件表中查找所述第二目标事件标识对应的所述第二目标数据标识并向所述设备发送,其中,所述基准事件标识用于反映所述设备上已保存的数据信息,所述第二目标事件标识用于反映所述设备上未保存的数据信息;

第三发送单元,用于向所述数据库发送携带有所述第二目标数据标识的第二查询请求,以便所述数据库在数据信息表中查找所述第二目标数据标识对应的所述第二目标数据信息并向所述设备发送;

保存单元,用于接收并保存所述数据库发送的所述第二目标数据信息;

其中,所述第二目标数据信息是第二目标数据操作事件产生的信息,所述第二目标数据事件是所述系统中除所述设备之外其他用于执行数据操作的设备执行过的数据操作事件。

可选的,所述基准事件标识为用于表示基准数据操作事件在所述系统中的出现顺序的第一编码,所述基准数据操作事件为在所述设备中已保存的数据信息所对应的数据操作事件中最后出现的事件,所述目标事件标识为用于表示所述第二目标数据操作事件在所述系统中的出现顺序的第二编码,所述第二编码大于所述第一编码。

可选的,所述装置还包括:

第一判断单元,用于判断所述第二目标事件标识所表示的第二出现顺序相对于所述基准事件标识所表示的第一出现顺序是否为递增的顺序;

第一执行单元,用于响应于所述第一出现顺序相对于所述第二出现顺序为递增的顺序,执行所述向所述数据库发送携带有所述第二目标数据标识的第二查询请求;

第二判断单元,用于响应于所述第一出现顺序相对于所述第二出现顺序不是递增的顺序,记录所述第二目标事件标识并判断最近n次记录的第二目标事件标识是否相同;

第二执行单元,用于响应于最近n次记录的第二目标事件标识相同,执行向所述数据库发送携带有所述第二目标数据标识的第二查询请求,其中,n为预设值。

在本实施例中,对于用于执行数据操作的设备来说,其所执行的数据操作事件及产生的数据信息可以记录到数据库的事件表和数据信息表中,这样,其他设备只需要采用一个线程向数据库发送查询请求,就可以监听到系统中所有新出现的数据操作事件,从而进一步就可以同步到系统中所有新产生的数据信息,这样就避免了设备因对系统中新产生数据信息的监听占用大量线程而超出设备的硬件处理能力上限,不仅提高了设备同步数据的速度,也减轻了设备自身的负载压力。

参见图16,示出了本申请实施例中一种数据同步的装置的结构示意图。本实施例的装置可以配置于系统中的数据库,所述装置例如可以包括:

第一接收单元1601,用于接收设备在执行第一目标数据操作事件之后发送的对应于所述第一目标数据操作事件的记录指令,所述设备为所述系统中用于执行数据操作的设备;

事件记录单元1602,用于按照所述记录指令,为所述第一目标数据操作事件分配第一目标事件标识和第一目标数据标识,将所述第一目标事件标识与所述第一目标数据标识对应地记录到事件表中,将所述第一目标数据标识与所述第一目标数据操作事件产生的第一目标数据信息对应地记录到数据信息表中;

所述事件表和所述数据信息表用于所述系统中除所述设备之外其他用于执行数据操作的设备同步所述第一目标数据信息。

可选的,所述装置还包括:

第二接收单元,用于接收所述设备发送的第一查询请求,所述第一查询请求中携带有基准事件标识,所述基准事件标识用于反映所述设备上已保存的数据信息;

第一查找单元,用于根据所述基准事件标识确定第二目标事件标识,在事件表中查找所述第二目标事件标识对应的所述第二目标数据标识并向所述设备发送,所述第二目标事件标识用于反映所述设备上未保存的数据信息;

第二接收单元,用于接收所述设备发送的第二查询请求,所述第二查询请求中携带有所述第二目标数据标识;

第二查找单元,用于在数据信息表中查找所述第二目标数据标识对应的所述第二目标数据信息并向所述设备发送,以便所述设备保存所述目标数据信息;

其中,所述第二目标数据信息是第二目标数据操作事件产生的信息,所述第二目标数据事件是所述系统中除所述设备之外其他用于执行数据操作的设备执行过的数据操作事件。

可选的,所述基准事件标识为用于表示基准数据操作事件在所述系统中的出现顺序的第一编码,所述基准数据操作事件为在所述设备中已保存的数据信息所对应的数据操作事件中最后出现的事件,所述目标事件标识为用于表示所述第二目标数据操作事件在所述系统中的出现顺序的第二编码,所述第二编码大于所述第一编码。

在本实施例中,对于用于执行数据操作的设备来说,其所执行的数据操作事件及产生的数据信息可以记录到数据库的事件表和数据信息表中,这样,其他设备只需要采用一个线程向数据库发送查询请求,就可以监听到系统中所有新出现的数据操作事件,从而进一步就可以同步到系统中所有新产生的数据信息,这样就避免了设备因对系统中新产生数据信息的监听占用大量线程而超出设备的硬件处理能力上限,不仅提高了设备同步数据的速度,也减轻了设备自身的负载压力。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的设备实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

以上所述仅是本申请的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1