冷缓存和热缓存概念是什么意思?


10

我读了一篇论文,其中使用了“冷缓存”和“热缓存”这两个术语。冷缓存和热缓存概念是什么意思?我参观了,但是我还需要更多。


1
您认为什么有用?您打算如何使用这些信息?我只问是因为,您知道:google.com/search?
q=wikipedia+cold+cache

我想在论文中使用这个概念,所以我需要有关它们的更多细节。
阿米尔(Amir)

它只是用温度作为隐喻来理解特定缓存的有用性,因为“有用性”存在于连续体中。暖高速缓存的命中率很高,而冷高速缓存充满了您可能不会很快再次请求的数据,因此它们仅占用空间。
Bratchley 2014年

@JoelDavis-如果缓存不需要处理错误,那么上述内容就是正确的,并且唯一需要开发的替换缓存数据的方法就是LFU,但是由于各种原因数据容易出错,因此处理冷缓存比仅替换最少使用的数据要复杂得多。
mikeserv

Answers:


13

好吧,简而言之:热缓存很有用,而冷缓存则没有用。实际上,使用冷缓存可能很危险。

您会看到,缓存的全部目的是使经常访问的数据保持可访问性。例如,DNS缓存将在本地存储您最近请求的名称解析结果,并且当再次请求相同的解析度时,其结果已经可用并立即提供,而无需查询更大的,可能的异地名称数据库。换句话说,你的计算机没有问你的互联网服务提供商的域名服务器的IP地址google.com因为你的电脑已经知道了-你的DNS 缓存温暖的。

但是,如果您从未请求过google的ip,那么它将不在您的缓存中。一冷缓存是不是太陈旧是有用的-因为它包含的数据可能准确的 -或者它完全是空的,并清空的大量冷。

但是通常空比旧要好-尽管当然这高度依赖于要缓存的数据。空很容易处理,因为它只需要填充-这很容易-但旧的缓存需要纠错。这是开发和维护缓存系统的主要后勤问题- 您如何知道缓存的数据是最新的,如果没有,该怎么办?

我不会回答这些问题中的任何一个-它们都依赖于实现,并且无论如何可能都远远超出了我的能力-但应该理解,所有缓存系统都存在一些固有错误风险它与领土。风险可能并不大-通常只是处理时间多了几纳秒的风险。缓存系统将根据缓存设计者已实施的任何故障保险检查请求的数据,如果发现有故障,则例如,缓存系统将查询ISP的DNS以获取Google的IP,一切正常。

缓存回暖,虽然,较少冒险。温暖的高速缓存的好处保持亲爱的数据接近超过风险的的冷缓存的缺点或...也许你不应该缓存。


7
就像著名的名言所说:“计算机科学中存在两个难题:命名事物,缓存无效化和一次性错误。” 知道您的缓存值很旧才是缓存失效的确切含义:)
争吵

关于缓存不准确性的评论,不一定是正确的。如果系统/应用程序具有对数据源的独占访问权,则可以适当地更新或逐出缓存条目。只有在处理并发访问的源(例如DNS,NFS或CIFS)时,才会遇到此问题(即使只有一个具有写访问权限,例如使用DNS)。
Bratchley 2014年

“否则,为什么根本不缓存”缓存其他任何东西的原因相同:防止高延迟。例如,文件系统缓存只是为了使OS不必为了常见的请求而出入磁盘。但是,高速缓存仍处于一致状态,因为对本地文件系统的修改无论如何都必须通过内核。ECC部分并不是真正相关的,因为这种损坏不是由于缓存导致缓存,而是由于硬件错误,无论设计如何,硬件错误都会对所有系统造成相同的影响。
Bratchley 2014年

磁盘是RAM的缓存吗?
Bratchley 2014年

我认为您的关系已经逆转。最近访问的磁盘内容被缓存在RAM中,因此内存是磁盘的缓存(或至少用作缓存系统的一部分)。磁盘访问是一种缓慢的操作,旨在将内容存储在内存中。
Bratchley 2014年

6

通常,冷缓存是尚未填充的缓存(尚未)。因此,如果您的缓存很冷,则必须使用大概较慢的方法来检索信息。通常是在应用程序启动或查询类型发生重大变化后不久的情况。

相反,温暖的缓存中填充了您最近或经常检索到的信息。

关于ext文件系统和目录结构,这里有一些有关缓存通常如何在Linux的虚拟文件系统(VFS)中工作的信息:http : //www.tldp.org/LDP/tlk/fs/filesystem.html


“最近还是经常”?最近,是的。但是经常吗?
Faheem Mitha 2014年


1
@FaheemMitha的确如此-LFU绝对是您在本部门中会遇到的非常常见的缩写。如果可以肯定地确定缓存仅包含最新信息并且已满,则您必须具有其他方法来确定在读取新数据时替换了哪些信息。LFU可能就是您的选择。
mikeserv

@cpugeniusmv感谢您的链接。这可以合理地包含在您的答案中。
Faheem Mitha 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.