CN103019960A - 分布式缓存方法及系统 - Google Patents

分布式缓存方法及系统 Download PDF

Info

Publication number
CN103019960A
CN103019960A CN2012105086955A CN201210508695A CN103019960A CN 103019960 A CN103019960 A CN 103019960A CN 2012105086955 A CN2012105086955 A CN 2012105086955A CN 201210508695 A CN201210508695 A CN 201210508695A CN 103019960 A CN103019960 A CN 103019960A
Authority
CN
China
Prior art keywords
metadata
cache node
node
location index
cache
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
CN2012105086955A
Other languages
English (en)
Other versions
CN103019960B (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.)
Guangdong Gaohang Intellectual Property Operation Co ltd
Haining hi tech Zone Science and Innovation Center Co.,Ltd.
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201210508695.5A priority Critical patent/CN103019960B/zh
Publication of CN103019960A publication Critical patent/CN103019960A/zh
Application granted granted Critical
Publication of CN103019960B publication Critical patent/CN103019960B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例提供一种分布式缓存方法及系统。该方法包括:根据元数据的主键值确定第一缓存节点,并根据所述元数据的次键值确定第二缓存节点;在所述第一缓存节点中存储中心存储节点下发的所述元数据,在所述第二缓存节点中存储所述元数据的位置索引,所述元数据的位置索引用于指示所述第一缓存节点的地址。因此,可以通过元数据的位置索引来访问元数据,避免了在多个缓存节点中均存储相同的元数据,从而避免了元数据的冗余存储,节省存储空间,并保证了数据访问的一致性。

Description

分布式缓存方法及系统
技术领域
本发明实施例涉及通信技术领域,并且更具体地,涉及分布式缓存方法及系统。
背景技术
现代应用系统处理的数据迅速增长,大量集中式数据处理向分布式处理方式演进。在分布式系统中,将数据分散保存到多个节点上,通过节点的增加来扩展存储和计算能力。但是,数据的多节点存储,需要解决各个节点上数据的一致性问题,一致性问题就是要解决多个副本之间的同步。例如,对多个副本节点均需要进行读写操作的系统,则需要分布式锁或全局锁来实现数据更新一致性,大大影响系统实时性与性能,并增加了系统复杂度。
在分布式存储模式中,设立了多个缓存节点,在每个缓存节点上保存着若干个数据单元(定义为元数据),元数据是很小的数据集合,作为分布式缓存的基础,是不能分割的整体,如一个订单信息或一个用户信息等。元数据关联着键(Key)值,客户可以根据键值访问到该元数据信息。在一个元数据具有多个键值的情况下,分布式系统按照不同的键值,在对应的散列的缓存节点上建立相同的副本。因此,在多个缓存节点上冗余存储。当在不同的键值上建立运算进行写操作时,需要维护多个缓存节点保存的元数据信息的一致性,虽然可以采用现有技术的全局锁来实现,但是增加了系统复杂度和处理时延。
发明内容
本发明实施例提供一种分布式缓存方法及系统,能够避免元数据的冗余存储,并保证数据访问的一致性。
第一方面,提供了一种分布式缓存方法,该方法包括:根据元数据的主键值确定第一缓存节点,并根据所述元数据的次键值确定第二缓存节点;在所述第一缓存节点中存储中心存储节点下发的所述元数据,在所述第二缓存节点中存储所述元数据的位置索引,所述元数据的位置索引用于指示所述第一缓存节点的地址。
结合第一方面,在第一种实现方式中,具体实现可以为:接收业务处理节点发送的所述元数据的第一查询请求,所述第一查询请求携带查询键值;根据所述查询键值查找所述元数据。
结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述根据所述查询键值查找所述元数据,具体实现可以为:根据所述查询键值确定目标缓存节点;如果所述目标缓存节点为所述第一缓存节点,在所述目标缓存节点中查找到所述元数据,则将所述元数据发送给所述业务处理节点;如果在所述目标缓存节点中查找到目标位置索引,则向所述业务处理节点发送重定向消息,所述重定向消息携带所述目标位置索引,以便所述业务处理节点根据所述重定向消息判断重定向次数;如果在所述目标缓存节点中未查找到所述元数据和任一元数据的位置索引,则向所述中心存储节点发送所述元数据的第一查询请求。
结合第一方面的第二种可能的实现方式,在第三种可能的实现方式中,当所述业务处理节点判断重定向次数小于重定向查询阈值时,具体实现可以为:接收所述业务处理节点根据所述重定向消息发送的所述元数据的第二查询请求;根据所述第二查询请求在与所述目标位置索引对应的缓存节点中查找所述元数据。
结合第一方面的第三种可能的实现方式,在第四种可能的实现方式中,所述根据所述第二查询请求在与所述目标位置索引对应的缓存节点中查找所述元数据,具体实现可以为:所述目标位置索引为所述元数据的位置索引,将在所述第一缓存节点中查找到的所述元数据发送给所述业务处理节点。
结合第一方面或第一方面的第一种可能的实现方式至第四种可能的实现方式的任一种方式,在第五种可能的实现方式中,具体实现可以为:当所述元数据的存储地址改变时,对所述第二缓存节点中存储的所述元数据的位置索引进行维护,所述元数据的位置索引用于指示改变后的所述元数据的存储地址。
结合第一方面或第一方面的第一种可能的实现方式至第五种可能的实现方式的任一种方式,在第六种可能的实现方式中,所述根据元数据的主键值确定第一缓存节点,并根据所述元数据的次键值确定第二缓存节点,具体实现可以为:根据所述元数据的主键值进行Hash散列得到第一Hash值,并根据所述元数据的次键值进行Hash散列得到第二Hash值,所述第一Hash值与所述第一缓存节点相对应,所述第二Hash值与所述第二缓存节点相对应。
第二方面,提供了分布式缓存系统,该系统包括:确定单元,用于根据元数据的主键值确定第一缓存节点,并根据所述元数据的次键值确定第二缓存节点;所述确定单元确定的所述第一缓存节点,用于存储中心存储节点下发的所述元数据;所述确定单元确定的所述第二缓存节点,用于存储所述元数据的位置索引,所述元数据的位置索引用于指示所述第一缓存节点的地址。
结合第二方面,在第一种可能的实现方式中,所述系统还包括:接收单元,用于接收业务处理节点发送的所述元数据的第一查询请求,所述元数据的第一查询请求携带查询键值;所述确定单元还用于:根据所述查询键值查找所述元数据。
结合第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述确定单元具体用于:根据所述查询键值确定目标缓存节点;所述系统还包括发送单元,所述发送单元用于:如果所述目标缓存节点为所述第一缓存节点,在所述目标缓存节点中查找到所述元数据,则将所述元数据发送给所述业务处理节点;所述发送单元还用于:如果在所述目标缓存节点中查找到目标位置索引,则向所述业务处理节点发送重定向消息,所述重定向消息携带所述目标位置索引,以便所述业务处理节点根据所述重定向消息判断重定向次数;所述发送单元还用于:如果在所述目标缓存节点中未查找到所述元数据和任一元数据的位置索引,则向所述中心存储节点发送所述元数据的第一查询请求。
结合第二方面的第二种可能的实现方式,在第三种可能的实现方式中,当所述业务处理节点判断重定向次数小于重定向查询阈值时,所述接收单元还用于:接收所述业务处理节点根据所述重定向消息发送的所述元数据的第二查询请求;所述确定单元还用于:根据所述第二查询请求在与所述目标位置索引对应的缓存节点中查找所述元数据。
结合第二方面的第三种可能的实现方式,在第四种可能的实现方式中,所述目标位置索引为所述元数据的位置索引,所述确定单元还用于:具体用于:将在所述第一缓存节点中查找到的所述元数据发送给所述业务处理节点。
结合第二方面或第二方面的第一种可能的实现方式至第四种可能的实现方式的任一种方式,在第五种可能的实现方式中,所述确定单元还用于:当所述元数据的存储地址改变时,对所述第二缓存节点中存储的所述元数据的位置索引进行维护,所述元数据的位置索引用于指示改变后的所述元数据的存储地址。
结合第二方面或第二方面的第一种可能的实现方式至第五种可能的实现方式的任一种方式,在第六种可能的实现方式中,所述确定单元具体用于:
根据所述元数据的主键值进行Hash散列得到第一Hash值,并根据所述元数据的次键值进行Hash散列得到第二Hash值,所述第一Hash值与所述第一缓存节点相对应,所述第二Hash值与所述第二缓存节点相对应。
本发明实施例根据元数据的主键值和次键值分别确定第一缓存节点和第二缓存节点,在第一缓存节点中存储中心存储节点下发的元数据,而在第二缓存节点中存储元数据的位置索引,该元数据的位置索引用于指示第一缓存节点的地址。因此,可以通过元数据的位置索引来访问元数据,避免了在多个缓存节点中均存储相同的元数据,从而避免了元数据的冗余存储,节省存储空间,并保证了数据访问的一致性。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例的分布式缓存方法的流程图。
图2是本发明一个实施例的确定缓存节点方法的过程的示意性流程图。
图3是本发明另一个实施例的元数据查询方法的过程的示意性流程图。
图4是本发明又一个实施例的业务处理节点查询元数据的方法的过程的示意性流程图。
图5是本发明一个实施例的分布式缓存系统的结构框图。
图6是本发明另一个实施例的分布式缓存系统的示意框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1是本发明一个实施例的分布式缓存方法的流程图。图1的方法由分布式缓存系统执行。
101,根据元数据的主键值确定第一缓存节点,并根据元数据的次键值确定第二缓存节点。
102,在第一缓存节点中存储中心存储节点下发的元数据,在第二缓存节点中存储元数据的位置索引,元数据的位置索引用于指示第一缓存节点的地址。
本发明实施例根据元数据的主键值和次键值分别确定第一缓存节点和第二缓存节点,在第一缓存节点中存储中心存储节点下发的元数据,而在第二缓存节点中存储元数据的位置索引,该元数据的位置索引用于指示第一缓存节点的地址。因此,可以通过元数据的位置索引来访问元数据,避免了在多个缓存节点中均存储相同的元数据,从而避免了元数据的冗余存储,节省存储空间,并保证了数据访问的一致性。
应理解,本发明的技术方案可以用于基于用户的网络运维系统,还可以用于用户数据存储系统或大量表单数据存储系统等,本发明实施例对此并不限定。
应理解,第一缓存节点和第二缓存节点为不同的缓存节点。第二缓存节点的数目可以是一个或多个,本发明实施例对此并不限定。还应理解,本发明实施例在元数据的多个键值中确定哪个为主键值也不作限定,可选地,可以将查询次数最多的键值确定为主键值。可以将主键值之外的其它键值确定为次键值,应注意,次键值可以是一个或多个,本发明实施例对此并不限定。
可选地,作为一个实施例,在步骤101中,根据元数据的主键值进行Hash(哈希)散列得到第一Hash值,并根据元数据的次键值进行Hash散列得到第二Hash值,第一Hash值与第一缓存节点相对应,第二Hash值与第二缓存节点相对应。下面还将结合图2的例子详细描述本发明实施例。
可选地,作为另一个实施例,在步骤102之后,分布式缓存系统可以接收业务处理节点发送的元数据的第一查询请求,元数据的第一查询请求携带查询键值,根据查询键值查找元数据。
具体而言,分布式缓存系统可以根据查询键值确定目标缓存节点。
如果目标缓存节点为第一缓存节点,则可以在目标缓存节点中查找到元数据,即在第一缓存节点命中元数据。进一步地,向请求方(业务处理节点)回复找到的元数据。
如果在目标缓存节点中未查找到元数据和任一元数据的位置索引,则可以向中心存储节点发送元数据的第一查询请求,以便中心存储节点查找元数据。
如果在目标缓存节点中查找到目标位置索引,则向业务处理节点发送重定向消息,重定向消息携带目标位置索引,可选地,业务处理节点可以设定重定向查询阈值。业务处理节点根据重定向消息判断重定向次数。当业务处理节点重定向查找元数据的次数小于重定向查询阈值时,业务处理节点可以向分布式缓存系统发送第二查询请求,第二查询请求携带与目标位置索引对应的缓存节点的地址。分布式缓存系统可以根据第二查询请求在与目标位置索引对应的缓存节点中查找元数据。在目标位置索引为元数据的位置索引的情况下,分布式缓存系统可以在第一缓存节点中查找到的元数据,进一步地,向业务处理节点回复找到的元数据。当业务处理节点重定向查找元数据的次数大于或等于重定向查询阈值时,业务处理节点可以不再向分布式缓存系统发送查询元数据的请求,即查询失败。因此,业务处理节点通过设定重定向查询元数据最大次数,可以防止发生重定向死循环。
下面还将结合图3的例子详细描述本发明实施例。
可选地,作为另一个实施例,当元数据的存储地址改变时,分布式缓存系统可以对第二缓存节点中存储的元数据的位置索引进行维护,元数据的位置索引用于指示改变后的元数据的存储地址。具体地,当缓存节点的主备倒换时,例如,第一缓存节点(主)出现故障,采用另一个缓存节点(备)作为第一缓存节点,将元数据存储在新的第一缓存节点,对第二缓存节点中存储的元数据的位置索引进行更新,新的元数据的位置索引用于指示新的第一缓存节点的地址。
另外,当元数据修改时,只需对第一缓存节点的元数据进行更新,无需采用全局锁来实现多个缓存节点保存的元数据的一致性,从而降低系统复杂度和处理时延。
图2是本发明一个实施例的确定缓存节点方法的过程的示意性流程图。图2的方法由分布式缓存系统执行。
201,确定与元数据的主键值对应的第一缓存节点。
202,在第一缓存节点中存储元数据。
例如,根据元数据的主键值Key 1进行Hash散列得到第一Hash值Cache1,Cache 1与第一缓存节点相对应,将存储中心存储节点下发的元数据存储在与Cache 1对应的第一缓存节点中。
203,确定与元数据的其它次键值对应的缓存节点。
204,判断次键值对应的缓存节点是否为第一缓存节点。
可选地,当元数据具有多个次键值时,可以逐一地确定次键值对应的缓存节点。
例如,根据元数据的次键值Key 2进行Hash散列得到的Hash值为Cache2,如果Cache 2与第一缓存节点相对应,则结束流程(206)。如果根据元数据的次键值Key 3进行Hash散列得到的Hash值为第二Hash值Cache 3,如果与Cache 3对应的缓存节点不是第一缓存节点,则执行步骤205。
205,在第二缓存节点中存储元数据的位置索引。
例如,在与Cache 3对应的缓存节点(第二缓存节点)中存储元数据的位置索引(Key 3,Cache 1)。
应理解,上述例子仅仅是示例性的,而非要限制本发明的范围。
通过上述方案,可以通过元数据的位置索引来访问元数据,避免了在多个缓存节点中均存储相同的元数据,从而避免了元数据的冗余存储,节省存储空间,并保证了数据访问的一致性。
图3是本发明另一个实施例的元数据查询方法的过程的示意性流程图。图3的方法由分布式缓存系统执行。
301,接收业务处理节点发送的元数据的第一查询请求。第一查询请求携带查询键值。
302,根据查询键值确定目标缓存节点。
可选地,如果根据查询键值确定的目标缓存节点为第一缓存节点,在第一缓存节点查找的元数据,则可以执行步骤303。如果根据查询键值确定的目标缓存节点中查找到目标位置索引,则可以执行步骤304。如果在目标缓存节点中未查找到元数据以及任一元数据的位置索引,则可以执行步骤305。
如何根据查询键值确定目标缓存节点的例子如上所述,此处不再赘述。
303,向业务处理节点返回查找到的元数据。
304,向业务处理节点返回重定向消息,重定向消息携带查找到的目标位置索引。
305,向中心存储节点发送元数据的第一查询请求。
如果在中心存储节点查找到元数据,则可以向业务处理节点返回元数据。
通过上述方案,可以通过元数据的位置索引来访问元数据,避免了在多个缓存节点中均存储相同的元数据,从而避免了元数据的冗余存储,节省存储空间,并保证了数据访问的一致性。
图4是本发明又一个实施例的业务处理节点查询元数据的方法的过程的示意性流程图。图4的方法由业务处理节点执行。
401,向分布式缓存系统发送元数据第一查询请求。
查询元数据是业务处理的基础,业务处理开始时,业务处理节点向分布式缓存系统发送元数据第一查询请求,在第一查询请求中携带查询键值。
402,接收到分布式缓存系统发送的应答消息。
403,判断应答消息的类型。
分布式缓存系统在401步骤接收到第一查询请求,根据第一查询请求查找元数据,分布式缓存系统查找元数据的例子可以参考图3的例子。业务处理节点接收到分布式缓存系统返回的应答消息可以是查找到的元数据或者重定向消息。
可选地,如果应答消息的类型是元数据,则业务处理节点可以进行数据处理(步骤404)。如果应答消息的类型是重定向消息,则可以执行步骤405。
405,业务处理节点提取重定向消息中的目标位置索引。
406,业务处理节点判断重定向查找元数据的次数是否小于重定向查询阈值。
可选地,如果业务处理节点重定向查找元数据的次数小于重定向查询阈值时,例如,业务处理节点查找元数据时,收到重定向消息的次数小于重定向查询阈值2,则可以执行步骤407。如果业务处理节点重定向查找元数据的次数大于或等于重定向查询阈值时,例如,业务处理节点查找元数据时,收到重定向消息的次数大于或等于重定向查询阈值2,业务处理节点可以不再向分布式缓存系统发送查询元数据的请求,即查询失败(步骤408)。
407,业务处理节点向分布式缓存系统发送元数据的第二查询请求。
第二查询请求携带与目标位置索引对应的缓存节点的地址。分布式缓存系统可以根据第二查询请求在与目标位置索引对应的缓存节点中查找元数据。在目标位置索引为元数据的位置索引的情况下,分布式缓存系统可以在第一缓存节点中查找到的元数据,进一步地,业务处理节点可以接收到分布式缓存系统返回的元数据。
因此,业务处理节点通过设定重定向查询元数据最大次数,可以防止发生重定向死循环。
图5是本发明一个实施例的分布式缓存系统的结构框图。分布式缓存系统500包括确定单元501、第一缓存节点502和第二缓存节点503。
确定单元501,用于根据元数据的主键值确定第一缓存节点502,并根据元数据的次键值确定第二缓存节点503。
确定单元501确定的第一缓存节点502,用于存储中心存储节点下发的元数据。
确定单元501确定的第二缓存节点503,用于存储元数据的位置索引,
元数据的位置索引用于指示第一缓存节点502的地址。
本发明实施例根据元数据的主键值和次键值分别确定第一缓存节点和第二缓存节点,在第一缓存节点中存储中心存储节点下发的元数据,而在第二缓存节点中存储元数据的位置索引,该元数据的位置索引用于指示第一缓存节点的地址。因此,可以通过元数据的位置索引来访问元数据,避免了在多个缓存节点中均存储相同的元数据,从而避免了元数据的冗余存储,节省存储空间,并保证了数据访问的一致性。
应理解,第一缓存节点和第二缓存节点为不同的缓存节点。第二缓存节点的数目可以是一个或多个,本发明实施例对此并不限定。
分布式缓存系统500可实现图1至图4的方法中涉及分布式缓存系统的各个步骤,为避免重复,不再详细描述。
可选地,作为一个实施例,确定单元501具体用于:根据元数据的主键值进行Hash散列得到第一Hash值,并根据元数据的次键值进行Hash散列得到第二Hash值,第一Hash值与第一缓存节点相对应,第二Hash值与第二缓存节点相对应。
可选地,作为另一个实施例,分布式缓存系统500还可以包括接收单元504,接收单元504用于接收业务处理节点发送的元数据的第一查询请求,元数据的第一查询请求携带查询键值。确定单元501还用于根据查询键值查找元数据。
进一步地,确定单元501具体用于根据查询键值确定目标缓存节点。分布式缓存系统500还可以包括发送单元505,发送单元505用于:如果目标缓存节点为第一缓存节点,在目标缓存节点中查找到元数据,则将元数据发送给业务处理节点。发送单元505还用于:如果在目标缓存节点中查找到目标位置索引,则向业务处理节点发送重定向消息,重定向消息携带目标位置索引,以便业务处理节点根据重定向消息判断重定向次数。发送单元505还用于:如果在目标缓存节点中未查找到元数据和任一元数据的位置索引,则向中心存储节点发送元数据的第一查询请求,以便中心存储节点根据第一查询请求查找元数据。
再进一步地,当业务处理节点判断重定向次数小于重定向查询阈值时,接收单元504还用于接收业务处理节点根据重定向消息发送的元数据的第二查询请求。确定单元501还用于根据第二查询请求在与目标位置索引对应的缓存节点中查找所述元数据。在目标位置索引为元数据的位置索引的情况下,发送单元505还用于将在第一缓存节点中查找到的元数据发送给业务处理节点。因此,业务处理节点通过设定重定向查询元数据最大次数,可以防止发生重定向死循环。
可选地,作为另一个实施例,确定单元501还用于:当元数据的存储地址改变时,对第二缓存节点中存储的元数据的位置索引进行维护,元数据的位置索引用于指示改变后的元数据的存储地址。
另外,当元数据修改时,只需对第一缓存节点的元数据进行更新,无需采用全局锁来实现多个缓存节点保存的元数据的一致性,从而降低系统复杂度和处理时延。
图6是本发明另一个实施例的分布式缓存系统的示意框图。
本发明实施例进一步给出实现上述方法实施例中各步骤及方法的装置实施例。在该实施例中,系统600主要包括处理器601,第一缓存器602a和至少一个第二缓存器602b。处理器601控制系统600的操作,处理器601还可以称为CPU(Central Processing Unit,中央处理单元)。第一缓存器602a和至少一个第二缓存器602b可以向处理器601提供指令和数据。处理器601,第一缓存器602a和至少一个第二缓存器602b,发射器603以及接收器604通过总线系统610耦合在一起,其中总线系统610除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图中将各种总线都标为总线系统610。
上述本发明实施例揭示的方法可以应用上述的系统600。其中,处理器601可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器601中的硬件的集成逻辑电路或者软件形式的指令完成。
处理器601,用于根据元数据的主键值确定第一缓存器602a,并根据元数据的次键值确定第二缓存器602b。
处理器601确定的第一缓存器602a,用于存储中心存储节点下发的元数据。
处理器601确定的第二缓存器602b,用于存储元数据的位置索引,元数据的位置索引用于指示第一缓存器602a的地址。
本发明实施例根据元数据的主键值和次键值分别确定第一缓存器和第二缓存器,在第一缓存器中存储中心存储节点下发的元数据,而在第二缓存器中存储元数据的位置索引,该元数据的位置索引用于指示第一缓存器的地址。因此,可以通过元数据的位置索引来访问元数据,避免了在多个缓存器中均存储相同的元数据,从而避免了元数据的冗余存储,节省存储空间,并保证了数据访问的一致性。
应理解,第一缓存器和第二缓存器为不同的缓存器。第二缓存器的数目可以是一个或多个,本发明实施例对此并不限定。
分布式缓存系统600可实现图1至图4的方法中涉及分布式缓存系统的各个步骤,为避免重复,不再详细描述。
可选地,作为一个实施例,处理器601具体用于:根据元数据的主键值进行Hash散列得到第一Hash值,并根据元数据的次键值进行Hash散列得到第二Hash值,第一Hash值与第一缓存器602a相对应,第二Hash值与第二缓存器602b相对应。
可选地,作为另一个实施例,接收器604用于接收业务处理节点发送的元数据的第一查询请求,元数据的第一查询请求携带查询键值。处理器601还用于根据查询键值查找元数据。
进一步地,处理器601具体用于根据查询键值确定目标缓存器。发射器603用于:如果目标缓存器为第一缓存器602a,在目标缓存器中查找到元数据,则将元数据发送给业务处理节点。发射器603还用于:如果在目标缓存器中查找到目标位置索引,则向业务处理节点发送重定向消息,重定向消息携带目标位置索引,以便业务处理节点根据重定向消息判断重定向次数。发射器603还用于:如果在目标缓存器中未查找到元数据和任一元数据的位置索引,则向中心存储节点发送元数据的第一查询请求,以便中心存储节点根据第一查询请求查找元数据。
再进一步地,当业务处理节点判断重定向次数小于重定向查询阈值时,接收器604还用于接收业务处理节点根据重定向消息发送的元数据的第二查询请求。处理器601还用于根据第二查询请求在与目标位置索引对应的缓存器中查找所述元数据。在目标位置索引为元数据的位置索引的情况下,发射器603还用于将在第一缓存器602a中查找到的元数据发送给业务处理节点。因此,业务处理节点通过设定重定向查询元数据最大次数,可以防止发生重定向死循环。
可选地,作为另一个实施例,处理器601还用于:当元数据的存储地址改变时,对第二缓存器中存储的元数据的位置索引进行维护,元数据的位置索引用于指示改变后的元数据的存储地址。
另外,当元数据修改时,只需对第一缓存器缓存器602a的元数据进行更新,无需采用全局锁来实现多个缓存器保存的元数据的一致性,从而降低系统复杂度和处理时延。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

Claims (14)

1.一种分布式缓存方法,其特征在于,包括:
根据元数据的主键值确定第一缓存节点,并根据所述元数据的次键值确定第二缓存节点;
在所述第一缓存节点中存储中心存储节点下发的所述元数据,在所述第二缓存节点中存储所述元数据的位置索引,所述元数据的位置索引用于指示所述第一缓存节点的地址。
2.如权利要求1所述的方法,其特征在于,所述方法还包括:
接收业务处理节点发送的所述元数据的第一查询请求,所述第一查询请求携带查询键值;
根据所述查询键值查找所述元数据。
3.如权利要求2所述的方法,其特征在于,所述根据所述查询键值查找所述元数据,包括:
根据所述查询键值确定目标缓存节点;
如果所述目标缓存节点为所述第一缓存节点,在所述目标缓存节点中查找到所述元数据,则将所述元数据发送给所述业务处理节点;
如果在所述目标缓存节点中查找到目标位置索引,则向所述业务处理节点发送重定向消息,所述重定向消息携带所述目标位置索引,以便所述业务处理节点根据所述重定向消息判断重定向次数;
如果在所述目标缓存节点中未查找到所述元数据和任一元数据的位置索引,则向所述中心存储节点发送所述元数据的第一查询请求。
4.如权利要求3所述的方法,其特征在于,当所述业务处理节点判断重定向次数小于重定向查询阈值时,所述方法还包括:
接收所述业务处理节点根据所述重定向消息发送的所述元数据的第二查询请求;
根据所述第二查询请求在与所述目标位置索引对应的缓存节点中查找所述元数据。
5.如权利要求4所述的方法,其特征在于,所述根据所述第二查询请求在与所述目标位置索引对应的缓存节点中查找所述元数据,包括:
所述目标位置索引为所述元数据的位置索引,将在所述第一缓存节点中查找到的所述元数据发送给所述业务处理节点。
6.如权利要求1-5任一项所述的方法,其特征在于,所述方法还包括:
当所述元数据的存储地址改变时,对所述第二缓存节点中存储的所述元数据的位置索引进行维护,所述元数据的位置索引用于指示改变后的所述元数据的存储地址。
7.如权利要求1-6任一项所述的方法,其特征在于,所述根据元数据的主键值确定第一缓存节点,并根据所述元数据的次键值确定第二缓存节点,
包括:
根据所述元数据的主键值进行Hash散列得到第一Hash值,并根据所述元数据的次键值进行Hash散列得到第二Hash值,所述第一Hash值与所述第一缓存节点相对应,所述第二Hash值与所述第二缓存节点相对应。
8.一种分布式缓存系统,其特征在于,包括:
确定单元,用于根据元数据的主键值确定第一缓存节点,并根据所述元数据的次键值确定第二缓存节点;
所述第一缓存节点,用于存储中心存储节点下发的所述元数据;
所述第二缓存节点,用于存储所述元数据的位置索引,所述元数据的位置索引用于指示所述第一缓存节点的地址。
9.如权利要求8所述的系统,其特征在于,所述系统还包括:
接收单元,用于接收业务处理节点发送的所述元数据的第一查询请求,所述元数据的第一查询请求携带查询键值;
所述确定单元还用于:根据所述查询键值查找所述元数据。
10.如权利要求9所述的系统,其特征在于,所述确定单元具体用于:
根据所述查询键值确定目标缓存节点;
所述系统还包括发送单元,
所述发送单元用于:如果所述目标缓存节点为所述第一缓存节点,在所述目标缓存节点中查找到所述元数据,则将所述元数据发送给所述业务处理节点;
所述发送单元还用于:如果在所述目标缓存节点中查找到目标位置索引,则向所述业务处理节点发送重定向消息,所述重定向消息携带所述目标位置索引,以便所述业务处理节点根据所述重定向消息判断重定向次数;
所述发送单元还用于:如果在所述目标缓存节点中未查找到所述元数据和任一元数据的位置索引,则向所述中心存储节点发送所述元数据的第一查询请求。
11.如权利要求10所述的系统,其特征在于,当所述业务处理节点判断重定向次数小于重定向查询阈值时,
所述接收单元还用于:接收所述业务处理节点根据所述重定向消息发送的所述元数据的第二查询请求;
所述确定单元还用于:根据所述第二查询请求在与所述目标位置索引对应的缓存节点中查找所述元数据。
12.如权利要求11所述的系统,其特征在于,所述目标位置索引为所述元数据的位置索引,所述确定单元还用于:具体用于:将在所述第一缓存节点中查找到的所述元数据发送给所述业务处理节点。
13.如权利要求8-12任一项所述的系统,其特征在于,所述确定单元还用于:
当所述元数据的存储地址改变时,对所述第二缓存节点中存储的所述元数据的位置索引进行维护,所述元数据的位置索引用于指示改变后的所述元数据的存储地址。
14.如权利要求8-13任一项所述的系统,其特征在于,所述确定单元具体用于:
根据所述元数据的主键值进行Hash散列得到第一Hash值,并根据所述元数据的次键值进行Hash散列得到第二Hash值,所述第一Hash值与所述第一缓存节点相对应,所述第二Hash值与所述第二缓存节点相对应。
CN201210508695.5A 2012-12-03 2012-12-03 分布式缓存方法及系统 Active CN103019960B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210508695.5A CN103019960B (zh) 2012-12-03 2012-12-03 分布式缓存方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210508695.5A CN103019960B (zh) 2012-12-03 2012-12-03 分布式缓存方法及系统

Publications (2)

Publication Number Publication Date
CN103019960A true CN103019960A (zh) 2013-04-03
CN103019960B CN103019960B (zh) 2016-03-30

Family

ID=47968585

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210508695.5A Active CN103019960B (zh) 2012-12-03 2012-12-03 分布式缓存方法及系统

Country Status (1)

Country Link
CN (1) CN103019960B (zh)

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103559224A (zh) * 2013-10-18 2014-02-05 华为技术有限公司 一种对元数据对象进行散列的方法及装置
CN104199978A (zh) * 2014-09-24 2014-12-10 普元信息技术股份有限公司 基于NoSQL实现元数据缓存与分析的系统及方法
CN104239572A (zh) * 2014-09-30 2014-12-24 普元信息技术股份有限公司 基于分布式缓存实现元数据分析的系统及方法
CN104580428A (zh) * 2014-12-27 2015-04-29 北京奇虎科技有限公司 一种数据路由方法、数据管理装置和分布式存储系统
CN104901996A (zh) * 2015-01-15 2015-09-09 南京师范大学 分布式缓存协同中避免内容重复存储的方法和装置
WO2016026400A1 (zh) * 2014-08-22 2016-02-25 阿里巴巴集团控股有限公司 一种处理连续重定向的方法和装置
CN106055274A (zh) * 2016-05-23 2016-10-26 联想(北京)有限公司 一种数据存储方法、数据读取方法及电子设备
WO2016180055A1 (zh) * 2015-05-12 2016-11-17 中兴通讯股份有限公司 数据存储、读取的方法、装置及系统
CN106339475A (zh) * 2016-08-29 2017-01-18 联众智慧科技股份有限公司 一种海量数据的分布式存储系统
CN106713250A (zh) * 2015-11-18 2017-05-24 杭州华为数字技术有限公司 基于分布式系统的数据访问方法和装置
CN106776783A (zh) * 2016-11-24 2017-05-31 福建亿榕信息技术有限公司 非结构化数据存储管理方法、服务器和系统
CN108628540A (zh) * 2017-03-22 2018-10-09 深圳市优朋普乐传媒发展有限公司 数据存储装置及方法
CN109033292A (zh) * 2018-07-13 2018-12-18 南京邮电大学 一种数据库分布式缓存系统及方法
CN109726315A (zh) * 2018-10-24 2019-05-07 阿里巴巴集团控股有限公司 数据查询方法、装置、计算设备及存储介质
CN110069539A (zh) * 2019-05-05 2019-07-30 上海缤游网络科技有限公司 一种数据关联方法及系统
CN110019212B (zh) * 2017-11-29 2021-06-18 杭州海康威视数字技术股份有限公司 一种数据处理方法、装置及数据库服务器
CN113590507A (zh) * 2020-04-30 2021-11-02 深信服科技股份有限公司 一种分布式存储系统及其缓存层、数据访问方法、设备
CN114116613A (zh) * 2021-11-26 2022-03-01 北京百度网讯科技有限公司 基于分布式文件系统的元数据查询方法、设备和存储介质
CN114840562A (zh) * 2022-07-04 2022-08-02 深圳市茗格科技有限公司 业务数据的分布式缓存方法、装置、电子设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7647329B1 (en) * 2005-12-29 2010-01-12 Amazon Technologies, Inc. Keymap service architecture for a distributed storage system
CN102349047A (zh) * 2009-03-30 2012-02-08 日本电气株式会社 数据插入系统
WO2012042792A1 (en) * 2010-09-30 2012-04-05 Nec Corporation Storage system
US8209334B1 (en) * 2007-12-28 2012-06-26 Don Doerner Method to direct data to a specific one of several repositories

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7647329B1 (en) * 2005-12-29 2010-01-12 Amazon Technologies, Inc. Keymap service architecture for a distributed storage system
US8209334B1 (en) * 2007-12-28 2012-06-26 Don Doerner Method to direct data to a specific one of several repositories
CN102349047A (zh) * 2009-03-30 2012-02-08 日本电气株式会社 数据插入系统
WO2012042792A1 (en) * 2010-09-30 2012-04-05 Nec Corporation Storage system

Cited By (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103559224A (zh) * 2013-10-18 2014-02-05 华为技术有限公司 一种对元数据对象进行散列的方法及装置
WO2016026400A1 (zh) * 2014-08-22 2016-02-25 阿里巴巴集团控股有限公司 一种处理连续重定向的方法和装置
US10673972B2 (en) 2014-08-22 2020-06-02 Alibaba Group Holding Limited Method and device for processing continuous redirection
CN104199978A (zh) * 2014-09-24 2014-12-10 普元信息技术股份有限公司 基于NoSQL实现元数据缓存与分析的系统及方法
CN104239572A (zh) * 2014-09-30 2014-12-24 普元信息技术股份有限公司 基于分布式缓存实现元数据分析的系统及方法
CN104580428B (zh) * 2014-12-27 2018-09-04 北京奇虎科技有限公司 一种数据路由方法、数据管理装置和分布式存储系统
WO2016101759A1 (zh) * 2014-12-27 2016-06-30 北京奇虎科技有限公司 一种数据路由方法、数据管理装置和分布式存储系统
CN104580428A (zh) * 2014-12-27 2015-04-29 北京奇虎科技有限公司 一种数据路由方法、数据管理装置和分布式存储系统
CN104901996A (zh) * 2015-01-15 2015-09-09 南京师范大学 分布式缓存协同中避免内容重复存储的方法和装置
CN104901996B (zh) * 2015-01-15 2018-10-16 南京师范大学 分布式缓存协同中避免内容重复存储的方法和装置
WO2016180055A1 (zh) * 2015-05-12 2016-11-17 中兴通讯股份有限公司 数据存储、读取的方法、装置及系统
CN106713250B (zh) * 2015-11-18 2019-08-20 杭州华为数字技术有限公司 基于分布式系统的数据访问方法和装置
CN106713250A (zh) * 2015-11-18 2017-05-24 杭州华为数字技术有限公司 基于分布式系统的数据访问方法和装置
CN106055274A (zh) * 2016-05-23 2016-10-26 联想(北京)有限公司 一种数据存储方法、数据读取方法及电子设备
CN106339475A (zh) * 2016-08-29 2017-01-18 联众智慧科技股份有限公司 一种海量数据的分布式存储系统
CN106776783A (zh) * 2016-11-24 2017-05-31 福建亿榕信息技术有限公司 非结构化数据存储管理方法、服务器和系统
CN106776783B (zh) * 2016-11-24 2019-10-01 福建亿榕信息技术有限公司 非结构化数据存储管理方法和系统
CN108628540A (zh) * 2017-03-22 2018-10-09 深圳市优朋普乐传媒发展有限公司 数据存储装置及方法
CN110019212B (zh) * 2017-11-29 2021-06-18 杭州海康威视数字技术股份有限公司 一种数据处理方法、装置及数据库服务器
CN109033292A (zh) * 2018-07-13 2018-12-18 南京邮电大学 一种数据库分布式缓存系统及方法
CN109726315A (zh) * 2018-10-24 2019-05-07 阿里巴巴集团控股有限公司 数据查询方法、装置、计算设备及存储介质
CN110069539A (zh) * 2019-05-05 2019-07-30 上海缤游网络科技有限公司 一种数据关联方法及系统
CN113590507A (zh) * 2020-04-30 2021-11-02 深信服科技股份有限公司 一种分布式存储系统及其缓存层、数据访问方法、设备
CN114116613A (zh) * 2021-11-26 2022-03-01 北京百度网讯科技有限公司 基于分布式文件系统的元数据查询方法、设备和存储介质
CN114840562A (zh) * 2022-07-04 2022-08-02 深圳市茗格科技有限公司 业务数据的分布式缓存方法、装置、电子设备及存储介质
CN114840562B (zh) * 2022-07-04 2022-11-01 深圳市茗格科技有限公司 业务数据的分布式缓存方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN103019960B (zh) 2016-03-30

Similar Documents

Publication Publication Date Title
CN103019960B (zh) 分布式缓存方法及系统
WO2017050014A1 (zh) 一种数据存储处理方法和装置
CN110502452B (zh) 访问电子设备中的混合缓存的方法及装置
US10691601B2 (en) Cache coherence management method and node controller
CN103491152A (zh) 分布式文件系统中元数据获取方法、装置及系统
CN104102693A (zh) 对象处理方法和装置
CN112632069B (zh) 哈希表数据存储管理方法、装置、介质和电子设备
CN110119304B (zh) 一种中断处理方法、装置及服务器
CN113656501B (zh) 一种数据读取方法、装置、设备以及存储介质
CN113364877A (zh) 数据处理方法、装置、电子设备和介质
CN111831691A (zh) 一种数据读写方法及装置、电子设备、存储介质
CN110618790A (zh) 基于重复数据删除的雾存储数据去冗余方法
US20200387412A1 (en) Method To Manage Database
CN117009389A (zh) 数据缓存方法、装置、电子设备和可读存储介质
CN116842012A (zh) 一种Redis集群的分片存储方法、装置、设备及存储介质
CN114785662B (zh) 一种存储管理方法、装置、设备及机器可读存储介质
CN114884883A (zh) 一种流量转发方法、装置、设备及存储介质
CN114547034A (zh) 一种数据查询的方法、装置、设备及存储介质
CN107679093B (zh) 一种数据查询方法及装置
CN111666184A (zh) 固态驱动器ssd硬盘测试方法、装置及电子设备
US10261715B2 (en) Storage space management method and apparatus
CN112084141A (zh) 一种全文检索系统扩容方法、装置、设备及介质
US11269736B2 (en) Method to manage database failure
EP4131017A2 (en) Distributed data storage
CN112637327B (zh) 一种数据处理方法、装置及系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20191213

Address after: 314400 No.11, Weisan Road, Nongfa District, Chang'an Town, Haining City, Jiaxing City, Zhejiang Province

Patentee after: Haining hi tech Zone Science and Innovation Center Co.,Ltd.

Address before: 510000 unit 2414-2416, building, No. five, No. 371, Tianhe District, Guangdong, China

Patentee before: GUANGDONG GAOHANG INTELLECTUAL PROPERTY OPERATION Co.,Ltd.

Effective date of registration: 20191213

Address after: 510000 unit 2414-2416, building, No. five, No. 371, Tianhe District, Guangdong, China

Patentee after: GUANGDONG GAOHANG INTELLECTUAL PROPERTY OPERATION Co.,Ltd.

Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd.

TR01 Transfer of patent right