CN102411541A - 使用分开的读和写高速缓存的动态高速缓存配置 - Google Patents

使用分开的读和写高速缓存的动态高速缓存配置 Download PDF

Info

Publication number
CN102411541A
CN102411541A CN201110321215XA CN201110321215A CN102411541A CN 102411541 A CN102411541 A CN 102411541A CN 201110321215X A CN201110321215X A CN 201110321215XA CN 201110321215 A CN201110321215 A CN 201110321215A CN 102411541 A CN102411541 A CN 102411541A
Authority
CN
China
Prior art keywords
cache
write
read
computing equipment
block size
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
CN201110321215XA
Other languages
English (en)
Other versions
CN102411541B (zh
Inventor
C·卡旺德
S·A·富达利
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of CN102411541A publication Critical patent/CN102411541A/zh
Application granted granted Critical
Publication of CN102411541B publication Critical patent/CN102411541B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing 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/0871Allocation or management of cache space
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0846Cache with multiple tag or data arrays being simultaneously accessible
    • G06F12/0848Partitioned cache, e.g. separate instruction and operand caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/50Control mechanisms for virtual memory, cache or TLB
    • G06F2212/502Control mechanisms for virtual memory, cache or TLB using adaptive policy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/601Reconfiguration of cache memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0038System on Chip

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

本发明涉及使用分开的读和写高速缓存的动态高速缓存配置。将来自存储设备的数据存储在具有读高速缓存大小的读高速缓存中以及具有写高速缓存大小的写高速缓存中。读高速缓存和写高速缓存是分开的高速缓存。至少部分地基于高速缓存性能参数来自动地和动态地调整读高速缓存和写高速缓存的高速缓存配置。高速缓存性能参数包括如下各项中的一个或多个:偏好得分、读和写操作的频率、存储设备的读和写性能、定位信息、以及连续读和写性能。动态高速缓存配置包括以下各项中的一个或多个:调整读高速缓存大小和/或写高速缓存大小、以及调整读高速缓存块大小和/或写高速缓存块大小。

Description

使用分开的读和写高速缓存的动态高速缓存配置
技术领域
本发明涉及用于进行动态高速缓存配置的方法和系统。
背景技术
诸如移动设备等设备可能受到低效的文件系统吞吐量的影响。这种低效的文件系统吞吐量可由较小的磁盘高速缓存以及读和写活动所在的高速缓存来引起。在使用单个高速缓存来存储来自读和写操作两者的数据的系统中,这种低效会被放大。例如,使用单个高速缓存并不提供为读和写操作两者独立地配置单个高速缓存的能力,该读和写操作通常具有不同的性能要求。
因此,存在足够机会来改进涉及高速缓存配置的技术。
发明内容
应用了涉及使用分开的读和写高速缓存的动态高速缓存配置的各种技术。例如,计算设备包括具有读高速缓存大小的读高速缓存以及具有写高速缓存大小的分开的写高速缓存。读高速缓存存储来自计算设备的存储设备的读请求的数据,且写高速缓存存储对计算设备的存储设备的写请求的数据。读高速缓存仅存储来自存储设备的读操作的数据,且写高速缓存仅存储对存储设备的写操作的数据。计算设备至少部分地基于由计算设备测量到的高速缓存性能参数来自动和动态地(例如,没有用户交互)调整读高速缓存和写高速缓存的高速缓存配置。在一些实现中,自动和动态的调整包括调整读和/或写高速缓存大小,和/或调整读和/或写高速缓存块大小。
在另一示例中,用于从存储设备读取数据以及向存储设备写入数据的方法包括由计算设备从具有读高速缓存大小的读高速缓存处读取数据,其中该读高速缓存存储来自计算设备中的存储设备的读请求的数据。方法还包括由计算设备将数据写入到具有写高速缓存大小的写高速缓存中,其中该写高速缓存存储来自对计算设备中的存储设备的写请求的数据。读高速缓存和写高速缓存是分开的高速缓存。读高速缓存仅存储来自读请求的数据,且写高速缓存仅存储来自写请求的数据。方法还包括由计算设备至少部分地基于由该计算设备测量到的高速缓存性能参数来自动地和动态地(例如,在没有用户干预的情况下)调整读高速缓存和写高速缓存的高速缓存配置。
在另一示例中,计算设备包括具有读高速缓存大小的读高速缓存和具有写高速缓存大小的分开的写高速缓存。读高速缓存存储来自计算设备中的存储设备的读请求的数据,且写高速缓存存储来自对该计算设备中的存储设备的写请求的数据。读高速缓存仅存储来自该存储设备的读操作的数据,且写高速缓存仅存储来自对该存储设备的写操作的数据。计算设备至少部分地基于由该计算设备测量到的高速缓存性能参数来自动地和动态地(例如,在没有用户干预的情况下)调整读高速缓存和写高速缓存的高速缓存配置,其中读高速缓存中的高速缓存块具有读高速缓存块大小,且写高速缓存中的高速缓存块具有写高速缓存块大小,并且其中计算设备将读高速缓存块大小和写高速缓存块大小彼此独立地设定。计算设备至少部分地基于高速缓存性能参数来自动地和动态地调整读高速缓存块大小和写高速缓存块大小。所述高速缓存性能参数包括存储设备的读性能和存储设备的写性能。
在一些实现中,计算设备还包括应用程序编程接口(API),该应用程序编程接口被配置成接收计算设备读取或写入一个或多个数据块的偏好得分。该偏好得分至少部分地被计算设备用来确定是否高速缓存一个或多个数据块,以及在计算设备确定要高速缓存一个或多个数据块时,确定何时将该一个或多个数据块从读高速缓存或写高速缓存处驱逐掉。
参考附图阅读以下详细描述,将更清楚前述和其它特征和优点。
附图说明
图1是示出使用了分开的读和写高速缓存的示例性计算设备的框图。
图2是示出使用了分开的读和写高速缓存的计算设备中的示例性组件的框图。
图3是示出使用分开的读和写高速缓存的动态高速缓存配置的示例性方法的流程图。
图4是示出使用偏好得分来对分开的读和写高速缓存进行动态高速缓存配置的示例性方法的流程图。
图5是示出使用读和写请求的频率来对分开的读和写高速缓存进行动态高速缓存配置的示例性方法的流程图。
图6是示出通过调整读和写高速缓存块大小来对分开的读和写高速缓存进行动态高速缓存配置的示例性方法的流程图。
图7是示出示例性移动设备的框图。
具体实施方式
以下描述涉及使用分开的读和写高速缓存来提供动态高速缓存配置技术和方案的技术和方案。各种技术和方案可组合或单独使用。不同的实施例可实现所描述的技术和方案的一个或多个。
I.示例性读高速缓存和写高速缓存
在此处所描述的各技术和方案中,高速缓存在读取或写入存储设备(例如,硬盘、闪存、光盘等)时提供了对数据的中间存储。在此处所描述的各技术和方案中,将高速缓存分成读高速缓存和写高速缓存。将高速缓存分成独立的和不同的读和写高速缓存允许分开地(例如,相互独立地)配置和/或优化读和写高速缓存。
在一些实现中,将读高速缓存和写高速缓存实现为分开的物理高速缓存(例如,每个高速缓存都具有其自己单独的存储器组件)。在其他实现中,将读高速缓存和写高速缓存存储在同一存储器中,但其在逻辑上却是分开的(例如,使用该存储器的某一部分来存储读高速缓存数据,并使用该存储器的一不同部分来存储写高速缓存数据)。例如,可将读高速缓存和写高速缓存存储在计算设备的专用高速缓存储器组件中,或者将其存储在计算设备的主存储器中。
不管读高速缓存和写高速缓存是如何被分开的(例如,物理上地或逻辑上地),读高速缓存和写高速缓存各自都具有独立的高速缓存大小。每个高速缓存的大小(读高速缓存大小和写高速缓存大小)在数据存储容量方面指示了高速缓存的大小。例如,高速缓存大小可以是512千字节(KB)或1兆字节(MB)。读高速缓存大小和写高速缓存大小可以是不同的大小。例如,读高速缓存大小可以是1MB,且写高速缓存大小可以是512KB。
II.示例性高速缓存配置
在此处所描述的技术和方案中,可调整读高速缓存和写高速缓存的高速缓存配置。可测量各种参数,并使用这些参数来调整读高速缓存和写高速缓存的配置。
在一特定实现中,至少部分地基于高速缓存性能参数来自动地和动态地调整读高速缓存和/或写高速缓存。在没有用户的干预或输入的情况下,执行对高速缓存配置的自动和动态调整(例如,由诸如计算设备等实现该高速缓存的系统来自动地执行)。
在一特定实现中,高速缓存配置包括读高速缓存大小和/或写高速缓存大小。调整高速缓存配置包括调整读高速缓存大小和/或写高速缓存大小。在读高速缓存和写高速缓存共享存储器空间的情况下,可一起调整读高速缓存大小和写高速缓存大小。例如,在具有1MB的共享高速缓存随机存取存储器(RAM)的计算设备中,该计算设备可通过将该1MB的共享高速缓存RAM的一部分分配给读高速缓存并将剩余的高速缓存RAM分配给写高速缓存(例如,将768KB分配给读高速缓存,并将256KB分配给写高速缓存),来自动地和动态地调整读高速缓存大小和写高速缓存大小。在读高速缓存和写高速缓存使用分开的物理存储器空间的情况下,仍可调整各高速缓存大小。例如,在具有1MB的读高速缓存RAM和1MB的写高速缓存RAM的计算设备中,该计算设备可自动地和动态地将该读高速缓存存储器的一部分分配给写高速缓存使用,并且反之亦然(例如,除了1MB的读高速缓存RAM以外,还将写高速缓存RAM中的256KB分配来存储读高速缓存数据,而将写高速缓存RAM中的768KB仍用于存储写高速缓存数据)。
在一特定实现中,高速缓存配置包括读高速缓存块大小和/或写高速缓存块大小。调整高速缓存配置包括调整读高速缓存块大小和/或写高速缓存块大小。高速缓存块大小指在读高速缓存和写高速缓存中的高速缓存条目的大小(有时称为高速缓存行大小(cache line size))。取决于该情况,可使用不同的高速缓存块大小。例如,可以根据在每个高速缓存块中存储的数据的字节数(例如,8字节、512字节、2KB、64KB等)来定义高速缓存块大小。还可根据读取或写入高速缓存内容的存储设备块大小(例如,物理块大小)来定义高速缓存块大小。例如,如果存储设备(例如,硬盘或闪存)将数据存储在512字节的块(存储设备块大小)中,则可将高速缓存块大小设定为匹配(例如,512字节的高速缓存块大小),或者可将高速缓存块大小设定为倍数(例如,2KB的高速缓存块大小,其存储4个存储设备块)。可将读高速缓存块大小和写高速缓存块大小设定为相同的块大小或不同的块大小(例如,可将读高速缓存块大小设定为4KB,而将写高速缓存块大小设定为2KB)。
III.示例性高速缓存性能参数
在此处所描述的技术和方案中,可至少部分地基于高速缓存性能参数来调整读高速缓存和写高速缓存的高速缓存配置。高速缓存性能参数指读和/或写高速缓存的性能参数以及关联存储设备的性能参数。高速缓存性能参数的示例包括偏好得分、读和/或写请求的频率、读和/或写存储设备性能、读和/或写定位、以及读和/或写连续性能。
在一特定实现中,由操作读和写高速缓存的计算设备来测量高速缓存性能参数。例如,计算设备的处理单元可监控读和写高速缓存的性能参数以及关联存储设备的性能参数。还可由计算设备的特定组件(诸如,存储设备性能监控组件)来测量性能参数,或者从计算设备的其他组件(诸如,文件系统组件)处接收性能参数。
IV.自动地和动态地调整高速缓存配置的示例
在此处所描述的技术和方案中,可自动地和动态地调整高速缓存配置。在一特定实现中,至少部分地基于(例如,由包括读高速缓存和写高速缓存的计算设备测量到的)高速缓存性能参数来自动地和动态地调整高速缓存配置。
在一特定实现中,计算设备提供应用程序编程接口(API)来发送和/或接收高速缓存性能参数。例如,可从计算设备中的组件或模块(例如,硬件和/或软件组件或模块)处接收高速缓存性能参数,例如从文件系统组件处接收高速缓存性能参数。在该特定实现中,经由API所接收到的高速缓存性能参数包括从该文件系统组件处接收到的偏好得分(例如,整数值)。使用偏好得分来指示应该将存储设备块(或者存储设备块的集合)存储在高速缓存中,还是应该使其经过(pass through)该高速缓存。
提供API允许对可用读高速缓存和写高速缓存存储器的更好和更有效的使用,并改进对高速缓存策略的驱逐和替换。例如,计算设备可使用偏好得分来将读高速缓存中的较低值块替换成较高值块(例如,通过比较双方的偏好得分)。作为另一示例,文件系统可将较高的偏好得分给予包括该文件系统的根目录的各个块(或者,块集合)。作为又一示例,文件系统可将较低的偏好得分给予在不久的将来不太可能需要(例如,基于由文件系统监控到的读和/或写模式来)进行文件系统预测的较大的写和/或读块。文件系统还使用偏好得分来决定何时将块(或者块组)从高速缓存中驱逐掉(例如,通过首先将具有最低偏好得分的块或者块组驱逐掉)。还可单独使用偏好得分或者将其与其他高速缓存性能参数组合使用来确定何时将存储设备块存储在高速缓存中,以及何时将所存储的块从高速缓存中替换掉或驱逐掉。
在一些实现中,至少部分地基于高速缓存性能参数来自动地和动态地调整读高速缓存大小和/或写高速缓存大小。在一实现中,基于读请求的频率和写请求的频率来调整分配来存储读高速缓存数据的存储器的量和/或分配来存储写高速缓存数据的存储器的量。例如,如果读请求的频率与写请求的频率相比要大一阈值,则可增加读高速缓存大小(例如,可将1MB的读高速缓存大小和1MB的写高速缓存大小调整为1.25MB的读高速缓存大小和0.75MB的写高速缓存大小)。
在一些实现中,至少部分地基于高速缓存性能参数来自动地和动态地调整读高速缓存块大小和/或写高速缓存块大小。可独立地调整读高速缓存块大小和写高速缓存块大小(即,读高速缓存块大小可以是与写高速缓存块大小不同的块大小)。在一个实现中,计算设备测量存储设备的读和/或写性能,包括写和/或读操作花费了多久来完成对存储设备的写入/读取。例如,如果存储设备对读请求的响应较快(读请求完成较快),但对写请求的响应较慢(写请求完成较慢),则可减少写高速缓存块大小(因为更小大小的写高速缓存块将完成的更快)和/或增加读高速缓存块大小(这可增加高速缓存性能,同时仍维持较快的读请求完成)。在这种情况下,还可能是在任何给定时间处高速缓存中待处理的写请求比读请求要多,因此可增加写高速缓存大小和/或减少读高速缓存大小。
在另一实现中,(例如,由计算设备)将定位信息(例如,读和/或写操作的定位信息的历史)作为用于确定读高速缓存块大小和/或写高速缓存块大小的高速缓存性能参数来测量。定位指正在读取或写入的块在存储设备上是否彼此邻近。存储设备上被高度定位的块可比未被定位的(例如,分段的)块更快地被读取或写入。如果读定位增加了,则增加读高速缓存块大小,以便将更大数量的邻近存储设备块存储在每一读高速缓存块中。在另一方面,如果读定位减少了,则减少读高速缓存块大小,使得读请求将更少的邻近存储设备块存储在每一读高速缓存中,并由此增加读高速缓存中的读块多样性。以相同的方式来调整写高速缓存。
在另一实现中,将存储设备的连续读和/或写性能作为用于确定读高速缓存块大小和/或写高速缓存块大小的高速缓存性能参数来测量。连续性能指存储设备读取或写入多个连续的存储设备块所花费的时间量。可使用连续读和/或写性能来确定读高速缓存块大小和/或写高速缓存块大小。例如,如果计算设备正顺序地写出一较大的文件(例如,较大的视频文件),则可增加写高速缓存块大小。然而,如果过度地增加了写高速缓存块大小,则可导致减少的性能(例如,以高速缓存中的块多样性为代价)。因此,可使用连续性能测量来设定写高速缓存块大小的上限。例如,如果写操作的连续性能从一个存储设备块增加到16个存储设备块,然后达到稳定,使得写入大于等于32个存储设备块的连续性能与写入16个存储设备块的连续性能相同(或更小),则可将写高速缓存块大小的上限设定为16。可对读高速缓存执行类似的测量,并可确定读高速缓存块大小的上限。
在不同的实现中,可基于本小节中描述的技术中的一个或多个来调整(例如,独立地调整)读和/或写高速缓存的高速缓存大小和/或高速缓存块大小。可组合地或独立地应用各技术。
V.包括分开的读和写高速缓存的示例性计算设备
图1描绘了包括分开的读和写高速缓存的示例性计算设备110。计算设备110可以是诸如移动计算设备(例如,智能手机、移动电话、平板电脑、上网本等)的任何类型的计算设备,或者是诸如台式计算机、膝上型计算机、笔记本计算机、媒体播放器、数字相机或便携式摄像机等其他类型的计算设备。
计算设备110包括具有分开的读高速缓存130和写高速缓存140的高速缓存120。读高速缓存130具有读高速缓存大小(例如,1MB、2MB等),且写高速缓存140具有写高速缓存大小。读高速缓存大小和写高速缓存大小可以是相同的大小,或者它们可以是不同的大小。在一些实现中,读高速缓存130和写高速缓存140共享高速缓存存储器空间(例如,RAM)。例如,可将一定量的高速缓存RAM(例如,4MB)在读高速缓存(例如,分配到了整个高速缓存RAM中的3MB)和写高速缓存(例如,分配到了整个高速缓存RAM中的1MB)之间进行划分。在其他实现中,读高速缓存130和写高速缓存140具有分开的物理高速缓存存储器。
读高速缓存130存储来自计算设备110中的一个或多个存储设备(诸如来自存储设备150)的读请求的数据。写高速缓存140存储对计算设备110中的一个或多个存储设备(诸如对存储设备150)的写请求的数据。读高速缓存130仅存储读操作的数据,且写高速缓存140仅存储写操作的数据。
计算设备110至少部分地基于高速缓存性能参数来自动地和动态地(例如,没有任何用户干预或输入)调整读高速缓存130和写高速缓存140的高速缓存配置。计算设备110可独立地为读高速缓存130和写高速缓存140中的每一个调整高速缓存配置。由计算设备110(例如,由计算设备110中的各个组件或模块)来测量高速缓存性能参数。
在一些实现中,计算设备110自动地和动态地调整读高速缓存130的读高速缓存大小以及写高速缓存140的写高速缓存大小。例如,可基于高速缓存性能参数来调整读高速缓存大小和写高速缓存大小,所述高速缓存性能参数包括(例如,经由API来)读取和/或写入各高速缓存块的偏好得分、读请求的频率和写请求的频率、存储设备150的读和写性能、定位信息、和/或连续读和写性能。
在一些实现中,计算设备110自动地和动态地调整读高速缓存130的读高速缓存块大小以及写高速缓存140的写高速缓存块大小。例如,可基于高速缓存性能参数来调整读高速缓存块大小和写高速缓存块大小,所述高速缓存性能参数包括读请求的频率和写请求的频率、存储设备150的读和写性能、定位信息、和/或连续读和写性能。
图2描绘了计算设备200中的各示例性组件,该计算设备200使用了分开的读和写高速缓存。计算设备200包括用于执行计算功能的各种组件和/或模块,包括用户应用程序210、操作系统一系统调用处理程序220、文件系统处理程序230、高速缓存RAM管理器和块获取器240、以及存储设备性能监控器250。
计算设备200包括高速缓存RAM 270,该高速缓存RAM 270具有分配给读高速缓存280和写高速缓存290的存储空间。读高速缓存280和写高速缓存290是分开的高速缓存,其中读高速缓存280仅存储涉及存储设备的读操作的数据,且写高速缓存290仅存储涉及存储设备的写操作的数据。
计算设备200基于高速缓存性能参数来自动地和动态地调整高速缓存配置(例如,读高速缓存280和写高速缓存290中的每一个的高速缓存大小以及读高速缓存280和写高速缓存290中的每一个的高速缓存块大小)。例如,可至少部分地经由存储设备性能监控器250来测量高速缓存性能参数。
如在示例性读高速缓存280中描绘地,该读高速缓存正存储有两个读高速缓存块。这两个读高速缓存块中的每一个正存储有两个存储设备块。因此,如在280处所描绘地,读高速缓存块大小等于两个存储设备块(例如,存储设备260A或260B中的两个物理块)。
如在示例性写高速缓存290中描绘地,该写高速缓存正存储有两个写高速缓存块。这两个写高速缓存块中的每一个正存储有一个存储设备块。因此,如在290处所描绘地,写高速缓存块大小等于一个存储设备块(例如存储设备260A或260B中的一个物理块)。
在一些实现中,计算设备200自动地和动态地调整读高速缓存280的读高速缓存大小以及写高速缓存290的写高速缓存大小。例如,可基于高速缓存性能参数来调整读高速缓存大小和写高速缓存大小,高速缓存性能参数包括(例如经由API来)读取和/或写入各高速缓存块的偏好得分、读请求的频率和写请求的频率、存储设备260A-B的读和写性能、定位信息、和/或连续读和写性能。
在一些实现中,计算设备200自动地和动态地调整读高速缓存280的读高速缓存块大小以及写高速缓存290的写高速缓存块大小。例如,可基于高速缓存性能参数来调整读高速缓存块大小和写高速缓存块大小,所述高速缓存性能参数包括读请求的频率和写请求的频率、存储设备260A-B的读和写性能、定位信息、和/或连续读和写性能。
VI.使用分开的读和写高速缓存的动态高速缓存配置的示例性方法
图3示出使用分开的读和写高速缓存来进行动态高速缓存配置的示例性方法300。例如,可使用图1中描绘的计算设备或图2中描绘的计算设备来实现该方法。
在310处,从具有读高速缓存大小的读高速缓存处读取数据。读高速缓存仅存储来自存储设备的读请求的数据。在320处,将数据写入具有写高速缓存大小的写高速缓存中。写高速缓存仅存储来自对存储设备的写请求的数据。读高速缓存和写高速缓存是分开的高速缓存。
在330处,至少部分地基于高速缓存性能参数来自动地和动态地调整读高速缓存和写高速缓存的高速缓存配置。例如,由计算设备基于该计算设备测量到的高速缓存性能参数来自动地和动态地调整330高速缓存配置。
在一特定实现中,通过调整读高速缓存大小和/或读高速缓存块大小,和/或通过调整写高速缓存大小和/或写高速缓存块大小来自动地和动态地调整高速缓存配置。例如,可基于高速缓存性能参数来调整读高速缓存大小和写高速缓存大小,所述高速缓存性能参数包括(例如,经由API)读取和/或写入各高速缓存块的偏好得分、读请求的频率和写请求的频率、存储设备的读和写性能、定位信息、和/或连续读和写性能。可基于高速缓存性能参数来调整读高速缓存块大小和写高速缓存块大小,所述高速缓存性能参数包括读请求的频率和写请求的频率、存储设备的读和写性能、定位信息、和/或连续读和写性能。
图4示出使用偏好得分来对分开的读和写高速缓存进行动态高速缓存配置的示例性方法400。例如,可使用图1中描绘的计算设备或图2中描绘的计算设备来实现该方法。
在410处,从具有读高速缓存大小的读高速缓存处读取数据。读高速缓存仅存储来自存储设备的读请求的数据。在420处,将数据写入具有写高速缓存大小的写高速缓存中。写高速缓存仅存储来自对存储设备的写请求的数据。读高速缓存和写高速缓存是分开的高速缓存。
在430处,从存储设备处接收读取或写入一个或多个数据块的偏好得分。可使分开的偏好得分与每个读块和写块相关联,或者可将偏好得分分配给读块组或写块组。在一特定实现中,从文件系统处经由API来接收各偏好得分。
在440处,作出是否高速缓存该一个或多个读或写块的决定。该决定是至少部分地基于偏好得分而作出440的。例如,从存储设备处读取块(包括一个或多个存储设备块的读块)的计算设备可(例如,从与该存储设备相关联的文件系统处)接收该读块的偏好得分。然后,计算设备使用偏好得分来确定是否将读块存储(高速缓存)在高速缓存中。如果该决定是不存储该读块,则使该数据块“经过”(即,不将该数据块存储在读高速缓存中)。
在450处,当将一个或多个块存储在高速缓存中而没有使其经过时,作出何时驱逐该一个或多个所存储的块的决定。例如,已将从存储设备处读取的一个或多个块存储在读高速缓存中的计算设备需要决定何时将在该高速缓存中存储的一个或多个块移除或替换掉。可基于一个或多个块的偏好得分来将该一个或多个块从读高速缓存中驱逐掉(例如,在驱逐读高速缓存中具有较高偏好得分的块之前,先驱逐读高速缓存中具有较低偏好得分的块)。
图5示出使用读和写请求的频率来对分开的读和写高速缓存进行动态高速缓存配置的示例性方法500。例如,可使用图1中描绘的计算设备或图2中描绘的计算设备来实现该方法。
在510处,从具有读高速缓存大小的读高速缓存处读取数据。该读高速缓存仅存储来自存储设备的读请求的数据。在520处,将数据写入具有写高速缓存大小的写高速缓存中。写高速缓存仅存储来自对存储设备的写请求的数据。读高速缓存和写高速缓存是分开的高速缓存。
在530处,通过至少部分地基于读请求的频率和写请求的频率来调整读高速缓存大小和写高速缓存大小的方式,来自动地和动态地调整读高速缓存和写高速缓存的高速缓存配置。在一特定实现中,当来自存储设备的读操作的频率与来自该存储设备的写操作的频率相比要大一阈值时,自动地和动态地增加读高速缓存大小。如果增加了读高速缓存大小则可相应地减少写高速缓存大小,或者可独立地增加/减少读和写高速缓存大小。
图6示出通过调整读和写高速缓存块大小来对分开的读和写高速缓存进行动态高速缓存配置的示例性方法600。例如,可使用图1中描绘的计算设备或图2中描绘的计算设备来实现该方法。
在610处,从具有读高速缓存大小的读高速缓存处读取数据。该读高速缓存仅存储来自存储设备的读请求的数据。在620处,将数据写入到具有写高速缓存大小的写高速缓存中。写高速缓存仅存储来自对存储设备的写请求的数据。读高速缓存和写高速缓存是分开的高速缓存。
在630处,至少部分地通过调整读高速缓存块大小和写高速缓存块大小来自动地和动态地调整高速缓存配置。可基于各种高速缓存性能参数来调整读高速缓存块大小和写高速缓存块大小。例如,可使用在640A、640B和640C处描绘的技术中的一个或多个来调整读高速缓存块大小和写高速缓存块大小。
在640A处,可基于存储设备的读和/或写性能来调整读高速缓存块大小和/或写高速缓存块大小。例如,如果性能历史指示写操作花费了较长的时间,则可增加写高速缓存块大小。
在604B处,基于来自存储设备的读和/或写定位信息来调整读高速缓存块大小和/或写高速缓存块大小。在一特定实现中,当测量到定位增加时,增加读和/或写高速缓存块大小,并且当测量到定位减少时,减少读和/或写高速缓存块大小。
在640C处,基于存储设备的连续读和/或写性能来调整读高速缓存块大小和/或写高速缓存块大小。例如,可确定读和/或写缓存块大小的上限。
VII.示例性移动设备
此处描述的技术和方案可由诸如移动设备(移动计算设备)等计算设备中的软件和/或硬件来执行。例如,计算设备包括台式计算机、膝上型计算机、笔记本计算机、上网本、平板设备、媒体播放器、以及其他类型的计算设备。移动设备包括例如移动电话、个人数字助理(PDA)、智能电话、平板电脑、膝上型计算机、以及其他类型的移动计算设备。移动设备通常比其他类型的计算设备(例如,台式或膝上型计算机)具有更有限的计算资源(例如,处理单元速度、存储器、图形资源等)。因此,在一些情况下,移动设备能更多地从此处描述的技术和方案中受益。然而,取决于各实现的细节,任何类型的计算设备都能从此处描绘的技术和方案中受益。
图7描绘了能够实现此处所描述的技术和方案的移动设备700的详细示例。移动设备700包括各种任选的硬件和软件组件,其通常在702处示出。该移动设备中的任何组件702可与任何其他组件通信,但出于容易例示的目的而未示出所有连接。该移动设备可以是各种计算设备(例如,蜂窝电话、智能电话、手持式计算机、膝上型计算机、笔记本计算机、平板设备、上网本、个人数字助理(PDA)、相机、摄像机等)中的任一个,并且可允许与诸如Wi-Fi、蜂窝或卫星网络等一个或多个移动通信网络704进行无线双向通信。
所示移动设备700可包括用于执行如信号编码、数据处理、输入/输出处理、电源控制和/或其他功能等任务的处理单元710(例如,控制器或处理器),诸如信号处理器、微处理器、ASIC、或其他控制和处理逻辑电路。操作系统712可控制对组件702的分配和使用,并支持一个或多个应用程序714。应用程序可包括公共移动计算应用程序(例如,电子邮件应用程序、日历、联系人管理器、web浏览器、消息接发应用程序、视频或电影应用程序、图片或照片应用程序)、或任何其他计算应用。
所示移动设备700可包括存储器720。存储器720可包括不可移动存储器722和/或可移动存储器724。不可移动存储器722可包括RAM、ROM、闪存、硬盘、或其他众所周知的存储器存储技术。可移动存储器724可包括闪存或订户身份模块(SIM)卡——其在GSM通信系统中是众所周知的,或者其他众所周知的存储器存储技术,如“智能卡”。存储器720可用于存储数据和/或用于运行操作系统712和应用程序714的代码。示例数据可包括经由一个或多个有线或无线网络发送给和/或接收自一个或多个网络服务器或其他设备的网页、文本、图像、声音文件、视频数据、或其他数据集。存储器720可用于存储诸如国际移动订户身份(IMSI)等订户标识符,以及诸如国际移动设备标识符(IMEI)等设备标识符。可将此类标识符传送给网络服务器以标识用户和装备。
移动设备700能支持诸如触摸屏732、麦克风734、相机736(例如,能够捕捉静态图像和/或视频图像)、物理键盘738以及轨迹球740等的一个或多个输入设备730以及诸如扬声器752和显示器754等的一个或多个输出设备750。其他可能的输出设备(未示出)可包括压电或其他触觉输出设备。一些设备可服务一个以上的输入/输出功能。例如,触摸屏732和显示器754可被组合在单个输入/输出设备中。
无线调制解调器760可被耦合至天线(未示出),并且可支持处理器710与外部设备之间的双向通信,如本领域中清楚理解的。调制解调器760被一般性地示出,并且可包括用于与移动通信网络704和/或其它基于无线电的调制解调器(例如蓝牙764或Wi-Fi 762)进行通信的蜂窝调制解调器。无线调制解调器760通常被配置成与一个或多个蜂窝网络(诸如,用于单个蜂窝网络内、蜂窝网络之间、或移动设备与公共交换电话网络(PSTN)之间的数据和语音通信的GSM网络)进行通信。
移动设备可进一步包括至少一个输入/输出端口780、电源782、卫星导航系统接收机784(诸如全球定位系统(GPS)接收机)、加速计786、收发机788(用于无线发射模拟或数字信号)和/或物理连接器737,它可以是USB端口、IEEE 1394(火线)端口、和/或RS-232端口。所示组件702不是必需的或所有都包括的,因为可删除任何组件并且可添加其他组件。
移动设备700能实现在此描述的技术。例如,移动设备700可自动地和动态地调整在存储器722中存储的分开的读和写高速缓存的高速缓存配置。
VIII.示例替换和变化
虽然为方便呈现起见所公开的方法的一些操作是以特定的顺序次序来描述的,但应当理解,这一描述方法涵盖重新安排,除非以下阐明的具体语言需要特定排序。例如,在某些情况下,可以重新安排或并发执行顺序地描述的操作。此外,为简明起见,附图可能未示出其中所公开的方法可结合其他方法使用的各种方式。
所公开的方法中的任一个可被实现为存储在一个或多个计算机可读介质(例如,有形的计算机可读介质(诸如一个或多个光学介质盘)、易失性存储器组件(诸如DRAM或SRAM)或非易失性存储器组件(诸如硬驱动器))上并且在计算机(例如,任何可购买的计算机,包括包含计算硬件的智能电话或其它移动设备)上执行的计算机可执行指令。用于实现所公开的技术的计算机可执行指令中的任何一个以及在所公开的实施例实现期间所创建和使用的任何数据可被存储在一个或多个计算机可读介质上。计算机可执行指令可以是专用软件应用程序或,例如,经由web浏览器或其他软件应用程序(诸如远程计算应用程序)访问或下载的软件应用程序的一部分。可,例如,在单个本地计算机(例如,任何合适的可购买计算机)上或在使用一个或多个网络计算机的网络环境(例如,经由因特网、广域网、局域网、客户机-服务器网络(诸如,云计算网络)、或其他此类网络)中执行这些软件。
为清楚起见,只描述了基于软件的各实现的某些所选择的方面。省略了本领域公知的其他细节。例如,应当理解,所公开的技术不限于任何特定计算机语言、或程序。例如,所公开的技术可由用C++、Java、Perl、JavaScript、Adobe Flash、或任何其他合适的编程语言编写的软件来实现。同样,所公开的技术不限于任何特定计算机或硬件类型。合适的计算机和硬件的某些细节是公知的,并且无需在本公开中进行详细阐述。
此外,基于软件的实施例中的任何一个(包括,例如,用于使计算设备执行所公开的方法中的任何一种的计算机可执行指令)可通过合适的通信装置来上传、下载、或远程访问。这些合适的通信手段包括,例如,因特网、万维网、内联网、软件应用、电缆(包括光缆)、磁通信、电磁通信(包括RF、微波和红外通信)、电子通信或任何这样的通信手段。
所公开的方法、装置和系统决不应被解释成限制性的。相反,本发明针对各公开的实施方式(单独地或彼此的各种组合和子组合)的所有新颖和非显而易见特征和方面。所公开的方法、装置和系统不限于任何具体方面或特征或其组合,所公开的各实施方式也不要求存在任何一个或多个具体优点或解决各个问题。因此,要求保护落入这些权利要求的精神和范围内的所有内容作为本发明。

Claims (10)

1.一种计算设备(110;200),包括:
具有读高速缓存大小的读高速缓存(130;280),其中所述读高速缓存存储来自所述计算设备中的存储设备(150;260A;260B)的读请求的数据;以及
具有写高速缓大小的写高速缓存(140;290),其中所述写高速缓存存储对所述计算设备中的所述存储设备的写请求的数据;
其中,所述读高速缓存和所述写高速缓存是分开的高速缓存,其中所述读高速缓存仅存储来自读请求的数据,并且所述写高速缓存仅存储来自写请求的数据;以及
其中所述计算设备在没有用户的干预的情况下,至少部分地基于由所述计算设备测量到的高速缓存性能参数来自动地和动态地调整所述读高速缓存和所述写高速缓存的高速缓存配置。
2.如权利要求1所述的计算设备,其特征在于,所述计算设备包括应用程序编程接口(API),其中所述API被配置来:
(从文件系统)接收所述计算设备读取或写入一个或多个数据块的偏好得分,其中所述偏好得分被所述计算设备至少部分地用来确定是否高速缓存所述一个或多个数据块,其中在所述计算设备确定要高速缓存所述一个或多个数据块时,所述偏好得分还至少部分地被所述计算设备用来确定何时将所述一个或多个数据块从所述读高速缓存或写高速缓存处驱逐掉。
3.如权利要求1所述的计算设备,其特征在于,所述计算设备通过至少部分地基于高速缓存性能参数来设定所述读高速缓存大小和所述写高速缓存大小的方式来自动地和动态地调整高速缓存配置,所述高速缓存性能参数包括读请求的频率和写请求的频率。
4.如权利要求1所述的计算设备,其特征在于,所述读高速缓存中的高速缓存块具有读高速缓存块大小,其中所述写高速缓存中的高速缓存块具有写高速缓存块大小,并且其中所述计算设备将所述读高速缓存块大小和所述写高速缓存块大小彼此独立地设定。
5.如权利要求4所述的计算设备,其特征在于,所述计算设备至少部分地基于高速缓存性能参数来自动地和动态地调整所述读高速缓存块大小和所述写高速缓存块大小,所述高速缓存性能参数包括:
所述存储设备的读性能;以及
所述存储设备的写性能。
6.如权利要求4所述的计算设备,其特征在于,所述计算设备至少部分地基于是否将读和写在所述计算设备上进行了定位来自动地和动态地调整所述读高速缓存块大小和所述写高速缓存块大小,其中:
在读定位增加时,增加读高速缓存块大小;
在读定位减少时,减少读高速缓存块大小;
在写定位增加时,增加写高速缓存块大小;
在写定位减少时,减少写高速缓存块大小。
7.一种至少部分地由包括存储设备的计算设备来实现的方法,该方法用于从所述存储设备读取数据或将数据写入所述存储设备中,所述方法包括:
由所述计算设备从具有读高速缓存大小的读高速缓存处读取数据(310),其中所述读高速缓存存储来自所述计算设备中的所述存储设备的读请求的数据;
由所述计算设备将数据写入具有写高速缓存大小的写高速缓存中(320),其中所述写高速缓存储对所述计算设备中的所述存储设备的写请求的数据,其中所述读高速缓存和所述写高速缓存是分开的高速缓存,其中所述读高速缓存仅存储来自读请求的数据,且其中所述写高速缓存仅存储来自写请求的数据;
由所述计算设备至少部分地基于由所述计算设备测量到的高速缓存性能参数来自动地和动态地调整所述读高速缓存和所述写高速缓存的高速缓存配置(330),而无需用户的干预。
8.如权利要求7所述的方法,其特征在于,所述计算设备包括应用程序编程接口(API),所述方法还包括:
经由所述API从与所述存储设备相关联的文件系统处接收所述计算设备读取或写入一个或多个数据块的偏好得分,其中所述偏好得分至少部分地被所述计算设备用来确定:
是否高速缓存所述一个或多个数据块;以及
在将所述一个或多个数据块存储在所述读高速缓存或所述写高速缓存中时,何时将所述一个或多个数据块从所述读高速缓存或所述写高速缓存中驱逐掉。
9.如权利要求7所述的方法,其特征在于,自动地和动态地调整高速缓存配置包括:
由所述计算设备至少部分地基于高速缓存性能参数来调整所述读高速缓存大小和所述写高速缓存大小,所述高速缓存性能参数包括读请求的频率和写请求的频率。
10.如权利要求7所述的方法,其特征在于,所述读高速缓存中的高速缓存块具有读高速缓存块大小,所述写高速缓存中的高速缓存块具有写高速缓存块大小,其中所述计算设备将所述读高速缓存块大小和所述写高速缓存块大小彼此独立地设定,并且其中自动地和动态地调整所述高速缓存配置包括:
由所述计算设备至少部分地基于高速缓存性能参数来调整所述读高速缓存块大小和所述写高速缓存块大小,所述高速缓存性能参数包括:
所述存储设备的读性能;以及
所述存储设备的写性能。
CN201110321215.XA 2010-10-13 2011-10-12 使用分开的读和写高速缓存的动态高速缓存配置 Active CN102411541B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/903,834 US8504774B2 (en) 2010-10-13 2010-10-13 Dynamic cache configuration using separate read and write caches
US12/903,834 2010-10-13

Publications (2)

Publication Number Publication Date
CN102411541A true CN102411541A (zh) 2012-04-11
CN102411541B CN102411541B (zh) 2014-12-24

Family

ID=45913623

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110321215.XA Active CN102411541B (zh) 2010-10-13 2011-10-12 使用分开的读和写高速缓存的动态高速缓存配置

Country Status (2)

Country Link
US (1) US8504774B2 (zh)
CN (1) CN102411541B (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103442049A (zh) * 2013-08-22 2013-12-11 浪潮电子信息产业股份有限公司 一种面向构件的混合型云操作系统体系结构及其通信方法
CN103514110A (zh) * 2012-06-20 2014-01-15 华为技术有限公司 非易失性存储设备的缓存管理方法及装置
CN105183661A (zh) * 2015-07-27 2015-12-23 联想(北京)有限公司 一种控制方法及电子设备
CN105204987A (zh) * 2014-06-25 2015-12-30 腾讯科技(深圳)有限公司 数据获取方法、装置及电子设备
CN105677756A (zh) * 2015-12-28 2016-06-15 曙光信息产业股份有限公司 一种文件系统中有效利用缓存的方法和装置
CN110134650A (zh) * 2019-04-28 2019-08-16 深圳市腾讯网域计算机网络有限公司 一种文件加载方法、装置、设备及存储介质
CN110427353A (zh) * 2019-06-27 2019-11-08 华迪计算机集团有限公司 数据库服务器集群读写分离设置的方法及装置
CN111338579A (zh) * 2020-02-27 2020-06-26 苏州浪潮智能科技有限公司 基于存储池的读写缓存优化方法、系统、终端及存储介质

Families Citing this family (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9104580B1 (en) * 2010-07-27 2015-08-11 Apple Inc. Cache memory for hybrid disk drives
US9009406B2 (en) * 2010-12-10 2015-04-14 International Business Machines Corporation Determining server write activity levels to use to adjust write cache size
US8681758B2 (en) * 2010-12-14 2014-03-25 Symbol Technologies, Inc. Video caching in a wireless communication network
US9268701B1 (en) * 2011-11-21 2016-02-23 Western Digital Technologies, Inc. Caching of data in data storage systems by managing the size of read and write cache based on a measurement of cache reliability
US20130238851A1 (en) * 2012-03-07 2013-09-12 Netapp, Inc. Hybrid storage aggregate block tracking
US9058281B2 (en) * 2012-06-01 2015-06-16 Seagate Technology Llc Allocating memory usage based on quality metrics
US9626294B2 (en) 2012-10-03 2017-04-18 International Business Machines Corporation Performance-driven cache line memory access
GB2511479A (en) * 2012-12-17 2014-09-10 Librae Ltd Interacting toys
KR20140097924A (ko) * 2013-01-30 2014-08-07 한국전자통신연구원 우선 순위를 가지는 이중 캐싱 방법 및 이를 위한 장치
US20140259023A1 (en) * 2013-03-07 2014-09-11 Seagate Technology Llc Adaptive vibration mitigation
US9602398B2 (en) 2013-09-15 2017-03-21 Nicira, Inc. Dynamically generating flows with wildcard fields
US9674087B2 (en) 2013-09-15 2017-06-06 Nicira, Inc. Performing a multi-stage lookup to classify packets
GB2519549A (en) 2013-10-24 2015-04-29 Ibm Write cache destaging
US9996467B2 (en) 2013-12-13 2018-06-12 Nicira, Inc. Dynamically adjusting the number of flows allowed in a flow table cache
US9367260B1 (en) * 2013-12-13 2016-06-14 Emc Corporation Dynamic replication system
US9569368B2 (en) 2013-12-13 2017-02-14 Nicira, Inc. Installing and managing flows in a flow table cache
US20150271096A1 (en) 2014-03-24 2015-09-24 Google Technology Holdings LLC Allocation of Client Device Memory for Content from Content Sources
US9686200B2 (en) 2014-03-31 2017-06-20 Nicira, Inc. Flow cache hierarchy
US9952981B2 (en) * 2014-09-29 2018-04-24 Apple Inc. Read cache management in multi-level cell (MLC) non-volatile memory
US11178051B2 (en) 2014-09-30 2021-11-16 Vmware, Inc. Packet key parser for flow-based forwarding elements
CN104407986B (zh) * 2014-10-27 2018-03-13 华为技术有限公司 在存储设备中配置缓存的方法、装置及控制器
US11237965B2 (en) * 2014-12-31 2022-02-01 Arteris, Inc. Configurable snoop filters for cache coherent systems
KR102580545B1 (ko) * 2016-04-20 2023-09-21 한국전자통신연구원 디스크 캐시 운용 장치 및 방법
US10037149B2 (en) 2016-06-17 2018-07-31 Seagate Technology Llc Read cache management
US10409726B2 (en) * 2017-10-30 2019-09-10 Micron Technology, Inc. Dynamic L2P cache
US11010233B1 (en) 2018-01-18 2021-05-18 Pure Storage, Inc Hardware-based system monitoring
KR20200008759A (ko) * 2018-07-17 2020-01-29 에스케이하이닉스 주식회사 캐시 메모리 및 이를 포함하는 메모리 시스템, 캐시 메모리의 축출 방법
US11237973B2 (en) * 2019-04-09 2022-02-01 SK Hynix Inc. Memory system for utilizing a memory included in an external device
KR20210011216A (ko) 2019-07-22 2021-02-01 에스케이하이닉스 주식회사 메모리 시스템의 메타 데이터 관리 방법 및 장치
KR20210014338A (ko) 2019-07-30 2021-02-09 에스케이하이닉스 주식회사 데이터 저장 장치, 데이터 처리 시스템 및 데이터 저장 장치의 동작 방법
KR20200132047A (ko) 2019-05-15 2020-11-25 에스케이하이닉스 주식회사 메모리 시스템에서 맵 데이터를 전송하는 방법 및 장치
KR20200119059A (ko) * 2019-04-09 2020-10-19 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작방법
KR20210011176A (ko) 2019-07-22 2021-02-01 에스케이하이닉스 주식회사 메모리 시스템의 액세스 동작 방법 및 장치
KR20210011201A (ko) 2019-07-22 2021-02-01 에스케이하이닉스 주식회사 메모리 시스템 및 그의 온도 조절 방법
US11720692B2 (en) 2019-11-22 2023-08-08 Pure Storage, Inc. Hardware token based management of recovery datasets for a storage system
US12079502B2 (en) 2019-11-22 2024-09-03 Pure Storage, Inc. Storage element attribute-based determination of a data protection policy for use within a storage system
US12079333B2 (en) 2019-11-22 2024-09-03 Pure Storage, Inc. Independent security threat detection and remediation by storage systems in a synchronous replication arrangement
US12050689B2 (en) 2019-11-22 2024-07-30 Pure Storage, Inc. Host anomaly-based generation of snapshots
US11657155B2 (en) 2019-11-22 2023-05-23 Pure Storage, Inc Snapshot delta metric based determination of a possible ransomware attack against data maintained by a storage system
US11687418B2 (en) 2019-11-22 2023-06-27 Pure Storage, Inc. Automatic generation of recovery plans specific to individual storage elements
US11500788B2 (en) 2019-11-22 2022-11-15 Pure Storage, Inc. Logical address based authorization of operations with respect to a storage system
US11675898B2 (en) 2019-11-22 2023-06-13 Pure Storage, Inc. Recovery dataset management for security threat monitoring
US12050683B2 (en) 2019-11-22 2024-07-30 Pure Storage, Inc. Selective control of a data synchronization setting of a storage system based on a possible ransomware attack against the storage system
US11645162B2 (en) 2019-11-22 2023-05-09 Pure Storage, Inc. Recovery point determination for data restoration in a storage system
US12067118B2 (en) 2019-11-22 2024-08-20 Pure Storage, Inc. Detection of writing to a non-header portion of a file as an indicator of a possible ransomware attack against a storage system
US11615185B2 (en) 2019-11-22 2023-03-28 Pure Storage, Inc. Multi-layer security threat detection for a storage system
US11341236B2 (en) 2019-11-22 2022-05-24 Pure Storage, Inc. Traffic-based detection of a security threat to a storage system
US11941116B2 (en) 2019-11-22 2024-03-26 Pure Storage, Inc. Ransomware-based data protection parameter modification
US11755751B2 (en) 2019-11-22 2023-09-12 Pure Storage, Inc. Modify access restrictions in response to a possible attack against data stored by a storage system
US11625481B2 (en) 2019-11-22 2023-04-11 Pure Storage, Inc. Selective throttling of operations potentially related to a security threat to a storage system
US11720714B2 (en) * 2019-11-22 2023-08-08 Pure Storage, Inc. Inter-I/O relationship based detection of a security threat to a storage system
US11651075B2 (en) 2019-11-22 2023-05-16 Pure Storage, Inc. Extensible attack monitoring by a storage system
US11520907B1 (en) 2019-11-22 2022-12-06 Pure Storage, Inc. Storage system snapshot retention based on encrypted data
US12079356B2 (en) 2019-11-22 2024-09-03 Pure Storage, Inc. Measurement interval anomaly detection-based generation of snapshots
US11275620B2 (en) * 2020-03-19 2022-03-15 Qualcomm Incorporated Efficient utilization of turbo-write buffers
US11543981B2 (en) * 2020-06-12 2023-01-03 Western Digital Technologies, Inc. Data storage device self-configuring based on customer prediction model
US11449229B2 (en) * 2020-10-20 2022-09-20 Red Hat, Inc. Dynamically resizing a region of volatile memory based on a charge level of a backup battery supply
US11372761B1 (en) 2020-12-11 2022-06-28 International Business Machines Corporation Dynamically adjusting partitioned SCM cache memory to maximize performance
JP2022137699A (ja) * 2021-03-09 2022-09-22 富士通株式会社 計算機および計算機の制御方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050138296A1 (en) * 2003-12-18 2005-06-23 Coulson Richard L. Method and system to alter a cache policy
CN101236530A (zh) * 2008-01-30 2008-08-06 清华大学 高速缓存替换策略的动态选择方法
US7451348B2 (en) * 2005-08-04 2008-11-11 Dot Hill Systems Corporation Dynamic write cache size adjustment in raid controller with capacitor backup energy source
US7526508B2 (en) * 2003-09-04 2009-04-28 Oracle International Corporation Self-managing database architecture
CN101814018A (zh) * 2008-12-30 2010-08-25 英特尔公司 事务存储器(tm)系统中的读和写监控属性

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4701844A (en) 1984-03-30 1987-10-20 Motorola Computer Systems, Inc. Dual cache for independent prefetch and execution units
US5307477A (en) 1989-12-01 1994-04-26 Mips Computer Systems, Inc. Two-level cache memory system
EP0461926B1 (en) 1990-06-15 1998-09-02 Compaq Computer Corporation Multilevel inclusion in multilevel cache hierarchies
DE69323790T2 (de) 1992-04-29 1999-10-07 Sun Microsystems, Inc. Verfahren und Vorrichtung für mehreren ausstehende Operationen in einem cachespeicherkohärenten Multiprozessorsystem
US5893150A (en) * 1996-07-01 1999-04-06 Sun Microsystems, Inc. Efficient allocation of cache memory space in a computer system
US6085288A (en) 1997-04-14 2000-07-04 International Business Machines Corporation Dual cache directories with respective queue independently executing its content and allowing staggered write operations
US20040015731A1 (en) * 2002-07-16 2004-01-22 International Business Machines Corporation Intelligent data management fo hard disk drive
US7140021B2 (en) * 2002-09-13 2006-11-21 Microsoft Corporation Dynamic TCP partitioning
JP4989872B2 (ja) * 2005-10-13 2012-08-01 ルネサスエレクトロニクス株式会社 半導体記憶装置および演算処理装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7526508B2 (en) * 2003-09-04 2009-04-28 Oracle International Corporation Self-managing database architecture
US20050138296A1 (en) * 2003-12-18 2005-06-23 Coulson Richard L. Method and system to alter a cache policy
US7451348B2 (en) * 2005-08-04 2008-11-11 Dot Hill Systems Corporation Dynamic write cache size adjustment in raid controller with capacitor backup energy source
CN101236530A (zh) * 2008-01-30 2008-08-06 清华大学 高速缓存替换策略的动态选择方法
CN101814018A (zh) * 2008-12-30 2010-08-25 英特尔公司 事务存储器(tm)系统中的读和写监控属性

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106201348B (zh) * 2012-06-20 2019-08-20 华为技术有限公司 非易失性存储设备的缓存管理方法及装置
CN103514110A (zh) * 2012-06-20 2014-01-15 华为技术有限公司 非易失性存储设备的缓存管理方法及装置
CN103514110B (zh) * 2012-06-20 2016-08-24 华为技术有限公司 非易失性存储设备的缓存管理方法及装置
CN106201348A (zh) * 2012-06-20 2016-12-07 华为技术有限公司 非易失性存储设备的缓存管理方法及装置
US9524245B2 (en) 2012-06-20 2016-12-20 Huawei Technologies Co., Ltd. Cache management method and apparatus for non-volatile storage device
US9727487B2 (en) 2012-06-20 2017-08-08 Huawei Technologies Co., Ltd. Cache management method and apparatus for non-volatile storage device
US9307017B2 (en) 2013-08-22 2016-04-05 Inspur Electronic Information Industry Co., Ltd Member-oriented hybrid cloud operating system architecture and communication method thereof
CN103442049A (zh) * 2013-08-22 2013-12-11 浪潮电子信息产业股份有限公司 一种面向构件的混合型云操作系统体系结构及其通信方法
CN103442049B (zh) * 2013-08-22 2016-08-31 浪潮电子信息产业股份有限公司 一种面向构件的混合型云操作系统体系结构及其通信方法
CN105204987A (zh) * 2014-06-25 2015-12-30 腾讯科技(深圳)有限公司 数据获取方法、装置及电子设备
CN105204987B (zh) * 2014-06-25 2018-09-07 腾讯科技(深圳)有限公司 数据获取方法、装置及电子设备
CN105183661A (zh) * 2015-07-27 2015-12-23 联想(北京)有限公司 一种控制方法及电子设备
CN105677756A (zh) * 2015-12-28 2016-06-15 曙光信息产业股份有限公司 一种文件系统中有效利用缓存的方法和装置
CN110134650A (zh) * 2019-04-28 2019-08-16 深圳市腾讯网域计算机网络有限公司 一种文件加载方法、装置、设备及存储介质
CN110134650B (zh) * 2019-04-28 2022-03-25 深圳市腾讯网域计算机网络有限公司 一种文件加载方法、装置、设备及存储介质
US11907164B2 (en) 2019-04-28 2024-02-20 Tencent Technology (Shenzhen) Company Limited File loading method and apparatus, electronic device, and storage medium
CN110427353A (zh) * 2019-06-27 2019-11-08 华迪计算机集团有限公司 数据库服务器集群读写分离设置的方法及装置
CN110427353B (zh) * 2019-06-27 2022-07-26 华迪计算机集团有限公司 数据库服务器集群读写分离设置的方法及装置
CN111338579A (zh) * 2020-02-27 2020-06-26 苏州浪潮智能科技有限公司 基于存储池的读写缓存优化方法、系统、终端及存储介质
CN111338579B (zh) * 2020-02-27 2022-07-19 苏州浪潮智能科技有限公司 基于存储池的读写缓存优化方法、系统、终端及存储介质

Also Published As

Publication number Publication date
CN102411541B (zh) 2014-12-24
US8504774B2 (en) 2013-08-06
US20120096225A1 (en) 2012-04-19

Similar Documents

Publication Publication Date Title
CN102411541B (zh) 使用分开的读和写高速缓存的动态高速缓存配置
US8775737B2 (en) Efficient cache management
US9798655B2 (en) Managing a cache on storage devices supporting compression
US9201810B2 (en) Memory page eviction priority in mobile computing devices
CN108334284B (zh) 尾延迟感知前台垃圾收集算法
US11675709B2 (en) Reading sequential data from memory using a pivot table
CN107229415A (zh) 一种数据写方法、数据读方法及相关设备、系统
CN106170757B (zh) 一种数据存储方法及装置
CN114185491B (zh) 一种分区文件的下载方法、装置、存储介质及计算机设备
CN106817388B (zh) 虚拟机、宿主机获取数据的方法、装置及访问数据的系统
US10642493B2 (en) Mobile device and data management method of the same
CN104901979A (zh) 一种应用程序文件下载方法和装置
CN105426322B (zh) 一种数据的预取方法及装置
US20160140140A1 (en) File classification in a distributed file system
CN111803917A (zh) 资源的处理方法和装置
CN110321321A (zh) 网络块设备快照读写方法、装置、设备及存储介质
CN102831237B (zh) 一种web应用访问方法及装置
CN103003805A (zh) 总线适配器卡的定制
CN103795806A (zh) 一种面向移动终端的云存储实现方法
CN104252423A (zh) 基于多内核处理器的一致性处理方法和装置
CN109032965B (zh) 一种数据读取方法、主机及存储设备
CN103064926B (zh) 数据处理方法和装置
US20150281354A1 (en) Servers and methods for controlling a server
CN106227473A (zh) 一种将内存作为磁盘读写的实现方法和装置
CN104636209A (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
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150429

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150429

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.