分布式缓存的对象删除方法、系统及删除服务器的制作方法

文档序号:7758670阅读:158来源:国知局
专利名称:分布式缓存的对象删除方法、系统及删除服务器的制作方法
技术领域
本申请涉及网络技术领域,尤其涉及一种分布式缓存的对象删除方法、系统及删除服务器。
背景技术
大型网站系统通常采用分布式缓存结构对数据进行存取,例如,淘宝网(tacAao. com)利用分布式缓存结构对用户所上传的图片进行存取。在分布式缓存系统中,通常包含一个源数据服务器和若干与该源数据服务器进行通信的缓存服务器,以及一个调度器。分布式缓存系统在响应用户请求时,通常由调度器根据接收到的用户请求,通过一致性哈希调度算法计算出该用户需要从哪台缓存服务器上获取数据,如果计算出的缓存服务器存在要获取的数据,则将该数据返回调度器;如果计算出的缓存服务器不存在要获取的数据,则向源数据服务器索取该数据并将该数据保存在本机,同时将该数据返回给调度器,由调度器将数据返回给用户。在现有的分布式缓存系统中,以淘宝网的图片系统为例,卖家向网站上传了一张恶意图片,例如涉及侵权或者违法的图片,该恶意图片首先上传到源图片服务器。当网络用户通过淘宝网的链接访问该恶意图片时,首先会访问通过一致性哈希算法计算出的某台图片缓存服务器,若该图片缓存服务器上还未存储该恶意图片,该图片缓存服务器将从源图片服务器获取该恶意图片并保存。当一旦发现系统中存在恶意图片时,就需要对该恶意图片进行删除操作。现有技术中在删除恶意图片时,在分布式缓存系统中的源图片服务器和所有图片缓存服务器上执行删除该恶意图片的操作。发明人在对现有技术的研究过程中发现,现有技术中的删除方式由于需要在所有服务器上执行删除操作,但是并非所有的缓存服务器上都存在恶意数据,因此,这样的操作方式将极大地增加服务器的负担,浪费服务器资源,特别是对于包含大量缓存服务器的系统来说,不存在恶意数据的缓存服务器均要执行多余的删除操作,这降低了分布式缓存系统的整体性能。

发明内容
本申请实施例的目的是提供一种分布式缓存的对象删除方法、系统及删除服务器,以解决现有技术中所有分布式缓存服务器都需要执行删除操作浪费服务器资源,导致系统性能降低的问题。为解决上述技术问题,本申请实施例提供了一种分布式缓存的对象删除方法,是这样实现的—种分布式缓存的对象删除方法,包括接收删除请求,所述删除请求中包含对象的标识符;通过对所述对象的标识符进行一致性哈希计算得到所述标识符的哈希结果值;根据所述哈希结果值定位到对应的缓存服务器,将所述对应的缓存服务器作为当前缓存服务器;判断所述当前缓存服务器是否处于活跃状态且活跃时间大于所述对象的过期时间;当判断当前缓存服务器处于活跃状态且所述活跃时间大于所述对象的过期时间时,从所述当前缓存服务器上删除所述对象。为解决上述技术问题,本申请实施例提供了一种分布式缓存的对象删除系统,是这样实现的一种分布式缓存的对象删除系统,包括删除服务器和若干缓存服务器,所述缓存服务器,用户缓存用户访问的对象;所述删除服务器,用于接收删除请求,所述删除请求中包含对象的标识符,通过对所述对象的标识符进行一致性哈希计算得到所述标识符的哈希结果值,根据所述哈希结果值定位到对应的缓存服务器,将所述对应的缓存服务器作为当前缓存服务器,判断所述当前缓存服务器是否处于活跃状态且活跃时间大于所述对象的过期时间,当判断当前缓存服务器处于活跃状态且所述活跃时间大于所述对象的过期时间时,从所述当前缓存服务器上删除所述对象。为解决上述技术问题,本申请实施例还提供了一种删除服务器,是这样实现的一种删除服务器,包括接收单元,用于接收删除请求,所述删除请求中包含对象的标识符;计算单元,用于通过对所述对象的标识符进行一致性哈希计算得到所述标识符的哈希结果值;定位单元,用于根据所述哈希结果值定位到对应的缓存服务器,将所述对应的缓存服务器作为当前缓存服务器;判断单元,用于判断所述当前缓存服务器是否处于活跃状态且活跃时间大于所述对象的过期时间;删除单元,用于当判断当前缓存服务器处于活跃状态且所述活跃时间大于所述对象的过期时间时,从所述当前缓存服务器上删除所述对象。可见,本申请实施例中接收包含对象的标识符的删除请求,通过对对象的标识符进行一致性哈希计算得到哈希结果值,根据哈希结果值定位到对应的缓存服务器,将对应的缓存服务器作为当前缓存服务器,判断当前缓存服务器是否处于活跃状态且活跃时间大于对象的过期时间,当判断当前缓存服务器处于活跃状态且活跃时间大于对象的过期时间时,从当前缓存服务器上删除所述对象。由此可知,本申请实施例中无需在所有缓存服务器上执行删除对象的操作,而是通过比较所定位缓存服务器的活跃时间和对象的过期时间, 精确定位到包含待删除对象的缓存服务器,并执行删除操作,由此节约了其它缓存服务器为执行删除操作所要耗费的资源,提高了分布式缓存系统的整体性能。


为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本申请实施例中一致性哈希圆环的示意图;图2为本申请分布式缓存的对象删除方法的第一实施例流程图;图3为本申请分布式缓存的对象删除方法的第二实施例流程图;图4为应用本申请分布式缓存的对象删除方法实施例的一种系统结构示意图;图5为应用图4中的系统结构执行对象删除的流程;图6为本申请应用实例中的一致性哈希圆环示意图;图7为本申请分布式缓存的对象删除系统的实施例框图;图8为本申请删除服务器的第一实施例框图;图9为本申请删除服务器的第二实施例框图。
具体实施例方式本申请实施例提供一种分布式缓存的对象删除方法、系统及删除服务器。为了使本技术领域的人员更好地理解本申请实施例中的技术方案,并使本申请实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本申请实施例中技术方案作进一步详细的说明。本申请实施例中对分布式缓存系统中对象的删除基于该系统中分布式缓存服务器上已经存储的对象。因此,下面首先结合一致性哈希算法描述一下现有系统中对象如何在分布式缓存服务器上进行存取。
分布式缓存系统中,通过一致性哈希算法计算后的缓存服务器将根据其哈希值的大小配置在一个0至2的32次幂的圆环上。在计算缓存服务器的哈希值时,将每个缓存服务器的IP地址通过选定的哈希函数进行计算得到一个哈希值,该哈希值为一个32位的整数,根据该整数的大小将其对应的缓存服务器映射在圆环上的相应位置。参见图1,为一个0至2的32次幂的圆环示例,假设分布式缓存系统中包含四个缓存服务器,则经过一致性哈希计算后,四个缓存服务器根据其哈希值的大小如图1所示映射在圆环上,顺时针依次为缓存服务器1、缓存服务器2、缓存服务器3和缓存服务器4 ;当用户想要通过分布式缓存服务器访问某个对象时(对象可以为图片、音视频等网络资源),对该对象进行哈希计算 (通常对对象的标识符URL进行哈希计算),将得到的哈希值作为键值,根据该键值的大小将其映射到0至2的32次幂的圆环上的相应位置,并将该键值所在的位置作为起始位置, 在圆环上顺时针查找到第一个缓存服务器,用户通过该查找到的第一个缓存服务器访问所要访问的对象,如果顺时针查找到的第一个缓存服务器不可用(例如宕机),则继续顺时针查找,直到找到一个可用的缓存服务器。如果找到的可用缓存服务器上存在用户要访问的对象,则将该对象通过调度服务器返回给用户,如果找到的可用缓存服务器上不存在用户要访问的对象,则该缓存服务器向源数据服务器索取该对象并将该对象保存在本机上,同时将该对象返回给调度服务器,由调度服务器将对象返回给用户。存储在缓存服务器上的每个对象都有其过期时间,当对象的缓存时间超过过期时间时,缓存服务器将自动删除该对象。此后当用户再次通过该缓存服务器访问该对象时,则可以重新从源数据服务器上获取该对象,并重复执行前述流程。参见图2,为本申请分布式缓存的对象删除方法的第一实施例流程图,该实施例仅
7示出了所定位的缓存服务器的活跃时间大于待删除对象的存活时间时的对象删除过程步骤201 接收删除请求,该删除请求中包含对象的标识符。当分布式缓存系统应用在大型网站时,对象具体指图片、音视频等网络资源,每一个具体的网络资源通过URL (Universal Resource Locator,统一资源定位符)进行定位。步骤202 通过对对象的标识符进行一致性哈希计算得到标识符的哈希结果值。本步骤中对对象的标识符进行一致性哈希计算得到哈希结果值的过程,与现有技术中为实现对象的存取所进行的计算过程一致,在此不再赘述。步骤203 根据哈希结果值定位到对应的缓存服务器,将该对应的缓存服务器作为当前缓存服务器。结合图1所示的一致性哈希圆环可知,对对象的标识符进行一致性哈希计算并获得哈希结果值后,可以将该哈希结果值作为键值映射到一致性哈希圆环上的相应位置,并从该位置开始顺时针查找第一个缓存服务器,由于该查找到的第一个缓存服务器即为用户要访问该对象时所调度的缓存服务器,因此该第一个缓存服务器在活跃状态下,并且有用户访问该对象且该对象的过期时间未超过时,必然缓存了待删除的对象。步骤204 判断当前缓存服务器是否处于活跃状态且活跃时间大于对象的过期时间。步骤205 当判断当前缓存服务器处于活跃状态且活跃时间大于对象的过期时间时,从当前缓存服务器上删除该对象。活跃时间指缓存服务器处于活跃状态的持续时间,当所定位的第一个缓存服务器处于活跃状态,且活跃时间大于对象的过期时间,则由于该缓存服务器当前活跃,则所有访问对象的请求都将发送到该缓存服务器,而其它缓存服务器上即使存在过该对象,也会因为存在时间超过了对象的过期时间而被自动删除,此时只需要在所定位的第一个缓存服务器上执行删除URL的操作即可。参见图3,为本申请分布式缓存的对象删除方法的第二实施例流程图,该实施例详细示出了根据所定位缓存服务器的活跃状态及状态历史信息实现对象删除的过程步骤301 预先建立缓存服务器的状态表,并通过状态表保存每一个缓存服务器最后一次发生状态变化时的时间戳,以及每一个缓存服务器的当前状态。本申请实施例中建立缓存服务器的状态表,状态表的每一个表项用于记录一个缓存服务器最后一次发生状态变化时的时间戳,以及每一个缓存服务器的当前状态。其中,通过时间戳可以确定缓存服务器当前状态的持续时间,当前状态可以包括活跃状态和非活跃状态,非活跃状态通常指缓存服务器发生宕机。步骤302 接收删除请求,该删除请求中包含对象的标识符。步骤303 通过对对象的标识符进行一致性哈希计算得到标识符的哈希结果值。步骤304 根据哈希结果值定位到对应的缓存服务器,将对应的缓存服务器作为当前缓存服务器。步骤305 判断当前缓存服务器是否处于活跃状态,若是,则执行步骤306 ;否则, 执行步骤309。步骤306 判断当前缓存服务器的活跃时间是否大于对象的过期时间,若是,则执行步骤307 ;否则,执行步骤308。
8
步骤307 从当前缓存服务器上删除该对象,结束当前流程。当根据状态表查找到当前缓存服务器处于活跃状态,且活跃时间大于对象的过期时间,则由于该缓存服务器当前活跃,所有访问该对象的请求都将发送到该缓存服务器,而其它缓存服务器上即使存在过该对象,也会因为存在时间超过了对象的过期时间而被自动删除,此时只需要在所定位的第一个缓存服务器上执行删除URL的操作即可。步骤308 从当前缓存服务器上删除该对象,从当前缓存服务器顺序迁移到下一台缓存服务器,并将下一台缓存服务器作为当前缓存服务器,返回步骤305。当根据状态表查找到当前缓存服务器处于活跃状态,且根据其时间戳的记载判断其活跃时间小于对象的过期时间,则首先从缓存服务器上删除该对象;然后,考虑到假如该缓存服务器在活跃状态之前为非活跃状态,则该缓存服务器处于非活跃状态时,访问该待删除对象的请求可能顺序迁移到一致性哈希圆环上该当前缓存服务器的下一台缓存服务器,使得下一台缓存服务器上也可能缓存了该对象,因此需要顺序获取下一台缓存服务器,并将该下一台缓存服务器作为当前缓存服务器,重新对其状态进行判断,因此返回步骤 305。步骤309 判断当前缓存服务器的非活跃时间是否大于对象的过期时间,若是,则执行步骤310 ;否则,执行步骤311。步骤310 从当前缓存服务器顺序迁移到下一台缓存服务器,并将下一台缓存服务器作为当前缓存服务器,返回步骤305。当根据状态表查找到当前缓存服务器处于非活跃状态,且根据其时间戳的记载判断其非活跃时间大于对象的过期时间,则在当前缓存服务器的非活跃时间内,对待删除对象的访问可能顺序迁移到一致性哈希圆环上该当前缓存服务器的下一台缓存服务器,使得下一台缓存服务器上也可能缓存了该对象,因此需要顺序获取下一台缓存服务器,并将该下一台缓存服务器作为当前缓存服务器,重新对其状态进行判断,因此返回步骤305。而对于原来非活跃时间大于对象的过期时间的缓存服务器来说,当其一旦恢复到活跃状态,由于已经超过了对象的过期时间,因此该缓存服务器会自动执行对对象的删除操作。步骤311 记录该对象的标识符,从当前缓存服务器顺序迁移到下一台缓存服务器,并将下一台缓存服务器作为当前缓存服务器,返回步骤305。当根据状态表查找到当前缓存服务器处于非活跃状态,且根据其时间戳的记载判断其非活跃时间小于对象的过期时间,则在当前缓存服务器的非活跃时间内,对待删除对象的访问可能顺序迁移到一致性哈希圆环上该当前缓存服务器的下一台缓存服务器,使得下一台缓存服务器上也可能缓存了该对象,因此需要顺序获取下一台缓存服务器,并将该下一台缓存服务器作为当前缓存服务器,重新对其状态进行判断,因此返回步骤305。而对于原来非活跃时间小于对象的过期时间的缓存服务器来说,需要同时记录该待删除对象的标识符,以便当该缓存服务器在小于对象的过期时间内恢复到活跃状态时, 可以根据记录的标识符删除该对象。参见图4,为应用本申请分布式缓存的对象删除方法实施例的一种系统结构示意图该系统结构中包括一个源数据服务器,N个缓存服务器(N为正整数),一个调度服务器和一个删除代理服务器。其中,删除代理服务器为本申请实施例为了实现对分布式缓存的对象进行删除所增加的服务器,而源数据服务器、缓存服务器和调度服务器仍然按照现有方式实现数据在分布式缓存系统中的存取过程。其中,调度服务器(也可称为负载均衡调度器haproxy)接收用户的对象访问请求,并根据一致性哈希算法调度某个缓存服务器,调度过程与前述对现有技术的描述过程一致,在此不再赘述。缓存服务器(可以通过在服务器上承载开源缓存服务程序squid实现)接收调度服务器的调度请求,从本机缓存中返回用户要访问的对象,或者从源数据服务器中获取并返回用户要访问的对象。删除代理服务器(purge agent)为本申请系统结构中增加的服务器,其采用与调度服务器同样的一致性哈希算法,实现对缓存对象的删除。该删除代理服务器可以是一台独立的服务器,或者也可以集成在某个缓存服务器中,由该缓存服务器同时执行删除功能, 删除代理服务器可以与系统中的所有缓存服务器进行通信。系统中的对象删除请求会传输到该删除代理服务器,例如,当监测到恶意图片需要删除,或者某个商品退市时其图片也需要删除,此时向该删除代理服务器发送删除请求,该删除请求中包含待删除对象的标识符 (例如,恶意图片的链接地址)。同时,删除代理服务器上还维护一个包含所有缓存服务器的状态信息的状态表,该状态表中记录了每个缓存服务器的两条信息,一条信息是缓存服务器最后一次发生状态变化的时间戳(通过该时间戳可以计算缓存服务器最后一次状态变化的持续时间),另一条信息是缓存服务器的当前状态,通过该当前状态可以判断缓存服务器当前处于活跃状态还是宕机状态。假设待删除对象的标识符为url_a,则结合图1的一致性哈希圆环对本申请实施例的删除过程进行描述。url_a代表一个网站资源,通常为对象的链接地址,当确定要删除 1!!~1_3后,首先在源数据服务器上删除该对象,然后删除缓存服务器上存在的url_a。此时, 对url_a进行一致性哈希计算后,确定要访问url_a则首先对应到一致性哈希圆环上的缓存服务器1,然后查找状态表,其处理流程如图5所示步骤501 接收包含url_a的对象删除请求。步骤502 根据一致性哈希计算确定访问url_a需要调度的缓存服务器1。步骤503 判断当前调度的缓存服务器是否处于活跃状态,并且其活跃时间大于对象url_a的过期时间,若是,则执行步骤504 ;否则,执行步骤505。步骤504 在当前调度的缓存服务器上删除对象url_a,结束当前流程。如果查找到缓存服务器1的当前状态为“活跃”,且根据其时间戳的记载判断其活跃时间大于url_a的过期时间,则说明无论该缓存服务器1是否宕机过,由于该缓存服务器 1当前活跃,则所有访问url_a的请求都将发送到缓存服务器1,而其它缓存服务器上即使存在该对象url_a,也会因为存在时间超过了 url_a的过期时间而被自动删除,此时只需要在缓存服务器1上执行删除url的操作即可。步骤505 判断当前调度的缓存服务器是否仍然处于宕机状态,若是,则执行步骤 506 ;否则,执行步骤508。步骤506 判断当前处于宕机状态的缓存服务器的宕机时长是否超过对象url_a 的过期时间,若是,则执行步骤509 ;否则,执行步骤507。如果查找到缓存服务器1的当前状态为“宕机”,且根据其时间戳的记载判断其宕机时长超过对象url_a的过期时间,则在缓存服务器1 “宕机”时间内,对对象url_a的访问可能顺序迁移到缓存服务器2至缓存服务器4中的任意一台,因此需要顺序获取下一台缓存服务器,并对该缓存服务器重复从步骤503开始执行;而对于缓存服务器1本身,当其一旦恢复活跃状态,由于已经超过对象url_a的过期时间,因此缓存服务器1会自动执行对对象url_a的删除操作。步骤507 保存当前缓存服务器及对象url_a,执行步骤509。如果查找到缓存服务器1的当前状态为“宕机”,且根据其时间戳的记载判断其宕机时长小于对象url_a的过期时间,则在缓存服务器1 “宕机”时间内,对对象url_a的访问可能顺序迁移到缓存服务器2至缓存服务器4中的任意一台,因此需要顺序获取下一台缓存服务器,并对该缓存服务器重复从步骤503开始执行;而由于缓存服务器1的宕机时长小于对象url_a的过期时间,因此需要同时记录该对象的url_a,以便当缓存服务器1在小于对象url_a的过期时间内恢复活跃状态时,可以根据该记录删除对象url_a。其中,可以将当前缓存服务器1和对象的url_a的对应关系保存到延迟删除列表中,当缓存服务器1在小于对象url_a的过期时间内恢复活跃状态时,根据该延迟删除列表中记录的表项删除该缓存服务器1上的对象url_a。步骤508 在当前缓存服务器上删除对象url_a。如果查找到缓存服务器1的当前状态为“活跃”,且根据其时间戳的记载判断其活跃时间小于url_a的过期时间,则首先从缓存服务器1上删除url_a ;然后,考虑到假如缓存服务器1在“活跃”状态之前为“宕机”状态,则缓存服务器1在“宕机”状态时,访问
a的请求可能顺序迁移到缓存服务器2至缓存服务器4中的任意一台,因此需要顺序获取下一台缓存服务器,并对该缓存服务器重复从步骤503开始执行。步骤509 判断是否能够从当前缓存服务器映射到下一个缓存服务器,若是,则执行步骤510 ;否则,结束当前流程。步骤510 顺序从当前缓存服务器映射到下一个缓存服务器,返回步骤503。由此可见,本申请实施例中,删除代理服务器保持与调度服务器相同的一致性哈希算法,通过结合缓存服务器的状态变化信息,对待删除对象所在的缓存服务器进行精确定位,由于能准确全面地删除对象,而无需对所有缓存服务器都执行删除操作,因此与现有技术相比,减少了在系统中所有缓存服务器上执行删除操作所占用的系统资源。下面结合图6,通过分布式缓存图片系统中对恶意图片进行删除为例描述本申请实施例的实现过程假设分布式缓存系统中包含三个缓存服务器,分别为Si、S2和S3,每个缓存服务器以其IP地址为标识进行识别,通过选定的哈希函数haSh_fuction_X将对S1、S2和S3的 IP地址分别进行哈希计算,假设得到的哈希值为三个整数,分别为1000、2000、3000,则这三个缓存服务器在圆环上的映射位置如图3A所示,并且,假设这三个缓存服务器初始时刻的状态表如下表1所示,其中Last^tamp表示缓存服务器最后一次发生状态变化时的时间戳,Current_status表示缓存服务器的当前状态表 权利要求
1.一种分布式缓存的对象删除方法,其特征在于,包括 接收删除请求,所述删除请求中包含对象的标识符;通过对所述对象的标识符进行一致性哈希计算得到所述标识符的哈希结果值; 根据所述哈希结果值定位到对应的缓存服务器,将所述对应的缓存服务器作为当前缓存服务器;判断所述当前缓存服务器是否处于活跃状态且活跃时间大于所述对象的过期时间; 当判断当前缓存服务器处于活跃状态且所述活跃时间大于所述对象的过期时间时,从所述当前缓存服务器上删除所述对象。
2.根据权利要求1所述的方法,其特征在于,还包括当判断所述活跃时间小于所述过期时间时,从所述当前缓存服务器上删除所述对象; 从所述当前缓存服务器顺序迁移到下一台缓存服务器,并将所述下一台缓存服务器作为当前缓存服务器,返回所述判断当前缓存服务器是否处于活跃状态且活跃时间大于所述对象的过期时间的步骤。
3.根据权利要求2所述的方法,其特征在于,所述根据所述哈希结果值定位到对应的缓存服务器之后,还包括当所述当前缓存服务器处于非活跃状态时,判断所述当前缓存服务器的非活跃时间是否大于所述对象的过期时间;当所述非活跃时间大于所述过期时间时,从所述当前缓存服务器顺序迁移到下一台缓存服务器,并将所述下一台缓存服务器作为当前缓存服务器,返回所述判断当前缓存服务器是否处于活跃状态且活跃时间大于所述对象的过期时间的步骤。
4.根据权利要求3所述的方法,其特征在于,还包括当所述非活跃时间不大于所述过期时间时,记录所述标识符,并执行从所述当前缓存服务器顺序迁移到下一台缓存服务器的步骤;当所述当前缓存服务器进入活跃状态后,根据所述记录的标识符删除所述对象。
5.根据权利要求1至4任意一项所述的方法,其特征在于,还包括 预先建立缓存服务器的状态表;通过所述状态表保存每一个缓存服务器最后一次发生状态变化时的时间戳,以及每一个缓存服务器的当前状态,其中所述时间戳用于判断所述缓存服务器的当前状态的持续时间。
6.一种分布式缓存的对象删除系统,其特征在于,包括删除服务器和若干缓存服务器,所述缓存服务器,用户缓存用户访问的对象;所述删除服务器,用于接收删除请求,所述删除请求中包含对象的标识符,通过对所述对象的标识符进行一致性哈希计算得到所述标识符的哈希结果值,根据所述哈希结果值定位到对应的缓存服务器,将所述对应的缓存服务器作为当前缓存服务器,判断所述当前缓存服务器是否处于活跃状态且活跃时间大于所述对象的过期时间,当判断当前缓存服务器处于活跃状态且所述活跃时间大于所述对象的过期时间时,从所述当前缓存服务器上删除所述对象。
7.根据权利要求6所述的系统,其特征在于,所述删除服务器,还用于当判断所述活跃时间小于所述过期时间时,从所述当前缓存服务器上删除所述对象,从所述当前缓存服务器顺序迁移到下一台缓存服务器,并将所述下一台缓存服务器作为当前缓存服务器,返回执行所述判断当前缓存服务器是否处于活跃状态且活跃时间大于所述对象的过期时间的功能。
8.根据权利要求7所述的系统,其特征在于,所述删除服务器,还用于当所述当前缓存服务器处于非活跃状态时,判断所述当前缓存服务器的非活跃时间是否大于所述对象的过期时间,当所述非活跃时间大于所述过期时间时,从所述当前缓存服务器顺序迁移到下一台缓存服务器,并将所述下一台缓存服务器作为当前缓存服务器,返回执行所述判断当前缓存服务器是否处于活跃状态且活跃时间大于所述对象的过期时间的功能。
9.根据权利要求8所述的系统,其特征在于,所述删除服务器,还用于当所述非活跃时间不大于所述过期时间时,记录所述标识符,并执行从所述当前缓存服务器顺序迁移到下一台缓存服务器的功能,以及当所述当前缓存服务器进入活跃状态后,根据所述记录的标识符删除所述对象。
10.根据权利要求6至9任意一项所述的系统,其特征在于,所述删除服务器,还用于预先建立缓存服务器的状态表,通过所述状态表保存每一个缓存服务器最后一次发生状态变化时的时间戳,以及每一个缓存服务器的当前状态,其中所述时间戳用于判断所述缓存服务器的当前状态的持续时间。
11.一种删除服务器,其特征在于,包括接收单元,用于接收删除请求,所述删除请求中包含对象的标识符;计算单元,用于通过对所述对象的标识符进行一致性哈希计算得到所述标识符的哈希结果值;定位单元,用于根据所述哈希结果值定位到对应的缓存服务器,将所述对应的缓存服务器作为当前缓存服务器;判断单元,用于判断所述当前缓存服务器是否处于活跃状态且活跃时间大于所述对象的过期时间;删除单元,用于当判断当前缓存服务器处于活跃状态且所述活跃时间大于所述对象的过期时间时,从所述当前缓存服务器上删除所述对象。
12.根据权利要求11所述的删除服务器,其特征在于,所述删除单元,还用于当判断所述活跃时间小于所述过期时间时,从所述当前缓存服务器上删除所述对象;所述删除服务器还包括迁移单元,用于从所述当前缓存服务器顺序迁移到下一台缓存服务器,并将所述下一台缓存服务器作为当前缓存服务器,并触发所述判断单元。
13.根据权利要求12所述的删除服务器,其特征在于,所述判断单元,还用于当所述当前缓存服务器处于非活跃状态时,判断所述当前缓存服务器的非活跃时间是否大于所述对象的过期时间;所述迁移单元,还用于当所述非活跃时间大于所述过期时间时,从所述当前缓存服务器顺序迁移到下一台缓存服务器,并将所述下一台缓存服务器作为当前缓存服务器,并触发所述判断单元。
14.根据权利要求13所述的删除服务器,其特征在于,还包括记录单元,用于当所述非活跃时间不大于所述过期时间时,记录所述标识符,并触发所述迁移单元;所述删除单元,还用于当所述当前缓存服务器进入活跃状态后,根据所述记录的标识符删除所述对象。
15.根据权利要求11至14任意一项所述的删除服务器,其特征在于,还包括 建立单元,用于预先建立缓存服务器的状态表;保存单元,用于通过所述状态表保存每一个缓存服务器最后一次发生状态变化时的时间戳,以及每一个缓存服务器的当前状态,其中所述时间戳用于判断所述缓存服务器的当前状态的持续时间
全文摘要
本申请公开了一种分布式缓存的对象删除方法、系统及删除服务器,该方法包括接收包含对象的标识符删除请求;通过对对象的标识符进行一致性哈希计算得到所述标识符的哈希结果值;根据哈希结果值定位到对应的缓存服务器,将对应的缓存服务器作为当前缓存服务器;判断当前缓存服务器是否处于活跃状态且活跃时间大于对象的过期时间,当判断当前缓存服务器处于活跃状态且活跃时间大于对象的过期时间时,从当前缓存服务器上删除对象。本申请通过比较所定位缓存服务器的活跃时间和对象的过期时间,精确定位到包含待删除对象的缓存服务器,并执行删除操作,节约了其它缓存服务器为执行删除操作所要耗费的资源,提高了分布式缓存系统的整体性能。
文档编号H04L29/08GK102387169SQ201010268800
公开日2012年3月21日 申请日期2010年8月26日 优先权日2010年8月26日
发明者任卿, 刘刚, 章文嵩 申请人:阿里巴巴集团控股有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1