CN110413545B - 存储管理方法、电子设备和计算机程序产品 - Google Patents
存储管理方法、电子设备和计算机程序产品 Download PDFInfo
- Publication number
- CN110413545B CN110413545B CN201810399418.2A CN201810399418A CN110413545B CN 110413545 B CN110413545 B CN 110413545B CN 201810399418 A CN201810399418 A CN 201810399418A CN 110413545 B CN110413545 B CN 110413545B
- Authority
- CN
- China
- Prior art keywords
- pages
- cache
- volume
- page
- volumes
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0868—Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/123—Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
- G06F12/0897—Caches characterised by their organisation or structure with two or more cache hierarchy levels
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/22—Employing cache memory using specific memory technology
- G06F2212/222—Non-volatile memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/608—Details relating to cache mapping
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)
Abstract
本公开的实施例提供了用于从缓存中冲刷页面的存储管理方法、电子设备和计算机程序产品。该方法包括获取缓存的最近使用(RU)信息。该缓存包含多个卷,每个卷包括多个页面。RU信息指示多个卷中的至少部分卷,并且至少部分卷中的页面未被访问的时长超过阈值时长。该方法还包括:基于将要冲刷出缓存的页面总数和RU信息,确定要从至少部分卷中冲刷出缓存的页面的数目。该方法还包括基于所确定的数目冲刷至少部分卷中的页面。利用本公开的实施例,能够提高缓存效率并且从而提高磁盘阵列的整体性能。
Description
技术领域
本公开的实施例涉及数据存储领域,并且更具体地,涉及用于从缓存中冲刷页面的存储管理方法、电子设备和计算机程序产品。
背景技术
随着数据存储技术的发展,各种数据存储设备已经能够向用户提供越来越高的数据存储能力,并且数据访问速度也有了很大程度的提高。目前,已经开发出了基于具有不同访问速度的多级存储介质来建立存储***的技术方案。例如,可以将被频繁使用的数据从具有较低访问速度的存储设备加载至具有较高访问速度的缓存设备中,进而由该缓存设备来响应于来自存储***外部的访问请求。此技术方案可以一定程度上提高数据响应效率。
一般而言,一级高速缓存可以是动态随机存取存储器(DRAM)高速缓存;二级高速缓存可以是固态盘(SSD)高速缓存、NVMe高速缓存和NVDIMM高速缓存。当高速缓存中所缓存的页面数目超过一定水平线时,需要从高速缓存中移除一些页面,即,将这些页面冲刷出高速缓存。用于确定哪些页面被冲刷的页面置换算法影响了缓存页面命中率,从而影响了数据响应效率。
发明内容
本公开的实施例提供了一种用于从缓存中冲刷页面的方案。
在本公开的第一方面中,提供了一种存储管理方法。该方法包括获取缓存的最近使用(RU)信息。该缓存包含多个卷,每个卷包括多个页面。RU信息指示多个卷中的至少部分卷,并且至少部分卷中的页面未被访问的时长超过阈值时长。该方法还包括:基于将要冲刷出缓存的页面总数和RU信息,确定要从至少部分卷中冲刷出缓存的页面的数目。该方法还包括基于所确定的数目冲刷至少部分卷中的页面。
在本公开的第二方面中,提供了一种电子设备。该电子设备包括处理器以及与处理器耦合的存储器,存储器具有存储于其中的指令,指令在被处理器执行时使设备执行动作。动作包括获取缓存的最近使用(RU)信息。该缓存包含多个卷,每个卷包括多个页面。RU信息指示多个卷中的至少部分卷,并且至少部分卷中的页面未被访问的时长超过阈值时长。动作还包括:基于将要冲刷出缓存的页面总数和RU信息,确定要从至少部分卷中冲刷出缓存的页面的数目。动作还包括基于所确定的数目冲刷至少部分卷中的页面。
在本公开的第三方面中,提供了一种计算机程序产品,计算机程序产品被有形地存储在计算机可读介质上并且包括机器可执行指令,机器可执行指令在被执行时使机器执行根据第一方面的方法。
提供发明内容部分是为了简化的形式来介绍对概念的选择,它们在下文的具体实施方式中将被进一步描述。发明内容部分无意标识本公开的关键特征或主要特征,也无意限制本公开的范围。
附图说明
通过结合附图对本公开示例性实施例进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施例中,相同的参考标号通常代表相同部件。在附图中:
图1示出了现有技术中页面冲刷实现的简要示意图;
图2示出了现有技术中低频页面将高频页面挤出缓存的一个示例;
图3示出了根据本公开的实施例的用于管理缓存页面的卷结构的示意图;
图4示出了根据本公开的实施例的用于冲刷缓存页面的过程的流程图;
图5是描绘了将与至少部分卷有关的信息添加到最近使用信息和从最近使用信息移除的示意图;
图6示出了根据本发明的一些实施例的具有多个队列的卷结构的示意图;
图7是描绘了将影子页面添加到缓存的示意图;
图8A是描绘了根据本公开的一些实施例的提升来自SAS磁盘的页面的示意图;
图8B是描绘了根据本公开的一些实施例的提升来自NL-SAS磁盘的页面的示意图;
图9示意性地描绘了根据本公开的一些实施例的用于从卷中选择要被冲刷的页面的策略;
图10是描绘了根据本公开的一些实施例的将影子(shadow)页面添加到高优先级队列的示意图;
图11A和图11B分别是示出了缓存页面命中率和提升的页面数目随时间的变化的曲线图;
图12示出了可以用来实施本公开的实施例的示例设备的框图。
具体实施方式
下面将参考附图中示出的若干示例实施例来描述本公开的原理。虽然附图中显示了本公开的优选实施例,但应当理解,描述这些实施例仅是为了使本领域技术人员能够更好地理解进而实现本公开,而并非以任何方式限制本公开的范围。
在本文中使用的术语“包括”及其变形表示开放性包括,即“包括但不限于”。除非特别申明,术语“或”表示“和/或”。术语“基于”表示“至少部分地基于”。术语“一个示例实施例”和“一个实施例”表示“至少一个示例实施例”。术语“另一实施例”表示“至少一个另外的实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
在诸如SSD高速缓存的二级高速缓存中,目前的页面置换策略基于LRU(LeastRecently Used,最近最少使用)算法并且实现按卷的LRU列表。每个卷的缓存页面被链接为LRU列表。使用一个全局影子(shadow)列表(以下也称为历史列表)来管理命中错过的页面。该LRU列表的尾部是最近一次被访问的页面,而头部是最久未被访问的页面。
当高速缓存中所缓存的页面达到高水位标记时,清理线程开始执行空闲冲刷。冲刷过程将对每个卷进行循环,以从其LRU列表的头部选取一个页面并将该页面逐出高速缓存。图1示出了现有技术中页面冲刷实现的简要示意图。在这种实现中,为每个卷保留一定比例的不被冲刷的页面,并将该比例(诸如50%)标记为MIN_PAGES,如图1中的虚线101所示。如果某一卷中所缓存的页面数目低于MIN_PAGES,则在冲刷页面时将不会考虑该卷。这种策略可以保证卷之间的公平性。
然而,发明人已经认识到这种实现中存在若干问题。首先,高频页面可能会被挤出(squeeze out)缓存。LRU算法仅基于页面的相对最近访问时间对页面进行排序,而不收集页面访问频率信息,并且页面的访问频率无法影响其在LRU列表中的位置。因此,这种算法可能会导致临时热页面将高频页面挤出的问题。图2示出了现有技术中低频页面将高频页面挤出缓存的一个示例。在该示例中,LRU列表202中的页面220在1小时内被访问10次,而历史列表201中的页面210在1小时内被访问3次。然而,由于LRU算法的缺陷,页面220将被冲刷出缓存,而页面210将被缓存到缓存中且页面210的信息将被添加到LRU列表202中。
其次,陈旧(stale)页面可能会限制***的可用页面。通常,存储***中的缓存资源是有限的。LRU算法不收集页面访问频率信息,以便防止将占用太多缓存资源的极热卷挤出其他卷的间隔热页面,并且导致对间歇热卷的不公平。为此,为每个卷设置了如前所述的MIN_PAGES。MIN_PAGES保证了公平性,但也给缓存带来了陈旧页面问题。某些卷变热并缓存了一些页面,随后这些卷可能变为完全冷。由于MIN_PAGES的存在,这些卷中的页面将不会被逐出缓存,从而导致高速缓存资源的浪费。
另一问题是整个高速缓存没有全局LRU。缓存页面是按逻辑单元号(LUN)维护的。当冲刷页面时,清理线程将对每个卷的LRU列表进行循环,并将从每个卷中冲刷相同数目的页面。结果,即使缓存页面非常热,但如果其LRU列表很短,它们仍然可能被从缓存中逐出。
此外,影子页面和缓存页面之间没有相关性。在当前的实现中,影子页面和缓存页面被保存在不同的列表中。当高速缓存记录影子页面的访问频率时,高速缓存不关心缓存页面的状态。因此,即使影子页面长时间未被访问,其历史访问频率仍然被认为是有效的,并且可以基于一些陈旧的历史命中来提升(promote)这些页面。这种提升可能从高速缓存中逐出某些热页面,这是不期望的。
另外,如果页面被冲刷,则其历史信息完全丢失。然而,实际上如果该页面的最近访问比历史列表的最近访问新,则该页面的历史记录应当被认为是有用的并且应当被保留在历史列表中。
本公开提供了一种用于从高速缓存中冲刷页面的方案,以至少消除以上缺陷中的一个或多个。该方案在卷之间实现了基于页面访问时间的页面冲刷算法,这可以确保卷之间的公平性并且解决针对冷卷的陈旧页面问题。该方案在卷内的页面之间实现了基于访问时间和访问频率的页面置换算法,并保存所冲刷的页面的访问频率信息。由此,该方案可以确保最热的页面将不会由于输出/输出(I/O)模式的原因而被不那么热的页面挤出缓存。该方案还可以带来以下益处:高频页面可以比低频页面缓存更长时间;增加高速缓存的使用和效率,使得磁盘阵列整体性能得到提高;新缓存的页面将比被冲刷的页面更具价值。另外,该方案可以用于具有上述问题的任何缓存设备,包括但不限于SSD高速缓存、NVMe高速缓存和NVDIMM高速缓存。
在本公开的实施例中,将页面划分影子页面、空闲页面和缓存页面。影子页面没有被保存在缓存中,仅是表示对某一范围的I/O访问的引用。空闲页面是缓存中尚未用于任何用户数据的页面。缓存页面意味着缓存中保存的用户数据。
图3示出了根据本公开的实施例的用于管理缓存页面的卷结构的示意图。如图3所示,每个缓存逻辑单元号(LUN)具有一个卷结构来管理针对该LUN的缓存页面。每个卷具有多个缓存页面。这些缓存页面可以被划分成一个或多个组。在一些实施例中,多个缓存页面可以被组织成一个或多个队列,并且在队列内可以基于最近访问时间对缓存页面进行排序。图3中示出了卷3001、3002和300n。以卷3001为例,缓存页面被组织成三个队列311、321和313。应当注意,虽然图3示出了每个卷具有三个队列,但这仅是示例性的而无意进行任何限制。在一些实施例中,每个卷可以仅具有一个队列,诸如一个LRU列表。在一些实施例中,一些卷可以具有一个队列,而另一些卷可以具有多个队列。
每个卷可以具有诸如未被访问时长的参数。在一些情况下,每个卷可以关联有计时器。与卷相关联的计时器可以每隔一定时间间隔确定卷中的最久未被访问页面和针对该卷的未被访问时长,并记录未被访问时长。最久未被访问页面指示卷的缓存页面中未被访问时长最大的页面。在一些情况下,每个卷可以不具有与之关联的计时器。在这种情况下,针对该卷的未被访问时长可以保持不变。
在一些实施例中,最久未被访问页面和未被访问时长可以基于缓存页面的实际未被访问时长。在一些实施例中,最久未被访问页面和未被访问时长也可以基于实际未被访问时长与缓存页面的访问频率的权重(参见下文关于图9的描述)。
下面结合图4和图5来描述用于从缓存中冲刷缓存页面的过程。图4示出了根据本公开的实施例的用于冲刷缓存页面的过程400的流程图。图5是描绘了将与至少部分卷有关的信息添加到最近使用信息和从最近使用信息移除的示意图。
参考图4。在410,获取缓存的最近使用(RU)信息。缓存可以如图3所指示的那样包含多个卷,并且每个卷包括多个页面。RU信息指示多个卷中的至少部分卷,该至少部分卷中的页面未被访问时长超过阈值时长。RU信息可以包括至少部分卷的未被访问时长和卷中的缓存页面的数目。在一些实施例中,RU信息可以被实现为诸如图5中所示的老化卷列表510。例如,如图5所示,缓存中包括卷3001、3002至300n。老化卷列表510包括与卷3001、3003、3005和3007有关的信息。这意味着这四个卷的未被访问时长(即,这些卷中的缓存页面的最长未被访问时长)超过阈值时长。
阈值时长可以是固定时长,也可以根据缓存中的页面的访问情况确定。例如,在一些实施例中,可以基于式(1)来确定阈值时长:
TL=GT*x (1)
其中TL表示阈值时长,GT表示缓存中的所有缓存页面的最长未被访问时长,x表示控制因子。x的初始值为0.9。
为了便于说明,将RU信息中所涉及的卷中的缓存页面的总数目指示为totalAgedNumer,并且将缓存中的所有缓存页面的总数目指示为totalNumber。例如,在图5所示的示例中,卷3001、3003、3005和3007中的缓存页面的总数目被指示为totalAgedNumer,并且卷3001至300n中的所有缓存页面的总数目被指示为totalNumber。如果totalAgedNumer>totalNumber*0.7,则重新确定的x的值等于当前的x的值乘以1.05。如果totalAgedNumer<totalNumber*0.3,则重新确定的x的值等于当前的x的值乘以0.95。x的值限制在[0.5,0.99]的范围内。
应当注意,上述确定阈值时长的方式仅仅是示例性的,还可以以其他方式来确定阈值时长。本公开的范围在此方面不受限制。
参考回到图4。在420,基于将要冲刷出缓存的页面总数和RU信息,确定要从至少部分卷中冲刷出缓存的页面的数目。如图5所示,可以设置清理线程。在清理线程唤醒之后,其将对卷3001、3003、3005和3007循环,以检查老化卷列表510中涉及的所有卷。例如,如果清理线程检查并确定卷3001的未被访问时长(即,卷3001中的缓存页面的最长未被访问时长)大于当前的阈值时长,则需要进一步确定要从卷3001中冲刷出缓存的页面的数目。
在一些实施例中,可以基于老化卷列表中的某一卷中所缓存的页面的数目与老化卷列表中所缓存的页面的总数目的比例,确定要从该卷中冲刷出缓存的页面的数目。为了便于说明,将图5的卷3001中的缓存页面的总数目指示为P(thisVol),将老化卷列表510中所涉及的所有卷(即,卷3001、3003、3005和3007)中的缓存页面的总数目指示为P(AgedVols)。将要冲刷出缓存的页面总数被指示为N。当P(thisVol)大于P(AgedVols)/4时,可以确定要从卷3001中冲刷数目为N/2的页面;当P(thisVol)大于P(AgedVols)/8时,可以确定要从卷3001中冲刷数目为N/4的页面;对于其他情况,可以确定要从卷3001中冲刷数目为N/8的页面。对于老化卷列表510中的其他卷,适用相同的规则。以这种方式,旨在力求一次性从卷中冲刷出未被访问时长过长的页面(即,老化的页面),这有助于进一步提高缓存效率。应当注意,上述用于确定冲刷页面数目的方式仅仅是示例性的。
参考回到图4。在430,基于所确定的数目冲刷至少部分卷中的页面。例如,在420处确定要从卷3001中冲刷N/4个页面,那么在430,清理线程从卷3001中选择N/4个页面并将其从缓存中移除。这一冲刷步骤,可以如当前实现那样从LRU列表的头部顺序冲刷相应数目的页面,也可以基于页面的最近访问时间和访问频率来冲刷相应数目的页面(进一步参见下文关于图9的描述)。
在一些实施例中,过程400还可以包括步骤440和450。例如,在430处冲刷卷3001中的页面之后,过程进行到440。在440,确定经冲刷的卷3001中页面的未被访问时长是否下降到阈值时长以下。如果卷3001中页面的未被访问时长是否下降到阈值时长以下,则过程进行到450。在450,将与卷3001有关的信息从老化卷列表510中移除,如图5中的箭头520所指示。在这样的实施例中,及时更新RU信息使得RU信息能够准确反应缓存的当前状态,从而更准确地冲刷页面。
在一些实施例中,还可以周期性地检查卷中的缓存页面的未被访问时长。在具有与卷相关联的计时器的实施例中,这一动作可以由计时器周期性地发起。如果确定卷中存在未被访问时长大于阈值时长的页面,则可以将与该卷有关的信息添加到RU信息中。例如,在图5所示的示例中,在确定卷3002的未被访问时长大于阈值时长后,与卷3002有关的信息可以被添加到老化卷列表510中,如图5中的箭头530所指示。在添加之后,可以更新totalAgedNumer和阈值时长TL。在这样的实施例中,及时更新RU信息以使得RU信息能够准确反应缓存的当前状态,从而更准确地冲刷页面。
在本公开所提出的方案中,不再有MIN_PAGE,这意味着陈旧页面也可以被冲刷出缓存,从而增加了可用的缓存资源。同时,通过控制每个循环冲刷的页面的数目来保持卷之间的公平性。如果两个卷均是要冲刷的候选对象,则具有更多缓存页面的卷将被冲刷更多的页面。
在一些实施例中,还可以将缓存中的至少部分卷中的多个页面组织为多个组,每个组具有相应的权重,权重与相应组中的页面被访问的次数相关联。然后,基于多个页面的最近访问时间以及多个组的权重,从多个页面中选择要被冲刷的页面。以下将结合图6、图7、图8A和图8B来示例性地描述如何将多个缓存页面组织成多个组。
在一些实施例中,可以将卷中的多个页面组织成多个队列。图6示出了根据本发明的一些实施例的具有多个队列的卷结构的示意图。在图6中示出了卷6001、6002至600n。以卷6001为例,可以基于缓存页面的访问频率,将卷6001中的缓存页面组织成三个队列,即,队列611、612和613。例如,卷6001中的缓存页面601、602和603分别被放置在队列611、612和613中。在一些实施例中,每个队列可以被链接为双向链表。全局历史列表620用于保存与命中错过和被冲刷出缓存的页面两者有关的信息。
每个队列被分配有队列权重。例如,对应于队列611、612和613的队列权重可以分别是1、2和4。注意,1、2和4仅仅是示例性的,队列权重不限于这些值。在一些实施例中,可以不同的卷具有不同数值组合的队列权重。在某些实施例中,队列的长度可以不是固定的。例如,队列的长度可以取决于卷的I/O模式。如果卷6001足够热并且缓存命中率足够高,那么其大部分的缓存页面可能存在于613中。如果卷6001较热但缓存命中率较低,那么其大部分的缓存页面可以存在于601中。
缓存页面可以具有以下参数中的一个或多个:最近访问时间(也可以被称为上次访问时间)、队列号和访问次数。最近访问时间指示自***启动以来该页面最近一次被访问的时间。队列号可以指示该页面属于多个队列中的哪个队列。访问次数是用于记录缓存页面的引用信息的参数。该参数将被存储在缓存页面元数据结构中。当缓存页面被访问时,这个访问次数将递增。当缓存页面被冲刷时,与被冲刷的页面有关的信息将首先被移动到全局历史列表中,同时将其访问次数保留在全局历史列表中。与被冲刷的页面有关的信息也可以被称为影子元素,诸如图6中的621。当全局历史列表620中的影子页面被再次访问时,所记录的先前的访问次数将生效,并且可以取决于其访问频率而将该影子页面置于例如队列611、612和613中。当某一影子页面由于其他新的影子页面而从全局历史列表中被移除时,此页面的影子元素将从全局历史列表中移除,并且访问次数将变得无用而不会存储在任何地方。
图7是描绘将全局历史列表620中的影子页面添加到缓存(即提升影子页面)的示意图。当发生提升时,候选的页面从全局历史列表620中被选择并被删除。空闲页面将被分配,并且与该影子页面相对应的用户数据将被加载到该空闲页面。在加载数据之后,该空闲页面将被添加到队列中,并且变为缓存页面。假设影子页面的访问次数达到3时可以被提升为缓存页面。在图7所示的示例中,响应于影子页面622的访问次数达到3,将该页面置入缓存中。例如,可以将该页面缓存在卷6001中,并且将与该页面有关的信息添加到诸如队列611中。
在一些实施例中,可以基于访问频率和卷类型来确定和调整缓存页面所属于的组,诸如,被放置在多个队列中的哪个队列中。例如,可以基于访问次数和卷类型权重来确定和调整缓存页面位于哪个队列中。每当缓存页面被命中时,递增其访问次数。卷类型权重指示不同类型的页面应当具有不同的提升权重。举例而言,对于创建在SAS磁盘RAID(独立冗余磁盘阵列)组上的卷,页面的卷类型权重可以是1;对于创建在NL-SAS磁盘RAID组上的卷,页面的卷类型权重可以是2。引入卷类型权重的目的是力求使来自较慢的磁盘的页面被缓存更长时间。
对缓存页面而言,当式(2)的值达到相应阈值时,该缓存页面可以从诸如611的低优先级队列被提升到诸如612的相对高优先级队列:
log2((r-3)*vt) (2)
其中r表示页面的访问次数,vt表示卷类型权重,数字3指示从全局历史列表中提升页面的阈值访问次数为3。
图8A是描绘了根据本公开的一些实施例的提升来自SAS磁盘的页面的示意图。图8B是描绘了根据本公开的一些实施例的提升来自NL-SAS磁盘的页面的示意图。图8A中所示的卷6001创建在SAS磁盘上,并且因此vt=1。对于图8A中的缓存页面,当log2(r-3)达到第一阈值1时,缓存页面可以被移动到队列612;当达到第二阈值2时,缓存页面可以被移动到队列613。例如,页面811的访问次数达到5并且式(2)的值为1,因此页面811可以被提升到队列612。页面812的访问次数达到7并且式(2)的值为2,因此页面812可以被提升到队列613。
图8B中所示的卷6005创建在访问速度比SAS磁盘慢的NL-SAS磁盘上,并且因此vt=2。对于图8B中的缓存页面,当log2((r-3)*2)达到第一阈值1时,缓存页面可以被移动到队列652;当达到第二阈值2时,缓存页面可以被移动到653。例如,页面821的访问次数达到4并且式(2)的值为1,因此页面821可以被提升到队列652。页面822的访问次数达到5并且式(2)的值为2,因此页面822可以被提升到队列653。应当注意,以上参考图8A和图8B而描绘的针对队列的阈值仅仅是示例性的,而无意进行任何限制。
从图8A和图8B的示例中可以看出,与来自较快磁盘的缓存页面相比,来自较慢磁盘的缓存页面可以更快地被提升到高优先级队列中,因此可以被缓存更长的时间。以这种方式,可以进一步提高缓存访问效率。
在一些实施例中,可以基于多个页面的最近访问时间以及多个组的权重,从多个页面中选择要被冲刷的页面。例如,可以利用当前时间和最近访问时间,确定卷中的每个缓存页面的实际未被访问时长。然后可以利用实际未被访问时间和组的权重来确定每个缓存页面的加权未被访问时长。将加权未被访问时长最大的缓存页面作为最久未被访问页面,并将该页面冲刷出缓存。如果仍需要从该卷中冲刷页面,则可以重复上述过程。
图9示意性地描绘了根据本公开的一些实施例的用于从卷中选择要被冲刷的页面的策略。在图9所示的示例中,在每个队列中,卷6001中的缓存页面按照其最近访问时间排序,并且队列头部的元素指示该队列中最近访问时间距离当前时间最久的页面。通过式(3)来确定最久未被访问页面:
其中QNT表示加权未被访问时长,CT表示当前时间,LAT表示缓存页面的最近访问时间,QW表示缓存页面的队列权重,CT-LAT表示实际未被访问时长。
对于分别处于队列611、612和613的头部的缓存页面901、902和903,它们的实际未被访问时长分别是10、32和60(单位:例如分钟)。基于式(3),所得到的加权未被访问时长QNT分别为10、16和15。因此,缓存页面902将被认为是最久未被访问页面,并且将被冲刷出缓存。在将页面902冲刷出缓存之后,如果还存在要冲刷的页面,则可以重复上述确定最久未被访问页面的过程,并将重新确定的最久未被访问页面冲刷出缓存。在这样的实施例中,可以使得具有较高访问频率的页面能够在缓存中驻留更长的时间,进而可以有利于提高缓存页面命中率。
在一些实施例中,被冲刷的页面在被冲刷之前的访问次数将被保存,例如被保存在全局历史列表中。例如,页面902在被冲刷之前的访问次数6将被保存在全局历史列表620中,如图9中的虚线箭头930所指示的。然而,如果被冲刷的页面的最近访问时间早于全局历史列表中最旧页面的最近访问时间,则该页面的信息将不会被保存在全局历史列表中。
在一些实施例中,相关信息被保存在全局历史列表中的被冲刷的页面如果再次被访问,则可以递增其访问次数。如果其访问次数超过阈值数目,则可以将该页面重新置入缓存中。在一些情况下,可以基于其访问次数,将该页面的相关信息置于相应队列中。
图10是描绘了根据本公开的一些实施例的将影子页面添加到高优先级队列的示意图。在图10中,全局历史列表620中的页面1001可以对应于图9中冲刷出缓存的页面902。响应于页面1001被访问,其访问次数递增并且增加至7。如上文所指示的,卷6001创建在SAS磁盘上。因此,对于页面1001而言,式(3)的值等于2。因此,页面1001可以被重新置入缓存中,并且与页面1001相关的信息将被直接放置在队列613中。
在如上文所描述的其中多个页面被组织成多个组的实施例中,高频页面可以比低频页面缓存更长的时间。在这样的实施例中,高频页面可以被移动到高优先级组中,而高优先级组中的页面可以比低优先级组中的页面驻留在缓存中更长的时间。高频页面仅在长时间变冷后才被冲刷出缓存。举例而言,对于队列613(权重为4)中的高频页面,与当前实现相比,其将在缓存中驻留4倍长的时间。因此,根据本公开的实施例能够提高页面命中率并且从而提高数据响应效率。
应当注意,虽然上文相对于具有三个队列的示例来描述根据本公开的冲刷页面的方法,但是在根据本公开的实施例中可以存在任意数目的队列,并且队列的权重也不限于本文中所指示的1、2和4。此外,本领域技术人员应当理解,用于管理多个页面的配置也不限于队列,而是旨在包括能够将多个页面分组的任何配置。
图11A和图11B分别是示出了缓存页面命中率和提升的页面数目随时间的变化的曲线图。在图11A和图11B中,曲线1101和1111对应于本公开所提出的用于冲刷页面的方法,其中每个卷中的多个页面被组织成如图9所示的三个队列。曲线1102和1112对应于常规的多队列(multiple queue)方法,其中被冲刷的页面的信息不被保存在全局历史列表中并且也没有根据本公开的实施例的RU信息(诸如,图5中的老化卷列表)。曲线1103和1113对应于LRU算法。从图11A和图11B中可以看出,利用本公开提出的方法,缓存页面命中率得到极大地提高,并且提升的页面的数目得以降低。因此,本公开提出的方法能够提高缓存效率并且从而提高磁盘阵列的整体性能。
图12示出了可以用来实现本公开的实施例的示例设备1200的示意性框图。如图所示,设备1200包括中央处理单元(CPU)1201,其可以根据存储在只读存储器(ROM)1202中的计算机程序指令或者从存储单元1208加载到随机访问存储器(RAM)1203中的计算机程序指令,来执行各种适当的动作和处理。在RAM 1203中,还可存储设备1200操作所需的各种程序和数据。CPU 1201、ROM 1202以及RAM 1203通过总线1204彼此相连。输入/输出(I/O)接口1205也连接至总线1204。
设备1200中的多个部件连接至I/O接口1205,包括:输入单元1206,例如键盘、鼠标等;输出单元1207,例如各种类型的显示器、扬声器等;存储单元1208,例如磁盘、光盘等;以及通信单元1209,例如网卡、调制解调器、无线通信收发机等。通信单元1209允许设备1200通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
处理单元1201执行上文所描述的各个方法和处理,例如过程400。例如,在一些实施例中,过程400可以被实现为计算机软件程序或计算机程序产品,其被有形地包含于机器可读介质,例如存储单元1208。在一些实施例中,计算机程序的部分或者全部可以经由ROM1202和/或通信单元1209而被载入和/或安装到设备1200上。当计算机程序加载到RAM1203并由CPU 1201执行时,可以执行上文描述的过程400的一个或多个步骤。备选地,在其他实施例中,CPU 1201可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行过程400。
根据本公开的一些实施例,提供了一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现根据本公开的方法。
本领域的技术人员应当理解,上述本公开的方法的各个步骤可以通过通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本公开不限制于任何特定的硬件和软件结合。
应当理解,尽管在上文的详细描述中提及了设备的若干装置或子装置,但是这种划分仅仅是示例性而非强制性的。实际上,根据本公开的实施例,上文描述的两个或更多装置的特征和功能可以在一个装置中具体化。反之,上文描述的一个装置的特征和功能可以进一步划分为由多个装置来具体化。
以上所述仅为本公开的可选实施例,并不用于限制本公开,对于本领域的技术人员来说,本公开可以有各种更改和变化。凡在本公开的精神和原则之内,所作的任何修改、等效替换、改进等,均应包含在本公开的保护范围之内。
Claims (20)
1.一种存储管理方法,包括:
获取缓存的最近使用RU信息,所述缓存包含多个卷,每个卷包括多个页面,所述RU信息指示所述多个卷中的至少部分卷,所述至少部分卷中的页面未被访问的时长超过阈值时长;
基于将要冲刷出所述缓存的页面总数和所述RU信息,确定要从所述至少部分卷中冲刷出所述缓存的页面的数目;
基于所确定的数目冲刷所述至少部分卷中的页面;
确定所述缓存中的第二卷中页面的未被访问的时长;
响应于所确定的未被访问的时长超过所述阈值时长,
将与所述第二卷有关的信息添加到所述RU信息中,以及
更新所述阈值时长。
2.根据权利要求1所述的方法,还包括:
在所述冲刷之后,响应于所述至少部分卷中的第一卷中页面的未被访问的时长下降到所述阈值时长以下,将与所述第一卷有关的信息从所述RU信息中移除。
3.根据权利要求1所述的方法,其中确定要从所述至少部分卷中冲刷出所述缓存的页面的数目包括:
确定所述至少部分卷中的第三卷中所缓存的页面的数目与所述至少部分卷中所缓存的页面的总数目的比例,以及
基于所述比例和将要冲刷出所述缓存的页面总数,确定要从所述第三卷中冲刷出所述缓存的页面的数目。
4.根据权利要求1所述的方法,其中所述至少部分卷还包括第四卷,并且其中冲刷所述第四卷包括:
将所述第四卷的所述多个页面组织为多个组,每组具有相应的权重,所述权重与相应队列中的页面被访问的次数相关联;以及
基于所述多个页面的最近访问时间以及所述多个组的所述权重,从所述多个页面中选择要被冲刷的页面。
5.根据权利要求1所述的方法,其中所述缓存中的第一页面被冲刷出所述缓存,所述方法还包括:
保存所述第一页面在所述冲刷之前的访问次数。
6.根据权利要求5所述的方法,还包括:
响应于所述第一页面被访问,递增所述访问次数;以及
响应于所述第一页面的所述访问次数超过阈值数目,将所述第一页面重新置入所述缓存中。
7.根据权利要求1所述的方法,其中存储***电路响应于由外部设备集合提供的访问请求将数据缓存在所述缓存;并且
其中冲刷所述至少部分卷中的所述页面包括:
从所述缓存移除页面的第一集合并且在所述缓存中留下页面的第二集合,所述存储***电路提供比针对页面的所述第一集合的访问频率更高的针对页面的所述第二集合的访问频率。
8.一种电子设备,包括:
处理器;以及
与所述处理器耦合的存储器,所述存储器具有存储于其中的指令,所述指令在被处理器执行时使所述设备执行动作,所述动作包括:
获取缓存的最近使用RU信息,所述缓存包含多个卷,每个卷包括多个页面,所述RU信息指示所述多个卷中的至少部分卷,所述至少部分卷中的页面未被访问的时长超过阈值时长;
基于将要冲刷出所述缓存的页面总数和所述RU信息,确定要从所述至少部分卷中冲刷出所述缓存的页面的数目;
基于所确定的数目冲刷所述至少部分卷中的页面;
确定所述缓存中的第二卷中页面的未被访问的时长;
响应于所确定的未被访问的时长超过所述阈值时长,
将与所述第二卷有关的信息添加到所述RU信息中,以及
更新所述阈值时长。
9.根据权利要求8所述的设备,其中所述动作还包括:
在所述冲刷之后,响应于所述至少部分卷中的第一卷中页面的未被访问的时长下降到所述阈值时长以下,将与所述第一卷有关的信息从所述RU信息中移除。
10.根据权利要求8所述的设备,其中确定要从所述至少部分卷中冲刷出所述缓存的页面的数目包括:
确定所述至少部分卷中的第三卷中所缓存的页面的数目与所述至少部分卷中所缓存的页面的总数目的比例,以及
基于所述比例和将要冲刷出所述缓存的页面总数,确定要从所述第三卷中冲刷出所述缓存的页面的数目。
11.根据权利要求8所述的设备,其中所述至少部分卷还包括第四卷,并且其中冲刷所述第四卷包括:
将所述第四卷的所述多个页面组织为多个组,每组具有相应的权重,所述权重与相应队列中的页面被访问的次数相关联;以及
基于所述多个页面的最近访问时间以及所述多个组的所述权重,从所述多个页面中选择要被冲刷的页面。
12.根据权利要求8所述的设备,其中所述缓存中的第一页面被冲刷出所述缓存,所述动作还包括:
保存所述第一页面在所述冲刷之前的访问次数。
13.根据权利要求12所述的设备,其中所述动作还包括:
响应于所述第一页面被访问,递增所述访问次数;以及
响应于所述第一页面的所述访问次数超过阈值数目,将所述第一页面重新置入所述缓存中。
14.根据权利要求8所述的设备,其中所述处理器响应于由外部设备集合提供的访问请求将数据缓存在所述缓存;并且
其中冲刷所述至少部分卷中的所述页面包括:
从所述缓存移除页面的第一集合并且在所述缓存中留下页面的第二集合,所述处理器提供比针对页面的所述第一集合的访问频率更高的针对页面的所述第二集合的访问频率。
15.一种计算机可读介质,存储指令集合,所述指令集合在被执行时使机器执行根据权利要求1至7中任一项所述的方法。
16.一种存储管理方法,包括:
获取缓存的最近使用RU信息,所述缓存包含多个卷,每个卷包括多个页面,所述RU信息指示所述多个卷中的至少部分卷,所述至少部分卷中的页面未被访问的时长超过阈值时长;
基于将要冲刷出所述缓存的页面总数和所述RU信息,确定要从所述至少部分卷中冲刷出所述缓存的页面的数目;
基于所确定的数目冲刷所述至少部分卷中的页面;
其中确定要从所述至少部分卷中冲刷出所述缓存的页面的数目包括:
确定所述至少部分卷中的第三卷中所缓存的页面的数目与所述至少部分卷中所缓存的页面的总数目的比例,以及
基于所述比例和将要冲刷出所述缓存的页面总数,确定要从所述第三卷中冲刷出所述缓存的页面的数目。
17.根据权利要求16所述的方法,其中存储***电路响应于由外部设备集合提供的访问请求将数据缓存在所述缓存;并且
其中冲刷所述至少部分卷中的所述页面包括:
从所述缓存移除页面的第一集合并且在所述缓存中留下页面的第二集合,所述存储***电路提供比针对页面的所述第一集合的访问频率更高的针对页面的所述第二集合的访问频率。
18.一种电子设备,包括:
处理器;以及
与所述处理器耦合的存储器,所述存储器具有存储于其中的指令,所述指令在被处理器执行时使所述设备执行动作,所述动作包括:
获取缓存的最近使用RU信息,所述缓存包含多个卷,每个卷包括多个页面,所述RU信息指示所述多个卷中的至少部分卷,所述至少部分卷中的页面未被访问的时长超过阈值时长;
基于将要冲刷出所述缓存的页面总数和所述RU信息,确定要从所述至少部分卷中冲刷出所述缓存的页面的数目;
基于所确定的数目冲刷所述至少部分卷中的页面;
其中确定要从所述至少部分卷中冲刷出所述缓存的页面的数目包括:
确定所述至少部分卷中的第三卷中所缓存的页面的数目与所述至少部分卷中所缓存的页面的总数目的比例,以及
基于所述比例和将要冲刷出所述缓存的页面总数,确定要从所述第三卷中冲刷出所述缓存的页面的数目。
19.根据权利要求18所述的设备,其中所述处理器响应于由外部设备集合提供的访问请求将数据缓存在所述缓存;并且
其中冲刷所述至少部分卷中的所述页面包括:
从所述缓存移除页面的第一集合并且在所述缓存中留下页面的第二集合,所述处理器提供比针对页面的所述第一集合的访问频率更高的针对页面的所述第二集合的访问频率。
20.一种计算机可读介质,存储指令集合,所述指令集合在被执行时使机器执行根据权利要求16至17中任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810399418.2A CN110413545B (zh) | 2018-04-28 | 2018-04-28 | 存储管理方法、电子设备和计算机程序产品 |
US16/294,330 US10853250B2 (en) | 2018-04-28 | 2019-03-06 | Storage management method, electronic device and computer program product |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810399418.2A CN110413545B (zh) | 2018-04-28 | 2018-04-28 | 存储管理方法、电子设备和计算机程序产品 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110413545A CN110413545A (zh) | 2019-11-05 |
CN110413545B true CN110413545B (zh) | 2023-06-20 |
Family
ID=68291066
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810399418.2A Active CN110413545B (zh) | 2018-04-28 | 2018-04-28 | 存储管理方法、电子设备和计算机程序产品 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10853250B2 (zh) |
CN (1) | CN110413545B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11099768B2 (en) | 2020-01-21 | 2021-08-24 | EMC IP Holding Company LLC | Transitioning from an original device to a new device within a data storage array |
US11620226B2 (en) * | 2020-02-09 | 2023-04-04 | International Business Machines Corporation | Non-favored volume cache starvation prevention |
CN113377277A (zh) | 2020-03-09 | 2021-09-10 | 伊姆西Ip控股有限责任公司 | 管理存储器的方法、设备和计算机程序产品 |
US11513952B2 (en) * | 2020-07-01 | 2022-11-29 | Micron Technology, Inc. | Data separation for garbage collection |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101965559A (zh) * | 2007-12-27 | 2011-02-02 | 普莱恩特技术股份有限公司 | 包括将处理器与内部存储器连接的交叉切换器的用于闪存的存储控制器 |
CN107870732A (zh) * | 2016-09-23 | 2018-04-03 | 伊姆西Ip控股有限责任公司 | 从固态存储设备冲刷页面的方法和设备 |
Family Cites Families (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6895466B2 (en) * | 2002-08-29 | 2005-05-17 | International Business Machines Corporation | Apparatus and method to assign pseudotime attributes to one or more logical volumes |
US7380059B2 (en) * | 2003-05-16 | 2008-05-27 | Pillar Data Systems, Inc. | Methods and systems of cache memory management and snapshot operations |
US7085895B2 (en) * | 2003-09-05 | 2006-08-01 | International Business Machines Corporation | Apparatus, system, and method flushing data from a cache to secondary storage |
US7971001B2 (en) * | 2004-12-28 | 2011-06-28 | Sap Ag | Least recently used eviction implementation |
WO2007074408A2 (en) | 2005-07-14 | 2007-07-05 | Yotta Yotta, Inc. | Maintaining write order fidelity on a multi-writer system |
US8762642B2 (en) * | 2009-01-30 | 2014-06-24 | Twinstrata Inc | System and method for secure and reliable multi-cloud data replication |
US20110191522A1 (en) * | 2010-02-02 | 2011-08-04 | Condict Michael N | Managing Metadata and Page Replacement in a Persistent Cache in Flash Memory |
US8793467B2 (en) * | 2011-09-30 | 2014-07-29 | Pure Storage, Inc. | Variable length encoding in a storage system |
US8661068B1 (en) | 2011-09-29 | 2014-02-25 | Emc Corporation | Managing global metadata caches in data storage systems |
CA2761553C (en) * | 2011-12-09 | 2019-03-05 | Ibm Canada Limited - Ibm Canada Limitee | Logical buffer pool extension |
US9135123B1 (en) | 2011-12-28 | 2015-09-15 | Emc Corporation | Managing global data caches for file system |
US8812454B2 (en) * | 2012-01-12 | 2014-08-19 | Alcatel Lucent | Apparatus and method for managing storage of data blocks |
US8930624B2 (en) * | 2012-03-05 | 2015-01-06 | International Business Machines Corporation | Adaptive cache promotions in a two level caching system |
US9092141B2 (en) * | 2012-04-18 | 2015-07-28 | Hitachi, Ltd. | Method and apparatus to manage data location |
US9164904B2 (en) * | 2012-08-28 | 2015-10-20 | Hewlett-Packard Development Company, L.P. | Accessing remote memory on a memory blade |
WO2014057521A1 (en) * | 2012-10-12 | 2014-04-17 | Hitachi, Ltd. | Storage apparatus and data management method |
EP2927779B1 (en) * | 2012-12-26 | 2018-06-13 | Huawei Technologies Co., Ltd. | Disk writing method for disk arrays and disk writing device for disk arrays |
US9817766B1 (en) | 2012-12-28 | 2017-11-14 | EMC IP Holding Company LLC | Managing relocation of slices in storage systems |
CN103488578B (zh) * | 2012-12-28 | 2016-05-25 | 晶天电子(深圳)有限公司 | 虚拟存储设备(vmd)应用/驱动器 |
JP2014219750A (ja) * | 2013-05-02 | 2014-11-20 | 富士通株式会社 | 仮想ライブラリコントローラ及び制御方法 |
US9229870B1 (en) * | 2013-06-27 | 2016-01-05 | Emc Corporation | Managing cache systems of storage systems |
CN104951245B (zh) * | 2014-03-31 | 2019-05-31 | 伊姆西公司 | 用于动态存储分层的方法和装置 |
US9767021B1 (en) * | 2014-09-19 | 2017-09-19 | EMC IP Holding Company LLC | Optimizing destaging of data to physical storage devices |
US9645932B1 (en) | 2014-12-19 | 2017-05-09 | EMC IP Holding Company LLC | Persistent metadata cache |
EP3126987A4 (en) * | 2015-02-26 | 2017-11-22 | Strato Scale Ltd. | Using access-frequency hierarchy for selection of eviction destination |
CN106547477B (zh) * | 2015-09-22 | 2019-07-19 | 伊姆西公司 | 用于在线地减少缓存设备的方法和装置 |
US9710383B1 (en) * | 2015-09-29 | 2017-07-18 | EMC IP Holding Company LLC | Caching techniques |
CN106649313B (zh) * | 2015-10-29 | 2020-11-27 | 阿里巴巴集团控股有限公司 | 用于处理缓存数据的方法和设备 |
US9880764B1 (en) * | 2016-03-30 | 2018-01-30 | EMC IP Holding Company LLC | Flash disk cache management for increased virtual LUN availability |
US10620850B1 (en) | 2016-03-31 | 2020-04-14 | EMC IP Holding Company LLC | Caching techniques duplicating dirty data in secondary cache |
US10127156B1 (en) * | 2016-09-29 | 2018-11-13 | EMC IP Holding Company LLC | Caching techniques |
US10539996B2 (en) * | 2016-11-28 | 2020-01-21 | Qualcomm Incorporated | WiFi memory power minimization |
US10402096B2 (en) | 2018-01-31 | 2019-09-03 | EMC IP Holding Company LLC | Unaligned IO cache for inline compression optimization |
-
2018
- 2018-04-28 CN CN201810399418.2A patent/CN110413545B/zh active Active
-
2019
- 2019-03-06 US US16/294,330 patent/US10853250B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101965559A (zh) * | 2007-12-27 | 2011-02-02 | 普莱恩特技术股份有限公司 | 包括将处理器与内部存储器连接的交叉切换器的用于闪存的存储控制器 |
CN107870732A (zh) * | 2016-09-23 | 2018-04-03 | 伊姆西Ip控股有限责任公司 | 从固态存储设备冲刷页面的方法和设备 |
Also Published As
Publication number | Publication date |
---|---|
US10853250B2 (en) | 2020-12-01 |
CN110413545A (zh) | 2019-11-05 |
US20190332531A1 (en) | 2019-10-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110413545B (zh) | 存储管理方法、电子设备和计算机程序产品 | |
KR102043886B1 (ko) | 프로파일링 캐시 대체 | |
US9235508B2 (en) | Buffer management strategies for flash-based storage systems | |
EP3229142B1 (en) | Read cache management method and device based on solid state drive | |
US11086792B2 (en) | Cache replacing method and apparatus, heterogeneous multi-core system and cache managing method | |
CN108763110B (zh) | 一种数据缓存方法及装置 | |
CN103440207B (zh) | 缓存方法及装置 | |
US9342458B2 (en) | Cache allocation in a computerized system | |
EP3089039B1 (en) | Cache management method and device | |
CN107810491B (zh) | 用于管理并控制存储器高速缓存的方法和*** | |
US6810465B2 (en) | Limiting the number of dirty entries in a computer cache | |
US11809330B2 (en) | Information processing apparatus and method | |
EP2541423B1 (en) | Replacement policy for resource container | |
TW201432451A (zh) | 用於改善輸入輸出效能之調節資料快取速率之方法 | |
WO2017117734A1 (zh) | 一种缓存管理方法、缓存控制器以及计算机*** | |
EP4020153A1 (en) | Cache space management method and device | |
JP2014164769A (ja) | ホストのサービス品質インジケータに重みを割り当てるための装置および方法ならびに記憶媒体 | |
KR102220468B1 (ko) | 트랜잭션 지원을 가진 선점형 캐시 후기록 | |
CN113392042A (zh) | 用于管理缓存的方法、电子设备和计算机程序产品 | |
CN115563029A (zh) | 一种基于两层缓存结构的缓存方法及装置 | |
CN113093994A (zh) | 一种数据处理方法及装置 | |
US9767043B2 (en) | Enhancing lifetime of non-volatile cache by reducing intra-block write variation | |
CN116467353B (zh) | 一种基于lru差异化的自适应调节的缓存方法及*** | |
JP2004355365A (ja) | キャッシュ管理装置およびキャッシュメモリ管理方法 | |
EP4261712A1 (en) | Data elimination method and apparatus, cache node, and cache system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |