CN1961286A - 自适应高速缓存 - Google Patents
自适应高速缓存 Download PDFInfo
- Publication number
- CN1961286A CN1961286A CNA2004800386463A CN200480038646A CN1961286A CN 1961286 A CN1961286 A CN 1961286A CN A2004800386463 A CNA2004800386463 A CN A2004800386463A CN 200480038646 A CN200480038646 A CN 200480038646A CN 1961286 A CN1961286 A CN 1961286A
- Authority
- CN
- China
- Prior art keywords
- data block
- threshold value
- accessed
- request
- definite
- 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
Links
- 230000004044 response Effects 0.000 claims abstract description 23
- 238000000034 method Methods 0.000 claims abstract description 17
- 230000015654 memory Effects 0.000 claims description 69
- 238000007726 management method Methods 0.000 claims description 61
- 238000003860 storage Methods 0.000 claims description 35
- 238000004519 manufacturing process Methods 0.000 claims description 18
- 230000005540 biological transmission Effects 0.000 claims description 14
- 238000005516 engineering process Methods 0.000 claims description 10
- 238000013500 data storage Methods 0.000 claims description 5
- 238000004321 preservation Methods 0.000 claims 3
- 238000012545 processing Methods 0.000 description 16
- 230000005055 memory storage Effects 0.000 description 9
- 230000000875 corresponding effect Effects 0.000 description 6
- 239000003999 initiator Substances 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 230000003044 adaptive effect Effects 0.000 description 3
- 230000000712 assembly Effects 0.000 description 3
- 238000000429 assembly Methods 0.000 description 3
- 230000015572 biosynthetic process Effects 0.000 description 3
- 230000003139 buffering effect Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 239000000835 fiber Substances 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000003760 hair shine Effects 0.000 description 1
- 238000011065 in-situ storage Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
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/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- 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/50—Control mechanisms for virtual memory, cache or TLB
- G06F2212/502—Control mechanisms for virtual memory, cache or TLB using adaptive policy
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
提供了用于高速缓存管理的技术。接收针对访问第一数据块的输入请求。基于对第一数据块的访问确定第二数据块可能被访问的概率。确定该概率是否超出先读阈值。响应于确定该概率超出该先读阈值,预取第二数据块。
Description
背景
1、技术领域
本公开涉及用于自适应高速缓存的技术。
2、相关领域描述
网络附属存储(NAS)设备具有由几种原因造成的延迟。这些延迟包括网络路由器和子网。这些延迟与传统的延迟相耦合,所述传统延迟与任何存储系统中的不同访问模式分配和定位相关联。
常规的存储平台使用先来先服务(FCFS)技术以用于处理网络请求。有时,I/O处理器基于盘头位置使用电梯调度来处理I/O请求。也就是说,对同一盘头位置处的数据块的I/O请求被同时处理。
常规的I/O处理器通常忽略接收I/O请求所跨越的几何距离。代替地,常规的I/O处理器仅对于吞吐量(每秒的I/O数)被最优化。
因此,在本领域中需要改进高速缓存和I/O请求处理技术。
附图简述
现在参考附图,其中相同的附图标记始终表示相应的部分。
图1A示出了实现特定实施例的计算环境;
图1B示出了可以实现特定实施例的计算环境的进一步的细节;
图2A示出了根据特定实施例的存储机架;
图2B示出了根据特定实施例的存储子系统的进一步的细节;
图2C示出了根据特定实施例的I/O处理器的进一步的细节;
图2D示出了根据特定实施例的I/O处理器的地址空间使用的进一步的细节;
图3示出了贝叶斯定理的一般形式;
图4示出了根据实施例的概率计算;
图5A、5B、5C、5D和5E示出了根据特定实施例的高速缓存的操作;
图6A和6B示出了根据特定实施例的非易失性写高速缓冲存储器和易失性读高速缓冲存储器;
图7示出了根据特定实施例在高速缓存中为数据块腾出空间所执行的操作;以及
图8示出了计算机系统的一种实施例。
实施例的详细描述
在下面的描述中,参考构成下文的一部分并且示出了几种实施例的附图。应当理解,可以采用其他实施例,并且在不脱离本发明的精神和范围的情况下可以对结构和操作进行改变。
在特定实施例中,提供了硬件、固件和/或软件来支持自适应高速缓存技术以便对网络附属计算设备(例如客户机)所经历的等待时间进行标准化,并且学习对应于更为高效的预取的访问模式。特定实施例提供了一种用于执行自适应高速缓存的I/O处理器(IOP)。
图1A示出了实现特定实施例的计算环境。各种计算设备102a、102b、102c、102d和102e经由网络176连接到存储子系统140。例如,所述计算设备可以是位于阿拉斯加州安克雷奇的服务器102a、手持式个人计算机102b、位于伊利诺斯州芝加哥的服务器102c、位于数据中心的服务器102d以及位于德克萨斯州休斯顿的客户机102e。例如,网络176可以是局域网(LAN)、因特网、广域网(WAN)、存储区域网络(SAN)、WiFi(电气和电子工程师协会(IEEE)802.11b,于1999年9月16日公布)、无线LAN(IEEE 802.11b,于1999年9月16日公布)等等。也就是说,存储子系统140连接到发出I/O请求的网络附属客户机和服务器计算设备102a、102b、102c、102d和102e。
图1B示出了可以实现特定实施例的计算环境的进一步的细节。主机计算机103包括一个或多个中央处理单元(CPU)104、易失性存储器106、非易失性存储装置108(例如磁盘驱动器、光盘驱动器、磁带驱动器等等)、操作系统110以及一个或多个网络适配器128。操作系统110可以包括操作系统驱动器,例如操作系统功率管理(OSPM)驱动器111。此外,一个或多个存储驱动器120以及一个或多个应用程序124在存储器106中执行,并且能够经由网络176发送和接收来自远程存储子系统140的分组。
主机计算机102e可以包括本领域中已知的任何计算设备,例如大型机、服务器、个人计算机、工作站、膝上型电脑、手持式计算机、电话设备、网络器件、虚拟设备,存储控制器等等。计算设备102a、102b、102c、102d和/或102e可以实现主机计算机104的体系结构。可以使用本领域中已知的任何CPU104和操作系统110。作为存储器管理操作的一部分,存储器106中的程序和数据可以被交换到存储装置108中。
存储子系统140包括连接到存储通道240的存储服务器200(即一种计算设备),该存储通道240连接到一个或多个存储设备230(例如作为独立盘冗余阵列(RAID)系统的一部分的盘驱动器)。存储设备230也可以被称作I/O子系统230。
每个网络适配器128包括在网络适配器112的硬件中实现的各种组件。每个网络适配器112能够经由网络176发送和接收数据分组。
每个存储驱动器120在存储器106中执行并且包括特定于网络适配器112的命令,以便与每个网络适配器112进行通信以及在操作系统110和每个网络适配器112之间进行接口。每个网络适配器112或存储驱动器120实现用来处理分组的逻辑,例如用于处理包括在被包裹在传输层内的分组中的消息内容的传输协议层,比如传输控制协议(TCP)(Internet工程任务组(IETF)请求注释(RFC)793,1981年9月公布)和/或因特网协议(IP)(IETF RFC 791,1981年9月公布)、因特网小型计算机系统接口(iSCSI)(IETF RFC 3347,2003年2月公布)、光纤通道(IETF RFC 3643,2003年12月公布)或者本领域中已知的任何其他传输层协议。所述传输协议层对来自所接收的传输控制协议/因特网协议(TCP/IP)分组的有效载荷进行解包,并且把数据传送到存储驱动器120以便返回到应用程序124。此外,发送数据的应用程序124把该数据发送到存储驱动器120,然后该存储驱动器120在经由网络176发送之前把该数据发送到传输协议层以便打包在TCP/IP分组中。
总线控制器134允许每个网络适配器112在计算机总线160上进行通信,该计算机总线160包括本领域已知的任何总线接口,比如周边组件互连(PCI)总线(PCI专业兴趣小组,PCI局域总线规格,Rev 2.3,2002年3月公布)、小型计算机系统接口(SCSI)(美国国家标准化组织(ANSI)SCSI控制器命令-2(SCC-2)NCITS.318:1998)、串行ATA(SATA 1.0a规格,2003年2月4日公布)等等。网络适配器112包括用于实现物理通信层132的网络协议,以便经由网络176发送网络分组到远程数据存储装置以及接收来自远程数据存储装置的网络分组。在特定实施例中,网络适配器112可以实施以太网协议(IEEE标准802.3,2002年3月8日公布)、光纤通道(IETF RFC 3643,2003年12月公布)或者本领域中已知的任何其他网络通信协议。
网络适配器112包括输入/输出(I/O)控制器130。在特定实施例中,该I/O控制器130可以包括因特网小型计算机系统接口(iSCSI控制器),可以理解,还可以使用其他类型的网络控制器,比如以太网介质访问控制器(MAC)或者网络接口控制器(NIC)或卡。
存储器108可以包括内部存储设备或者附属的或可网络可访问的存储装置。存储装置108中的程序被下载到存储器106中并由CPU 104执行。使用输入设备150来提供用户输入给CPU 104,该输入设备150可以包括键盘、鼠标、指示笔、麦克风、触敏显示屏或者本领域已知的任何其他激活或输入机制。输出设备152能够呈现从CPU 104或者诸如显示监控器、打印机、存储装置等其他组件传送来的信息。
在特定实施例中,除了一个或多个存储驱动器120以外,主机计算机103还可以包括其他驱动器,例如执行传输协议层的功能的传输协议驱动器(未示出)。
网络适配器112可以包括额外的硬件逻辑来执行额外操作,以便处理从计算机103或网络176接收的分组。此外,网络适配器112可以实现传输层卸载引擎(TOE),以便在网络适配器中实现与计算机存储驱动器120相反的传输协议层,从而进一步减轻主机计算机的处理负担。或者,所述传输层可以在存储驱动器120中实现。
在特定实施例中,各种结构和/或缓冲器(未示出)可以存在于存储器106中或者位于与存储器106分开的存储单元中。
图2A示出了根据特定实施例的存储机架242。该存储机架242包括一个高可用性的高速底板(backplane),该底板用于与存储区域网络(SAN)上的服务器的外部网络连接。其中一个服务器是具有I/O处理器的存储服务器200,该I/O处理器连接到存储总线(即一种存储连接240),该存储总线连接到存储设备230。图2A提供了具有网络附属存储的企业存储拓扑的例子,以便解释如何可以将特定实施例扩展到跨越存储区域网络(SAN)和具有I/O处理器的存储服务器的企业域中。
图2B示出了根据特定实施例的存储子系统140的进一步的细节。存储子系统140包括存储服务器200、小型计算机系统接口(SCSI)或者光纤通道接口(即各种类型的通信路径240)以及存储设备230。存储服务器200包括一个I/O处理器210。特定的实施例被实现在可以从因特尔公司获得的IntelXScaleTM I/O处理器中。在特定实施例中,I/O子系统230由I/O处理器210控器。在特定实施例中,存储设备230可以被描述为NAS单元。在特定实施例中,I/O处理器210可以存在于存储服务器200的主板上或者是芯片组的一部分。I/O处理器210是具有专用于存储的操作环境的智能处理器(例如,I/O处理器210包括用于诸如RAID和iSCSI系统的应用的固件/软件)。I/O处理器210管理从存储设备130到主机计算机103CPU 140的数据传送,反之亦然。在特定实施例中,I/O处理器210附属于广域网(WAN)(例如因特网),并且经由iSCSI协议与客户机进行通信。
存储服务器200还包括由I/O处理器210使用的同步动态随机存取存储器(SDRAM)212和闪存214。由I/O处理器210管理的存储器段(高速缓冲存储器216)是由电池支持的,因此允许用作后写(post-write)高速缓冲存储器(即用于存储写事务并且起到缓冲区高速缓存的作用)。例如,高速缓冲存储器216可以是动态随机存取存储器(DRAM)或者静态随机存取存储器(SRAM)。SCSI或光纤通道控制器218用于连接到SCSI或光纤通道接口240。在特定实施例中,集成驱动电子装置(IDE)可以被使用,以作为对通道控制器218的替换或补充。此外,网络到PCI-X的桥接220经由次级PCI-X总线222(例如133MHz)连接到I/O处理器210和通道控制器218,并且经由通信路径224连接到PCI总线、网络、主机计算机103等等。
图2C示出了根据特定实施例的I/O处理器210的进一步的细节。I/O处理器210包括地址空间250和高速缓存管理代理256,以便帮助管理高速缓冲存储器216。在特定实施例中,高速缓存管理代理256在固件中实现。在特定的可选实施例中,高速缓存管理代理256可以在软件、硬件或者软件、固件和/或硬件的组合中实现。例如,计算设备学习和高速缓存管理代理256的计算可以在硅状态机中实现。
图2D示出了根据特定实施例的I/O处理器210的地址空间250使用的进一步的细节。地址空间250包括由通道控制器218使用的控制存储器映射I/O、由I/O处理器210使用的I/O处理器操作系统存储器、由高速缓冲存储器216使用的后写缓冲区高速缓存、用于预取的缓冲区高速缓存(即用于先读(readahead))以及高速缓冲存储器散列表。
图3示出了贝叶斯定理的一般形式。贝叶斯定理是一种用于计算条件概率的数学公式。特定实施例提供了在I/O处理器210中的高级贝叶斯网络技术。特定实施例通过使用贝叶斯网络来了解访问模式并且进行优先级排队来优先选择具有最远网络距离的客户机,从而减少了存储子系统中的变化的延迟。在特定实施例中,对于贝叶斯网络的学习是通过监控特定访问模式的频率来完成的,其中把所测量的请求频率用作事前统计量。对应于客户机网路距离的数据可以包括跟踪因特网协议(IP)报头中的跳跃计数、对用户机进行分组网际探测(Ping)并且测量客户机响应以及其他技术。跳跃计数与数据分组相关,并且随着数据分组通过每个路由器而递增。
图4示出了根据特定实施例的概率计算。例如,P(Bn+1|Bn)表示如果DataBlockn400被访问(Bn)那么Data Blockn+1 410被访问的概率。为了便于参考,这里使用带有下标的术语“Data Block”来表示数据块。特定实施例使用这种概率分析来确定如果Data Blockn 400被读取或写入那么是否执行取回DataBlockn+1410。例如,如果Data Blockn 400已被访问,那么Data Blockn+1 410很可能被访问,那么取回Data Blockn+1410从而避免随后取回Data Blockn+1 410的I/O活动是有用的。
图5A、5B、5C、5D和5E示出了根据特定实施例的用于高速缓存的操作。控制在块500开始,其中重启代理并且初始化平台。在特定实施例中,该代理与其上执行存储设备(例如RAID)固件的实时操作系统相关。平台可以被描述成I/O处理器210和相关的固件。在块502中,高速缓存管理代理256确定这是否是第一次启动(boot)。如果是的话,处理进行到块504,否则,处理进行到块506。在块504中,缓冲管理代理256从闪存214(例如,只读存储器类型(ROM))把初始网络概率和一个或多个高速缓存表加载到SDRAM 212中。在块506中,高速缓存管理代理256加载最后一次使用的网络概率和一个或多个高速缓存表(例如从ROM)。所述高速缓存表可以包括写高速缓存和读高速缓存。
图6A和6B示出了根据特定实施例的非易失性写高速缓存表600和易失性读高速缓存表610。在起动时,读高速缓存表610一般是空的,写高速缓存表600可以包括未被冲刷(flush)到存储设备的内容。写高速缓存表600可以是用于多盘(例如4个盘)配置的一系列N元组,其中每个元组包括写盘标识符、高速缓存块偏移量、块数量、最后一次访问的日期和时间、发起方距离以及数据。读高速缓存表610可以是用于多盘(例如4个盘)配置的一系列N元组,其中每个元组包括读盘标识符、高速缓存块偏移量、块数量,最后一次访问的日期和时间、发起方距离、命中数量以及数据。在特定实施例中,术语“块”可以用来表示扇区或者512字节单元。发起方距离可以被描述成一个归一化的单位,例如跳跃计数和/或对发起方计算机的分组网际探测的结果值。写高速缓存表600可以被存储在高速缓冲存储器216中,而读高速缓存表610可以被存储在SDRAM212中。
在块508中,高速缓存管理代理256确定是否有输入请求。如果是的话,处理进行到块512,否则处理进行到块510。在块510中执行空闲处理、高速缓存反写(即把来自高速缓冲存储器216的数据写入存储设备230)、自测试、断电以及其他处理。
在块512中,高速缓存管理代理256确定该输入请求是否是写请求。如果是的话,处理进行到块514(图5B),否则处理进行到块534。在块534中,高速缓存管理代理256确定该输入请求是否是读请求。如果是的话,处理进行到块536(图5C),否则处理进行到块566(图5E)。
在图5B中处理写请求。在块514中,高速缓存管理代理256更新P(Bn)的值(即可以从所有可用块中访问Data Blockn的概率)。例如,在任何块被访问之前,如果有1,000,000个块,那么Data Blockn可能被访问的概率是1/1,000,000。然而,如果Data Blockn已经被访问1,000次,则Data Blockn可能被访问的概率是1/1000。
在块516中,由于Data Blockn已被访问,高速缓存管理代理256确定DataBlockn+1可能被访问的概率(即P(Bn+1|Bn))是否大于先读阈值。先读阈值被用来确定是否应当执行先读。如果是的话,处理进行到块518,否则处理进行到块528。
在块518中,如果需要的话(见图6),高速缓存管理代理256在高速缓冲存储器216中为Data Blockn腾出空间。在块520中,如果需要的话(见图6),高速缓存管理代理256在高速缓冲存储器216中为Data Blockn+1腾出空间。在块522中,高速缓存管理代理256预取Data Blockn+1。在块524中,高速缓存管理代理256递增预取计数器。在块526中,高速缓存管理代理256把Data Blockn后写到高速缓冲存储器。术语“后写”表示将块写入到高速缓冲存储器216,把该写入提交(commit)给存储设备230,随后将该块从高速缓冲存储器216写入到存储设备230。然而,客户机认为在提交时该写入就完成,而不知道把所述块从高速缓冲存储器216写入到存储设备230的等待时间。处理从块526进行到块530。
在块528中,如果由于Data Blockn被访问而Data Blockn+1可能被访问的概率(即P(Bn+1|Bn))不大于先读阈值,则高速缓存管理代理256发出针对Data Blockn的写请求给存储设备230。
在块530中,高速缓存管理代理256返回一个确认。在块532中,高速缓存管理代理256更新执行计数器,比如读次数、写次数、预取次数(即对应于预取计数器)和命中高速缓冲存储器的次数(即对应于预取成功计数器)。该执行计数器可以被描述成通信量的一般统计量。
在图5C和5D中处理读请求。在块536中,高速缓存管理代理256更新P(Bn)的值。在块538中,高速缓存管理代理256确定请求方跳跃计数是否大于跳跃计数阈值。如果是的话,处理进行到块540,否则处理进行到块542。请求方指的是所接收的读请求来自哪一个计算设备或应用。跳跃计数阈值标识距离,并且当请求方的跳跃计数大于跳跃计数阈值时,来自请求方的请求在存储请求的请求数据结构(例如队列)中被提升以便进行处理(块540)。
由于I/O处理器210的串行性质使得如果一个请求处于请求数据结构中的较前位置(例如在队列的开头或者接近队列的开头)则该请求可能更早导致对存储设备的I/O操作,因此在该请求数据结构中提升该请求。这种服务质量差别反映出I/O处理器210示出为最远的发起方给出最好服务。
在块542中,高速缓存管理代理256确定Data Blockn是否在高速缓冲存储器216中。如果是的话,处理进行到块544,否则处理进行到块550。在块544中,高速缓存管理代理256用来自高速缓冲存储器216的Data Blockn来答复请求方。在块546中,高速缓存管理代理256确定Data Blockn是否先前被预取到高速缓冲存储器216中。如果是的话,处理进行到块548,否则处理进行到块554(图5D)。在块548中,高速缓存管理代理256递增预取成功计数器,以便表明先前被预取的数据块已被访问。
在块550中,由于Data Blockn不在高速缓冲存储器216中,如果需要的话,高速缓存管理代理256在高速缓冲存储器216中为Data Blockn腾出空间。在块552中,高速缓存管理代理256发出针对Data Blockn的读请求到存储设备230。处理从块552进行到块554(图5E)。
在图5E中,在块554中,由于Data Blockn已被访问,高速缓存管理代理256确定Data Blockn+1可能被访问的概率(即P(Bn+1|Bn))是否大于先读阈值。如果是的话,处理进行到块556,否则处理进行到块562。
在块556中,如果需要的话(见图6),高速缓存管理代理256在高速缓冲存储器216中为Data Blockn+1腾出空间。在块558中,高速缓存管理代理256预取Data Blockn+1。在块560中,高速缓存管理代理256递增预取计数器。
在块562中,高速缓存管理代理256返回数据和/或确认。在块564中,高速缓存管理代理256更新执行计数器。
在图5E中,在块566中处理管理命令。在块568中,高速缓存管理代理256确定预取成功计数器除以预取计数器之后是否大于成功阈值。也就是说,高速缓存管理代理256确定所预取的数据块被访问的次数百分比是否超出成功阈值。如果是的话,处理进行到块570,否则处理进行到块572。在块572中,高速缓存管理代理256更新所述先读阈值,并且处理进行到块570。在块570中,例如高速缓存管理代理256基于访问统计量(例如,在特定时间周期期间接收的写请求相对读请求的数量)更新跳跃计数阈值。处理从块570进行到块508(图5A)。例如,成功阈值可以设置在60%(也就是说,如果60%的读命令能够访问所预取的数据块,则预取策略被认为是成功的)。每当读命令访问所预取的数据块时,预取成功计数器就递增。每当数据块被预取到高速缓冲存储器216中时,预取计数器就递增。于是,如果预取成功计数器/预取计数器大于该成功阈值,则当前预取策略被确定是成功的。另一方面,如果预取成功计数器/预取计数器不大于该成功阈值,则先读阈值被调整,以使得较少的数据块被预取。
因此,I/O处理器210保持跳跃计数阈值、先读阈值和成功阈值。基于先前的高速缓冲策略在成功阈值方面的成功程度,跳跃计数阈值以及可能的话还有先读阈值可以被动态更新。跳跃计数阈值可以基于所观测的访问模式而被动态更新。在特定实施例中,缺省的一组已设定阈值可以在制造环境中被编程到设备中。
图7示出了根据特定实施例为了在高速缓冲存储器216中为数据块腾出空间而执行的操作。在块700中,高速缓存管理代理256接收在高速缓冲存储器216中腾出空间的请求。在块702中,高速缓存管理代理256确定高速缓冲存储器216是否已满。如果高速缓冲存储器216已满,则处理进行到块704,否则处理结束。在块704中,高速缓存管理代理256确定高速缓冲存储器216中的所有数据块是否已经在预定时间间隔内(例如在最近的70秒内)被访问。如果是的话,处理进行到块706,否则处理进行到块708。在块706中,高速缓存管理代理256逐出为最近的计算设备(例如客户机)保存的数据块并且处理结束。在块708中,高速缓存管理代理256逐出被访问时间最早的数据块。
特定实施例使用基于频率的先有信息以及网络向量距离来为跨越不可预知的网络的客户机提供服务。此外,特定实施例依靠具有强大的计算和存储能力的I/O处理器210来实施原地(in-situ)学习技术,例如贝叶斯网络和通信量建模。该信息例如被用来更新跳跃阈值。
因此,在特定实施例中,高速缓存管理代理256能够学习访问模式。所述访问模式可以用概率来表示(也就是说,给定的I/O请求在所有I/O请求中所占的百分比)。先验概率(即在给定在前I/O请求Y的情况下,I/O请求X的概率,例如P(X|Y))也被保持。这种学习被用于指导预取行为。
另外,特定实施例跟踪不同请求方的身份,所述请求方具有最远的距离(例如,由往返时间(RTT)测量,并用跳跃计数或起动校准/分组网际探测来表示)。然后,高速缓存管理代理256在请求数据结构中把来自最远请求方的请求提升到较前的位置(例如提升到开头或接近开头)。
特定实施例集成网络动态、对于访问模式的计算设备学习以及其他统计技术来形成能够适应于工作负载和异类客户机网络延迟的动态高速缓冲策略。也就是说,特定实施例提供一种自我调谐并且自适应的高速缓冲策略。
特定实施例使存储设备230能够变成以符合自主计算的方式自修复、自适应的系统。此外,为了提供最优请求动态,特定实施例支持网络延迟度量和访问模式学习。
特定实施例还允许通过有效地利用I/O处理器210带宽以使得I/O处理器210具有高效的性能,这是通过持续测量所观测的通信量模式并采取相应动作。
Intel、XScale和Xeon是因特尔公司在美国和/或国外的注册商标和/或一般的法律标记。Windows是微软公司在美国和/或国外的注册商标和/或一般的法律标记。
其他实施例细节
所描述的用于自适应高速缓冲的技术可以被实现为使用标准编程和/或工程技术来产生软件、固件、硬件或其任意组合的方法、设备和制造产品。这里使用的术语“制造产品”指的是在硬件逻辑(例如集成电路芯片、可编程门阵列(PGA)、专用集成电路(ASIC)等等)或诸如磁存储介质(例如硬盘驱动器、软盘、磁带等等)、光学存储(CD-ROM、光盘等等)、易失性和非易失性存储器设备(例如EEPROM、ROM、PROM、RAM、DRAM、SRAM、固件、可编程逻辑等等)的计算机可读介质中实现的代码或逻辑。计算机可读介质中的代码由处理器访问和执行。其中实现优选实施例的代码可以进一步通过传输介质来访问,或者通过网络从文件服务器上访问。在这种情况下,其中实施代码的制造产品可以包括传输介质,例如网络传输线路、无线传输介质、通过空间的信号传播、无线电波、红外信号等等。因此,“制造产品”可以包括其中实现代码的介质。另外,”制造产品”可以包括其中实现、处理和执行代码的硬件和软件组件的组合。当然,本领域技术人员应当认识到,在不脱离实施例的范围的情况下可以对这种配置进行各种修改,所述制造产品可以包括本领域已知的任何信息承载介质。
图5A、5B、5C、5D、5E和7示出了以特定顺序发生的特定事件。在替换实施例中,特定操作可以以不同顺序来执行、修改或移除。此外,可以在上述逻辑中添加操作并且仍然符合上述实施例。此外,这里描述的操作可以顺序地发生或者可以并行处理特定操作。此外,可以由单个处理单元或者分布式处理单元来执行操作。
图8示出了计算系统800的一个实施例,例如有计算设备102a、102b、102c、102d、102e、103和/或200。系统800可以包括处理器802(例如微处理器)、存储器804(例如易失性存储器设备)和存储装置806(例如非易失性处理装置,比如磁盘驱动器、光盘驱动器、磁带驱动器等等)。存储装置806可以包括内部存储设备或者附属的或网络可访问的存储装置。存储装置806中的程序被载入到存储器804中,并且由处理器802以本领域已知的方式执行。该系统进一步包括允许与网络进行通信的网卡808,所述网络例如是以太网、光纤通道仲裁环等等。此外,在特定实施例中,所述系统可以包括存储控制器809。如上所述,特定网络设备可以具有多个网卡。输入设备810用于提供用户输入给处理器802,并且可以包括键盘、鼠标、指示笔、麦克风、触敏显示屏或者本领域已知的任何其他激活或输入机制。输出设备812能够呈现从处理器802或者诸如显示监控器、打印机、存储装置等其他组件传送来的信息。
前面已经提出了多种实施例以用于说明和描述的目的,但是并不意图穷尽实施例或者把实施例限制到所公开的精确形式。根据上述教导,各种修改和变化是可行的。实施例的范围不由上面的具体描述限定,而是由所附权利要求书来限定。上面的说明书、例子和数据提供了对于实施例组合的制造和使用的完整说明。由于在不脱离上述实施例的精神和范围的情况下能够设想许多实施例,因此所述实施例落在所附权利要求书的范围内。
Claims (36)
1、一种用于高速缓存管理的方法,包括:
接收针对访问第一数据块的输入请求;
基于对第一数据块的访问确定第二数据块可能被访问的概率;
确定该概率是否超出先读阈值;以及
响应于确定该概率超出该先读阈值,预取第二数据块。
2、权利要求1的方法,进一步包括:
确定与第一数据块相关的跳跃计数是否大于跳跃计数阈值;以及
响应于确定该跳跃计数大于该跳跃计数阈值,在请求数据结构中把所述读请求提升到不同的位置。
3、权利要求1的方法,进一步包括:
更新第一数据块可能被访问的概率。
4、权利要求1的方法,进一步包括:
当预取第二数据块时更新预取计数器。
5、权利要求1的方法,其中,所述输入请求是写请求,并且该方法进一步包括:
高速缓存第一数据块;
提交该写请求给存储设备;以及
发送表明该写请求已经被提交的确认。
6、权利要求5的方法,进一步包括:
在提交所述写请求之后将第一数据块写入到所述存储设备。
7、权利要求1的方法,进一步包括:
确定将要从高速缓冲存储器中逐出数据块;
确定当前在该高速缓冲存储器中的各数据块是否已经在预定时间间隔内被访问;
响应于确定各数据块已经在该预定时间间隔内被访问,逐出该高速缓冲存储器中的为最近的计算设备保存的数据块;以及
响应于确定至少一个数据块尚未在该预定时间间隔内被访问,逐出高速缓冲存储器中的被访问时间最早的数据块。
8、权利要求7的方法,其中,确定哪一个计算设备是最近的计算设备是基于与来自该计算设备的请求相关的跳跃计数。
9、权利要求1的方法,其中,所述输入请求是读请求,并且该方法进一步包括:
确定第一数据块是否在高速缓冲存储器中;
响应于确定第一数据块在高速缓冲存储器中,确定第一数据块是否先前被预取;以及
响应于确定第一数据块先前被预取,递增预取成功计数器。
10、权利要求1的方法,进一步包括:
确定所预取的数据块被访问的次数百分比是否超出成功阈值;
响应于确定所述百分比不超出该成功阈值,更新所述先读阈值。
11、权利要求1的方法,进一步包括:
基于访问统计量更新跳跃计数阈值。
12、权利要求1的方法,其中,使用贝叶斯网络技术来确定所述概率。
13、一种与数据存储装置通信的系统,包括:
具有输入/输出(I/O)处理器的计算设备;
能够管理对该数据存储装置的输入/输出(I/O)访问的存储控制器,其中该数据存储控制器耦合到该计算设备;以及
位于该计算设备处的高速缓存管理代理,其中该高速缓存管理代理能够执行以下操作:接收针对访问第一数据块的输入请求;基于对第一数据块的访问确定第二数据块可能被访问的概率;确定该概率是否超出先读阈值;以及响应于确定该概率超出该先读阈值,预取第二数据块。
14、权利要求13的系统,其中,所述高速缓存管理代理能够执行以下操作:确定与第一数据块相关的跳跃计数是否大于跳跃计数阈值;以及响应于确定该跳跃计数大于该跳跃计数阈值,在请求数据结构中把所述读请求提升到不同的位置。
15、权利要求13的系统,其中,所述高速缓存管理代理能够更新第一数据块可能被访问的概率。
16、权利要求13的系统,其中,所述高速缓存管理代理能够在预取第二数据块时更新预取计数器。
17、权利要求13的系统,其中,所述输入请求是写请求,并且所述高速缓存管理代理能够执行以下操作:高速缓存第一数据块;提交该写请求给存储设备;以及发送表明该写请求已经被提交的确认。
18、权利要求17的系统,其中,所述高速缓存管理代理能够在提交所述写请求之后将第一数据块写入到所述存储设备。
19、权利要求13的系统,其中,所述高速缓存管理代理能够执行以下操作:确定将要从高速缓冲存储器中逐出数据块;确定当前在该高速缓冲存储器中的各数据块是否已经在预定时间间隔内被访问;响应于确定各数据块已经在该预定时间间隔内被访问,逐出该高速缓冲存储器中的为最近的计算设备保存的数据块;以及响应于确定至少一个数据块尚未在该预定时间间隔内被访问,逐出高速缓冲存储器中的被访问时间最早的数据块。
20、权利要求19的系统,其中,确定哪一个计算设备是最近的计算设备是基于与来自该计算设备的请求相关的跳跃计数。
21、权利要求13的系统,其中,所述输入请求是读请求,并且所述高速缓存管理代理能够执行以下操作:确定第一数据块是否在高速缓冲存储器中;响应于确定第一数据块在高速缓冲存储器中,确定第一数据块是否先前被预取;以及响应于确定第一数据块先前被预取,递增预取成功计数器。
22、权利要求13的系统,其中,所述高速缓存管理代理能够执行以下操作:确定所预取的数据块被访问的次数百分比是否超出成功阈值;以及响应于确定所述百分比不超出该成功阈值,更新所述先读阈值。
23、权利要求13的系统,其中,所述高速缓存管理代理能够基于访问统计量更新跳跃计数阈值。
24、权利要求13的系统,其中,使用贝叶斯网络技术来确定所述概率。
25、一种制造产品,其包括其中存储有指令的存储介质,当计算设备执行所述指令时会导致以下操作:
接收针对访问第一数据块的输入请求;
基于对第一数据块的访问确定第二数据块可能被访问的概率;
确定该概率是否超出先读阈值;以及
响应于确定该概率超出该先读阈值,预取第二数据块。
26、权利要求25的制造产品,其中,当执行所述指令时会进一步导致以下操作:
确定与第一数据块相关的跳跃计数是否大于跳跃计数阈值;以及
响应于确定该跳跃计数大于该跳跃计数阈值,在请求数据结构中把所述读请求提升到不同的位置。
27、权利要求25的制造产品,其中,当执行所述指令时会进一步导致以下操作:
更新第一数据块可能被访问的概率。
28、权利要求25的制造产品,其中,当执行所述指令时会进一步导致以下操作:
当预取第二数据块时更新预取计数器。
29、权利要求25的制造产品,其中,所述输入请求是写请求,并且当执行所述指令时会进一步导致以下操作:
高速缓存第一数据块;
提交该写请求给存储设备;以及
发送表明该写请求已经被提交的确认。
30、权利要求29的制造产品,其中,当执行所述指令时会进一步导致以下操作:
在提交所述写请求之后将第一数据块写入到该存储设备。
31、权利要求25的制造产品,其中,当执行所述指令时会进一步导致以下操作:
确定将要从高速缓冲存储器中逐出数据块;
确定当前在该高速缓冲存储器中的各数据块是否已经在预定时间间隔内被访问;
响应于确定各数据块已经在该预定时间间隔内被访问,逐出该高速缓冲存储器中的为最近的计算设备保存的数据块;以及
响应于确定至少一个数据块尚未在该预定时间间隔内被访问,逐出高速缓冲存储器中的被访问时间最早的数据块。
32、权利要求31的制造产品,其中,确定哪一个计算设备是最近的计算设备是基于与来自该计算设备的请求相关的跳跃计数。
33、权利要求25的制造产品,其中,所述输入请求是读请求,并且当执行所述指令时会进一步导致以下操作:
确定第一数据块是否在高速缓冲存储器中;
响应于确定第一数据块在高速缓冲存储器中,确定第一数据块是否先前被预取;以及
响应于确定第一数据块先前被预取,递增预取成功计数器。
34、权利要求25的制造产品,其中,当执行所述指令时会进一步导致以下操作:
确定所预取的数据块被访问的次数百分比是否超出成功阈值;
响应于确定所述百分比不超出该成功阈值,更新所述先读阈值。
35、权利要求25的制造产品,其中,当执行所述指令时会进一步导致以下操作:
基于访问统计量更新跳跃计数阈值。
36、权利要求25的制造产品,其中,使用贝叶斯网络技术来确定所述概率。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/746,051 | 2003-12-24 | ||
US10/746,051 US7353339B2 (en) | 2003-12-24 | 2003-12-24 | Adaptive caching |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1961286A true CN1961286A (zh) | 2007-05-09 |
CN100565450C CN100565450C (zh) | 2009-12-02 |
Family
ID=34700605
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004800386463A Expired - Fee Related CN100565450C (zh) | 2003-12-24 | 2004-12-17 | 自适应高速缓存 |
Country Status (5)
Country | Link |
---|---|
US (1) | US7353339B2 (zh) |
EP (1) | EP1697832A1 (zh) |
CN (1) | CN100565450C (zh) |
TW (1) | TWI292095B (zh) |
WO (1) | WO2005066767A1 (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102111448A (zh) * | 2011-01-13 | 2011-06-29 | 华为技术有限公司 | 分布式哈希表dht存储系统的数据预取方法、节点和系统 |
CN105027211A (zh) * | 2013-01-31 | 2015-11-04 | 惠普发展公司,有限责任合伙企业 | 自适应粒度行缓冲器高速缓存 |
CN105955709A (zh) * | 2016-04-16 | 2016-09-21 | 浙江大学 | 基于机器学习的预取能效优化自适应装置及方法 |
CN110324366A (zh) * | 2018-03-28 | 2019-10-11 | 阿里巴巴集团控股有限公司 | 数据处理方法、装置及系统 |
CN111190836A (zh) * | 2018-11-14 | 2020-05-22 | 爱思开海力士有限公司 | 具有高速缓存系统的存储系统 |
CN112052097A (zh) * | 2020-10-15 | 2020-12-08 | 腾讯科技(深圳)有限公司 | 虚拟场景的渲染资源处理方法、装置、设备及存储介质 |
CN113435601A (zh) * | 2020-03-23 | 2021-09-24 | 华为技术有限公司 | 数据预取方法、装置以及存储设备 |
Families Citing this family (42)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8914383B1 (en) * | 2004-04-06 | 2014-12-16 | Monster Worldwide, Inc. | System and method for providing job recommendations |
US20050240574A1 (en) * | 2004-04-27 | 2005-10-27 | International Business Machines Corporation | Pre-fetching resources based on a resource lookup query |
US20060126520A1 (en) * | 2004-12-15 | 2006-06-15 | Cisco Technology, Inc. | Tape acceleration |
CA2513016A1 (en) | 2005-07-22 | 2007-01-22 | Research In Motion Limited | A secure method of synchronizing cache contents of a mobile browser with a proxy server |
CA2513022A1 (en) * | 2005-07-22 | 2007-01-22 | Research In Motion Limited | System and method for communicating state management between a browser user-agent and a mobile data server |
CA2513018A1 (en) * | 2005-07-22 | 2007-01-22 | Research In Motion Limited | Method for training a proxy server for content delivery based on communication of state information from a mobile device browser |
CA2513019A1 (en) * | 2005-07-22 | 2007-01-22 | Research In Motion Limited | A method for communicating state information between a server and a mobile device browser with version handling |
US8069270B1 (en) * | 2005-09-06 | 2011-11-29 | Cisco Technology, Inc. | Accelerated tape backup restoration |
US8266431B2 (en) * | 2005-10-31 | 2012-09-11 | Cisco Technology, Inc. | Method and apparatus for performing encryption of data at rest at a port of a network device |
US20070255613A1 (en) * | 2006-05-01 | 2007-11-01 | International Business Machines Corporation | Method and apparatus for execution of a process |
CN100426261C (zh) * | 2006-09-08 | 2008-10-15 | 华为技术有限公司 | 一种高速存储器预读方法及装置 |
JP2008204055A (ja) * | 2007-02-19 | 2008-09-04 | Hitachi Ltd | コンテンツ管理方法、ファイルサーバおよび読み出し制御プログラム |
US8768890B2 (en) * | 2007-03-14 | 2014-07-01 | Microsoft Corporation | Delaying database writes for database consistency |
CA2686136A1 (en) * | 2007-04-28 | 2008-11-06 | The Board Of Trustees Of The Leland Stanford Junior University | Dynamic and adjustable support devices |
CN101431464A (zh) * | 2007-11-06 | 2009-05-13 | 阿里巴巴集团控股有限公司 | 一种优选客户端之间数据传输路径的方法及其装置 |
US8464074B1 (en) | 2008-05-30 | 2013-06-11 | Cisco Technology, Inc. | Storage media encryption with write acceleration |
US8255562B2 (en) * | 2008-06-30 | 2012-08-28 | International Business Machines Corporation | Adaptive data throttling for storage controllers |
US9178959B2 (en) * | 2008-07-02 | 2015-11-03 | Alcatel Lucent | Method and apparatus for predicting value of caching content items |
US8537677B2 (en) * | 2009-10-13 | 2013-09-17 | Hewlett-Packard Development Company, L.P. | Incremental adaptive packet routing in a multi-dimensional network |
US8612374B1 (en) | 2009-11-23 | 2013-12-17 | F5 Networks, Inc. | Methods and systems for read ahead of remote data |
US9785561B2 (en) * | 2010-02-17 | 2017-10-10 | International Business Machines Corporation | Integrating a flash cache into large storage systems |
US8589640B2 (en) * | 2011-10-14 | 2013-11-19 | Pure Storage, Inc. | Method for maintaining multiple fingerprint tables in a deduplicating storage system |
CN102323898A (zh) * | 2011-09-02 | 2012-01-18 | 深圳中兴网信科技有限公司 | 一种缓存调度方法和系统 |
US8756292B2 (en) * | 2012-02-24 | 2014-06-17 | Sap Portals Israel Ltd | Smart cache learning mechanism in enterprise portal navigation |
EP2872986A4 (en) * | 2012-07-12 | 2016-03-23 | Hewlett Packard Development Co | PROVISION OF SUBMITTED DATA |
US9021210B2 (en) * | 2013-02-12 | 2015-04-28 | International Business Machines Corporation | Cache prefetching based on non-sequential lagging cache affinity |
US10929551B2 (en) * | 2013-03-13 | 2021-02-23 | Comcast Cable Communications, Llc | Methods and systems for managing data assets |
JP6191240B2 (ja) * | 2013-05-28 | 2017-09-06 | 富士通株式会社 | 変数更新装置、変数更新システム、変数更新方法、変数更新プログラム、変換プログラム、及びプログラム変更検証システム |
US9304928B2 (en) * | 2013-07-26 | 2016-04-05 | Netapp, Inc. | Systems and methods for adaptive prefetching |
US10509769B1 (en) * | 2014-06-12 | 2019-12-17 | EMC IP Holding Company LLC | Method to efficiently track I/O access history |
US10362125B2 (en) * | 2014-09-18 | 2019-07-23 | Intel Corporation | Technologies for pre-action execution |
US10346360B1 (en) * | 2015-09-30 | 2019-07-09 | EMP IP Holding Company LLC | Managing prefetching of data in storage systems |
US10437511B2 (en) * | 2016-11-22 | 2019-10-08 | International Business Machines Corporation | Data access on tape |
WO2018108250A1 (en) * | 2016-12-13 | 2018-06-21 | Abb Schweiz Ag | A multi-client/multi-server managing method and system with a routine of rejection of already connected clients for balancing the system |
US10645133B2 (en) * | 2017-07-12 | 2020-05-05 | Loon Llc | Method and system for delivering content over transient access networks |
US11855898B1 (en) | 2018-03-14 | 2023-12-26 | F5, Inc. | Methods for traffic dependent direct memory access optimization and devices thereof |
US10678667B1 (en) | 2018-12-21 | 2020-06-09 | Micron Technology, Inc. | Holdup self-tests for power loss operations on memory systems |
CN111736998A (zh) * | 2020-06-18 | 2020-10-02 | 上海商汤智能科技有限公司 | 内存管理方法和相关产品 |
US11586557B2 (en) * | 2020-08-26 | 2023-02-21 | Micron Technology, Inc. | Dynamic allocation of buffers for eviction procedures |
US11599269B2 (en) * | 2021-03-17 | 2023-03-07 | Vmware, Inc. | Reducing file write latency |
US11860788B2 (en) * | 2021-09-08 | 2024-01-02 | Red Hat, Inc. | Prefetching data in a distributed storage system |
US11580025B1 (en) * | 2021-09-30 | 2023-02-14 | Advanced Micro Devices, Inc. | Cache prefetching with dynamic interleaving configuration modification |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE69326066T2 (de) * | 1992-03-25 | 2000-03-30 | Zilog, Inc. | Schnelle befehlsdekodierung in einem pipeline-prozessor |
US5805787A (en) * | 1995-12-29 | 1998-09-08 | Emc Corporation | Disk based disk cache interfacing system and method |
US6138213A (en) * | 1997-06-27 | 2000-10-24 | Advanced Micro Devices, Inc. | Cache including a prefetch way for storing prefetch cache lines and configured to move a prefetched cache line to a non-prefetch way upon access to the prefetched cache line |
US6385641B1 (en) * | 1998-06-05 | 2002-05-07 | The Regents Of The University Of California | Adaptive prefetching for computer network and web browsing with a graphic user interface |
US6442653B1 (en) * | 1999-06-24 | 2002-08-27 | International Business Machines Corporation | Data processing system, cache, and method that utilize a coherency state to indicate the latency of cached data |
US6721800B1 (en) * | 2000-04-10 | 2004-04-13 | International Business Machines Corporation | System using weighted next hop option in routing table to include probability of routing a packet for providing equal cost multipath forwarding packets |
US6928518B2 (en) * | 2001-11-01 | 2005-08-09 | Sun Microsystems, Inc. | Disk drive employing adaptive flushing of a write cache |
US6947756B2 (en) * | 2001-12-24 | 2005-09-20 | Telefonaktiebolaget Lm Ericsson | Method of balancing backhaul delays for a series of daisy chained radio base stations |
US6901486B2 (en) * | 2002-07-05 | 2005-05-31 | Hewlett-Packard Development Company, L.P. | Method and system for optimizing pre-fetch memory transactions |
US7080221B1 (en) * | 2003-04-23 | 2006-07-18 | Emc Corporation | Method and apparatus for managing migration of data in a clustered computer system environment |
-
2003
- 2003-12-24 US US10/746,051 patent/US7353339B2/en not_active Expired - Fee Related
-
2004
- 2004-12-17 EP EP20040814890 patent/EP1697832A1/en not_active Withdrawn
- 2004-12-17 CN CNB2004800386463A patent/CN100565450C/zh not_active Expired - Fee Related
- 2004-12-17 WO PCT/US2004/042756 patent/WO2005066767A1/en not_active Application Discontinuation
- 2004-12-20 TW TW93139621A patent/TWI292095B/zh active
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102111448A (zh) * | 2011-01-13 | 2011-06-29 | 华为技术有限公司 | 分布式哈希表dht存储系统的数据预取方法、节点和系统 |
WO2011144175A1 (zh) * | 2011-01-13 | 2011-11-24 | 华为技术有限公司 | 分布式哈希表dht存储系统的数据预取方法、节点和系统 |
CN102111448B (zh) * | 2011-01-13 | 2013-04-24 | 华为技术有限公司 | 分布式哈希表dht存储系统的数据预取方法、节点和系统 |
US8738861B2 (en) | 2011-01-13 | 2014-05-27 | Huawei Technologies Co., Ltd. | Data prefetching method for distributed hash table DHT storage system, node, and system |
CN105027211A (zh) * | 2013-01-31 | 2015-11-04 | 惠普发展公司,有限责任合伙企业 | 自适应粒度行缓冲器高速缓存 |
CN105027211B (zh) * | 2013-01-31 | 2018-09-21 | 慧与发展有限责任合伙企业 | 自适应粒度行缓冲器高速缓存 |
CN105955709B (zh) * | 2016-04-16 | 2018-02-27 | 浙江大学 | 基于机器学习的预取能效优化自适应装置及方法 |
CN105955709A (zh) * | 2016-04-16 | 2016-09-21 | 浙江大学 | 基于机器学习的预取能效优化自适应装置及方法 |
CN110324366A (zh) * | 2018-03-28 | 2019-10-11 | 阿里巴巴集团控股有限公司 | 数据处理方法、装置及系统 |
CN110324366B (zh) * | 2018-03-28 | 2022-07-29 | 阿里巴巴集团控股有限公司 | 数据处理方法、装置及系统 |
CN111190836A (zh) * | 2018-11-14 | 2020-05-22 | 爱思开海力士有限公司 | 具有高速缓存系统的存储系统 |
CN111190836B (zh) * | 2018-11-14 | 2023-08-29 | 爱思开海力士有限公司 | 具有高速缓存系统的存储系统 |
CN113435601A (zh) * | 2020-03-23 | 2021-09-24 | 华为技术有限公司 | 数据预取方法、装置以及存储设备 |
CN112052097A (zh) * | 2020-10-15 | 2020-12-08 | 腾讯科技(深圳)有限公司 | 虚拟场景的渲染资源处理方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
TW200601045A (en) | 2006-01-01 |
CN100565450C (zh) | 2009-12-02 |
EP1697832A1 (en) | 2006-09-06 |
US20050144394A1 (en) | 2005-06-30 |
US7353339B2 (en) | 2008-04-01 |
WO2005066767A1 (en) | 2005-07-21 |
TWI292095B (en) | 2008-01-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100565450C (zh) | 自适应高速缓存 | |
US10970202B1 (en) | Managing input/output (‘I/O’) requests in a storage system that includes multiple types of storage devices | |
US9507720B2 (en) | Block storage-based data processing methods, apparatus, and systems | |
US9158687B2 (en) | Method and apparatus for processing fast asynchronous streams | |
US20030212865A1 (en) | Method and apparatus for flushing write cache data | |
US7555599B2 (en) | System and method of mirrored RAID array write management | |
US7899996B1 (en) | Full track read for adaptive pre-fetching of data | |
Koller et al. | Centaur: Host-side ssd caching for storage performance control | |
Huggahalli et al. | Direct cache access for high bandwidth network I/O | |
US9652414B1 (en) | Balancing response times for synchronous I/O requests having different priorities | |
US9830266B1 (en) | Techniques for data prefetching | |
US8732402B2 (en) | Managing track discard requests to include in discard track messages | |
US8601210B2 (en) | Cache memory allocation process based on TCPIP network and/or storage area network array parameters | |
US9247003B2 (en) | Determining server write activity levels to use to adjust write cache size | |
US9501419B2 (en) | Apparatus, systems, and methods for providing a memory efficient cache | |
JP2015516613A (ja) | データを管理する方法、コンピュータ・プログラム、およびシステム | |
KR20160081815A (ko) | 데이터 관리 메커니즘을 구비하는 전자 시스템 및 그것의 동작 방법 | |
US10097658B2 (en) | Traffic control of packet transfer | |
US7277991B2 (en) | Method, system, and program for prefetching data into cache | |
US11513849B2 (en) | Weighted resource cost matrix scheduler | |
US10482019B2 (en) | Storage apparatus and control method thereof | |
US7103683B2 (en) | Method, apparatus, system, and article of manufacture for processing control data by an offload adapter | |
KR20240106637A (ko) | 페이지 폴트 핸들링 장치 및 방법 | |
US20110047332A1 (en) | Storage system, cache control device, and cache control method | |
JP2024533612A (ja) | 擬似lru補足時期情報を用いた再参照間隔予測(rrip) |
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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20091202 Termination date: 20101217 |