数据更新方法、装置、设备、存储介质及程序产品与流程

    专利2022-07-08  97

    本公开实施例涉及计算机
    技术领域
    :,尤其涉及一种数据更新方法、装置、设备、存储介质及程序产品。
    背景技术
    ::在分布式系统中,多个计算节点可以共同使用外部存储设备来存储数据。对于频繁访问的热点数据,每个计算节点可以在本地内存缓存一份数据副本,以避免计算时从外部存储设备反复读取数据导致消耗大量网络资源及造成时延升高。当某一计算节点对外部存储设备里的原始数据进行更新后,为了保证数据一致性,其它计算节点的数据副本也需要对应进行更新。目前,分布式系统中的计算节点在数据更新时需要对数据进行逐一比对,导致更新效率低下。技术实现要素:本公开实施例提供一种数据更新方法、装置、设备、存储介质及程序产品,以解决分布式系统中数据更新效率低下的技术问题。第一方面,本公开实施例提供一种数据更新方法,应用于分布式系统中的第一计算节点,所述方法包括:确定被更新的至少一个数据对应的数据id;根据预设规则,确定各个数据id对应的散列值;根据各个数据id对应的散列值,配置布隆过滤器,以使所述分布式系统中的第二计算节点根据所述布隆过滤器确定需要更新的数据。第二方面,本公开实施例提供一种数据更新装置,应用于分布式系统中的第一计算节点,所述装置包括:确定模块,用于确定被更新的至少一个数据对应的数据id;计算模块,用于根据预设规则,确定各个数据id对应的散列值;配置模块,用于根据各个数据id对应的散列值,配置布隆过滤器,以使所述分布式系统中的第二计算节点根据所述布隆过滤器确定需要更新的数据。第三方面,本公开实施例提供一种电子设备,包括:存储器和至少一个处理器;所述存储器存储计算机执行指令;所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如上第一方面以及第一方面各种可能的设计所述的数据更新方法。第四方面,本公开实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上第一方面以及第一方面各种可能的设计所述的数据更新方法。第五方面,本公开实施例提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现如上第一方面以及第一方面各种可能的设计所述的数据更新方法。本公开实施例提供的数据更新方法、装置、设备、存储介质及程序产品,可以通过分布式系统中的第一计算节点确定被更新的至少一个数据对应的数据id,根据预设规则,确定各个数据id对应的散列值,并根据各个数据id对应的散列值,配置布隆过滤器,使得所述分布式系统中的第二计算节点可以根据所述布隆过滤器确定需要更新的数据,从而更新第二计算节点中缓存的相应数据,能够利用数据id构建布隆过滤器实现更新信息的传递,无需通过逐个比对的方式更新数据,提高了数据更新的效率,降低了通信成本。附图说明为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。图1为本公开实施例提供的一种应用场景示意图;图2为本公开实施例提供的一种数据更新方法的流程示意图;图3为本公开实施例提供的一种布隆过滤器的示意图;图4为本公开实施例提供的一种硬件架构示意图;图5为本公开实施例提供的一种配置布隆过滤器的流程示意图;图6为本公开实施例提供的一种对应于更新周期设置的布隆过滤器的示意图;图7为本公开实施例提供的一种对应于更新周期和散列值设置的布隆过滤器的示意图;图8为本公开实施例提供的一种在数据更新时确定布隆过滤器的标识信息的示意图;图9为本公开实施例提供的一种在更新查询时确定布隆过滤器的标识信息的示意图;图10为本公开实施例提供的一种数据更新装置的结构框图;图11为本公开实施例提供的一种电子设备的结构框图。具体实施方式为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本公开保护的范围。本公开实施例提供的技术方案,可以应用于需要进行数据存储及数据更新的任意领域,所述数据可以是任意类型的数据。图1为本公开实施例提供的一种应用场景示意图。如图1所示,在分布式系统中设置有多个计算节点,各个计算节点可以通过有线或无线等方式与外部存储设备进行通信,外部存储设备可以用于存储数据,计算节点通过与外部存储设备之间的交互来更新自身缓存的数据,使得自身缓存的数据与外部存储设备中的原始数据保持一致。所述计算节点还可以与终端设备进行通信,以所述数据为视频数据为例,视频数据保存在外部存储设备中,每个计算节点缓存视频数据后,可以利用缓存的视频数据与终端设备进行交互,例如将视频下发到终端设备进行播放。当任一计算节点确定某一视频数据发生变化时,例如,视频的状态变更为限制播放时,需要将变化后的视频数据更新到外部存储设备,然后,其它计算节点需要对应更新自身缓存的该视频数据,以避免出现数据不一致的情况。由于分布式系统往往需要处理海量的数据,而数据的更新又比较频繁,因此,需要一种高效的数据更新方法来实现数据的最终一致性。在一些技术中,可以在每个计算节点内,对缓存的数据设置较短的过期时间,当计算节点查询数据时检测到数据已过期,则从外部存储设备中重新加载并更新本地缓存的数据。这种方案的缺陷是,当缓存的数据失效时,查询操作转移到外部存储设备,会产生较大的负担,查询时延也会增大。在另一些技术中,可以使用后台线程从外部存储设备轮询原始数据并更新本地缓存。这种方案的缺陷是,只能定期全量更新所有数据,而有的数据实际上在外部存储设备中并未被更新,重复全量更新会产生较多额外的网络负担及对外部存储设备的压力。有鉴于此,本公开实施例提供一种数据更新方法,计算节点可以根据被更新的数据的id,计算对应的散列值,并基于散列值配置相应的布隆过滤器,其它计算节点可以根据所述布隆过滤器确定需要进行更新的数据的id,并从外部存储设备获取这些数据id对应的更新后的数据,从而利用被更新的数据id构建布隆过滤器以传递更新信息,无需通过逐个比对的方式更新数据,提高了数据更新的效率,降低了通信成本。下面结合附图,对本公开的一些实施方式作详细说明。在各实施例之间不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。图2为本公开实施例提供的一种数据更新方法的流程示意图。本实施例的方法可以应用于分布式系统中的第一计算节点。如图2所示,所述数据更新方法可以包括:步骤201、确定被更新的至少一个数据对应的数据id。可选的,数据可以存储在数据存储设备中,例如,图1所示的外部存储设备。所述第一计算节点可以根据业务需求对数据存储设备中的数据进行更新。每一数据都对应有数据id(identitydocument,身份标识),通过数据id可以找到对应的数据。可选的,可以为每一数据分配一存储空间,通过数据id可以确定数据对应的存储空间,进而可以从所述存储空间读取数据id对应的数据。在本步骤中,可以确定被更新的至少一个数据id。为了简便说明,本公开各实施例中所述的被更新的数据id,可以是指被更新的数据对应的数据id,而非表示数据id本身被更新。步骤202、根据预设规则,确定各个数据id对应的散列值。其中,每个数据id可以对应至少一个散列值。可选的,根据预设规则,确定各个数据id对应的散列值,可以包括:对于每一数据id,通过预设的多个散列函数分别对所述数据id进行计算,得到对应的多个散列值。其中,散列函数可以是指哈希函数,能够将任意长度的输入转换为固定长度的输出(即散列值),从而实现压缩映射。本实施例中可以使用任意方法构造散列函数,例如直接寻址法、平方取中法、除留余数法等。对于每一个被更新的数据对应的数据id来说,可以使用k个散列函数计算出所述数据id的k个散列值:h0~hk-1。其中,k为大于等于1的整数。可选的,散列值的取值空间可以是受约束的,比如[0~4095],这样可以使用512字节的二进制向量保存。通过散列函数可以将数据id压缩到较小的存储空间,从而简化数据更新过程所需的整体空间大小。需要说明的是,基于同一散列函数,如果两个散列值是不相同的,那么这两个散列值的原始输入即数据id也是不相同的。但是如果两个散列值是相同的,并不一定说明这两个散列值的原始输入就是相同的。步骤203、根据各个数据id对应的散列值,配置布隆过滤器,以使所述分布式系统中的第二计算节点根据所述布隆过滤器确定需要更新的数据。其中,布隆过滤器可以用于判断某个元素是否在集合中。所述布隆过滤器包括多个比特位,配置布隆过滤器可以是指根据散列值更新布隆过滤器的相应比特位。具体的,所述布隆过滤器的各个位的初始值可以为第一数值,在根据散列值配置布隆过滤器的相应位时,可以根据所述数据id对应的每一散列值,将所述数据id对应的布隆过滤器中第h位更新为第二数值,其中,所述h的取值遍历所述数据id对应的散列值,即,h的取值为h0~hk-1。为了便于说明,本公开实施例中,以所述第一数值为0、所述第二数值为1为例来进行说明。图3为本公开实施例提供的一种布隆过滤器的示意图。如图3所示,布隆过滤器共有10位,初始化时每一位都设置为0。在根据数据id配置布隆过滤器时,可以根据数据id的散列值将布隆过滤器的对应位置置1。假设存在两个数据id,分别记为x和y,预设规则中包含三个散列函数,对每一数据id进行计算后,可以得到三个散列值,散列值的取值空间为0至9,与布隆过滤器的存储空间大小一致。在根据得到的散列值对布隆过滤器进行配置时,假设数据idx对应的三个散列值分别为1、2、5,则可以将布隆过滤器的第1、2、5位设置为1;数据idy对应的散列值分别为5、7、8,则可以将布隆过滤器的第5、7、8位设置为1。分布式系统中的其它计算节点,例如第二计算节点,可以根据配置好的布隆过滤器,确定是否需要更新第二计算节点内存缓存中的数据。可选的,第二计算节点可以获取本地内存缓存中的至少一个数据对应的数据id;根据预设规则,确定各个数据id对应的散列值;对于每一缓存的数据,根据所述数据id对应的散列值以及所述布隆过滤器,确定是否需要更新所述数据。具体的,可以查看布隆过滤器中与散列值对应的位置的数值是否均为1,若均为1,则需要更新所述数据,若其中有一位不为1,则不需要更新所述数据。举例来说,假设第二计算节点的内存缓存中的数据id包含y,采用配置布隆过滤器时使用的散列函数,计算得到y对应的散列值为5、7、8,然后去布隆过滤器中查找,发现布隆过滤器的第5、7、8位均为1,说明y对应的数据有可能被更新。假设第二计算节点的内存缓存中的数据id还包含z,采用配置布隆过滤器时使用的散列函数,计算得到z对应的散列值为5、7、9,然后去布隆过滤器中查找,发现布隆过滤器的第5、7位为1,但是第9位为0,说明z对应的数据没有被更新。对于缓存的某一数据id来说,当通过布隆过滤器判断需要进行更新时,可以从外部存储设备获取更新后的数据,并根据获取到的数据更新内存缓存中的数据,使得第二计算节点的内存缓存中的数据与外部存储设备的数据保持一致。此外,也有可能存在某一没有被更新的数据id的散列值在布隆过滤器的对应位均为1。例如,假设存在数据idv,采用前述的散列函数,计算得到v对应的散列值为1、5、7,而布隆过滤器中的第1、5、7均为1,但是其实数据v并没有被更新,第1、5、7均为1的原因是数据idx和y被更新了。在这种情况下,有可能会出现将没有被更新的数据误认为被更新了,从而去外部存储设备中请求该数据,但是这不会影响数据的一致性,并且不会造成太多的额外负担,因此这种误差是可以接受的。本实施例提供的数据更新方法,可以通过分布式系统中的第一计算节点确定被更新的至少一个数据对应的数据id,根据预设规则,确定各个数据id对应的散列值,并根据各个数据id对应的散列值,配置布隆过滤器,使得所述分布式系统中的第二计算节点可以根据所述布隆过滤器确定需要更新的数据,从而更新第二计算节点中缓存的相应数据,能够利用数据id构建布隆过滤器实现更新信息的传递,无需通过逐个比对的方式更新数据,提高了数据更新的效率,降低了通信成本。在上述实施例提供的技术方案的基础上,可选的是,所述布隆过滤器可以由第一计算节点直接传输给第二计算节点,或者,布隆过滤器可以存储在其它设备中,第一计算节点可以更新所述其它设备中的布隆过滤器,第二计算节点可以读取所述其它设备中的布隆过滤器。可选的,所述布隆过滤器可以存储在第一存储设备中。相应的,根据各个数据id对应的散列值,配置布隆过滤器,可以包括:向所述第一存储设备发送配置指令,所述配置指令包括待更新的布隆过滤器的标识信息以及对应于所述布隆过滤器的数据id的散列值,以使所述第一存储设备根据所述配置指令配置对应的布隆过滤器。通过将布隆过滤器存储在外部的第一存储设备中,能够有效减轻计算节点的负担,提高布隆过滤器配置的效率和准确率。其中,所述第一存储设备可以为redis(remotedictionaryserver,远程字典服务)集群,所述配置指令可以为setbit(位操作)指令,从而可以根据位操作指令,快速、准确地更新布隆过滤器的相应比特位。redis集群可以包括多个redis节点,每一redis节点可以部署redis实例,这样,布隆过滤器的读写操作就可以分散到多个redis实例上,进一步提高布隆过滤器的读写效率。可选的,位操作指令可以提供3个参数:key、offset、value,分别对应前述的布隆过滤器的标识信息、散列值、1,表示把布隆过滤器中与散列值对应的位置设置为1。计算节点把位操作指令发送给redis集群,通过redis集群实现对布隆过滤器的配置,使得布隆过滤器可以指示数据的更新情况。进一步的,分布式系统中的每个计算节点都可以更新数据,同时也可以根据被更新的数据id对布隆过滤器进行配置,从而通过各个计算节点协作的方式实现数据的共同更新维护。图4为本公开实施例提供的一种硬件架构示意图。如图4所示,分布式系统包括多个计算节点,外部存储设备包括第一存储设备和第二存储设备,分布式系统中的每个计算节点都可以与第一存储设备和第二存储设备通信,其中,第一存储设备用于存储更新信息即布隆过滤器,第二存储设备用于存储数据,例如视频数据等。每一个计算节点都可以更新第二存储设备中存储的数据,所述计算节点在更新外部存储设备的数据后,可以根据被更新的数据id,更新第一存储设备中的布隆过滤器,从而其它的计算节点可以根据更新后的布隆过滤器确定被更新的数据id,然后从第一存储设备获取所述数据id对应的更新后的数据。在这种实现方式中,第一计算节点除了可以执行步骤201至步骤203,还可以获取缓存的至少一个数据对应的数据id,根据预设规则,确定各个数据id对应的散列值,对于每一缓存的数据,根据所述数据id对应的散列值以及所述分布式系统中其它计算节点配置过的布隆过滤器,确定是否需要更新所述数据,即,所述第一计算节点还可以实现前述实施例中的第二计算节点所实现的功能。具体的,每一计算节点都可以包括:更新配置组件和更新查询组件,其中更新配置组件用于根据被更新的数据对应的数据id配置布隆过滤器,更新查询组件用于根据布隆过滤器查询自身缓存的数据是否需要更新。通过图4所示的方案,分布式系统中的各个计算节点可以共同维护更新信息,提高了数据的更新效率,并且布隆过滤器和数据分别存储在第一存储设备和第二存储设备,能够使得保存/查询被更新的数据id与更新对应的数据分别通过与不同的外部存储设备进行交互来实现,减轻了外部存储设备的负担,进一步提高了数据存储的效率。在上述实施例提供的技术方案的基础上,可选的是,可以通过更新周期来配置对应的布隆过滤器。图5为本公开实施例提供的一种配置布隆过滤器的流程示意图。如图5所示,根据各个数据id对应的散列值,配置布隆过滤器,可以包括:步骤501、对于每一数据id,确定对应的数据被更新的时间所在的更新周期,并根据所述更新周期,确定所述数据id对应的布隆过滤器。其中,所述更新周期可以根据实际需要来设置,例如,10秒为一个更新周期。每一个周期可以对应一个或多个布隆过滤器。图6为本公开实施例提供的一种对应于更新周期设置的布隆过滤器的示意图。如图6所示,对于每一个更新周期,可以设置有一个布隆过滤器。第i个更新周期对应布隆过滤器i。其中,i的取值为1至l,l为大于等于1的整数,l表示当前存储的周期数量。在某一周期内更新的数据,对应的数据id可以用于配置所述周期对应的布隆过滤器。由于一个周期内可以更新多个数据,因此可能会有多个数据id用于配置该周期内的布隆过滤器。步骤502、根据各个数据id对应的散列值,配置对应的布隆过滤器的相应位。可选的,所述布隆过滤器的各个位的初始值为第一数值。在有数据被更新后,对于每一数据id,可以根据所述数据id对应的多个散列值,将所述数据id对应的布隆过滤器中第h位设置为第二数值,其中,所述h的取值遍历所述数据id对应的多个散列值。在所述第一数值为0,所述第二数值为1的情况下,在初始化布隆过滤器时,布隆过滤器的每一位都被设置可以为0。假设在某一周期内更新了3个数据,该周期对应的布隆过滤器为布隆过滤器1,更新的三个数据的数据id分别为x、y和z,对于每一个数据id,通过多个散列函数,分别计算对应的散列值。假设散列函数包括h1、h2、h3,对于x,需要计算h1(x)、h2(x)、h3(x),同理,对于y和z,需要计算h1(y)、h2(y)、h3(y)以及h1(z)、h2(z)、h3(z),在得到这些散列值后,配置对应的布隆过滤器的相应位,即,将布隆过滤器1的第h1(x)位、第h2(x)位、第h3(x)位、第h1(y)位、第h2(y)位、第h3(y)位以及第h1(z)位、第h2(z)位、第h3(z)位均设置为1。相应的,第一计算节点对于每一缓存的数据,根据所述数据id对应的散列值以及所述分布式系统中其它计算节点配置过的布隆过滤器,确定是否需要更新所述数据,可以包括:确定至少一个历史更新周期对应的布隆过滤器;对于每一缓存的数据,根据所述数据id对应的散列值以及所述至少一个历史更新周期对应的布隆过滤器,确定是否需要更新所述数据。具体的,第一计算节点可以每隔预设的查询周期来查询一次是否需要更新数据。可选的,所述查询周期的长度可以等于更新周期的长度。相应的,所述至少一个历史更新周期为上一更新周期,所述第一计算节点每隔所述更新周期根据布隆过滤器确定是否有需要更新的数据,从而在数据被更新后可以尽快被查询到,兼顾数据查询的成本和准确率,保证数据一致性。在其它可选的实现方式中,所述查询周期的长度也可以大于或小于更新周期的长度。当所述查询周期的长度大于更新周期的长度时,上述的至少一个历史更新周期可以为多个更新周期,例如,更新周期为10秒,查询周期为20秒,则所述至少一个历史更新周期可以包括最近的两个更新周期。在确定至少一个历史更新周期对应的布隆过滤器之后,对于本地缓存的任一数据,可以根据所述数据id对应的散列值以及所述至少一个历史更新周期对应的布隆过滤器,确定是否需要更新所述数据。具体的,可以根据确定的每一布隆过滤器,查找该布隆过滤器中与所述数据id的散列值对应的位置是否都为1,若有任意一个布隆过滤器中对应的位置都为1,则说明需要更新对应的数据。通过以上所述的方案,可以在数据更新时,根据每个数据被更新的时间所在的更新周期,确定数据id对应的布隆过滤器,进而根据每个数据id对应的散列值配置对应的布隆过滤器,在数据查询时,相应的确定至少一个历史更新周期对应的布隆过滤器,并根据所述至少一个历史更新周期确定哪些数据需要被更新,从而将数据更新和数据查询分散到各个时间周期内,提高数据更新和查询的实时性,并且,可以将布隆过滤器的读写操作分散到多个redis实例,提升布隆过滤器的读写效率。此外,本公开实施例提供的方案还可以有效降低更新缓存的通信成本。例如,本地缓存中有10万个数据,每个周期内有1000个发生更新,使用5个512字节的存储空间保存布隆过滤器,每个周期仅需读取5个512字节的存储空间,然后检测出发生更新的1000个数据再进行更新即可,这样每个周期内相比全量更新,极大降低通信成本。在上述实施例提供的技术方案的基础上,可选的是,每一更新周期可以对应多个布隆过滤器。相应的,根据所述更新周期,确定所述数据id对应的布隆过滤器,可以包括:根据所述数据id对应的散列值,从所述更新周期对应的多个布隆过滤器中确定所述数据id对应的布隆过滤器。图7为本公开实施例提供的一种对应于更新周期和散列值设置的布隆过滤器的示意图。如图7所示,对于每一个更新周期,可以设置有多个布隆过滤器。第i个更新周期对应布隆过滤器ij。其中,i的取值为1至l,l为大于等于1的整数,l表示当前存储的周期数量,j的取值为1至n,n为大于等于2的整数,n表示每个更新周期内的布隆过滤器的数量。在一个更新周期对应多个布隆过滤器的情况下,可以根据数据id的散列值将数据id映射到不同的布隆过滤器上,从而可以将一个更新周期内的所有数据id分散给不同的布隆过滤器,在配置布隆过滤器时,如果第一存储设备有多个实例提供服务,可以分散写操作,降低每个存储实例的压力。例如,数据idx、y和z对应的数据在同一个更新周期内均被更新,根据散列值,x和y被映射到布隆过滤器11,z被映射到布隆过滤器12,因此,x和y对应的散列值可以用于配置布隆过滤器11,z对应的散列值可以用于配置布隆过滤器12。相应的,在更新查询时,确定至少一个历史更新周期对应的布隆过滤器,可以包括:对于每一历史更新周期,根据所述历史更新周期以及每一更新周期内布隆过滤器的数量,确定所述历史更新周期对应的多个布隆过滤器。根据所述数据id对应的散列值以及所述至少一个历史更新周期对应的布隆过滤器,确定是否需要更新所述数据id对应的数据,可以包括:针对每一历史更新周期,根据所述数据id对应的散列值,从所述历史更新周期内对应的布隆过滤器中查找所述数据id对应的布隆过滤器;根据查找到的布隆过滤器确定是否需要更新所述数据id对应的数据。这样,在读取布隆过滤器时,如果第一存储设备有多个实例提供服务,可以分散读操作,降低每个存储实例的压力。进一步的,在数据更新时,根据所述数据id对应的散列值,从所述更新周期对应的多个布隆过滤器中确定所述数据id对应的布隆过滤器,可以包括:确定所述数据id对应的数据被更新的时间,将所述被更新的时间对一个更新周期的时长进行整除运算,得到周期信息,所述周期信息用于指示数据被更新的时间所在的更新周期;将所述数据id对应的散列值对一个更新周期对应的布隆过滤器的数量进行取模运算,得到对应的序列信息;将所述周期信息与所述序列信息进行拼接,得到所述数据id对应的布隆过滤器的标识信息。假设某一数据被更新时对应的当前时间戳为t,通过k个散列函数h0、h2、…、hk-1,计算得到的散列值分别为h0至hk-1,则可以将散列值h0至hk-1中的至少一项以及t作为参数,生成一个key,所述key就是布隆过滤器的标识信息。具体的,可以将周期信息t/m和序列信息h0%n进行拼接,得到key。其中,m为一个更新周期的时长,例如为10秒,n为一个更新周期对应的布隆过滤器的数量,h0为数据id对应的第一个散列值,即,通过第一个散列函数h0得到的散列值。将t对m进行整除运算,得到的周期信息可以用于指示数据被更新的时间所在的更新周期,即,数据在第几个周期被更新。h0%n的目的是,同一周期更新的多个数据id,会被均匀打散到多个key上。当某两个数据id对应的更新周期和h0都相同时,它们对应的key相同,即,它们对应同一个布隆过滤器;当某两个数据id对应的更新周期不相同时,对应的key也不相同;当某两个数据id的更新周期相同,但h0不相同时,他们对应的key可能相同,也可能不同。t/m可以在时间上将数据id打散,h0%n可以用于根据散列值将数据id进一步打散,从而实现分散读写操作。当然,也可以选择类似的其它方法,例如用其它散列值代替h0,或者,用散列值的平均数代替h0等。可选的,将所述周期信息与所述序列信息进行拼接,得到所述数据id对应的布隆过滤器的标识信息,可以包括:将预设前缀(prefix)与所述周期信息、所述序列信息进行拼接,得到所述数据id对应的布隆过滤器的标识信息。图8为本公开实施例提供的一种在数据更新时确定布隆过滤器的标识信息的示意图。如图8所示,所述标识信息key,由三部分拼接而成,分别是预设前缀、t/m和h0%n。其中,所述预设前缀用于表示所述标识信息为布隆过滤器的标识信息,即,该标识信息是布隆过滤器的标识信息,而非其它变量的标识信息。所述特定前缀可以是一固定值,可以根据实际需要进行设置,用于标识布隆过滤器,避免与其它信息的标识发生冲突。可选的,所述预设前缀可以与所述分布式系统中除布隆过滤器以外的其它变量的前缀均不相同。在数据更新时,对于被更新的每一数据id,找到它对应的key的存储空间,然后把数据id的多个散列值对应的位置设置为1,从而完成布隆过滤器的配置。具体的,可以使用第一存储设备的位操作指令,将key在第一存储设备中的value,即对应的布隆过滤器的第h0位,第h1位…第hk-1位的值设置为1。在更新查询时,根据所述数据id对应的散列值,从所述历史更新周期内对应的布隆过滤器中查找所述数据id对应的布隆过滤器,可以包括:根据所述历史更新周期确定对应的周期信息;将所述数据id对应的散列值对一个更新周期对应的布隆过滤器的数量进行取模运算,得到对应的序列信息;将所述周期信息与所述序列信息进行拼接,得到所述数据id对应的布隆过滤器的标识信息。进一步的,若在数据更新时,为每一个布隆过滤器的key增加了预设前缀,则在更新查询时,得到的标识信息中也可以添加相应的预设前缀。可选的,根据历史更新周期确定对应的周期信息,包括:将当前时间对一个更新周期的时长进行整除运算;将整除运算的结果减去偏移量,得到对应的周期信息;其中,所述偏移量通过所述历史更新周期与当前更新周期之间间隔的周期数量确定。图9为本公开实施例提供的一种在更新查询时确定布隆过滤器的标识信息的示意图。如图9所示,对于每一缓存的数据,可以通过预设前缀、t/m–o和h0%n三部分拼接得到对应的布隆过滤器的标识信息。其中,t为查询时对应的当前时间戳,m为更新周期,h0为数据id对应的第一个散列值,o为偏移量,当每隔更新周期m执行一次查询操作时,o可以为1。通过图9所示的方式,可以计算对应的布隆过滤器的标识信息,并通过标识信息查找到对应的布隆过滤器,确定与所述数据id的散列值对应的位置是否都为1,从而判断所述数据是否需要被更新。在实际应用中,可以每隔更新周期m执行一次查询操作,则在每次查询时,可以构建n个key。具体的,可以通过预设前缀prefix(前缀是可选的)和t/m–o以及n作为参数,遍历1至n,得到n个key。这里key的构建方式与数据更新时的构建方式保持一致,从而得到前一更新周期的所有key。在得到前一更新周期内的所有key后,可以从第一存储设备中读取这n个key对应的布隆过滤器,并使用散列表维护这n个key和布隆过滤器的对应关系。其中,n个key与n个布隆过滤器为一一对应关系,即第i个key对应于第i个布隆过滤器,i的取值为从1至n。然后,遍历内存缓存中的所有数据,对于一个数据id,通过如下方式检测其是否被更新:使用k个散列函数计算出k个散列值h0~hk-1,这k个散列函数与数据更新时配置布隆过滤器所使用的k个散列函数一致,然后,通过t和h0,得到对应的key,并从散列表中查询对应的布隆过滤器,根据对应的布隆过滤器判断所述数据是否需要更新。具体的,可以在该布隆过滤器中检测第h0位、第h1位、…、第hk-1位的值是否都为1,若都为1,则表明数据在第二存储设备中有可能被更新,此时需要从第二存储设备重新加载该数据并更新本地缓存。若其中至少有一位为0,则一定未被更新,不需要重新加载该数据。通过上述方法,可以使用特定的机制生成布隆过滤器的key,从而将读写操作均匀打散到多个第一存储设备的实例,降低每个第一存储设备实例的写压力和存储总量。在上述实施例提供的技术方案的基础上,可选的是,可以在第一计算节点中设置更新清理组件,用于实现对过期的布隆过滤器的清理。在一种可选的方案中,可以每隔预设的清理周期,删除预设时间之前的布隆过滤器。所述清理周期可以根据实际需要来设置,例如可以为1天。具体的,可以由更新清理组件定期执行清理操作,删除第一存储设备中预设时间之前的更新信息,能够实现对布隆过滤器的主动清理。在另一种可选的方案中,可以在配置布隆过滤器后,向存储所述布隆过滤器的第一存储设备发送所述布隆过滤器对应的过期时间,以使所述第一存储设备根据所述过期时间自动删除所述布隆过滤器。具体的,如果第一存储设备支持过期删除机制,例如,redis集群提供了expire指令设置数据的过期时间,则可以在更新配置组件完成对布隆过滤器的配置后,给对应的key设置一个过期时间,让第一存储设备自行删除,减轻计算节点的负担。在其它可选的实现方式中,也可以两种方案同时使用,或交替使用。通过上述方案,可以实现对过期的布隆过滤器的及时清理,减少对第一存储设备的存储空间的占用,优化第一存储设备的存储性能。可选的是,分布式系统中,可以在各个计算节点中均设置更新配置组件、更新查询组件、更新清理组件;或者,某些计算节点中也可以仅设置部分组件,例如仅设置更新配置组件和更新查询组件,不设置更新清理组件,本公开实施例对此不作限制。对应于以上实施例提供的数据更新方法,本公开实施例还提供一种数据更新装置,应用于分布式系统中的第一计算节点。图10为本公开实施例提供的一种数据更新装置的结构框图。为了便于说明,仅示出了与本公开实施例相关的部分。参照图10,所述装置可以包括:确定模块1001,用于确定被更新的至少一个数据对应的数据id;计算模块1002,用于根据预设规则,确定各个数据id对应的散列值;配置模块1003,用于根据各个数据id对应的散列值,配置布隆过滤器,以使所述分布式系统中的第二计算节点根据所述布隆过滤器确定需要更新的数据。在本公开的一个实施例中,所述配置模块1003具体用于:对于每一数据id,确定对应的数据被更新的时间所在的更新周期,并根据所述更新周期,确定所述数据id对应的布隆过滤器;根据各个数据id对应的散列值,配置对应的布隆过滤器的相应位。在本公开的一个实施例中,每一更新周期对应多个布隆过滤器;相应的,所述配置模块1003在根据所述更新周期,确定所述数据id对应的布隆过滤器时,具体用于:根据所述数据id对应的散列值,从所述更新周期对应的多个布隆过滤器中确定所述数据id对应的布隆过滤器。在本公开的一个实施例中,所述配置模块1003在根据所述数据id对应的散列值,从所述更新周期对应的多个布隆过滤器中确定所述数据id对应的布隆过滤器时,具体用于:确定所述数据id对应的数据被更新的时间,将所述被更新的时间对一个更新周期的时长进行整除运算,得到周期信息,所述周期信息用于指示数据被更新的时间所在的更新周期;将所述数据id对应的散列值对一个更新周期对应的布隆过滤器的数量进行取模运算,得到对应的序列信息;将所述周期信息与所述序列信息进行拼接,得到所述数据id对应的布隆过滤器的标识信息。在本公开的一个实施例中,所述配置模块1003在将所述周期信息与所述序列信息进行拼接,得到所述数据id对应的布隆过滤器的标识信息时,具体用于:将预设前缀与所述周期信息、所述序列信息进行拼接,得到所述数据id对应的布隆过滤器的标识信息;其中,所述预设前缀用于表示所述标识信息为布隆过滤器的标识信息。在本公开的一个实施例中,所述布隆过滤器的各个位的初始值为第一数值;所述配置模块1003在根据预设规则,确定各个数据id对应的散列值时,具体用于:对于每一数据id,通过预设的多个散列函数分别对所述数据id进行计算,得到对应的多个散列值;所述配置模块1003在根据各个数据id对应的散列值,配置对应的布隆过滤器的相应位时,具体用于:对于每一数据id,根据所述数据id对应的多个散列值,将所述数据id对应的布隆过滤器中第h位设置为第二数值,其中,所述h的取值遍历所述数据id对应的多个散列值。在本公开的一个实施例中,所述布隆过滤器存储在第一存储设备中;所述配置模块1003具体用于:向所述第一存储设备发送配置指令,所述配置指令包括待更新的布隆过滤器的标识信息以及对应于所述布隆过滤器的数据id的散列值,以使所述第一存储设备根据所述配置指令配置对应的布隆过滤器。在本公开的一个实施例中,所述第一存储设备为redis集群,所述配置指令为位操作指令。在本公开的一个实施例中,所述配置模块1003还用于:获取缓存的至少一个数据对应的数据id;根据预设规则,确定各个数据id对应的散列值;对于每一缓存的数据,根据所述数据id对应的散列值以及所述分布式系统中其它计算节点配置过的布隆过滤器,确定是否需要更新所述数据。在本公开的一个实施例中,所述配置模块1003在对于每一缓存的数据,根据所述数据id对应的散列值以及所述分布式系统中其它计算节点配置过的布隆过滤器,确定是否需要更新所述数据时,具体用于:确定至少一个历史更新周期对应的布隆过滤器;对于每一缓存的数据,根据所述数据id对应的散列值以及所述至少一个历史更新周期对应的布隆过滤器,确定是否需要更新所述数据。在本公开的一个实施例中,每一更新周期对应多个布隆过滤器;所述配置模块1003在确定至少一个历史更新周期对应的布隆过滤器时,具体用于:对于每一历史更新周期,根据所述历史更新周期以及每一更新周期内布隆过滤器的数量,确定所述历史更新周期对应的多个布隆过滤器;相应的,根据所述数据id对应的散列值以及所述至少一个历史更新周期对应的布隆过滤器,确定是否需要更新所述数据id对应的数据,包括:针对每一历史更新周期,根据所述数据id对应的散列值,从所述历史更新周期内对应的布隆过滤器中查找所述数据id对应的布隆过滤器;根据查找到的布隆过滤器确定是否需要更新所述数据id对应的数据。在本公开的一个实施例中,所述配置模块1003在根据所述数据id对应的散列值,从所述历史更新周期内对应的布隆过滤器中查找所述数据id对应的布隆过滤器时,具体用于:根据所述历史更新周期确定对应的周期信息;将所述数据id对应的散列值对一个更新周期对应的布隆过滤器的数量进行取模运算,得到对应的序列信息;将所述周期信息与所述序列信息进行拼接,得到所述数据id对应的布隆过滤器的标识信息。在本公开的一个实施例中,所述配置模块1003在根据历史更新周期确定对应的周期信息时,具体用于:将当前时间对一个更新周期的时长进行整除运算;将整除运算的结果减去偏移量,得到对应的周期信息;其中,所述偏移量通过所述历史更新周期与当前更新周期之间间隔的周期数量确定。在本公开的一个实施例中,所述至少一个历史更新周期为上一更新周期,所述第一计算节点每隔所述更新周期根据布隆过滤器确定是否有需要更新的数据。在本公开的一个实施例中,所述配置模块1003还用于:每隔预设的清理周期,删除预设时间之前的布隆过滤器;和/或,在配置布隆过滤器后,向存储所述布隆过滤器的第一存储设备发送所述布隆过滤器对应的过期时间,以使所述第一存储设备根据所述过期时间自动删除所述布隆过滤器。本实施例提供的装置,可用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,本实施例此处不再赘述。图11为本公开实施例提供的一种电子设备的结构框图。参考图11,电子设备1100可以为终端设备或服务器。其中,终端设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、个人数字助理(personaldigitalassistant,简称pda)、平板电脑(portableandroiddevice,简称pad)、便携式多媒体播放器(portablemediaplayer,简称pmp)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字tv、台式计算机等等的固定终端。图11示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。如图11所示,电子设备1100可以包括处理装置(例如中央处理器、图形处理器等)1101,其可以根据存储在只读存储器(readonlymemory,简称rom)1102中的程序或者从存储装置1108加载到随机访问存储器(randomaccessmemory,简称ram)1103中的程序而执行各种适当的动作和处理。在ram1103中,还存储有电子设备1100操作所需的各种程序和数据。处理装置1101、rom1102以及ram1103通过总线1104彼此相连。输入/输出(i/o)接口1105也连接至总线1104。通常,以下装置可以连接至i/o接口1105:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置1106;包括例如液晶显示器(liquidcrystaldisplay,简称lcd)、扬声器、振动器等的输出装置1107;包括例如磁带、硬盘等的存储装置1108;以及通信装置1109。通信装置1109可以允许电子设备1100与其它设备进行无线或有线通信以交换数据。虽然图11示出了具有各种装置的电子设备1100,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置1109从网络上被下载和安装,或者从存储装置1108被安装,或者从rom1102被安装。在该计算机程序被处理装置1101执行时,执行本公开实施例的方法中限定的上述功能。需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、rf(射频)等等,或者上述的任意合适的组合。上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备执行上述实施例所示的方法。可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如java、smalltalk、c ,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(localareanetwork,简称lan)或广域网(wideareanetwork,简称wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定。本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、片上系统(soc)、复杂可编程逻辑设备(cpld)等等。在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。第一方面,根据本公开的一个或多个实施例,提供了一种数据更新方法,应用于分布式系统中的第一计算节点,所述方法包括:确定被更新的至少一个数据对应的数据id;根据预设规则,确定各个数据id对应的散列值;根据各个数据id对应的散列值,配置布隆过滤器,以使所述分布式系统中的第二计算节点根据所述布隆过滤器确定需要更新的数据。根据本公开的一个或多个实施例,根据各个数据id对应的散列值,配置布隆过滤器,包括:对于每一数据id,确定对应的数据被更新的时间所在的更新周期,并根据所述更新周期,确定所述数据id对应的布隆过滤器;根据各个数据id对应的散列值,配置对应的布隆过滤器的相应位。根据本公开的一个或多个实施例,每一更新周期对应多个布隆过滤器;相应的,根据所述更新周期,确定所述数据id对应的布隆过滤器,包括:根据所述数据id对应的散列值,从所述更新周期对应的多个布隆过滤器中确定所述数据id对应的布隆过滤器。根据本公开的一个或多个实施例,根据所述数据id对应的散列值,从所述更新周期对应的多个布隆过滤器中确定所述数据id对应的布隆过滤器,包括:确定所述数据id对应的数据被更新的时间,将所述被更新的时间对一个更新周期的时长进行整除运算,得到周期信息,所述周期信息用于指示数据被更新的时间所在的更新周期;将所述数据id对应的散列值对一个更新周期对应的布隆过滤器的数量进行取模运算,得到对应的序列信息;将所述周期信息与所述序列信息进行拼接,得到所述数据id对应的布隆过滤器的标识信息。根据本公开的一个或多个实施例,将所述周期信息与所述序列信息进行拼接,得到所述数据id对应的布隆过滤器的标识信息,包括:将预设前缀与所述周期信息、所述序列信息进行拼接,得到所述数据id对应的布隆过滤器的标识信息;其中,所述预设前缀用于表示所述标识信息为布隆过滤器的标识信息。根据本公开的一个或多个实施例,所述布隆过滤器的各个位的初始值为第一数值;根据预设规则,确定各个数据id对应的散列值,包括:对于每一数据id,通过预设的多个散列函数分别对所述数据id进行计算,得到对应的多个散列值;根据各个数据id对应的散列值,配置对应的布隆过滤器的相应位,包括:对于每一数据id,根据所述数据id对应的多个散列值,将所述数据id对应的布隆过滤器中第h位设置为第二数值,其中,所述h的取值遍历所述数据id对应的多个散列值。根据本公开的一个或多个实施例,所述布隆过滤器存储在第一存储设备中;根据各个数据id对应的散列值,配置布隆过滤器,包括:向所述第一存储设备发送配置指令,所述配置指令包括待更新的布隆过滤器的标识信息以及对应于所述布隆过滤器的数据id的散列值,以使所述第一存储设备根据所述配置指令配置对应的布隆过滤器。根据本公开的一个或多个实施例,所述第一存储设备为redis集群,所述配置指令为位操作指令。根据本公开的一个或多个实施例,所述方法还包括:获取缓存的至少一个数据对应的数据id;根据预设规则,确定各个数据id对应的散列值;对于每一缓存的数据,根据所述数据id对应的散列值以及所述分布式系统中其它计算节点配置过的布隆过滤器,确定是否需要更新所述数据。根据本公开的一个或多个实施例,对于每一缓存的数据,根据所述数据id对应的散列值以及所述分布式系统中其它计算节点配置过的布隆过滤器,确定是否需要更新所述数据,包括:确定至少一个历史更新周期对应的布隆过滤器;对于每一缓存的数据,根据所述数据id对应的散列值以及所述至少一个历史更新周期对应的布隆过滤器,确定是否需要更新所述数据。根据本公开的一个或多个实施例,每一更新周期对应多个布隆过滤器;确定至少一个历史更新周期对应的布隆过滤器,包括:对于每一历史更新周期,根据所述历史更新周期以及每一更新周期内布隆过滤器的数量,确定所述历史更新周期对应的多个布隆过滤器;相应的,根据所述数据id对应的散列值以及所述至少一个历史更新周期对应的布隆过滤器,确定是否需要更新所述数据id对应的数据,包括:针对每一历史更新周期,根据所述数据id对应的散列值,从所述历史更新周期内对应的布隆过滤器中查找所述数据id对应的布隆过滤器;根据查找到的布隆过滤器确定是否需要更新所述数据id对应的数据。根据本公开的一个或多个实施例,根据所述数据id对应的散列值,从所述历史更新周期内对应的布隆过滤器中查找所述数据id对应的布隆过滤器,包括:根据所述历史更新周期确定对应的周期信息;将所述数据id对应的散列值对一个更新周期对应的布隆过滤器的数量进行取模运算,得到对应的序列信息;将所述周期信息与所述序列信息进行拼接,得到所述数据id对应的布隆过滤器的标识信息。根据本公开的一个或多个实施例,根据历史更新周期确定对应的周期信息,包括:将当前时间对一个更新周期的时长进行整除运算;将整除运算的结果减去偏移量,得到对应的周期信息;其中,所述偏移量通过所述历史更新周期与当前更新周期之间间隔的周期数量确定。根据本公开的一个或多个实施例,所述至少一个历史更新周期为上一更新周期,所述第一计算节点每隔所述更新周期根据布隆过滤器确定是否有需要更新的数据。根据本公开的一个或多个实施例,所述方法还包括:每隔预设的清理周期,删除预设时间之前的布隆过滤器;和/或,在配置布隆过滤器后,向存储所述布隆过滤器的第一存储设备发送所述布隆过滤器对应的过期时间,以使所述第一存储设备根据所述过期时间自动删除所述布隆过滤器。第二方面,根据本公开的一个或多个实施例,提供了一种数据更新装置,应用于分布式系统中的第一计算节点,所述装置包括:确定模块,用于确定被更新的至少一个数据对应的数据id;计算模块,用于根据预设规则,确定各个数据id对应的散列值;配置模块,用于根据各个数据id对应的散列值,配置布隆过滤器,以使所述分布式系统中的第二计算节点根据所述布隆过滤器确定需要更新的数据。根据本公开的一个或多个实施例,所述配置模块1003具体用于:对于每一数据id,确定对应的数据被更新的时间所在的更新周期,并根据所述更新周期,确定所述数据id对应的布隆过滤器;根据各个数据id对应的散列值,配置对应的布隆过滤器的相应位。根据本公开的一个或多个实施例,每一更新周期对应多个布隆过滤器;相应的,所述配置模块在根据所述更新周期,确定所述数据id对应的布隆过滤器时,具体用于:根据所述数据id对应的散列值,从所述更新周期对应的多个布隆过滤器中确定所述数据id对应的布隆过滤器。根据本公开的一个或多个实施例,所述配置模块在根据所述数据id对应的散列值,从所述更新周期对应的多个布隆过滤器中确定所述数据id对应的布隆过滤器时,具体用于:确定所述数据id对应的数据被更新的时间,将所述被更新的时间对一个更新周期的时长进行整除运算,得到周期信息,所述周期信息用于指示数据被更新的时间所在的更新周期;将所述数据id对应的散列值对一个更新周期对应的布隆过滤器的数量进行取模运算,得到对应的序列信息;将所述周期信息与所述序列信息进行拼接,得到所述数据id对应的布隆过滤器的标识信息。根据本公开的一个或多个实施例,所述配置模块在将所述周期信息与所述序列信息进行拼接,得到所述数据id对应的布隆过滤器的标识信息时,具体用于:将预设前缀与所述周期信息、所述序列信息进行拼接,得到所述数据id对应的布隆过滤器的标识信息;其中,所述预设前缀用于表示所述标识信息为布隆过滤器的标识信息。根据本公开的一个或多个实施例,所述布隆过滤器的各个位的初始值为第一数值;所述配置模块在根据预设规则,确定各个数据id对应的散列值时,具体用于:对于每一数据id,通过预设的多个散列函数分别对所述数据id进行计算,得到对应的多个散列值;所述配置模块在根据各个数据id对应的散列值,配置对应的布隆过滤器的相应位时,具体用于:对于每一数据id,根据所述数据id对应的多个散列值,将所述数据id对应的布隆过滤器中第h位设置为第二数值,其中,所述h的取值遍历所述数据id对应的多个散列值。根据本公开的一个或多个实施例,所述布隆过滤器存储在第一存储设备中;所述配置模块具体用于:向所述第一存储设备发送配置指令,所述配置指令包括待更新的布隆过滤器的标识信息以及对应于所述布隆过滤器的数据id的散列值,以使所述第一存储设备根据所述配置指令配置对应的布隆过滤器。根据本公开的一个或多个实施例,所述第一存储设备为redis集群,所述配置指令为位操作指令。根据本公开的一个或多个实施例,所述配置模块还用于:获取缓存的至少一个数据对应的数据id;根据预设规则,确定各个数据id对应的散列值;对于每一缓存的数据,根据所述数据id对应的散列值以及所述分布式系统中其它计算节点配置过的布隆过滤器,确定是否需要更新所述数据。根据本公开的一个或多个实施例,所述配置模块在对于每一缓存的数据,根据所述数据id对应的散列值以及所述分布式系统中其它计算节点配置过的布隆过滤器,确定是否需要更新所述数据时,具体用于:确定至少一个历史更新周期对应的布隆过滤器;对于每一缓存的数据,根据所述数据id对应的散列值以及所述至少一个历史更新周期对应的布隆过滤器,确定是否需要更新所述数据。根据本公开的一个或多个实施例,每一更新周期对应多个布隆过滤器;所述配置模块在确定至少一个历史更新周期对应的布隆过滤器时,具体用于:对于每一历史更新周期,根据所述历史更新周期以及每一更新周期内布隆过滤器的数量,确定所述历史更新周期对应的多个布隆过滤器;相应的,根据所述数据id对应的散列值以及所述至少一个历史更新周期对应的布隆过滤器,确定是否需要更新所述数据id对应的数据,包括:针对每一历史更新周期,根据所述数据id对应的散列值,从所述历史更新周期内对应的布隆过滤器中查找所述数据id对应的布隆过滤器;根据查找到的布隆过滤器确定是否需要更新所述数据id对应的数据。根据本公开的一个或多个实施例,所述配置模块在根据所述数据id对应的散列值,从所述历史更新周期内对应的布隆过滤器中查找所述数据id对应的布隆过滤器时,具体用于:根据所述历史更新周期确定对应的周期信息;将所述数据id对应的散列值对一个更新周期对应的布隆过滤器的数量进行取模运算,得到对应的序列信息;将所述周期信息与所述序列信息进行拼接,得到所述数据id对应的布隆过滤器的标识信息。根据本公开的一个或多个实施例,所述配置模块在根据历史更新周期确定对应的周期信息时,具体用于:将当前时间对一个更新周期的时长进行整除运算;将整除运算的结果减去偏移量,得到对应的周期信息;其中,所述偏移量通过所述历史更新周期与当前更新周期之间间隔的周期数量确定。根据本公开的一个或多个实施例,所述至少一个历史更新周期为上一更新周期,所述第一计算节点每隔所述更新周期根据布隆过滤器确定是否有需要更新的数据。根据本公开的一个或多个实施例,所述配置模块还用于:每隔预设的清理周期,删除预设时间之前的布隆过滤器;和/或,在配置布隆过滤器后,向存储所述布隆过滤器的第一存储设备发送所述布隆过滤器对应的过期时间,以使所述第一存储设备根据所述过期时间自动删除所述布隆过滤器。第三方面,根据本公开的一个或多个实施例,提供了一种电子设备,包括:存储器和至少一个处理器;所述存储器存储计算机执行指令;所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如上第一方面以及第一方面各种可能的设计所述的数据更新方法。第四方面,根据本公开的一个或多个实施例,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上第一方面以及第一方面各种可能的设计所述的数据更新方法。以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。此外,虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序执行来执行。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。当前第1页1 2 3 当前第1页1 2 3 
    技术特征:

    1.一种数据更新方法,其特征在于,应用于分布式系统中的第一计算节点,所述方法包括:

    确定被更新的至少一个数据对应的数据id;

    根据预设规则,确定各个数据id对应的散列值;

    根据各个数据id对应的散列值,配置布隆过滤器,以使所述分布式系统中的第二计算节点根据所述布隆过滤器确定需要更新的数据。

    2.根据权利要求1所述的方法,其特征在于,根据各个数据id对应的散列值,配置布隆过滤器,包括:

    对于每一数据id,确定对应的数据被更新的时间所在的更新周期,并根据所述更新周期,确定所述数据id对应的布隆过滤器;

    根据各个数据id对应的散列值,配置对应的布隆过滤器的相应位。

    3.根据权利要求2所述的方法,其特征在于,每一更新周期对应多个布隆过滤器;

    相应的,根据所述更新周期,确定所述数据id对应的布隆过滤器,包括:

    根据所述数据id对应的散列值,从所述更新周期对应的多个布隆过滤器中确定所述数据id对应的布隆过滤器。

    4.根据权利要求3所述的方法,其特征在于,根据所述数据id对应的散列值,从所述更新周期对应的多个布隆过滤器中确定所述数据id对应的布隆过滤器,包括:

    确定所述数据id对应的数据被更新的时间,将所述被更新的时间对一个更新周期的时长进行整除运算,得到周期信息,所述周期信息用于指示数据被更新的时间所在的更新周期;

    将所述数据id对应的散列值对一个更新周期对应的布隆过滤器的数量进行取模运算,得到对应的序列信息;

    将所述周期信息与所述序列信息进行拼接,得到所述数据id对应的布隆过滤器的标识信息。

    5.根据权利要求4所述的方法,其特征在于,将所述周期信息与所述序列信息进行拼接,得到所述数据id对应的布隆过滤器的标识信息,包括:

    将预设前缀与所述周期信息、所述序列信息进行拼接,得到所述数据id对应的布隆过滤器的标识信息;

    其中,所述预设前缀用于表示所述标识信息为布隆过滤器的标识信息。

    6.根据权利要求2所述的方法,其特征在于,所述布隆过滤器的各个位的初始值为第一数值;

    根据预设规则,确定各个数据id对应的散列值,包括:对于每一数据id,通过预设的多个散列函数分别对所述数据id进行计算,得到对应的多个散列值;

    根据各个数据id对应的散列值,配置对应的布隆过滤器的相应位,包括:对于每一数据id,根据所述数据id对应的多个散列值,将所述数据id对应的布隆过滤器中第h位设置为第二数值,其中,所述h的取值遍历所述数据id对应的多个散列值。

    7.根据权利要求1所述的方法,其特征在于,所述布隆过滤器存储在第一存储设备中;

    根据各个数据id对应的散列值,配置布隆过滤器,包括:

    向所述第一存储设备发送配置指令,所述配置指令包括待更新的布隆过滤器的标识信息以及对应于所述布隆过滤器的数据id的散列值,以使所述第一存储设备根据所述配置指令配置对应的布隆过滤器。

    8.根据权利要求7所述的方法,其特征在于,所述第一存储设备为redis集群,所述配置指令为位操作指令。

    9.根据权利要求1-8任一项所述的方法,其特征在于,还包括:

    获取缓存的至少一个数据对应的数据id;

    根据预设规则,确定各个数据id对应的散列值;

    对于每一缓存的数据,根据所述数据id对应的散列值以及所述分布式系统中其它计算节点配置过的布隆过滤器,确定是否需要更新所述数据。

    10.根据权利要求9所述的方法,其特征在于,对于每一缓存的数据,根据所述数据id对应的散列值以及所述分布式系统中其它计算节点配置过的布隆过滤器,确定是否需要更新所述数据,包括:

    确定至少一个历史更新周期对应的布隆过滤器;

    对于每一缓存的数据,根据所述数据id对应的散列值以及所述至少一个历史更新周期对应的布隆过滤器,确定是否需要更新所述数据。

    11.根据权利要求10所述的方法,其特征在于,每一更新周期对应多个布隆过滤器;

    确定至少一个历史更新周期对应的布隆过滤器,包括:

    对于每一历史更新周期,根据所述历史更新周期以及每一更新周期内布隆过滤器的数量,确定所述历史更新周期对应的多个布隆过滤器;

    相应的,根据所述数据id对应的散列值以及所述至少一个历史更新周期对应的布隆过滤器,确定是否需要更新所述数据id对应的数据,包括:

    针对每一历史更新周期,根据所述数据id对应的散列值,从所述历史更新周期内对应的布隆过滤器中查找所述数据id对应的布隆过滤器;

    根据查找到的布隆过滤器确定是否需要更新所述数据id对应的数据。

    12.根据权利要求11所述的方法,其特征在于,根据所述数据id对应的散列值,从所述历史更新周期内对应的布隆过滤器中查找所述数据id对应的布隆过滤器,包括:

    根据所述历史更新周期确定对应的周期信息;

    将所述数据id对应的散列值对一个更新周期对应的布隆过滤器的数量进行取模运算,得到对应的序列信息;

    将所述周期信息与所述序列信息进行拼接,得到所述数据id对应的布隆过滤器的标识信息。

    13.根据权利要求12所述的方法,其特征在于,根据历史更新周期确定对应的周期信息,包括:

    将当前时间对一个更新周期的时长进行整除运算;

    将整除运算的结果减去偏移量,得到对应的周期信息;

    其中,所述偏移量通过所述历史更新周期与当前更新周期之间间隔的周期数量确定。

    14.根据权利要求10所述的方法,其特征在于,所述至少一个历史更新周期为上一更新周期,所述第一计算节点每隔所述更新周期根据布隆过滤器确定是否有需要更新的数据。

    15.根据权利要求1-8任一项所述的方法,其特征在于,还包括:

    每隔预设的清理周期,删除预设时间之前的布隆过滤器;和/或,

    在配置布隆过滤器后,向存储所述布隆过滤器的第一存储设备发送所述布隆过滤器对应的过期时间,以使所述第一存储设备根据所述过期时间自动删除所述布隆过滤器。

    16.一种数据更新装置,其特征在于,应用于分布式系统中的第一计算节点,所述装置包括:

    确定模块,用于确定被更新的至少一个数据对应的数据id;

    计算模块,用于根据预设规则,确定各个数据id对应的散列值;

    配置模块,用于根据各个数据id对应的散列值,配置布隆过滤器,以使所述分布式系统中的第二计算节点根据所述布隆过滤器确定需要更新的数据。

    17.一种电子设备,其特征在于,包括:存储器和至少一个处理器;

    所述存储器存储计算机执行指令;

    所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如权利要求1-15任一项所述的数据更新方法。

    18.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如权利要求1-15任一项所述的数据更新方法。

    19.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1-15任一项所述的方法。

    技术总结
    本公开实施例提供一种数据更新方法、装置、设备、存储介质及程序产品,该方法包括:确定被更新的至少一个数据对应的数据ID;根据预设规则,确定各个数据ID对应的散列值;根据各个数据ID对应的散列值,配置布隆过滤器,以使所述分布式系统中的第二计算节点根据所述布隆过滤器确定需要更新的数据。本公开实施例提供的数据更新方法、装置、设备、存储介质及程序产品,能够利用数据ID构建布隆过滤器实现更新信息的传递,无需通过逐个比对的方式更新数据,提高了数据更新的效率,降低了通信成本。

    技术研发人员:李海波;何兰州;肖勤
    受保护的技术使用者:北京字节跳动网络技术有限公司
    技术研发日:2020.12.14
    技术公布日:2021.03.12

    转载请注明原文地址:https://wp.8miu.com/read-22091.html

    最新回复(0)