发明名称 Systems and methods for adaptive prefetching
摘要 Systems and methods which provide for improved prefetching schemes for caching data in a storage network are described. In one embodiment, a dynamically adaptive prefetching mechanism based on block access history information and prior effectiveness of prefetching is provided. Embodiments may take into account prefetch efficiency; a dynamic value indicating the usefulness of past prefetches, prefetch wastage, in conjunction with prefetch resources available at any point in time, to determine the number of blocks to read-ahead during a prefetch. Such embodiments provide improvements over file-based prefetching and previous block schemes, as they provide a finer grain of control over both prefetch block selection, and the number of blocks to prefetch based on block (or block range) access history.
申请公布号 US9304928(B2) 申请公布日期 2016.04.05
申请号 US201313951662 申请日期 2013.07.26
申请人 NetApp, Inc. 发明人 Udayashankar Kishore Kasi;Krishnan Swetha;Srinivasan Kiran
分类号 G06F12/08 主分类号 G06F12/08
代理机构 Pequignot + Myers LLC 代理人 Pequignot Matthew A.;Pequignot + Myers LLC
主权项 1. A method for prefetching data in a storage system, said method comprising: determining, by at least one processing device, a block range of data to fetch; for a storage volume, determining block range access history information by, identifying one or more of multiple block ranges that have been accessed in the storage volume; andbased on patterns of access to the block ranges, determining for each of one or more of the accessed block ranges, a probability value representing a probability that a particular one of the block ranges will be accessed subsequent to accessing the block range, wherein the probability is relative to a total probability of accesses to other of the block ranges subsequent to accessing the block range; dynamically adapting, by the at least one processing device, a breadth and a depth of the block range to fetch based, at least in part, on the block range access history information, wherein the block range breadth determines an identity of the block range to fetch and the block range depth determines a length of the block range to fetch; fetching the adapted block range; and storing the fetched adapted block range in cache memory.
地址 Sunnyvale CA US