CN106559452A - 集群环境下的数据处理方法及装置 - Google Patents
集群环境下的数据处理方法及装置 Download PDFInfo
- Publication number
- CN106559452A CN106559452A CN201510629553.8A CN201510629553A CN106559452A CN 106559452 A CN106559452 A CN 106559452A CN 201510629553 A CN201510629553 A CN 201510629553A CN 106559452 A CN106559452 A CN 106559452A
- Authority
- CN
- China
- Prior art keywords
- time
- standard
- cache partitions
- entry
- force
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请实施例公开了集群环境下的数据处理方法及装置。该方法包括:响应于其中一个数据处理装置的本地缓存所存储的数据发生更新,接收关于缓存数据更新的广播消息;根据原始生效时间,查找晚于或者等于原始生效时间之后的第一个标准生效时间,标准生效时间为预先设定的具有相等间隔的时间值,分别用于指示不同的缓存分区所存储的数据的生效起始时间;识别第一个标准生效时间是否已被分配对应的缓存分区;如果第一个标准生效时间已被分配对应的缓存分区,将新数据写入第一个标准生效时间对应的缓存分区以及第一个标准生效时间之后的所有标准生效时间对应的缓存分区。通过本申请实施例,保证了集群环境下的数据一致性。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及集群环境下的数据处理方法及装置。
背景技术
随着网络通信能力和服务器计算能力的增强,越来越多的应用对计算型服务提出了更高的要求。计算过程中所需要的基础数据可能来自于查询本系统数据库,或者通过调用其它系统提供的远程调用接口查询获取。对于计算流量大、响应时间要求严格的计算服务,特别是查询基础数据的方式为批量查询时,由于需要借助网络通信进行数据库查询,以及需要进行数据库连接等操作,无论查询本系统数据库还是其它系统数据库,都将增加查询时间,导致查询响应时间(Response Time)延长。
一种有效的解决方法是将计算需要的基础数据放在查询服务器系统内的缓存中。可以将缓存数据集中在专门的缓存服务器,即采用集中式缓存。对于单次查询来说,集中式缓存能够比查询数据库节省较多的查询时间,然而对于批量查询,由于网络访问带来的传输时延仍然存在,因此,批量查询的响应时间依然较长。
对于不能容忍大时延的应用系统,可以采用本地缓存(Local cache)的方式。本地缓存没有单独设置后方存储系统作为专门的缓存服务器,而仅仅将缓存空间设置在应用系统本地,例如,将键值(KV,Key Value)集合存储在单机的内存中。由于在集群环境下,各个应用服务器都有自己的本地缓存,同时又需要保证当访问集群中不同服务器时获得的结果相同。在某些特定应用场景中,对采用本地缓存技术的集群部署应用的数据一致性要求格外严格。例如:搜索商品显示价格的应用场景,不能因为响应的服务器不同而让用户每次搜索商品看到的价格都不一致。可见,在集群部署的应用中使用本地缓存需要解决的问题是集群内各个单机本地缓存的数据一致性问题。
现有的一种解决方案是将集中缓存与本地缓存相结合。本地缓存作为一级缓存,集中式缓存作为二级缓存,在一级缓存没有命中的情况下,查询二级缓存,并将命中的查询结果回写一级缓存。在写入一级缓存的时候,本地缓存具有一定的有效时间,过了该有效时间后本地缓存的内容自动失效,从而导致查询不命中。然而,由于使用两级缓存,在一级缓存没有命中的情况下,存在第二次集中式缓存查询和回写一级缓存的操作,导致响应时间升高。尤其在批量查询的场景下,响应时间极具增长。
此外,使用本地缓存的自动过期策略容易导致集群内各服务器本地缓存的数据不一致。因为,本地缓存的KV的填充时间依赖于自然请求的时间,多台机器的请求时间不一致会导致本地缓存中KV的失效时间不一致。此时,如果此时集中式缓存的数据发生变化,就会出现各服务器中本地缓存的数据不一致的现象。
另一种方法是使用集群本地缓存通过广播消息更新数据。当集群内单机数据发生变化时,由一台机器通过消息中间件广播通知集群中每一台机器,单台机器接收到数据变更通知,立即覆盖本机本地缓存的KV。在这种方案中,由于消息中间件的实现方式不同,每台机器从接收到广播消息到写本地缓存成功的时间可能不同,从而使得成功写完本地缓存的时间不同,导致集群内各单机本地缓存的数据在某些时刻出现不一致。
可见,针对集群环境下本地缓存数据的一致性问题,需要一种新的技术方案。
发明内容
本申请提供了集群环境下的数据处理方法及装置,以解决现有技术中集群环境下本地缓存数据的一致性问题。
本申请提供了如下方案:
一种集群环境下的数据处理方法,所述集群环境中包括多个数据处理装置,每个数据处理装置包含缓存空间,所述方法包括:
响应于其中一个数据处理装置的本地缓存所存储的数据发生更新,接收该发生数据更新的数据处理装置向集群中的其它数据处理装置发送的广播消息,所述广播消息包含新数据以及所述新数据的原始生效时间;
根据所述原始生效时间,查找晚于或者等于所述原始生效时间之后的第一个标准生效时间,所述标准生效时间为预先设定的具有相等间隔的时间值,分别用于指示不同的缓存分区所存储的数据的生效起始时间,所述缓存分区的数据在对应的该标准生效时间至下一个标准生效时间之间有效;
识别所述第一个标准生效时间是否已被分配对应的缓存分区;
如果所述第一个标准生效时间已被分配对应的缓存分区,则将所述新数据写入所述第一个标准生效时间对应的缓存分区以及所述第一个标准生效时间之后的所有标准生效时间对应的缓存分区。
一种集群环境下的数据处理装置,所述集群环境中包括多个数据处理装置,每个数据处理装置包含缓存空间,所述数据处理装置包括:
消息接收单元,用于响应于其中一个数据处理装置的本地缓存所存储的数据发生更新,接收关于缓存数据更新的广播消息,所述广播消息包含新数据以及所述新数据的原始生效时间;
标准生效时间确定单元,用于根据所述原始生效时间,查找晚于或者等于所述原始生效时间之后的第一个标准生效时间,所述标准生效时间为预先设定的具有相等间隔的时间值,分别用于指示不同的缓存分区所存储的数据的生效起始时间,所述缓存分区的数据在对应的该标准生效时间至下一个标准生效时间之间有效;
缓存分区识别单元,用于识别所述第一个标准生效时间是否已被分配对应的缓存分区;
数据写入单元,用于如果所述第一个标准生效时间已被分配对应的缓存分区,将所述新数据写入所述第一个标准生效时间对应的缓存分区以及所述第一个标准生效时间之后的所有标准生效时间对应的缓存分区。
根据本申请提供的具体实施例,本申请公开了以下技术效果:
通过本申请实施例,为集群环境中所有数据处理装置本地缓存的缓存分区设置统一的标准生效时间,基于原始生效时间获得固定统一的标准生效时间,使得不同的数据处理装置在接收到相同的新数据后写入到相对应到缓存分区,并延迟到相同的标准生效时间生效,从而保证了集群内不同数据处理装置具有的有效的缓存数据相同,保证了集群环境下的数据一致性。
在本申请的一些实施例中,在查询获得的第一个标准生效时间,只有当该标准生效时间不存在对应的缓存分区时,才进行缓存分配的操作和对应的写入操作,从而能够节约缓存资源。
在本申请的一些实施例中,通过分配新的缓存空间存放第一个标准生效时间对应的缓存分区的地址,并将第一个标准生效时间之前的最近一个缓存分区的地址写入新的缓存空间,从而实现了仅仅分配新的地址空间指向旧的内存空间,节约了内存资源。
在本申请的一些实施例中,根据当前时间,获得对应的当前标准时间,并使得当前标准时间与当前指针相关联,从而将集群内各个节点的当前时间均统一到同一个当前标准时间,以方便根据当前指针进行读写操作。
在本申请的一些实施例中,通过将当前标准时间与当前指针相关联,使得当前指针指向当前时间最新的缓存分区,并从当前指针指向的缓存分区读取数据,从而使得集群内任意节点当前时刻从缓存分区读取的数据相同,实现读数据的一致性。
在本申请的一些实施例中,通过设置当前指针,使得读操作针对当前指针指向的缓存分区,写操作针对当前指针向前方向的分区,读写的缓存分区分离,降低并发控制的难度。
当然,实施本申请的任一产品并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例的整体系统结构示意图;
图2是本申请实施例提供的第一方法的流程图;
图3是本申请实施例具有时间纬度的缓存分区的示意图;
图4是本申请实施例提供的第二方法的流程图;
图5是本申请实施例提供的第三方法的流程图;
图6是本申请实施例提供的第四方法的流程图;
图7是本申请实施例提供的第五方法的流程图;
图8是本申请实施例提供的装置的示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本申请保护的范围。
参见图1所示,该图示出本申请实施例的整体系统结构示意图。在图1所示的集群环境中,多个数据处理装置例如服务器,被配置为集群环境中的节点。每一个数据处理装置包含一定的缓存空间。集群环境环境中的每台数据处理装置可以在启动时构建本申请的具有时间维度的本地缓存(Time-based LocalCache),包括单机内存中的KV集合。集群中的任意数据处理服务器接收到处理请求,需要使用数据时,首先查询本地缓存是否存在需要的数据,当存在所需数据即查询命中时,则根据业务逻辑或需要进行后续操作。当缓存中不存在所需数据,例如键(Key)值对应的值(Value)为空,即查询不命中时,则根据业务逻辑或需求进行后续操作,例如数据库查询或反馈处理结果。
当查询不命中,该数据处理装置可能进行数据查询获得被查询的结果数据,并可能改变或更新本地缓存中所存储的数据。该数据处理装置或者任意感知到缓存数据变更的数据处理装置将向集群中的其它数据处理装置发送关于缓存数据更新广播消息,以通知该缓存变更的情况。
参见图2,该方法提供了集群环境下的数据处理方法,其中,如图1所示,集群环境中包括多个数据处理装置,每个数据处理装置包含缓存空间。该方法包括以下操作。
S201:响应于其中一个数据处理装置的本地缓存所存储的数据发生更新,接收关于缓存数据更新的广播消息,广播消息包含新数据以及新数据的原始生效时间;
集群中其它任意节点接收发生缓存更新的数据处理装置或者任意感知到该变更的数据处理装置发送关于缓存数据更新的广播消息。该广播消息可以是基于主题(Topic)机制的消息中间件消息,例如,可以满足Jave消息访问(JMS,Java Message Service)规范的消息中间件,如开源的ActiveMQ消息中间件,也可以是其它不满足JMS的消息中间件。利用集群中的广播机制可以实现集群中每个数据处理装置均接收到消息通知,从而使得每个数据处理装置均可以感知到的缓存数据的变化。
S202:根据原始生效时间,查找晚于或者等于原始生效时间之后的第一个标准生效时间。标准生效时间为预先设定的具有相等间隔的时间值,分别用于指示不同的缓存分区所存储的数据的生效起始时间,缓存分区的数据在对应的该标准生效时间至下一个标准生效时间之间有效;
在本申请中,集群中各个数据处理装置设置的用于缓存数据的缓存分区具有时间纬度(Time-based Local Cache),即数据处理装置的缓存分区具有对应相应的标准生效时间,该时间代表该本地缓存的缓存分区所存储的数据的生效起始时间。(为便于描述,在本申请中缓存分区所存储的数据生效与缓存分区生效具有相等同的含义。)以10分钟作为间隔并且标准生效时间为整点为例,数据处理装置的不同的缓存分区分别的生效起始时间分别为1:00、1:10、1:20、1:30、1:40等等,并且每个缓存分区生效后将在10分钟后失效,即一个缓存分区的有效时长为该缓存分区对应的标准生效时间起到下一个标准生效时间为止。
如图3所示,缓存分区1的生效起始时间为1:00,缓存分区2的生效起始时间为1:20,缓存分区3的生效起始时间为1:30,其中,缓存分区1的生效时间为1:00至1:10之间,缓存分区2的生效时间为1:20至1:30之间,缓存分区3的生效时间为1:30至1:40之间。
由于集群内具有统一标准生效时间,不同的数据处理装置根据原始生效时间,将查找到同一个晚于或者等于原始生效时间之后的第一个标准生效时间。如图3中所示,广播消息中包含更新的新数据的原始生效时间为1:26,不同的数据处理装置查找到晚于或者等于原始生效时间之后的第一个标准生效时间为1:30。
上述步骤中间隔的时间值的大小可以根据具体业务决定。可以以业务能够接受的延迟来决定该间隔的时间值。例如,业务可以接受15分钟的延迟,考虑到设置一定的安全延迟时间缓冲区如5分钟,则可以设置该间隔的时间值为10分钟。
S203:识别第一个标准生效时间是否已被分配对应的缓存分区;
S204:如果第一个标准生效时间已被分配对应的缓存分区,将新数据写入第一个标准生效时间对应的缓存分区以及第一个标准生效时间之后的所有标准生效时间对应的缓存分区。
如图3所示,由于更新数据的原始生效时间为1:26,查找到的第一个标准生效时间为1:30并且该标准生效时间已被分配对应的缓存分区3,则将新数据写入缓存分区3以及1:30之后的所有的标准生效时间对应的缓存分区。
通过本申请的上述方案,为集群环境中所有数据处理装置本地缓存的缓存分区设置统一的标准生效时间,从而使得本地缓存的缓存分区具有生效时间维度。基于原始生效时间获得固定统一的标准生效时间,使得不同的数据处理装置在接收到相同的新数据后写入到相对应到缓存分区,并延迟到相同的标准生效时间生效,从而保证了集群内不同数据处理装置具有的有效的缓存数据相同,同一时刻集群内每个节点返回的缓存数据相同,提高了集群环境下的数据一致性。
参见图4所示,该图示出本申请另一种实施例的流程示意图。相对于图2实施例,该方法还包括以下分配缓存分区和写缓存的操作:
S405:如果第一个标准生效时间未被分配对应的缓存分区,分配新的缓存空间作为第一个标准生效时间对应的缓存分区;
S406:将第一个标准生效时间之前的最近一个缓存分区的内容复制到第一个标准生效时间对应的缓存分区;
S407:将新数据写入第一个标准生效时间对应的缓存分区以及第一个标准生效时间之后的所有标准生效时间对应的缓存分区。
在上述实施例中,在查询获得的第一个标准生效时间后,只有当该标准生效时间不存在对应的缓存分区时才,才进行缓存分配的操作和对应的写入操作,有效的节约了各个节点的缓存资源。
在上述S405分配新的缓存空间作为第一个标准生效时间对应的缓存分区和S406将第一个标准生效时间之前的最近一个缓存分区的内容复制到第一个标准生效时间对应的缓存分区的操作可以包括以下操作:
分配新的缓存空间存放第一个标准生效时间对应的缓存分区的地址;将第一个标准生效时间之前的最近一个缓存分区的地址写入新的缓存空间。
通过上述实施例,实现了内存空间的“浅拷贝”,即只拷贝内存对象的指针或引用,而不拷贝内容对象的内容。通过分配新的缓存空间存放第一个标准生效时间对应的缓存分区的地址,并将第一个标准生效时间之前的最近一个缓存分区的地址写入新的缓存空间,从而实现了仅仅分配新的地址空间指向旧的内存空间,节约了内存资源,防止内存占用暴涨。
参见图5所示,该图示出本申请又一种实施例提供的流程示意图。该实施例中还包括设置当前指针,该方法还包括:
S501:以当前时间之前最近的一个标准生效时间作为当前标准时间,该当前标准时间与当前指针相关联;
S502:识别当前标准时间是否具有对应的缓存分区;
S503:如果当前标准时间具有对应的缓存分区,使当前指针指向该缓存分区;
S504:如果当前标准时间没有对应的缓存分区,使当前指针指向当前标准时间之前最近的一个缓存分区。
在本实施例中,根据当前时间,获得对应的当前标准时间,并使得当前标准时间与当前指针相关联,从而将集群内各个节点的当前时间均统一到同一个当前标准时间,以方便根据当前指针进行读写操作。
参见图6所示,该图示出本申请再一种实施例提供的流程示意图。该方法还包括:
S601:如果接收到查询请求,识别当前指针指向的缓存分区内是否包含被查询的数据;
S602:如果当前指针指向的缓存分区内包含被查询的数据,从当前指针指向到缓存分区中读取数据。
通过将当前标准时间与当前指针相关联,使得当前指针指向当前时间(或者当前时刻)最新的缓存分区,并从当前指针指向的缓存分区读取数据,从而使得集群内任意节点当前时刻从缓存分区读取的数据相同,实现读数据的一致性。
继续参见图6所示,该方法还包括:
S603:如果当前指针指向的缓存分区内未包含被查询的数据,查询数据库获取查询结果数据;
S604:根据所获得的查询结果数据的原始生效时间执行查找晚于或者等于原始生效时间之后的第一个标准生效时间的操作。
在上述实施例中,当缓存分区内未包含被查询的数据,则查询数据库获得该结果数据,并根据前述操作进行写缓存分区的操作。
参见图7所示,该图示出本申请再一种实施例提供的流程示意图。该方法还包括:
S701:根据标准生效时间之间的时间间隔,每经过一个时间间隔,将当前标准时间增加一个时间间隔获得新的当前标准时间;
S702:识别新的当前标准时间是否具有对应的缓存分区;
S703:如果新的当前标准时间具有对应的缓存分区,使当前指针指向该缓存分区;
S704:响应于新的当前标准时间没有对应的缓存分区,保持当前指针指向的位置不变。
在上述实施例中,该时间间隔可以为S202中间隔的时间值,如示例中的10分钟,可以通过定时任务组件在每个整10分钟的时刻,对集群内所有数据处理装置的当前指针沿时间向前进行右移,从而使得当前指针指向与当前时刻相对应的缓存分区,若当前标准时间没有对应的缓存分区,保持当前指针指向的位置不变,即没有新的生效数据存在与该缓存分区,则保持当前指针指向的位置不变。
如图3所示,若新的当前标准时间为1:10,而该标准时间没有对应的缓存分区,当前指针依然指向1:00对应的缓存分区。若新的当前标准时间为1:20,该标准时间有对应的缓存分区2,则当前指针移动到缓存分区2。
继续参见图7所示,在一种实施例中,响应于新的当前标准时间具有对应的缓存分区,该方法还可以包括:
S705:在使当前指针指向新的当前标准时间对应的缓存分区之后,释放当前指针之前所指向的缓存分区,从而可以回收内存资源。
在本发明的上述实施例中,通过设置当前指针,使得读操作针对当前指针指向的缓存分区,写操作针对当前指针右侧的分区,读写操作的缓存区域分离,降低并发控制的难度。
与本申请实施例提供的集群环境下的数据处理方法相对应,本申请实施例还提供了一种集群环境下的数据处理装置,其中,该集群环境中包括多个数据处理装置,每个数据处理装置包含缓存空间,参见图8,该数据处理装置包括:
消息接收单元801,用于响应于其中一个数据处理装置的本地缓存所存储的数据发生更新,接收关于缓存数据更新的广播消息,广播消息包含新数据以及新数据的原始生效时间;
标准生效时间确定单元802,用于根据原始生效时间,查找晚于或者等于原始生效时间之后的第一个标准生效时间,标准生效时间为预先设定的具有相等间隔的时间值,分别用于指示不同的缓存分区所存储的数据的生效起始时间,缓存分区的数据在对应的该标准生效时间至下一个标准生效时间之间有效;
缓存分区识别单元803,用于识别第一个标准生效时间是否已被分配对应的缓存分区;
数据写入单元804,用于响应于第一个标准生效时间已被分配对应的缓存分区,将新数据写入第一个标准生效时间对应的缓存分区以及第一个标准生效时间之后的所有标准生效时间对应的缓存分区。
在另一种实施例中,该装置还包括:
缓存空间管理单元,用于如果第一个标准生效时间未被分配对应的缓存分区,分配新的缓存空间作为第一个标准生效时间对应的缓存分区;
复制单元,用于将第一个标准生效时间之前的最近一个缓存分区的内容复制到第一个标准生效时间对应的缓存分区;
该数据写入单元804,还用于将新数据写入第一个标准生效时间对应的缓存分区以及第一个标准生效时间之后的所有标准生效时间对应的缓存分区。
在一种装置实施例中,该缓存空间管理单元,具体用于分配新的缓存空间存放第一个标准生效时间对应的缓存分区的地址。复制单元,具体用于将第一个标准生效时间之前的最近一个缓存分区的地址写入新的缓存空间。
另外,该装置还可以包括:当前标准指针控制单元,用于以当前时间之前最近的一个标准生效时间作为当前标准时间,该当前标准时间与当前指针相关联;缓存分区识别单元803还用于识别当前标准时间是否具有对应的缓存分区;当前标准指针控制单元还用于:响应于当前标准时间具有对应的缓存分区,使当前指针指向该缓存分区;响应于当前标准时间没有对应的缓存分区,使当前指针指向当前标准时间之前最近的一个缓存分区。
再者,该装置还可以包括:
缓存分区查询单元,用于如果接收到查询请求,识别当前指针指向的缓存分区内是否包含被查询的数据;
缓存分区读取单元,用于如果当前指针指向的缓存分区内包含被查询的数据,从当前指针指向到缓存分区读取数据。
在一种装置实施例中,该装置还包括:数据库查询单元,用于响应于当前指针指向的缓存分区内未包含被查询的数据,查询数据库获取被查询结果数据;标准生效时间确定单元802,根据所获得的查询结果数据的原始生效时间执行查找晚于或者等于原始生效时间之后的第一个标准生效时间的操作。
在一种装置实施例中,当前标准指针控制单元,还用于根据标准生效时间之间的时间间隔,每经过一个时间间隔,将当前标准时间增加一个时间间隔获得新的当前标准时间;缓存分区识别单元803,还用于识别新的当前标准时间是否具有对应的缓存分区;当前标准指针控制单元,还用于响应于新的当前标准时间具有对应的缓存分区,使当前指针指向该缓存分区;响应于新的当前标准时间没有对应的缓存分区,保持当前指针指向的位置不变。
在一种装置实施例中,缓存空间管理单元,还用于在使当前指针指向新的当前标准时间对应的缓存分区之后,释放当前指针之前所指向的缓存分区。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上对本申请所提供的集群环境下的数据处理方法及装置,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本申请的限制。
Claims (16)
1.一种集群环境下的数据处理方法,其特征在于,所述集群环境中包括多个数据处理装置,每个数据处理装置包含缓存空间,所述方法包括:
响应于其中一个数据处理装置的本地缓存所存储的数据发生更新,接收该发生数据更新的数据处理装置向集群中的其它数据处理装置发送的广播消息,所述广播消息包含新数据以及所述新数据的原始生效时间;
根据所述原始生效时间,查找晚于或者等于所述原始生效时间之后的第一个标准生效时间,所述标准生效时间为预先设定的具有相等间隔的时间值,分别用于指示不同的缓存分区所存储的数据的生效起始时间,所述缓存分区的数据在对应的该标准生效时间至下一个标准生效时间之间有效;
识别所述第一个标准生效时间是否已被分配对应的缓存分区;
如果所述第一个标准生效时间已被分配对应的缓存分区,则将所述新数据写入所述第一个标准生效时间对应的缓存分区以及所述第一个标准生效时间之后的所有标准生效时间对应的缓存分区。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
如果所述第一个标准生效时间未被分配对应的缓存分区,分配新的缓存空间作为所述第一个标准生效时间对应的缓存分区;
将所述第一个标准生效时间之前的最近一个缓存分区的内容复制到所述第一个标准生效时间对应的缓存分区;
将所述新数据写入所述第一个标准生效时间对应的缓存分区以及所述第一个标准生效时间之后的所有标准生效时间对应的缓存分区。
3.根据权利要求2所述的方法,其特征在于,所述分配新的缓存空间作为所述第一个标准生效时间对应的缓存分区;将所述第一个标准生效时间之前的最近一个缓存分区的内容复制到所述第一个标准生效时间对应的缓存分区包括:
分配新的缓存空间存放所述第一个标准生效时间对应的缓存分区的地址;
将所述第一个标准生效时间之前的最近一个缓存分区的地址写入所述新的缓存空间。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
以当前时间之前最近的一个标准生效时间作为当前标准时间,该当前标准时间与当前指针相关联;
识别当前标准时间是否具有对应的缓存分区;
如果当前标准时间具有对应的缓存分区,使当前指针指向该缓存分区;
如果当前标准时间没有对应的缓存分区,使当前指针指向所述当前标准时间之前最近的一个缓存分区。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
接收到查询请求时,识别当前指针指向的缓存分区内是否包含被查询的数据;
如果当前指针指向的缓存分区内包含被查询的数据,从所述当前指针指向到缓存分区中读取数据。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
如果当前指针指向的缓存分区内未包含被查询的数据,查询数据库获取查询结果数据;
根据所获得的查询结果数据的原始生效时间执行所述查找晚于或者等于原始生效时间之后的第一个标准生效时间的操作。
7.根据权利要求4所述的方法,其特征在于,所述方法还包括:
根据所述标准生效时间之间的时间间隔,每经过一个时间间隔,将所述当前标准时间增加一个时间间隔获得新的当前标准时间;
识别新的当前标准时间是否具有对应的缓存分区;
如果新的当前标准时间具有对应的缓存分区,使当前指针指向该缓存分区;
如果新的当前标准时间没有对应的缓存分区,保持当前指针指向的位置不变。
8.根据权利要求7所述的方法,其特征在于,如果新的当前标准时间具有对应的缓存分区,所述方法还包括:
在使当前指针指向新的当前标准时间对应的缓存分区之后,释放当前指针之前所指向的缓存分区。
9.一种集群环境下的数据处理装置,其特征在于,所述集群环境中包括多个数据处理装置,每个数据处理装置包含缓存空间,所述数据处理装置包括:
消息接收单元,用于响应于其中一个数据处理装置的本地缓存所存储的数据发生更新,接收关于缓存数据更新的广播消息,所述广播消息包含新数据以及所述新数据的原始生效时间;
标准生效时间确定单元,用于根据所述原始生效时间,查找晚于或者等于所述原始生效时间之后的第一个标准生效时间,所述标准生效时间为预先设定的具有相等间隔的时间值,分别用于指示不同的缓存分区所存储的数据的生效起始时间,所述缓存分区的数据在对应的该标准生效时间至下一个标准生效时间之间有效;
缓存分区识别单元,用于识别所述第一个标准生效时间是否已被分配对应的缓存分区;
数据写入单元,用于如果所述第一个标准生效时间已被分配对应的缓存分区,将所述新数据写入所述第一个标准生效时间对应的缓存分区以及所述第一个标准生效时间之后的所有标准生效时间对应的缓存分区。
10.根据权利要求9所述的装置,其特征在于,所述装置还包括:
缓存空间管理单元,用于如果所述第一个标准生效时间未被分配对应的缓存分区,分配新的缓存空间作为所述第一个标准生效时间对应的缓存分区;
复制单元,用于将所述第一个标准生效时间之前的最近一个缓存分区的内容复制到所述第一个标准生效时间对应的缓存分区;
所述数据写入单元,还用于将所述新数据写入所述第一个标准生效时间对应的缓存分区以及所述第一个标准生效时间之后的所有标准生效时间对应的缓存分区。
11.根据权利要求10所述的装置,其特征在于,所述缓存空间管理单元,具体用于分配新的缓存空间存放所述第一个标准生效时间对应的缓存分区的地址;
所述复制单元,具体用于将所述第一个标准生效时间之前的最近一个缓存分区的地址写入所述新的缓存空间。
12.根据权利要求9所述的装置,其特征在于,所述装置还包括:
当前标准指针控制单元,用于以当前时间之前最近的一个标准生效时间作为当前标准时间,该当前标准时间与当前指针相关联;
所述缓存分区识别单元,还用于识别当前标准时间是否具有对应的缓存分区;
所述当前标准指针控制单元,还用于如果当前标准时间具有对应的缓存分区,使当前指针指向该缓存分区;如果当前标准时间没有对应的缓存分区,使当前指针指向所述当前标准时间之前最近的一个缓存分区。
13.根据权利要求12所述的指针,其特征在于,所述装置还包括:
缓存分区查询单元,用于如果接收到查询请求,识别当前指针指向的缓存分区内是否包含被查询的数据;
缓存分区读取单元,用于如果当前指针指向的缓存分区内包含被查询的数据,从所述当前指针指向到缓存分区读取数据。
14.根据权利要求13所述的装置,其特征在于,所述装置还包括:
数据库查询单元,用于如果当前指针指向的缓存分区内未包含被查询的数据,查询数据库获取被查询结果数据;
所述标准生效时间确定单元根据所获得的查询结果数据的原始生效时间执行所述查找晚于或者等于所述原始生效时间之后的第一个标准生效时间的操作。
15.根据权利要求12所述的装置,其特征在于,所述当前标准指针控制单元,还用于根据所述标准生效时间之间的时间间隔,每经过一个时间间隔,将所述当前标准时间增加一个时间间隔获得新的当前标准时间;
所述缓存分区识别单元,还用于识别新的当前标准时间是否具有对应的缓存分区;
所述当前标准指针控制单元,还用于如果新的当前标准时间具有对应的缓存分区,使当前指针指向该缓存分区;响应于新的当前标准时间没有对应的缓存分区,保持当前指针指向的位置不变。
16.根据权利要求15所述的装置,其特征在于,所述缓存空间管理单元,还用于如果新的当前标准时间具有对应的缓存分区,在使当前指针指向新的当前标准时间对应的缓存分区之后,释放当前指针之前所指向的缓存分区。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510629553.8A CN106559452B (zh) | 2015-09-28 | 2015-09-28 | 集群环境下的数据处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510629553.8A CN106559452B (zh) | 2015-09-28 | 2015-09-28 | 集群环境下的数据处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106559452A true CN106559452A (zh) | 2017-04-05 |
CN106559452B CN106559452B (zh) | 2019-11-05 |
Family
ID=58416696
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510629553.8A Active CN106559452B (zh) | 2015-09-28 | 2015-09-28 | 集群环境下的数据处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106559452B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109167810A (zh) * | 2018-07-27 | 2019-01-08 | 阿里巴巴集团控股有限公司 | 监听、通知、刷新方法和装置、计算设备及存储介质 |
CN111431805A (zh) * | 2020-03-27 | 2020-07-17 | 上海天好信息技术股份有限公司 | 一种物联网多路信号复用的同步策略方法 |
CN111800771A (zh) * | 2020-06-30 | 2020-10-20 | 深圳市中科蓝讯科技股份有限公司 | 蓝牙Mesh节点网络消息缓存的管理方法和系统 |
CN112084123A (zh) * | 2019-06-12 | 2020-12-15 | 阿里巴巴集团控股有限公司 | 数据处理方法及装置和数据处理系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030217081A1 (en) * | 2002-05-14 | 2003-11-20 | Ken White | System and method of maintaining functional client side data cache coherence |
CN101090401A (zh) * | 2007-05-25 | 2007-12-19 | 金蝶软件(中国)有限公司 | 一种群集环境下的数据缓存方法及系统 |
US20140032504A1 (en) * | 2012-07-30 | 2014-01-30 | Wojciech Golab | Providing a measure representing an instantaneous data consistency level |
CN103617131A (zh) * | 2013-11-26 | 2014-03-05 | 曙光信息产业股份有限公司 | 一种实现数据缓存的方法 |
CN104156361A (zh) * | 2013-05-13 | 2014-11-19 | 阿里巴巴集团控股有限公司 | 一种实现数据同步的方法及系统 |
-
2015
- 2015-09-28 CN CN201510629553.8A patent/CN106559452B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030217081A1 (en) * | 2002-05-14 | 2003-11-20 | Ken White | System and method of maintaining functional client side data cache coherence |
CN101090401A (zh) * | 2007-05-25 | 2007-12-19 | 金蝶软件(中国)有限公司 | 一种群集环境下的数据缓存方法及系统 |
US20140032504A1 (en) * | 2012-07-30 | 2014-01-30 | Wojciech Golab | Providing a measure representing an instantaneous data consistency level |
CN104156361A (zh) * | 2013-05-13 | 2014-11-19 | 阿里巴巴集团控股有限公司 | 一种实现数据同步的方法及系统 |
CN103617131A (zh) * | 2013-11-26 | 2014-03-05 | 曙光信息产业股份有限公司 | 一种实现数据缓存的方法 |
Non-Patent Citations (2)
Title |
---|
KASSEM FAWAZ等: "DCIM: Distributed Cache Invalidation Method for Maintaining Cache Consistency in Wireless Mobile Networks", 《IEEE TRANSACTIONS ON MOBILE COMPUTING》 * |
吴斌: "移动数据库中的缓存数据收集与失效处理方法研究", 《中国优秀硕士学位论文全文数据库》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109167810A (zh) * | 2018-07-27 | 2019-01-08 | 阿里巴巴集团控股有限公司 | 监听、通知、刷新方法和装置、计算设备及存储介质 |
CN112084123A (zh) * | 2019-06-12 | 2020-12-15 | 阿里巴巴集团控股有限公司 | 数据处理方法及装置和数据处理系统 |
CN112084123B (zh) * | 2019-06-12 | 2024-02-27 | 阿里巴巴集团控股有限公司 | 数据处理方法及装置和数据处理系统 |
CN111431805A (zh) * | 2020-03-27 | 2020-07-17 | 上海天好信息技术股份有限公司 | 一种物联网多路信号复用的同步策略方法 |
CN111800771A (zh) * | 2020-06-30 | 2020-10-20 | 深圳市中科蓝讯科技股份有限公司 | 蓝牙Mesh节点网络消息缓存的管理方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN106559452B (zh) | 2019-11-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3333718B1 (en) | Task allocation method and task allocation apparatus for distributed data calculation | |
CN111694649B (zh) | 资源调度方法、装置、计算机设备和存储介质 | |
CN109543455B (zh) | 一种区块链的数据归档方法及装置 | |
CN107528816B (zh) | 分布式数据库中id的处理方法、管理系统及服务器 | |
CN108418900B (zh) | 一种服务器集群系统中的缓存方法、写入点客户端和读客户端 | |
CN102298633B (zh) | 一种分布式海量数据排重方法及系统 | |
CN105512320B (zh) | 一种用户排名获得方法、装置及服务器 | |
CN106559452A (zh) | 集群环境下的数据处理方法及装置 | |
KR101974491B1 (ko) | 축출 시스템, 축출 방법 및 컴퓨터 판독가능 매체 | |
CN106777311B (zh) | 航班舱位状态缓存方法和系统 | |
CN105933376A (zh) | 一种数据操作方法,服务器及存储系统 | |
US20140156586A1 (en) | Big-fast data connector between in-memory database system and data warehouse system | |
CN103019960A (zh) | 分布式缓存方法及系统 | |
CN106302611A (zh) | 业务请求分配系统、方法和装置 | |
US20130346540A1 (en) | Storing and Moving Data in a Distributed Storage System | |
CN104508639A (zh) | 使用一致性域表的一致性管理 | |
CN107040393B (zh) | 一种路由管理方法和设备 | |
CN104750757B (zh) | 一种基于HBase的数据存储方法和设备 | |
CN103631933A (zh) | 一种面向分布式去重系统的数据路由方法 | |
CN104598316A (zh) | 一种存储资源分配方法及装置 | |
CN102833331A (zh) | 云存储系统及其元数据写入方法、元数据读取方法 | |
CN108259334A (zh) | 一种等价路由表项建立方法和装置 | |
CN106952085B (zh) | 一种数据存储与业务处理的方法及装置 | |
CN107562803B (zh) | 数据供应系统及方法、终端 | |
CN102262668A (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 |