分布式系统中节点缓存数据的处理方法及装置的制造方法_2

文档序号:9687628阅读:来源:国知局
05,删除数据键。
[0043]若经步骤S204判断出数据键已过期,则删除已过期的数据键。
[0044]步骤S206,接收其它节点发送的数据键值对的更新消息。
[0045]在节点重启之后,如果有其它节点发送数据键值对的更新消息,那么执行步骤S206,接收其它节点发送的数据键值对的更新消息。
[0046]步骤S207,根据更新消息,将节点的缓存中相应的数据键值对更新为其它节点发送的数据键值对。
[0047]在步骤S207中,根据步骤S206所接收的更新消息,将节点的缓存中相应的数据键值对更新为其它节点发送的数据键值对。
[0048]例如,在步骤S206中,接收了其它节点发送的关于数据键值对1的更新消息,并且根据更新消息可知,数据键值对1中的数据值更新为数据值1,那么在步骤S207中,将节点的缓存中相应的数据键值对1更新为其它节点发送的数据键值对1。假设,节点的缓存中相应的数据键值对1并没有被更新过,那么该数据键值对1中具有标志位,那么在步骤S207中,将节点的缓存中相应的数据键值对1中的标志位更新为其它节点发送的数据键值对1中的数据值1。
[0049]另外,该方法还可包括:若接收到针对节点的缓存数据的访问请求,则根据所访问的数据键查找其它节点的缓存中存储的数据键对应的数据值,将数据值加载到节点的缓存中,并响应访问请求返回数据值的步骤。具体地,可通过步骤S208至步骤S210进行实现。
[0050]步骤S208,若接收到针对节点的缓存数据的访问请求,判断节点的缓存中加载的所访问的数据键值对是否包含标志位;若是,则执行步骤S209;若否,则执行步骤S210。
[0051]由于在接收到针对节点的缓存数据的访问请求时,节点的缓存中加载的所访问的数据键值对可能并没有被更新过,因此,在步骤S208中,需要对节点的缓存中加载的所访问的数据键值对是否包含标志位进行判断。如果判断出所访问的数据键值对包含标志位,则执行步骤S209;如果判断出所访问的数据键值对不包含标志位,则执行步骤S210。
[0052]步骤S209,根据所访问的数据键查找其它节点的缓存中存储的数据键对应的数据值,并将为数据键设置的标志位替换为数据值。
[0053]若经步骤S208判断出所访问的数据键值对包含标志位,则代表所访问的数据键值对中无数据值,则需要执行步骤S209,根据所访问的数据键查找其它节点的缓存中存储的数据键对应的数据值,将为数据键设置的标志位替换为数据值,从而使该数据键值对中具有相应的数据值。在步骤S209执行完成后,接着执行步骤S210。
[0054]步骤S210,响应访问请求返回数据键值对包含的数据值。
[0055]若经步骤S208判断出所访问的数据键值对不包含标志位,则代表所访问的数据键值对中具有相应的数据值,则可直接执行步骤S210,响应访问请求返回数据键值对包含的数据值。或者,在步骤S209将为数据键设置的标志位替换为数据值之后,使数据键值对中具有相应的数据值,则接着步骤S210,响应访问请求返回该数据值。
[0056]根据本实施例提供的分布式系统中节点缓存数据的处理方法,针对每一条缓存数据,不仅提取出对应的数据键,还提取出数据键的过期时间戳,以便当节点重启时,根据数据键的过期时间戳,删除已过期的数据键;为了便于区分,为数据键设置用于标识无数据值的标志位,将数据键与标志位组合为数据键值对,然后当节点重启时,将数据键值对加载到节点的缓存中,并且根据其它节点发送的数据键值对的更新消息,将节点的缓存中相应的数据键值对更新为其它节点发送的数据键值对。
[0057]另外,根据本发明提供的技术方案,在接收到针对节点的缓存数据的访问请求后,只有在判断出所访问的数据键值对包含标志位时,才根据所访问的数据键查找其它节点的缓存中存储的数据键对应的数据值,将为数据键设置的标志位替换为数据值,并响应访问请求返回数据值;在判断出所访问的数据键值对不包含标志位时,则直接响应访问请求返回数据键值对包含的数据值。根据本发明提供的技术方案不仅保证了在节点重启时,缓存数据不丢失,还极大地缩减了对缓存数据进行持久化存储所需的时间,减少了对系统磁盘资源的占用,提高了在节点重启时缓存数据的加载速度,并且只有在判断出所访问的数据键值对包含标志位时,才需要根据所访问的数据键查找其它节点的缓存中存储的数据键对应的数据值,从而提高了响应速度,进一步优化了分布式系统中节点缓存数据的处理方式。
[0058]图3示出了根据本发明一个实施例的分布式系统中节点缓存数据的处理装置的功能结构示意图,如图3所示,该装置包括:读取模块301、提取模块302、存储模块303和第一加载模块304。
[0059]读取模块301适于:读取节点的至少一条缓存数据,缓存数据具有数据键值对的形式。
[0060]读取模块301读取节点的至少一条缓存数据,其中,缓存数据具有数据键值对的形式,即缓存数据具有key-value的形式,其中,key为数据键,value为数据值,并且数据值可为多种形式的数据,通过数据键值对的形式可方便地对缓存数据进行管理。
[0061 ]提取模块302适于:针对每一条缓存数据,提取出对应的数据键。
[0062]在读取模块301读取了节点的至少一条缓存数据之后,触发提取模块302,针对每一条缓存数据,提取出对应的数据键,也就是说,在提取模块302仅提取出缓存数据中对应的数据键,并没有提取出对应的数据值。
[0063]存储模块303适于:将提取模块301提取出的数据键进行持久化存储。
[0064]由于提取模块302仅提取出缓存数据中对应的数据键,并没有提取出对应的数据值,并且在大多数情况下,数据键的长度一般比较短,而数据值的长度却比较长,如果将数据键与数据值都进行持久化存储,不仅将花费大量的时间,而且还会占用大量的系统磁盘资源,因此与数据键与数据值都进行持久化存储相比,存储模块303仅对数据键进行持久化存储,极大地缩减了进行持久化存储所需的时间,并减少了系统磁盘资源的占用。
[0065]第一加载模块304适于:当节点重启时,将数据键加载到节点的缓存中。
[0066]当节点重启时,触发第一加载模块304,将经存储模块303持久化存储的数据键加载到节点的缓存中,由于第一加载模块304只需将数据键加载到节点的缓存中,无需同时将数据值加载到节点的缓存中,从而提高了加载速度。
[0067]根据本实施例提供的分布式系统中节点缓存数据的处理装置,读取模块读取节点的至少一条缓存数据,其中,缓存数据具有数据键值对的形式,然后提取模块针对每一条缓存数据,提取出对应的数据键,存储模块将数据键进行持久化存储,最后当节点重启时,第一加载模块将数据键加载到节点的缓存中。本发明提供的技术方案仅对缓存数据中的数据键进行了持久化存储,从而极大地缩减了对缓存数据进行持久化存储所需的时间,减少了对系统磁盘资源的占用,另外,根据本发明提供的技术方案,在节点重启时,仅将数据键加载到节点的缓存中,提高了加载速度,优化了分布式系统中节点缓存数据的处理方式。
[0068]图4示出了根据本发明另一个实施例的分布式系统中节点缓存数据的处理装置的功能结构示意图,如图4所示,该装置包括:读取模块401、提取模块402、存储模块403、第一加载模块404、访问模块405、第二加载模块406和响应模块407。
[0069]读取模块401适于:读取节点的至少一条缓存数据,缓存数据具有数据键值对的形式。
[0070]提取模块402适于:针对每一条缓存数据,提取出对应的数据键。
[0071]在读取模块401读取了节点的至少一条缓存数据之后,触发提取模块402,针对每一条缓存数据,提取出对应的数据键,并没有提取出对应的数据值。
[0072]存储模块403适于:将数据键进行持久化存储。
[0073]在提取模块402针对每一条缓存数据,提取出对应的数据键之后,触发存储模块403,将所提取出的数据键进行持久化存储。
[0074]第一加载模块404适于:当节点重启时,将数据键加载到节点的缓存中。
[0075]当节点重启时,触发第一加载模块404,将存储模块403所持久化存储的数据键加载到节点的缓存中。
[0076]访问模块405适于:接收针对节点的缓存数据的访问请求。
[0077]第二加载模块406适于:若访问模块405接收到针对节点的缓存数据的访问请求,则根据所访问的数据键查找其它节点的缓存中存储的数据键对应的数据值,将数据值加载到节点的缓存中。
[0078]响应模块407适于:响应访问请求返回数据值。
[0079]在第二加载模块406将数据值加载到节点的缓存中之后,触发响应模块407,响应访问请求返回
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1