CN103548005A - 替换缓存对象的方法和装置 - Google Patents

替换缓存对象的方法和装置 Download PDF

Info

Publication number
CN103548005A
CN103548005A CN201180003186.0A CN201180003186A CN103548005A CN 103548005 A CN103548005 A CN 103548005A CN 201180003186 A CN201180003186 A CN 201180003186A CN 103548005 A CN103548005 A CN 103548005A
Authority
CN
China
Prior art keywords
slow
deposits
weighted value
access times
deposited
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
CN201180003186.0A
Other languages
English (en)
Other versions
CN103548005B (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.)
Huawei Cloud Computing Technologies 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
Publication of CN103548005A publication Critical patent/CN103548005A/zh
Application granted granted Critical
Publication of CN103548005B publication Critical patent/CN103548005B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种替换缓存对象的方法和装置。该方法包括:接收需要存入缓存器的第一缓存对象;在该缓存器中保存的至少一个缓存对象的数量或占用的内存达到最大值时,获取该至少一个缓存对象中每个缓存对象的权重值;根据该每个缓存对象的权重值,确定该至少一个缓存对象中权重值最小的第二缓存对象;将该缓存器中保存的该第二缓存对象替换为该第一缓存对象。该装置包括:接收模块、获取模块、第一确定模块和替换模块。本发明实施例的替换缓存对象的方法和装置,基于每个缓存对象的权重值,通过替换权重值最小的缓存对象,能够去除最不可能被访问的缓存对象,提高缓存器的命中率,从而能够提高系统的性能。

Description

替换緩存对象的方法和装置 技术领域
本发明涉及信息技术领域, 尤其涉及信息技术领域中替换緩存对象的方 法和装置。 背景技术
如今已进入了 Web 2.0高速发展的互联网时代,各种互联网的 Web应用 程序如雨后春夢般出现。 很多 Web应用程序都选择成本更低的数据库用于 系统记录, 以节省数据库授权费用, 同时还可以提升 Web应用程序的性能。 在 Web应用程序中使用緩存技术是解决此问题的一种很好的方法, 该方法 可以在不必大幅度提升磁盘开销的情况下, 让数据尽可能的靠近应用, 从而 可以提高 Web应用程序的性能。
緩存技术中的一个关键问题是替换緩存对象的方法。 由于緩存器的存储 容量有限, 当存储区被占满后, 新的緩存对象就无法存储, 这时需要将一部 分当前存储价值低的緩存对象替换出去。 因此, 替换緩存对象的方法的好坏 也决定了緩存器的命中率等指标。
目前, 緩存的实现大多数都 于传统的替换方法, 其中使用比较广泛 的是最近最少使用 ( Least Recently Used, 筒称为 "LRU" ) 方法, 以及最不 经常使用 ( Least Frequently Used, 筒称为 "LFU" )方法。 该 LRU方法是将 一段时间内最久没有被访问的对象给替换出緩存器, 其基本思想是利用局部 性原理, 即最近被访问的对象, 很可能在后面也被访问, 反过来说, 已经很 久没有被访问的对象, 很可能在未来较长的一段时间内也不会被访问。 该 LRU方法依据最近一次的访问时间, 能够较好地适应数据访问的变化,但是 该方法没有考虑数据长期历史的访问特性, 也没有考虑对象之间的相互关 系, 緩存器的命中率较低。
该 LFU方法将访问次数最少的对象替换出緩存器, 即将过去使用频率 高的数据优先保存在緩存器中, 其基本思想是最近被访问次数最多的对象就 越可能再次被访问。 该 LFU方法使用数据的访问频率, 有利于数据的总体 优化使用, 但该方法可能使得开始被频繁访问的对象长期驻留在緩存器中, 影响緩存器的命中率。 因此, 需要一种技术方案能够替换緩存对象, 并提高緩存器的命中率。 发明内容
本发明实施例提供了一种替换緩存对象的方法和装置, 能够在緩存器中 保存的緩存对象的数量或占用的内存达到最大值时替换緩存对象, 并提高緩 存器的命中率。
一方面, 本发明实施例提供了一种替换緩存对象的方法, 该方法包括: 接收需要存入緩存器的第一緩存对象; 在该緩存器中保存的至少一个緩存对 象的数量或占用的内存达到最大值时, 获取该至少一个緩存对象中每个緩存 对象的权重值; 根据该每个緩存对象的权重值, 确定该至少一个緩存对象中 权重值最小的第二緩存对象; 将该緩存器中保存的该第二緩存对象替换为该 第一緩存对象。
另一方面,本发明实施例提供了一种替换緩存对象的装置,该装置包括: 接收模块, 用于接收需要存入緩存器的第一緩存对象; 获取模块, 用于在该 緩存器中保存的至少一个緩存对象的数量或占用的内存达到最大值时,获取 该至少一个緩存对象中每个緩存对象的权重值; 第一确定模块, 用于根据该 获取模块获取的该每个緩存对象的权重值,确定该至少一个緩存对象中权重 值最小的第二緩存对象; 替换模块, 用于将该緩存器中保存的该第一确定模 块确定的该第二緩存对象替换为该接收模块接收的该第一緩存对象。
基于上述技术方案, 本发明实施例的替换緩存对象的方法和装置, 基于 每个緩存对象的权重值, 通过替换权重值最小的緩存对象, 能够在緩存器中 保存的緩存对象的数量或占用的内存达到最大值时,去除最不可能被访问的 緩存对象, 提高緩存器的命中率, 从而能够提高系统的性能。 附图说明
为了更清楚地说明本发明实施例的技术方案, 下面将对本发明实施例中 所需要使用的附图作筒单地介绍, 显而易见地, 下面所描述的附图仅仅是本 发明的一些实施例, 对于本领域普通技术人员来讲, 在不付出创造性劳动的 前提下, 还可以根据这些附图获得其他的附图。
图 1是根据本发明实施例的替换緩存对象的方法的示意性流程图。
图 2是根据本发明实施例的替换緩存对象的方法的另一示意性流程图。 图 3是根据本发明实施例的緩存对象之间的层级结构示意图。
图 4是根据本发明实施例的确定緩存对象的权重值的方法的示意性流程 图。
图 5是根据本发明实施例的确定緩存对象的访问次数的方法的示意性流 程图。
图 6是根据本发明实施例的替换緩存对象的装置的示意性框图。
图 7是根据本发明实施例的替换緩存对象的装置的另一示意性框图。 图 8是根据本发明实施例的第二确定模块的示意性框图。
图 9是根据本发明实施例的第二确定单元的示意性框图。 具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行 清楚、 完整地描述, 显然, 所描述的实施例是本发明的一部分实施例, 而不 是全部实施例。 基于本发明中的实施例, 本领域普通技术人员在没有做出创 造性劳动的前提下所获得的所有其他实施例, 都应属于本发明保护的范围。
图 1示出了根据本发明实施例的替换緩存对象的方法 100的示意性流程 图。 如图 1所示, 该方法 100包括:
S110, 接收需要存入緩存器的第一緩存对象;
S120,在该緩存器中保存的至少一个緩存对象的数量或占用的内存达到 最大值时, 获取该至少一个緩存对象中每个緩存对象的权重值;
S130, 根据该每个緩存对象的权重值, 确定该至少一个緩存对象中权重 值最小的第二緩存对象;
S140, 将该緩存器中保存的该第二緩存对象替换为该第一緩存对象。 在例如为 WEB应用程序的应用系统中, 当接收的第一緩存对象需要存 储到緩存器中时,如果緩存器中保存的至少一个緩存对象的数量或占用的内 存达到最大值, 那么应用系统可以获取该至少一个緩存对象中每个緩存对象 的权重值, 并可以根据该每个緩存对象的权重值, 确定该至少一个緩存对象 中权重值最小的第二緩存对象,从而该应用系统可以将该緩存器中保存的该 第二緩存对象替换为该第一緩存对象。 由此使得緩存器能够将存储价值相对 较低的緩存对象替换出去, 并存储新接收的緩存对象。
因此, 本发明实施例的替换緩存对象的方法, 基于每个緩存对象的权重 值, 通过替换权重值最小的緩存对象, 能够在緩存器中保存的緩存对象的数 量或占用的内存达到最大值时, 去除最不可能被访问的緩存对象, 提高緩存 器的命中率, 从而能够提高系统的性能。
应理解, 在緩存器中保存的至少一个緩存对象的数量没有达到最大值, 并且该至少一个緩存对象占用的内存没有达到最大值时,如果有新的緩存对 象需要存入緩存器, 那么可以将该新的緩存对象直接存储到緩存器; 当然, 在緩存器中保存的至少一个緩存对象的数量或占用的内存没有达到最大值 时, 也可以根据本发明实施例确定存储器中权重值最小的緩存对象, 并将该 权重值最小的緩存对象替换出去, 以及存储该新的緩存对象。
在本发明实施例中, 如图 2所示, 该方法 100还可以包括:
S150, 根据该至少一个緩存对象中各緩存对象的层级关系和 /或操作类 型, 确定该至少一个緩存对象中每个緩存对象的权重值。
可选地, 该确定该至少一个緩存对象中每个緩存对象的权重值, 包括: 周期性确定该每个緩存对象的权重值,和 /或在该至少一个緩存对象的数量或 占用的内存达到最大值时, 确定该每个緩存对象的权重值; 该获取该至少一 个緩存对象中每个緩存对象的权重值, 包括: 获取周期性确定的该每个緩存 对象的权重值, 或获取在该至少一个緩存对象的数量或占用的内存达到最大 值时确定的该每个緩存对象的权重值。
应理解, 在本发明实施例中, 应用系统也可以在有緩存对象需要存入緩 存器时, 确定緩存器中的每个緩存对象的权重值, 从而可以确定权重值最小 的緩存对象并进行替换处理。 还应理解, 还可以根据緩存对象的其他属性确 定各緩存对象的权重值, 以替换出存储价值较小的緩存对象。
在本发明实施例中, 应用系统中的被緩存的对象通常不是孤立存在的, 这些对象之间可以构建成层级结构, 例如, 各对象可以构成树型层级结构, 或各对象可以构成一对多的层级结构, 并且通常而言, 访问下层对象的同时 也可能会访问上层对象。 例如, 各緩存对象 Ul、 Tl、 T2、 Ml、 Rl、 R2、 R3、 Dl、 D2、 D3和 D4可以具有如图 3所示的层级结构, U1可以表示用户, Tl、 Τ2可以表示表信息, Rl、 R2、 R3可以表示该表的行信息, Dl、 D2、 D3可以表示行中的数据信息。 当 D1被访问时, Ul、 T1和 R1也很有可能 被访问。 因此, 本发明实施例在确定緩存对象的权重值时, 考虑緩存器中各 緩存对象之间的层级关系, 能够提高上层的緩存对象的命中率, 从而能够进 一步提升应用系统的性能。
另外, 在本发明实施例中, 一般地, 对緩存对象的操作类型不同, 该緩 存对象将来被访问的概率或可能性不同。例如,对緩存对象进行更新操作后, 很可能对该緩存对象进行查询操作。 因此, 本发明实施例在确定緩存对象的 权重值时,考虑緩存器中各緩存对象的操作类型,能够预测将来的访问情况, 从而能够提高緩存对象的命中率, 并能够进一步提升应用系统的性能。
因此, 本发明实施例的替换緩存对象的方法, 通过根据各緩存对象的层 级关系和 /或操作类型,确定每个緩存对象的权重值,并替换权重值最小的緩 存对象, 能够在緩存器中保存的緩存对象的数量或占用的内存达到最大值 时, 去除最不可能被访问的緩存对象, 并能够进一步提高緩存器对緩存对象 的命中率, 从而能够进一步提高系统的性能。
在本发明实施例中,应用系统可以根据各緩存对象的层级关系确定各緩 存对象的权重值, 例如, 当下层的緩存对象被访问时, 可以增加上层的緩存 对象的权重; 应用系统也可以根据各緩存对象的操作类型确定各緩存对象的 权重值, 例如, 对緩存对象的不同类型的操作, 可以对緩存对象设置不同的 权重值。
优选地, 应用系统可以根据各緩存对象的层级关系和操作类型, 确定各 緩存对象的权重值。 下面将结合图 4详细描述确定该至少一个緩存对象中每 个緩存对象的权重值的方法 150。
如图 4所示, 该方法 150包括:
5151 , 获取该至少一个緩存对象中每个緩存对象的初始权重值;
5152, 根据该每个緩存对象的层级关系和操作类型, 确定一段时间内该 每个緩存对象的访问次数;
5153 , 根据该每个緩存对象的初始权重值和该每个緩存对象的访问次 数, 确定该每个緩存对象的权重值。
在 S151 中, 应用系统获取该至少一个緩存对象中每个緩存对象的初始 权重值。 该初始权重值可以设置为常数, 例如, 将各緩存对象的初始权重值 设置为 0; 也可以将各緩存对象的历史权重值设置为当前一段时间内的初始 权重值。 例如, 当应用系统周期性地确定各緩存对象的权重值时, 可以将第 N ( N为自然数)个周期确定的各緩存对象的权重值, 设置为第 N+1个周期 中相应的緩存对象的权重值。 因此, 该权重值还考虑了緩存对象的历史访问 特性, 能够更加全面地确定各緩存对象的存储价值, 从而能够进一步提高緩 存对象的命中率, 并提升应用系统的性能。
在 S152中, 应用系统根据该每个緩存对象的层级关系和操作类型, 确 定一段时间内该每个緩存对象的访问次数。
例如, 当下层的緩存对象被访问时, 应用系统可以增加上层的緩存对象 的访问次数; 应用系统也可以对緩存对象的不同类型的操作, 对緩存对象设 置不同的访问次数。
具体而言,如图 5所示,确定緩存对象的访问次数的方法 152可以包括: S1521 ,获取该每个緩存对象的键 KEY或值 VALUE中包括的层级关系; S1522, 根据一段时间内该每个緩存对象的该层级关系和操作类型, 将 与该每个緩存对象的操作类型相应的访问次数, 以及与该每个緩存对象的保 存在该緩沖器中的下层緩存对象的操作类型相应的访问次数之和,确定为一 段时间内该每个緩存对象的访问次数, 其中与不同操作类型相应的访问次数 不同。
在 S1521中, 应用系统可以根据緩存对象的键 KEY或值 VALUE, 获取 緩存对象的层级关系。 例如, 在緩存对象 D1的键 KEY或值 VALUE中, 以 "U1.T1.R1.D1"表示该緩存对象 D1的上层緩存对象为 R1 ,该 R1的上层緩 存对象为 T1 , 该 T1的上层緩存对象为 Ul。
在 S1522中,应用系统根据一段时间内该每个緩存对象的该层级关系和 操作类型, 将与该每个緩存对象的操作类型相应的访问次数, 以及与该每个 緩存对象的保存在该緩沖器中的下层緩存对象的操作类型相应的访问次数 之和, 确定为一段时间内该每个緩存对象的访问次数, 其中与不同操作类型 相应的访问次数不同。
可选地, 与不同操作类型相应的访问次数不同, 包括: 与该每个緩存对 象或该下层緩存对象的添加 ( PUT )操作或更新 ( UPDATE )操作相应的访 问次数, 大于与该每个緩存对象或该下层緩存对象的获取 ( GET )操作或删 除(DELETE )操作相应的访问次数; 与该每个緩存对象或该下层緩存对象 的获取操作相应的访问次数, 大于与该每个緩存对象或该下层緩存对象的删 除操作相应的访问次数。
例如, 4叚设緩存对象 Dl、 Rl、 Tl、 Ul具有如图 3所示的层级结构, 当 对緩存对象 D1进行 GET操作或 PUT操作时, 各緩存对象 Dl、 Rl、 Tl、 Ul的访问次数变化情况如表 1所示 <
表 1
在 S153 中, 应用系统根据该每个緩存对象的初始权重值和该每个緩存 对象的访问次数, 确定该每个緩存对象的权重值。 可选地, 每个緩存对象的 权重值由下列等式( 1 )确定:
C, (Π) = Wt (TV, + Ci (T0)/F ( 1 ) 其中, c,(ri)为该至少一个緩存对象中的第 i个緩存对象在 Γ1时间段内 的权重值, i为自然数且 i≥l ; Wi (Τΐ)为该第 i个緩存对象在 T1时间段内的访 问次数; C,(ro)为该第 i个緩存对象的初始权重值; F为平衡常量。
应理解, 该平衡常数 F用于根据具有的应用场景, 动态调整緩存对象的 历史访问特征和一段时间内緩存对象的访问次数的比重, 以适应不同的应用 场景。 例如, 当应用场景更适合于以历史访问特征评价緩存对象的存储价值 时, 可以将 F设置较大的值; 当应用场景更适合于以一段时间内的访问次数 评价緩存对象的存储价值时, 可以将 F设置相对较小的值。
应理解, 在本发明的各种实施例中, 上述各过程的序号的大小并不意味 着执行顺序的先后, 各过程的执行顺序应以其功能和内在逻辑确定, 而不应 对本发明实施例的实施过程构成任何限定。
因此, 本发明实施例的替换緩存对象的方法, 基于每个緩存对象的考虑 层级关系、 操作类型、 历史访问特征的权重值, 通过替换权重值最小的緩存 对象, 能够在緩存器中保存的緩存对象的数量或占用的内存达到最大值时, 去除最不可能被访问的緩存对象, 即存储价值最小的緩存对象, 由此能够提 高緩存器的命中率, 从而能够提高系统的性能。
下面将结合图 3所示的緩存对象层次构架图, 以上述等式(1 )所示的 确定权重值的方法为例, 对本发明实施例进行具体描述。
假设緩存器只能緩存 8个对象,应用系统周期性地确定每个緩存对象的 权重值, 例如每 10分钟为一个周期, 初始的权重值为上一周期确定的权重 值, 其中第一周期的初始权重值为 0, F设置为 2, 20分钟内对象的访问次 序依次为: GET Ul、 GET Ul.Tl、 GET U1.T2、 UPDATE U1.T1.R1、 PUT U1.T1.R1.D1、 GET Ul.Tl. R2.D2、 GET U1.T2.R3 , UPDATE U1.T2、 GET Ul.Tl .R2和 GET U1.T2.R3.D3 , 并且对緩存对象进行添加 PUT操作或更新 UPDATE操作时, 相应的访问次数增加值为 2; 对緩存对象进行获取 GET 操作时,相应的访问次数增加值为 1;对緩存对象进行删除 DELETE操作时, 相应的访问次数增加值为 0。
在第一个 10分钟内, 緩存器中各緩存对象的访问次数如表 2所示。
表 2
10分钟后, 应用系统周期性地确定所述每个緩存对象的权重值, 此时, 緩存器中各緩存对象的权重值如表 3所示。
表 3
U1.T1.R1.D1 C(T10)=2
U1.T1.R1 C(T10)=4
U1.T1.R2.D2 C(T10)=1 在第二个 10分钟内, 緩存器中各緩存对象的访问次数重新计算, 并且 如表 4所示。
表 4
当应用系统接收需要存入緩存器的緩存对象 D3时, 緩存器中保存的緩 存对象的数量达到最大值, 此时, 应用系统确定的每个緩存对象的权重值如 表 5所示。
表 5
由表 5可以确定緩存器中权重值最小的緩存对象为 D2, 于是应用系统 可以将该緩存器中保存的緩存对象 D2替换为緩存对象 D3。 随后,在下一个 周期中, 緩存器中各緩存对象的权重值和访问次数如表 6所示。
表 6 緩存对象 权重值 访问次数
Ul C(Tm)= 8 W(U1)=1
U1.T1 C(Tm)= 4 W(U1.T1)=0
U1.T2 C(Tm)= 3.5 W(U1.T2)=1
U1.T1.R1.D1 C(Tm)= 1 W(U1.T1.R1.D1)=0
U1.T1.R1 C(Tm)= 2 W(U1.T1.R1)=0
U1.T2.R3 C(Tm)= 1 W(U1.T2.R3)=1
U1.T1.R2 C(Tm)= 1.5 W(U1.T1.R2)=0
U1.T2.R3.D3 C(Tm)=0 W(U1.T2.R3.D3)=1 因此, 本发明实施例的替换緩存对象的方法, 基于每个緩存对象的考虑 层级关系、 操作类型、 历史访问特征的权重值, 通过替换权重值最小的緩存 对象, 能够在緩存器中保存的緩存对象的数量或占用的内存达到最大值时, 去除最不可能被访问的緩存对象, 即存储价值最小的緩存对象, 由此能够提 高緩存器的命中率, 从而能够提高系统的性能。
上文中结合图 1至图 5, 详细描述了根据本发明实施例的替换緩存对象 的方法, 下面将结合图 6至图 9, 详细描述根据本发明实施例的替换緩存对 象的装置。
图 6示出了根据本发明实施例的替换緩存对象的装置 600的示意性框 图。 如图 6所示, 该装置 600包括:
接收模块 610, 用于接收需要存入緩存器的第一緩存对象;
获取模块 620, 用于在该緩存器中保存的至少一个緩存对象的数量或占 用的内存达到最大值时, 获取该至少一个緩存对象中每个緩存对象的权重 值;
第一确定模块 630, 用于根据该获取模块 620获取的该每个緩存对象的 权重值, 确定该至少一个緩存对象中权重值最小的第二緩存对象;
替换模块 640, 用于将该緩存器中保存的该第一确定模块 630确定的该 第二緩存对象替换为该接收模块 610接收的该第一緩存对象。
本发明实施例的替换緩存对象的装置, 基于每个緩存对象的权重值, 通 过替换权重值最小的緩存对象, 能够在緩存器中保存的緩存对象的数量或占 用的内存达到最大值时, 去除最不可能被访问的緩存对象, 提高緩存器的命 中率, 从而能够提高系统的性能。
在本发明实施例中, 可选地, 如图 7所示, 该装置 600还包括: 第二确定模块 650, 用于根据该至少一个緩存对象中各緩存对象的层级 关系和 /或操作类型, 确定该至少一个緩存对象中每个緩存对象的权重值。
可选地, 如图 8所示, 该第二确定模块 650包括:
获取单元 651 , 用于获取该至少一个緩存对象中每个緩存对象的初始权 重值;
第一确定单元 652, 用于根据该每个緩存对象的层级关系和操作类型, 确定一段时间内该每个緩存对象的访问次数;
第二确定单元 653, 用于根据该获取单元 651获取的该每个緩存对象的 初始权重值, 和该第一确定单元 652确定的该每个緩存对象的访问次数, 确 定该每个緩存对象的权重值。
可选地, 如图 9所示, 该第一确定单元 652包括:
获取子单元 6521 , 用于获取该每个緩存对象的键 KEY或值 VALUE中 包括的层级关系;
确定子单元 6522,用于根据一段时间内该每个緩存对象的层级关系和操 作类型, 将与该每个緩存对象的操作类型相应的访问次数, 以及与该每个緩 存对象的保存在该緩沖器中的下层緩存对象的操作类型相应的访问次数之 和, 确定为一段时间内该每个緩存对象的访问次数, 其中与不同操作类型相 应的访问次数不同。
在本发明实施例中, 可选地, 与该每个緩存对象或该下层緩存对象的添 加操作或更新操作相应的访问次数, 大于与该每个緩存对象或该下层緩存对 象的获取操作或删除操作相应的访问次数; 与该每个緩存对象或该下层緩存 对象的获取操作相应的访问次数, 大于与该每个緩存对象或该下层緩存对象 的删除操作相应的访问次数。
在本发明实施例中, 可选地, 该第二确定单元 653用于根据下列等式确 定该每个緩存对象的权重值:
Ci (Tl) = Wi (Tl) + Ci (T0)/F ,
其中, c,(ri)为该至少一个緩存对象中的第 i个緩存对象在 Γ1时间段内 的权重值, i为自然数且 i≥l ; Wi (Τΐ)为该第 i个緩存对象在 T1时间段内的访 问次数; ς (ΓΟ)为该第 i个緩存对象的初始权重值; F为平衡常量。 在本发明实施例中, 可选地, 该第二确定模块 650用于周期性确定该每 个緩存对象的权重值,和 /或在该至少一个緩存对象的数量或占用的内存达到 最大值时, 确定该每个緩存对象的权重值; 该获取模块 620用于获取该第二 确定模块 650周期性确定的该每个緩存对象的权重值, 或用于获取该第二确 定模块 650在该至少一个緩存对象的数量或占用的内存达到最大值时确定的 该每个緩存对象的权重值。
应理解,根据本发明实施例的替换緩存对象的装置 600可对应于本发明 实施例中的应用系统,并且装置 600中的各个模块的上述和其它操作和 /或功 能分别为了实现图 1至图 5中的各个方法的相应流程, 为了筒洁, 在此不再 赘述。
因此, 本发明实施例的替换緩存对象的装置, 基于每个緩存对象的考虑 层级关系、 操作类型、 历史访问特征的权重值, 通过替换权重值最小的緩存 对象, 能够在緩存器中保存的緩存对象的数量或占用的内存达到最大值时, 去除最不可能被访问的緩存对象, 即存储价值最小的緩存对象, 由此能够提 高緩存器的命中率, 从而能够提高系统的性能。
本领域普通技术人员可以意识到, 结合本文中所公开的实施例描述的各 示例的单元及算法步骤, 能够以电子硬件、 计算机软件或者二者的结合来实 现, 为了清楚地说明硬件和软件的可互换性, 在上述说明中已经按照功能一 般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执 行, 取决于技术方案的特定应用和设计约束条件。 专业技术人员可以对每个 特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超 出本发明的范围。
所属领域的技术人员可以清楚地了解到, 为了描述的方便和筒洁, 上述 描述的系统、 装置和单元的具体工作过程, 可以参考前述方法实施例中的对 应过程, 在此不再赞述。
在本申请所提供的几个实施例中, 应该理解到, 所揭露的系统、 装置和 方法, 可以通过其它的方式实现。 例如, 以上所描述的装置实施例仅仅是示 意性的, 例如, 所述单元的划分, 仅仅为一种逻辑功能划分, 实际实现时可 以有另外的划分方式, 例如多个单元或组件可以结合或者可以集成到另一个 系统, 或一些特征可以忽略, 或不执行。 另外, 所显示或讨论的相互之间的 耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或 通信连接, 也可以是电的, 机械的或其它的形式连接。 为单元显示的部件可以是或者也可以不是物理单元, 即可以位于一个地方, 或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或 者全部单元来实现本发明实施例方案的目的。
另外, 在本发明各个实施例中的各功能单元可以集成在一个处理单元 中, 也可以是各个单元单独物理存在, 也可以是两个或两个以上单元集成在 一个单元中。 上述集成的单元既可以采用硬件的形式实现, 也可以采用软件 功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销 售或使用时, 可以存储在一个计算机可读取存储介质中。 基于这样的理解, 本发明的技术方案本质上或者说对现有技术做出贡献的部分, 或者该技术方 案的全部或部分可以以软件产品的形式体现出来, 该计算机软件产品存储在 一个存储介质中, 包括若干指令用以使得一台计算机设备(可以是个人计算 机, 服务器, 或者网络设备等)执行本发明各个实施例所述方法的全部或部 分步骤。 而前述的存储介质包括: U盘、 移动硬盘、 只读存储器(ROM, Read-Only Memory )、 随机存取存储器 ( RAM, Random Access Memory )、 磁碟或者光盘等各种可以存储程序代码的介质。
以上所述, 仅为本发明的具体实施方式, 但本发明的保护范围并不局限 于此, 任何熟悉本技术领域的技术人员在本发明揭露的技术范围内, 可轻易 想到各种等效的修改或替换, 这些修改或替换都应涵盖在本发明的保护范围 之内。 因此, 本发明的保护范围应以权利要求的保护范围为准。

Claims (13)

1、 一种替换緩存对象的方法, 其特征在于, 包括:
接收需要存入緩存器的第一緩存对象;
在所述緩存器中保存的至少一个緩存对象的数量或占用的内存达到最 大值时, 获取所述至少一个緩存对象中每个緩存对象的权重值;
根据所述每个緩存对象的权重值,确定所述至少一个緩存对象中权重值 最小的第二緩存对象;
将所述緩存器中保存的所述第二緩存对象替换为所述第一緩存对象。
2、 根据权利要求 1所述的方法, 其特征在于, 所述方法还包括: 根据所述至少一个緩存对象中各緩存对象的层级关系和 /或操作类型,确 定所述至少一个緩存对象中每个緩存对象的权重值。
3、 根据权利要求 2所述的方法, 其特征在于, 所述确定所述至少一个 緩存对象中每个緩存对象的权重值, 包括:
获取所述至少一个緩存对象中每个緩存对象的初始权重值;
根据所述每个緩存对象的层级关系和操作类型,确定一段时间内所述每 个緩存对象的访问次数;
根据所述每个緩存对象的初始权重值和所述每个緩存对象的访问次数, 确定所述每个緩存对象的权重值。
4、 根据权利要求 3所述的方法, 其特征在于, 所述确定一段时间内所 述每个緩存对象的访问次数, 包括:
获取所述每个緩存对象的键 KEY或值 VALUE中包括的层级关系; 根据一段时间内所述每个緩存对象的所述层级关系和操作类型,将与所 述每个緩存对象的操作类型相应的访问次数, 以及与所述每个緩存对象的保 存在所述緩沖器中的下层緩存对象的操作类型相应的访问次数之和,确定为 一段时间内所述每个緩存对象的访问次数, 其中与不同操作类型相应的访问 次数不同。
5、 根据权利要求 4所述的方法, 其特征在于, 所述与不同操作类型相 应的访问次数不同, 包括:
与所述每个緩存对象或所述下层緩存对象的添加操作或更新操作相应 的访问次数, 大于与所述每个緩存对象或所述下层緩存对象的获取操作或删 除操作相应的访问次数; 与所述每个緩存对象或所述下层緩存对象的获取操 作相应的访问次数, 大于与所述每个緩存对象或所述下层緩存对象的删除操 作相应的访问次数。
6、 根据权利要求 3所述的方法, 其特征在于, 所述每个緩存对象的权 重值由下列等式确定:
C, (Π) = Wt (TV, + Ci (TO) /F ,
其中, c, (ri)为所述至少一个緩存对象中的第 i个緩存对象在 Γ1时间段 内的权重值, i为自然数且 ≥l ; (ri)为所述第 i个緩存对象在 Γ1时间段内 的访问次数; c, (ro)为所述第 i个緩存对象的初始权重值; F为平衡常量。
7、 根据权利要求 2至 6中任一项所述的方法, 其特征在于, 所述确定 所述至少一个緩存对象中每个緩存对象的权重值, 包括:
周期性确定所述每个緩存对象的权重值,和 /或在所述至少一个緩存对象 的数量或占用的内存达到最大值时, 确定所述每个緩存对象的权重值;
所述获取所述至少一个緩存对象中每个緩存对象的权重值, 包括: 获取周期性确定的所述每个緩存对象的权重值, 或获取在所述至少一个 緩存对象的数量或占用的内存达到最大值时确定的所述每个緩存对象的权 重值。
8、 一种替换緩存对象的装置, 其特征在于, 包括:
接收模块, 用于接收需要存入緩存器的第一緩存对象;
获耳 ^莫块, 用于在所述緩存器中保存的至少一个緩存对象的数量或占用 的内存达到最大值时, 获取所述至少一个緩存对象中每个緩存对象的权重 值;
第一确定模块,用于根据所述获取模块获取的所述每个緩存对象的权重 值, 确定所述至少一个緩存对象中权重值最小的第二緩存对象;
替换模块, 用于将所述緩存器中保存的所述第一确定模块确定的所述第 二緩存对象替换为所述接收模块接收的所述第一緩存对象。
9、 根据权利要求 8所述的装置, 其特征在于, 所述装置还包括: 第二确定模块,用于根据所述至少一个緩存对象中各緩存对象的层级关 系和 /或操作类型, 确定所述至少一个緩存对象中每个緩存对象的权重值。
10、根据权利要求 9所述的装置,其特征在于,所述第二确定模块包括: 获取单元, 用于获取所述至少一个緩存对象中每个緩存对象的初始权重 值; 第一确定单元, 用于根据所述每个緩存对象的层级关系和操作类型, 确 定一段时间内所述每个緩存对象的访问次数;
第二确定单元,用于根据所述获取单元获取的所述每个緩存对象的初始 权重值, 和所述第一确定单元确定的所述每个緩存对象的访问次数, 确定所 述每个緩存对象的权重值。
11、 根据权利要求 10所述的装置, 其特征在于, 所述第一确定单元包 括:
获取子单元, 用于获取所述每个緩存对象的键 KEY或值 VALUE中包 括的层级关系;
确定子单元, 用于根据一段时间内所述每个緩存对象的所述层级关系和 操作类型, 将与所述每个緩存对象的操作类型相应的访问次数, 以及与所述 每个緩存对象的保存在所述緩沖器中的下层緩存对象的操作类型相应的访 问次数之和, 确定为一段时间内所述每个緩存对象的访问次数, 其中与不同 操作类型相应的访问次数不同。
12、 根据权利要求 10所述的装置, 其特征在于, 所述第二确定单元用 于根据下列等式确定所述每个緩存对象的权重值:
Ci (Tl) = Wi (Tl) + Ci (T0)/F ,
其中, c,(ri)为所述至少一个緩存对象中的第 i个緩存对象在 Γ1时间段 内的权重值, i为自然数且 ≥l ; (ri)为所述第 i个緩存对象在 Γ1时间段内 的访问次数; ς (ΓΟ)为所述第 i个緩存对象的初始权重值; F为平衡常量。
13、 根据权利要求 9至 12中任一项所述的装置, 其特征在于, 所述第 二确定模块用于周期性确定所述每个緩存对象的权重值,和 /或在所述至少一 个緩存对象的数量或占用的内存达到最大值时,确定所述每个緩存对象的权 重值; 所述获取模块用于获取所述第二确定模块周期性确定的所述每个緩存 对象的权重值, 或用于获取所述第二确定模块在所述至少一个緩存对象的数 量或占用的内存达到最大值时确定的所述每个緩存对象的权重值。
CN201180003186.0A 2011-12-13 2011-12-13 替换缓存对象的方法和装置 Active CN103548005B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2011/083896 WO2013086689A1 (zh) 2011-12-13 2011-12-13 替换缓存对象的方法和装置

Publications (2)

Publication Number Publication Date
CN103548005A true CN103548005A (zh) 2014-01-29
CN103548005B CN103548005B (zh) 2016-03-30

Family

ID=48611801

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180003186.0A Active CN103548005B (zh) 2011-12-13 2011-12-13 替换缓存对象的方法和装置

Country Status (2)

Country Link
CN (1) CN103548005B (zh)
WO (1) WO2013086689A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104333594A (zh) * 2014-11-05 2015-02-04 无锡成电科大科技发展有限公司 基于光传输网络的云平台资源采集加速方法和系统
WO2015169245A1 (zh) * 2014-05-09 2015-11-12 华为技术有限公司 数据缓存方法、缓存和计算机系统
CN111552652A (zh) * 2020-07-13 2020-08-18 深圳鲲云信息科技有限公司 基于人工智能芯片的数据处理方法、装置和存储介质
CN114730298A (zh) * 2019-10-24 2022-07-08 美光科技公司 使用加权存储器存取操作类型的存储器装置的服务质量

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107220188B (zh) * 2017-05-31 2020-10-27 中山大学 一种自适应缓冲块替换方法
CN109101580A (zh) * 2018-07-20 2018-12-28 北京北信源信息安全技术有限公司 一种基于Redis的热点数据缓存方法和装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030110357A1 (en) * 2001-11-14 2003-06-12 Nguyen Phillip V. Weight based disk cache replacement method
CN1622059A (zh) * 2003-11-24 2005-06-01 顺德市顺达电脑厂有限公司 高速缓存代换算法
CN1851677A (zh) * 2005-11-25 2006-10-25 华为技术有限公司 嵌入式处理器系统及其数据操作方法
CN101232464A (zh) * 2008-02-28 2008-07-30 清华大学 基于时间权参数的p2p实时流媒体缓存替换方法
CN101551781A (zh) * 2009-05-22 2009-10-07 中国科学院计算技术研究所 一种p2p视频点播系统中的磁盘缓存替换方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6266742B1 (en) * 1997-10-27 2001-07-24 International Business Machines Corporation Algorithm for cache replacement
US20060282620A1 (en) * 2005-06-14 2006-12-14 Sujatha Kashyap Weighted LRU for associative caches
WO2007068122A1 (en) * 2005-12-16 2007-06-21 Univ Western Ontario System and method for cache management
CN100596190C (zh) * 2007-12-12 2010-03-24 中山大学 一种数字家庭中vod客户端代理缓存服务器

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030110357A1 (en) * 2001-11-14 2003-06-12 Nguyen Phillip V. Weight based disk cache replacement method
CN1622059A (zh) * 2003-11-24 2005-06-01 顺德市顺达电脑厂有限公司 高速缓存代换算法
CN1851677A (zh) * 2005-11-25 2006-10-25 华为技术有限公司 嵌入式处理器系统及其数据操作方法
CN101232464A (zh) * 2008-02-28 2008-07-30 清华大学 基于时间权参数的p2p实时流媒体缓存替换方法
CN101551781A (zh) * 2009-05-22 2009-10-07 中国科学院计算技术研究所 一种p2p视频点播系统中的磁盘缓存替换方法

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015169245A1 (zh) * 2014-05-09 2015-11-12 华为技术有限公司 数据缓存方法、缓存和计算机系统
US10241919B2 (en) 2014-05-09 2019-03-26 Huawei Technologies Co., Ltd. Data caching method and computer system
CN104333594A (zh) * 2014-11-05 2015-02-04 无锡成电科大科技发展有限公司 基于光传输网络的云平台资源采集加速方法和系统
CN104333594B (zh) * 2014-11-05 2018-07-27 无锡成电科大科技发展有限公司 基于光传输网络的云平台资源采集加速方法和系统
CN114730298A (zh) * 2019-10-24 2022-07-08 美光科技公司 使用加权存储器存取操作类型的存储器装置的服务质量
CN114730298B (zh) * 2019-10-24 2024-05-17 美光科技公司 使用加权存储器存取操作类型的存储器装置的服务质量
CN111552652A (zh) * 2020-07-13 2020-08-18 深圳鲲云信息科技有限公司 基于人工智能芯片的数据处理方法、装置和存储介质
CN111552652B (zh) * 2020-07-13 2020-11-17 深圳鲲云信息科技有限公司 基于人工智能芯片的数据处理方法、装置和存储介质

Also Published As

Publication number Publication date
CN103548005B (zh) 2016-03-30
WO2013086689A1 (zh) 2013-06-20

Similar Documents

Publication Publication Date Title
CN103548005A (zh) 替换缓存对象的方法和装置
CN104461935B (zh) 一种进行数据存储的方法、装置及系统
CN102880556B (zh) 一种实现Nand Flash磨损均衡的方法及其系统
CN103440207A (zh) 缓存方法及装置
CN100428170C (zh) 基于贝叶斯决策的负载感知的io性能优化方法
CN102981963B (zh) 一种固态盘的闪存转换层的实现方法
CN103366016B (zh) 基于hdfs的电子文件集中存储及优化方法
CN104834609B (zh) 基于历史升降级频率的多级缓存方法
US20180024937A1 (en) Caching and tiering for cloud storage
CN106844227A (zh) 基于分组机制的固态硬盘磨损均衡方法及装置
CN107644071A (zh) 缓存更新方法、装置及数据存储系统
US9626126B2 (en) Power saving mode hybrid drive access management
CN105872040A (zh) 一种利用网关节点缓存优化分布式块存储写性能的方法
CN101576856A (zh) 一种基于长短周期访问频度的缓存数据替换方法
CN108139872A (zh) 一种缓存管理方法、缓存控制器以及计算机系统
CN102298633A (zh) 一种分布式海量数据排重方法及系统
CN105472056A (zh) Dns递归服务器分层缓存方法和系统
CN106527995A (zh) 一种i/o均衡的数据扩容迁移方法
CN100449504C (zh) 一种基于bitmap表的缓存管理方法
CN104461932B (zh) 一种面向大数据应用的目录缓存管理方法
CN103617124B (zh) 一种闪存管理方法和装置
CN111580754B (zh) 一种写友好的闪存固态盘缓存管理方法
CN102999441A (zh) 一种细粒度内存访问的方法
CN112051968B (zh) 基于Kafka的分布式数据流分级缓存自动迁移方法
CN107766355B (zh) 层级数据管理方法、层级数据管理系统及即时通信系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for 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
TR01 Transfer of patent right

Effective date of registration: 20220216

Address after: 550025 Huawei cloud data center, jiaoxinggong Road, Qianzhong Avenue, Gui'an New District, Guiyang City, Guizhou Province

Patentee after: Huawei Cloud Computing Technology Co.,Ltd.

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

Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd.