使用回写式高速缓存单元管理数据的系统、方法和计算机程序产品的制作方法

文档序号:6456786阅读:205来源:国知局
专利名称:使用回写式高速缓存单元管理数据的系统、方法和计算机程序产品的制作方法
技术领域
本发明涉及使用回写式高速緩存单元管理数据的方法、系统和计算机 程序产品。
背景技术
数据会随着时间的推移而发展。在许多应用中,需要检索以前的数据
版本。这些应用之一是连续数据保护(CDP)应用。在此引入作为参考的 Perry等人的美国专利申请公开第2005/0066118号以及美国专利申请公开 第2005/0193272号描述了用于连续数据保护的现有技术设备和方法。
已经提出了各种数据结构来多M宗数据随时间的iO艮。以下两篇在此引 入作为参考的论文示出了两种称为B树和BTR树的数据结构,这两篇论 文分别为Jiang、 Salzberg、 Lomet、 Barrena在2000年的第26届VLDB 研讨会上所发表的"The BT-Tree: A Branched and Temporal Access Method"以及Jiang、 Salzberg、 Lomet、 Barrena在2003年的时空数据 库进展研讨会上发表的"The BT-Tree: Path-Defined Version-Range Splitting in a Branched and Temporal Structure"。
这些分支时态索引可以在满足特定假设的情况下进行维护。根据第一 假设,按增大的时间戳的顺序插入分支时态索引的表项。
此外,更新这些结构相对复杂并且涉及复制数据,甚至复制元数据。 此外,维护这些数据结构可能需要基准计数器。
以下在此引入作为参考的美国专利申请和美国专利也描述了各种管理 数据的方法
Rowan等人的美国专利申请7〉开第2005/0066222号, Rowan等人的美国专利申请公开第2005/0076262号,Rowan等人的美国专利申请公开第2005/0065962号, Rowan等人的美国专利申请公开第2005/0063374号, Rowan等人的美国专利申请公开第2005/0076264号, Rowan等人的美国专利申请7>开第2005/0066225号, Rowan等人的美国专利申请公开第2005/0076261号, Perry等人的美国专利申请>^开第2005/0066118号,以及 Kekre等人的美国专利申请公开第2005/0071379号,以及 标题为"Persistent Snapshot Methods "的美国专利申请公开第 2004/0117572号。
存在提供能够管理数据,尤其是使用回写式高速緩存单元管理数据的 设备、计算积4呈序产品和方法的不断增加的需要。

发明内容
根据第一方面,提供了一种管理数据的方法。所述方法包括提供与 至少一个存储单元相连的回写式高速緩存单元;接收将新的数据版本写入 特定高速緩存数据分配单元的请求;响应于数据存储策略,判定是覆盖緩 存在所述特定高速緩存数据分配单元中的緩存的数据版本,还是在将所述 新的数据版本写入所述特定高速緩存数据分配单元之前执行将所述緩存的 数据版本离台到第一存储单元;接收读取与特定时刻对应的数据版本的请 求以及扫描代表写入操作的第 一数据结构和代表回复操作的第二数据结构 以确定所请求的数据版本的位置。
根据一个实施例,所述方法包括将不同的数据版本离台到第一和第二 存储单元以及维护指示将哪个数据版本从所述第一存储单元发送到所述第 二存储单元的笫三数据结构。根据一个实施例,所述方法包括维护指示要 被登台到所述高速緩存的数据版本的位置的第四数据结构。
根据一个实施例,所述方法包括使用截听来提供所请求的数据版本的 位置。
根据一个实施例,所述方法包括将緩存的数据版本离台到第一存储单元以提供离台的数据版本以及将先前离台到所述第一存储单元的旧的数据 版本发送到第二存储单元。
根据一个实施例,发送所述旧的数据版本包括生成包含发送所述旧的
数据版本的计时的伪入口 (dummy entry)。
根据一个实施例,发送所述旧的数据版本包括将所述旧的数据版本登 台到回写式高速緩存单元以及将所述旧的数据版本从所述回写式高速緩存 单元离台到所述第二存储单元。
根据一个实施例,所述方法包括响应于回复操作,将旧的数据版本从 所述第二存储单元物理地复制到所述第一存储单元,同时更新所述第四数 据结构。
根据一个实施例,响应于数据存储策略,判定是否覆盖緩存的数据版 本包括判定多版本高速緩存单元是否可以存储额外的数据版本。
根据一个实施例,所述方法包括将不同的数据版本离台到单个存储单元。
根据第二方面,提供了一种管理数据的方法,所述方法包括提供第 一级存储器单元和第二级存储器单元;其中所述第一级存储器单元包括第 一高速緩存单元和第二高速緩存单元并且其中所述第二级存储器单元包括 第 一存储单元和第二存储单元;接收将新的数据版本写入所述第 一 高速緩
存单元的特定高速緩存数据分配单元的请求;将所述新的数据版;^存在 所述特定高速緩存数据分配单元处,以及响应于数据存储策略,将当前存 储在所述特定高速緩存数据分配单元中的緩存的数据版本离台到所述第一 存储单元和所述第二存储单元。
根据第三方面,提供了 一种包括计算机可用介质的计算机程序产品, 所述计算机可用介质包含计算机可读程序,其中当所述计算机可读程序在 计算机上执行时,可使所述计算机执行以下操作接收将新的数据版本写 入特定高速緩存数据分配单元的请求;响应于数据存储策略,判定是覆盖 緩存在所述特定高速緩存数据分配单元中的緩存的数据版本,还是在将所 述新的数据版本写入所述特定高速緩存数据分配单元之前执行将所述緩存的数据版本离台到第一存储单元;接收读取与特定时刻对应的数据版本的 请求以及扫描代表写入操作的第 一数据结构和代表回复操作的第二数据结 构以确定所请求的数据版本的位置。
根据第四方面,提供了 一种包括计算机可用介质的计算机程序产品,
所述计算机可用介质包含计算机可读程序,其中当所述计算机可读程序在 计算机上执行时,可使所述计算机执行以下操作接收将新的数据版本写 入第一高速緩存单元的特定高速緩存数据分配单元的请求;将所述新的数 据版員存在所述特定高速緩存数据分配单元处,以及响应于数据存储策 略,将当前存储在所述特定高速緩存数据分配单元中的緩存的数据版本离 台到第二级存储器单元;其中所述新的数据版本和所述緩存的数据版本以 外的数据版本存储在属于同 一存储器级别的两个不同存储器单元处。
根据第五方面,提供了一种包括第一高速緩存单元、第二高速緩存单 元、第一存储单元以及第二存储单元的系统;其中所述系统适于接收将新 的数据版本写入所述第 一 高速緩存单元的特定高速緩存数据分配单元的请 求;将所述新的数据版;^存在所述特定高速緩存数据分配单元处,以及 响应于数据存储策略,将当前存储在所述特定高速緩存数据分配单元中的 緩存的数据版本离台到所述第一和第二存储单元。


现在将仅通过实例的方式参考以下附图描述本发明的优选实施例,这 些附图是
图1A示出了根据本发明的进一步实施例的管理数据的系统; 图1B示出了根据本发明的另一实施例的写入、读取登台和离台操作 的示例性序列;
图1C示出了根据本发明的另一实施例的写入、读取登台和离台操作 的示例性序列;
图1D示出了根据本发明的进一步实施例的写入、读取登台和离台操 作的示例性序列;图IE示出了根据本发明的进一步实施例的写入、读取登台和离台操 作的示例性序列;
图IF示出了根据本发明的实施例的第一数据结构和第二数据结构的 两个部分;
图2示出了根据本发明的实施例的写入操作和回复操作的示例性序
列;
图3示出了根据本发明的实施例的写入操作和回复操作的示例性序
列;
图4示出了根据本发明的另一实施例的写入操作和回复操作的示例性
序列;
图5示出了根据本发明的实施例的检索数据版本的方法;
图6示出了根据本发明的实施例的粗略分析;
图7a和7b示出了根据本发明的实施例的全局精细分析;
图8示出了根据本发明的实施例的管理数据的方法;
图9A示出了根据本发明的另一实施例的管理数据的方法;以及
图9B示出了才艮据本发明的进一步实施例的管理数据的方法。
具体实施例方式
根据优选实施例,本发明提供了使用回写式高速緩存单元存储和检索 多个数据版本的方法、系统和计算机程序产品。
根据本发明的实施例,数据被写入回写式高速緩存单元以提供緩存的 数据版本,并且所述緩存的数据版本以后可以被离台到第一存储单元以提 供离台的数据版本。所述离台的数据版本还可以称为当前数据版本。根据 本发明的实施例,当前数据版本和旧的数据版;^储在同 一逻辑存储单元 中。要指出的是,本申请通篇中提到的术语"存储单元"可以包括逻辑存 储单元或物理存储单元。逻辑存储单元可以是LUN或巻。要指出的是, 多个逻辑存储单元可以位于单个物理存储单元中。
根据本发明的实施例,可以提供支持多个数据版本的高速緩存单元(多版本高速緩存单元)。因此,可以延迟特定数据版本的离台,直到预定数 量的版本已被存储在所述高速緩存单元中为止。
根据本发明的另 一实施例,处理当前数据版本的方式与处理旧的数据 版本的方式不同。所述不同的处理通常包括将旧的数据版本存储在逻辑上 分离的存储单元中。该实施例还称为分布式实施例并且支持该实施例的系 统具有分布式体系结构。
根据本发明的另一实施例,当前数据版本和旧的数据版^储在同一 数据存储单元中。该实施例称为集中式实施例并且支持该实施例的系统具 有集中式体系结构。
根据本发明的进一步实施例,提供了分布式实施例和集中式实施例的 组合。
根据本发明的进一步实施例,緩存的数据版本还存储在非易失性存储 器单元中。
根据本发明的各种实施例,提供了多个高速緩存单元和多个数据存储 单元。可以在这些高速緩存单元之间定义各种关系并且提供多个数据存储 单元。
便利地,集中式体系结构包括高速緩存和第一存储单元。所述第一存 储单元便利地为永久性存储器单元并且它存储当前数据版本和旧的数据版 本。分布式体系结构包括高速緩存、第一存储单元和第二存储单元,其中 当前数据版本存储在所述第 一存储单元中并且旧的数据版本存储在所述第 二存储单元中。
便利地,分布式体系结构维护两个指示写入操作和回复操作的数据结 构以及诸如前向lt据结构和后向lt据结构之类的笫三和第四数据结构。所 述前向数据结构可以是前向位图并且所述后向数据结构可以是反向位图。
便利地,反向位图和前向位图按照诸如盘之类的逻辑单元号(LUN)进行 分配,其中每个位图中的表项都与诸如轨道之类的数据分配单元相关联。
要指出的是,可以在不偏离本发明的精神的情况下提供位图与逻辑(或 物理)存储单元以及数据分配单元之间的其他关联。例如,数据分配单元可以具有固定大小、可变大小,可以大于高速緩存页,小于或等于高速緩 存页等。
便利地,数据分配单元大于高速緩存页并且高速緩存知道页与数据分 配单元之间的关联。便利地,元数据(例如,时间戳)按照数据分配单元 进行存储。登台和离台操作可以在不同于数据分配单元的存储内存
(storage memory)部分上执行。所述高速緩存支持部分数据分配单元登 台和离台操作。
每个位图对于每个数据分配单元都包含表项。所述前向位图协助判定 是否应将数据版本从所述第 一存储单元复制到所述第二存储单元。所述反 向位图指示是将最近更新的数据版M储在所述第 一存储单元还是所述第 二存储单元中。所述反向位图通常在回复操作期间使用。回复操作可使旧 的数据版本被视为最近更新的数据版本。
<更利地,所述高速緩存只能存储一个数据版本。当指向特定数据分配 单元的新的写入请求到达时,系统可以强制所述高速緩存将当前緩存在所 述数据分配单元中的緩存的数据版本离台到存储单元之一。此操作称为强 制离台。根据本发明的另一实施例,只有緩存的数据版本的子集应^J^送 到存^i殳备,因此,仅当需要保存该緩存的数据版本时,系统才执行强制 离台。
根据本发明的另 一实施例,高速緩存可以存储一个以上的数据版本。 可以离台旧的版本以释放高速緩存空间。
根据本发明的实施例,定义了数据存储策略。该策略判定是否将緩存 在数据分配单元中的緩存的数据版本发送到存储单元,尤其是在将新的数 据版本写入该数据分配单元之前。便利地,所述数据存储策略定义数据存 储粒度。所述数据存储粒度设置由一个(或无)离台的数据版本表示的离 台时段的长度。如果在离台时段期间生成多个緩存的数据版本,则只离台 这些多个緩存的数据版本中的一个版本,以便提供表示离台时段的离台的 数据版本。通常,离台的数据版本是在离台时段期间緩存的最后一个緩存 的数据版本。根据本发明的实施例,定义了多个数据存储粒度。通常,所述数据存 储粒度随着数据版本变旧而变得粗略。所述数据存储粒度可以对诸如写入 操作、登台操作、离台操作之类的事件做出响应,并且还会对应用生成的 事件做出响应。
所述数据存储策略可以定义一个或多个相关性窗口 。对于每个相关性 窗口,数据存储粒度可以是固定的,但是并非必须如此。
每个写入操作与离台操作之间的延迟以及数据存储策略的应用减少了 离台操作的次数。
便利地,所提出的解决方案不需要索引扫描并且不会增加索引的大小, 也不会引入其他用户数据传输(也称为数据输入/输出)。
便利地,可以通过执行强制离台操作或通过扫描高速緩存的数据分配 (不一定响应于写入新的数据版本的请求)并定位不同高速緩存数据分配 单元中存储的未离台的緩存的数据版本,来离台緩存的数据版本。
根据本发明的实施例,可以直接将数据从所述第 一存储单元复制到所 述第二存储单元。根据本发明的另 一实施例,可以通过所述高速緩存在所述第 一存储单 元与所述第二存储单元之间传输数据。因此,离台的数据版^M^从所述第 一存储单元登台到所述高速緩存,然后被从所述高速緩存离台到所述笫二 存储单元以提供旧的数据版本。
便利地,对于分布式体系结构和集中式体系结构,回复存储设备的
LUN不需要索引扫描,避免了数据和元数据的复制,同时不会对系统引入 额外的用户数据输^/输出。此外,旧的数据版本也不会丟失。
要指出的是,第一回写式高速緩存单元131可以与多个接口、适配器 等相连。
图1A示出了根据本发明的进一步实施例的管理数据的系统100"。 系统IOO"包括第一回写式高速緩存单元131、第二回写式高速緩存单
元132、第一非易失性存储器141、第二非易失性存储器142、管理单元151、
适配器143、第一存储单元121以及第二存储单元122。系统IOO"包括两个基本上相互独立的部分。 一个部分作为另一部分的
后备。便利地,每个部分都具有自己的供电单元、自己的管理单元等。为
了简化说明,示出了单个管理单元151和单个适配器143,但是它们可以
系统IOO"的第一部分包括第一非易失性存储器141、第一回写式高速 緩存单元131和第一存储单元121。系统IOO"的第二部分包括第二非易失 性存储器142、第二回写式高速緩存单元132和第二存储单元122。
管理单元151与第一回写式高速緩存单元131、第二回写式高速緩存 单元132、第一非易失性存储器141以及第二非易失性存储器142相连。 适配器143与第一回写式高速緩存单元131、第二回写式高速緩存单元132、 第一非易失性存储器141和第二非易失性存储器142相连。
第一存储单元121与第一回写式高速緩存单元131和第二回写式高速 緩存单元132相连。第二存储单元122与第一回写式高速緩存单元131和 第二回写式高速緩存单元132相连。
被发送到第一回写式高速緩存单元131的数据也^L良送到第二非易失 性存储器142。 ^L发送到第二回写式高速緩存单元132的数据也被发送到 第一非易失性存储器141。
此外,第一存储单元121和第二存储单元122中的每个单元都能够存 储来自第一回写式高速緩存单元131和第二回写式高速緩存单元132的数 据。
如上所述,系统IOO"具有两个部分。为了筒化说明,图1A-1E示出 了针对第一部分(尤其是针对第一回写式高速緩存单元131)的读写操作。 本领域的技术人员将理解,可以使用对称的方式对第二部分执行读写操作。 系统100,,维护四个数据结构(i)代表写入操作的第一数据结构200, (ii)代表回复操作的第二数据结构250, ( iii)指示将哪些数据从第一存 储单元发送到第二存储单元的第三数据结构(也称为前向数据结构)260, 以及(iv)指示最近更新的数据版本是位于第一存储单元121还是位于第 二存储单元122中的第四数据结构(也称为后向数据结构)270。这些数据结构中的每个数据结构都可以存储在系统100内的各个位 置,例如,所有数据结构200、 250、 260、 270都可以存储在第二存储单元 122中,但是并非必须如此。
在离台时段开始时和数据版本被从第一存储单元复制到笫二存储单元 时更新第三数据结构260。
便利地,仅复制一个数据版本(对于每个数据分配单元)。为了知道 是否应复制当前緩存的数据版本,可以对第一数据结构进行扫描。为了避 免此扫描,第三数据结构260指示是否应复制当前緩存的数据。
便利地,第三数据结构260对于每个数据分配单元都包含一个位。所 述位指示当前緩存的数据版本和新的数据版本(两者都与同一高速緩存数 据分配单元关联)是否属于同一离台时段。如果回答是肯定的,则不复制 当前緩存的数据版本。当第一緩存操作在当前离台时段中发生时,将设置 第三数据结构中的位。在该离台时段的结束时会重置所述位。
将更新第四数据结构270作为对回复操作以及所述回复操作之后的登 台和离台操作的响应。
回复操作需要将数据从第二存储单元发送到第 一存储单元。此过程非 常耗时,并且为了允许系统在此过程中响应数据请求,将使用第四数据结 构。
要指出的是,在回复操作(回复到特定时刻)之后,最近更新的数据 版本与该时刻对应。相应地,这些数据版本可以是回复操作之前的离台的 数据版本和旧的数据版本。
第四数据结构270对于每个数据分配单元都可以包含一个位。可以在 请求回复操作时设置所述位。 一旦存储在第二存储单元的数据分配单元中 的数据被存储在第一存储单元中,就重置所述位。
数据可以被緩存在第一回写式高速緩存单元131中,然后被离台到第 一存储单元121。来自第一存储单元121的数据可以经由第一回写式高速 緩存单元131 ^X送到第二存储单元122。第一存储单元121存储登台的 (当前)数据版本,而第二存储单元122存储旧的数据版本。回复可以要求从第一和/或第二存储单元121和122登台数据。
管理单元151适于(i)接收将新的数据版本写入特定高速緩存数据 分配单元的请求,(ii)响应于数据存储策略,判定是覆盖当前緩存在特定 高速缓存数据分配单元中的緩存的数据版本,还是在将新的数据版本写入 特定高速緩存数据分配单元之前执行将緩存的数据版本离台到第一存储单 元;(iii)接收读取与特定时刻对应的数据版本的请求,以及(iv)扫描 代表写入操作的第 一数据结构和代表回复操作的第二数据结构以确定所请 求的数据版本的位置。图1K中示出了第一和第二数据结构。
管理单元151控制系统100的各个组件以提供所请求的数据版本以及 选择性地(响应于管理单元的判定)执行强制离台。
便利地,第一回写式高速緩存单元131不适于存储相同数据的多个版 本。因此,在緩存新的数据版本之前,管理单元151必须判定是否应将緩 存的数据版保存在数据存储单元中。所述判定响应于所述数据存储策略。
根据另一实施例,第一回写式高速緩存单元131适于存储相同数据的 多个版本。
系统100",尤其是管理单元151,可以通过4吏用截听来控制第一回写 式高速緩存单元131的操作。
系统100"可以定义,部分地定义,部分地接收或接收定义至少一个数 据相关性窗口的数据存储策略。所勤目关性窗口影响第一回写式高速緩存 单元131与第一和第二存储单元121和122之间的登台和离台。
一种机制允许第一回写式高速緩存单元在登台和离台时调用截听来扫 描代表写入操作的第 一数据结构以及代表回复操作的第二数据结构以确定 所请求的数据版本的位置。
图1B示出了根据本发明的另一实施例的写入、读取登台和离台操作 的示例性序列。
图1B示出了集中式体系结构作为第一数据存储单元121存储离台的 数据版本和旧的数据版本。
图1D示出了根据本发明的实施例的登台和离台操作的示例性序列。所述序列始于从适配器143发送(由字母A指示)将新的数据版本写 入第一回写式高速緩存单元131的特定高速緩存数据分配单元的请求的步 骤。如果当前緩存在该特定緩存分配单元中的緩存的数据版本应被离台(根 据数据存储策略),则将其离台到第一存储单元121 (由字母B指示)以 提供离台的数据版本。完成此离台步骤后,新的数据版本#1緩存在该特定 高速^^存数据分配单元处。
离台的数据版本可以变为旧的数据版本,尤其是如果更加新的数据版
;^4皮緩存并且然后被离台。旧的数据版本也可以存储在第一数据存储单元
121中。
当收到读取与特定时刻对应的数据版本的请求时,从第一存储单元 121登台(由字母C指示)所请求的数据版本。所请求的数据版本然后被 从第一回写式高速緩存单元131发送到适配器143。
图1C示出了根据本发明的另一实施例的写入、读取登台和离台操作 的示例性序列。
图1C示出了分布式体系结构作为第一数据存储单元121存储离台的 数据版本以及作为笫二存储单元122存储旧的数据版本。
图1C示出了一系列操作,始于从适配器143发送(由字母A指示) 将新的数据版本写入第一回写式高速緩存单元131的特定高速緩存数据分 配单元的请求的步骤。如果当前緩存在该特定緩存分配单元中的緩存的数 据版本应被离台(根据数据存储策略),则将其离台到第一存储单元121 (由字母B指示)以提供离台的数据版本。在此离台步骤之后,新的数据 版本被緩存在该特定高速緩存数据分配单元处。
离台的数据版本可以变为旧的数据版本,尤其是如果更加新的数据版 >^#:緩存然后被离台。在其^^盖之前,旧的数据版本可以被从第一存储 单元121登台(由字母C指示)到第二回写式高速緩存132,然后被离台 (由字母D指示)到第二存储单元122。
当收到读取与特定时刻对应的数据版本的请求时,可以从第一存储单 元121 (由字母E指示)或从第二存储单元122 (由字母E,指示)登台所请求的数据版本。所请求的数据版本然后被从第一回写式高速緩存单元
131发送到适配器143。
图ID示出了根据本发明的进一步实施例的写入、读取登台和离台操 作的示例性序列。
图ID示出了高速緩存级别的分离体系结构。高速緩存级别的分离体 系结构系统将新的数据版M存在第一和第二回写式高速緩存单元131和 132中。在高速緩存级别的分离体系结构中,緩存的数据版本不会从第一 存储单元121被发送到(通过高速緩存单元)第二数据存储单元122。緩 存的数据版本从第一回写式高速緩存单元131被发送到第一存储单元121 (由字母B指示)以及从第二回写式高速緩存单元132祐l送到第二存储 单元122 (由字母B,指示)。旧的数据版本不存储在第一存储单元121中, 而是存储在第二存储单元122中。第二存储单元122接收和存储离台的数 据版本和旧的数据版本。
便利地,从第一存储单元121来提供(由字母C指示)离台的数据版 本。从第二存储单元来提供(由字母C,指示)旧的数据版本。要指出的是, 还可以从第二存储单元122来提供离台的数据版本。
在高速緩存级别的分离体系结构中,不会将数据从第一存储单元121 发送到第二存储单元。便利地,如果数据存储粒度非常精细,则高速緩存 级别的分离体系结构可以节省许多登台和离台操作。另一方面,如果数据 存储粒度较低,则该体系结构执行的离台操作多于非分离体系结构所需的 操作。
图1E示出了根据本发明的进一步实施例的写入、读取登台和离台操 作的示例性序列。
图1E示出了存储单元级别的分离体系结构。存储单元级别的分离体 系结构系统将新的数据版M存在单个回写式高速緩存单元中,但是将緩 存的数据版本发送到第一存储单元121 (由字母B指示)和第二存储单元 122 (由字母B,指示)。
第一存储单元121不存储旧的数据版本。将离台的数据版;^第一存储单元121 (由字母C指示)提供给第一回写式高速緩存单元。旧的数据 版本存储在第二存储单元122中并且可在以后从第一存储单元121被提供 给第一回写式高速緩存单元131 (由字母C,指示)。要指出的是,还可以 从第二存储单元122来提供离台的数据版本。
在存储单元级别的分离体系结构中,不会将数据从第一存储单元121 发送到第二存储单元。便利地,如果数据存储粒度非常精细,则存储单元 级别的分离体系结构可以节省许多登台和离台^Mt。
根据本发明的另一实施例,系统IOO"还可以应用选择性的存储单元级 别的分离体系结构。因此,系统100"可以在离台緩存的数据版本之前决定 是将该数据版本发送到第 一存储单元,还是将该数据版本发送到第 一和第 二存储单元121和122两者。
便利地,如果系统可以确定緩存的数据版本是在已经过的离台时段期 间最后要緩存的緩存的数据版本,则该緩存的数据版本可以被发送到第一 存储单元并且发送到第二存储单元。如果緩存的数据版本应在离台时段的 中间或离台时段的开始被离台,则可以将其离台到第 一存储单元121 。
要指出的是,响应于经过预定的离台时段部分,緩存的数据版本可以 被发送到两个数据存储单元。
所述选择性的存储单元分离体系结构在粗略数据存储粒度处实质上作 为分布式体系结构,而在精细数据存储粒度处实质上作为存储单元级别的 分离体系结构。
要指出的是,尽管图1A-1E示出了第二回写式高速緩存和第二非易失 性存储器并且假设当前数据版本和旧的数据版本存储在不同的高速緩存和 非易失性存储器中,但这并非一定如此。因此,即使当前数据版本和旧的 数据版本位于同一高速緩存和非易失性存储器中,系统IOO"也可以基本上 以相同的方式运4亍。
图1F分别示出了根据本发明的实施例的第一数据结构200和第二数 据结构250的两个部分201和251。在此实例中,关键字为LBA以及时间 戳,数据为物理地址。但是也可以使用其他实例。为了简化说明,这些图示出了到同一逻辑块地址(例如,LBA=12)的读取和回复操作。
要指出的是,第一数据结构200包括与到其他LBA的写入操作相关的 元数据。
还要指出的是,部分201被示为表示到特定LBA的更新操作,但是它 也可以表示与其他LBA有关的操作。备选地,其他图形可以表示与其他 LBA有关的操作。
第一数据结构200包括三列200 (1 ) 、 200 (2 )和200 (3 )。每个表 项包括有关写入操作的信息。第一列200 (1)包括写入操作的逻辑块地址, 第二列200 (2)包括写入时间戳,并且第三列200 (3)包括写入操作的物 理地址。逻辑块地址和写入时间字段可用作第一数据结构200 (1)的关键 字(索引)。
要指出的是,如果在特定时刻,出现到多个LBA的写入操作,则第一 表将包括多个反映此写入操作的表项。
第二数据结构250包括四列250 (1) -250 (4 )。第一列250 (1)包 括分支标识符,第二列250 (2)包括分支开始时间,第三列250 (3)包括 分支结束时间,并且第四列250 (4)包括每个分支的回复时间。
数据结构200和250适于控制一系列写入和回复^Mt,其中在每个给 定时刻有一个分支处于活动状态。为了支持多个并发的活动分支,这些表 应净皮修改为包括分支标识信息。
图2示出了根据本发明的实施例的写入操作和回复操作的示例性序列 101。序列101包括在时间10、 30、 40、 60、 90和110的到诸如逻辑单元 (LUN)之类的虛拟地址空间的写入操作,以及相应地回复时间35和70 处的LUN的内容的请求(在时间80和100处接收)。
虛线表示回复操作。要指出的是,在任意给定的时刻,只有一个分支 处于活动状态。
假设写入操作与逻辑块地址12关联并且与这些写入操作关联的物理 地址相应地为a、 b、 c、 d、 e和f。
第一数据结构200的第一列200( 1 )指示写入操作指向逻辑块地址12。第一数据结构200的第二列200 (2 )指示写入操作在时间10、 30、 40、 60、 90和110处发生。第一数据结构200的第三列200 (3 )指示与这些写入操 作关联的物理地址为a、 b、 c、 d、 e和f。
第二数据结构250的第一表项指示第一分支在时间0处开始并在时间 80处结束。当接受回复LUN的内容的第一请求时,第一分支结束。
第二数据结构250的第二表项指示第二分支在时间80处开始并在时间 IOO处结束。当接受回复LUN的内容的第二请求时,第二分支结束。
第二数据结构250的第三表项指示第三分支在时间100处开始并没有 结束。
根据本发明的另一实施例,第二数据结构包括诸如分支统计之类的其 他元数据。分支统计可以例如包括属于该分支的第一数据结构表项的数目, 在该分支存在期间被写入的不同逻辑块地址的数目等。便利地,分支统计 可以协助判定要删除哪些分支,尤其是在存在频繁的读取和写入操作时。
图3示出了根据本发明的实施例的写入操作和回复操作的示例性序列
300。
通过三角形示出了对第一LBA的写入操作(Wl、 W3、 W5和W6)。 通过圆形示出了对第二LBA的写入操作(W4和W10)。通过正方形示出 了对第三LBA的写入操作(W2、 W7和W9)。
序列300包括四个分支Bl-B4 301-304并且定义了跨T14和当前时刻 (T_CURRENT )的相关性窗口 310。
第一分支(Bl)在TO处开始(Sl)并在T8处结束(El)。第一分 支Bl包括以下写入操作Tl处的Wl (写入第一 LBA) 、 T2处的W2 (写 入第三LBA) 、 T3处的W3 (写入第一 LBA) 、 T4处的W4 (写入第二 LBA)以及T6处的W5 (写入第一LBA) 。 Bl在T8处结束(El)。 第二分支(B2 ) 302是Bl 301的子分支并通过到时间T5的回复操作 (RV1)在时间T8处开始(S2 )。第二分支B2 302包括以下写入操作 T9处的W6 (写入第一LBA)以及T11处的W7 (写入第三LBA) 。 B2 在T12处结束(E2)。第三分支(B3 ) 303是B2 302的子分支并通过到时间T10的回复操作 (RV2 )在时间T12处开始(S3 )。第三分支B3 303包括是T13处的W8 (写入第三LBA)的单个写入操作。B3在T15处结束(E3)。
第四分支(B4)304是B3 303的子分支并通过到时间T14的回复操作 (RV3 )在时间T15处开始(S4) 。 B4 304包括T16处的写入操作W9 (写 入第三LBA)以及T17处的另一写入操作W10 (写入第二LBA)。第四 分支B4 304在T18处结束(E4)。
图4示出了才艮据本发明的另一实施例的写入操作和回复操作的示例性 序列300,。
序列300,与序列300的不同之处在于第二回复操作(RV2,)的回复时 间。回复时间为T7 (属于第一分支B1 301)而不是TIO (属于第二分支 B2 302)。因此,在序列300中具有子分支(B3 303)的第二分支B2 302 在序列300,中没有子分支。
图5示出了根据本发明的实施例的检索数据版本的方法400。 方法400始于选择或获取当前分支的阶段410。阶段410之后是阶段 412,在阶段412,检查对于分支上始于该分支的开始处并在与数据版本的 检索请求关联的所请求时间戳处结束的部分,是否存在写入操作。如果回 答为否定的,则在阶段412后执行阶段414,否则在阶段412后执行阶段 420。
阶段420包括返回最新的写入操作作为方法400的结果。 阶段414包括检查所述分支是否具有父分支。如果回答是否定的,则 方法400在返回否定回答(Null)的阶段416处结束。如果回答是肯定的, 则在阶段414后执行获取父分支的阶段422和检查对于父分支上始于该分 支的开始处并在与所检查父分支的子分支关联的回复时间处结束的部分, 是否存在写入操作的阶段424。如果回答是否定的,则在阶段424后执行 阶段414,否则在阶段424后执行阶段420。
图6示出了根据本发明的实施例的粗略分析。 粗略分析500始于将分支索引(J)设置为1的阶段510。在阶段510后执行确定第J个分支与相关性窗口之间的关系的阶段
520。
如果第J个分支和相关性窗口至少部分地重叠,则不删除第J个分支, 并在阶段520后执行增大J并跳转到阶段520的阶段530。要指出的是, 此迭代在扫描整个第二数据结构后结束。
如果第J个分支和相关性窗口不重叠(甚至不部分地重叠),则在阶 段520后执行检查第J个分支是否包括一个或多个子分支的阶段540。
如果第J个分支具有单个子分支,则在阶段540后执行结合第J个分 支与该子分支的阶段550。根据本发明的实施例,阶段550包括将该分支 标记为应被结合的分支(例如,通过将该子分支的回复时间之前的最后表 项移动到该子分支的开始时间)。
如果第J个分支位于相关性窗口以外并且没有任何子分支,则在阶段
550后执行删除与该分支关联的元数据的阶段560。根据本发明的实施例, 阶段560包括将该分支标记为应被删除的分支。所述删除可以在执行精细 分析期间完成。
如果存在多个子分支,则在阶段540后执行阶段530。
在阶段560和550后执行阶段530。
例如,参考图3,第四分支B4 304位于相关性窗口内并且第一至第三 分支是第四分支的上级分支。相应地,不删除任何分支。
对于另一实例,参考图4,第二分支B2 302不是第四分支B4 304的上 级分支并且位于相关性窗口以外,因此其可以被删除。
要指出的是,所述删除可以包括将该分支标记为要删除的候选分支、 响应于此类标记执行精细分析,然后立即删除该分支。
图7a-7b示出了根据本发明的实施例的全局精细分析600。
图7a示出了分析600的第一部分600 (a),而图7b示出了分析600 的部分600 (b)。
为特定分支执行所述全局精细分析。然后可以为另 一分支执行此分析。
全局精细分析600始于定位至少在该特定分支的一个部分期间处于活动状态的每个分支的阶段610。每个此类分支被称为相关分支。
在阶段610后执行将位于相关性窗口以外的相关分支分割为通过子分 支的回复时间分隔的部分的阶段620。每个部分都与一个子分支相关联。
在阶段620后执行在假设分支的最后部分(该部分始于子分支的最后 的回复时间并结束于分支的结束时间)位于相关性窗口以外的情况下,删 除该部分中的任何写入操作的阶段625。
在阶段625后执行在某个部分(位于相关性窗口以外)具有多个写入 的情况下,删除该部分的所有写入操作(除了最后一次写入)的阶段630。
在阶段630后执行针对多个部分中的特定部分,判定所述部分以及随 后部分是否包括写入操作的阶段635。如果回答是肯定的,则在阶段635 后执行将写入部分移动到子分支的开始时间的阶段642。如果答案是否定 的,则在阶段635后执行判定当前部分没有写入^Mt还是应用了局部精细 分析的阶段640。如果答案是肯定的,则在阶段640后执行阶段650,否则 在之后执行在多个部分中选择下一部分并跳转到阶段635的阶段645。
阶段650包括接收特定部分的特定写入操作U以及子分支Cl...Cn。 在阶段650后执行将计数器X设为0,将分支b设为null以及将工作列表 WL定义(或设置)为等于由写入操作U和子分支组成的对WL={ (U, Cl),…,(U,Cn) }的阶段652。
在阶段652后执行判定WL是否为空的阶段654。如果回答是肯定的, 则在阶段654后执行阶段656,如果答案是否定的,则在阶段654后执行 阶段664。
阶段656包括提供<^1)>。在阶段656后执行检查x的值的阶段658。 如果x《,则在阶段658后执行阶段660或在该阶段中删除写入操作。在 阶段660后执行阶段645。如果x-l,则在阶段658后执行将写入操作移动 到子分支的阶段662。如果x=2,则在阶段658后执行阶段645。在阶段662 后执行阶段645。
阶段664包括从WL删除第一项(称为(w,d))以及检查分支d中 的笫一写入操作是否在相关性窗口开始之后发生。如果答案是否定的,则在阶段664后执行阶段674,否则在之后执行阶段666。阶段666包括增大 x并且在之后执行检查x是否大于1的阶段668。如果x是0或l,则在阶 段668之后执行将〈x,b〉设置为〈x,null〉的阶段670并跳转到阶段656。如 果x>l,则在阶段668后执行将b设置为2的阶段672并跳转到阶段654。
阶段674包括向工作列表添加一组由分支d的开始时间以及分支d中 回复时间小于时间w的子分支所组成的对。WL={ (starttime (d) ..dl), (start time (d) ..dn ) }。在阶段674后执行阶段654。
要指出的是,上述多数实例所指的情况都是在任意时刻只有一个活动 的分支。如上所述,情况并不一定如此。为了支持多个共存的分支,需要 额外的元数据以便在多个共存的分支之间进行选择。此额外的元数据可以 包括分支标识符、父分支标识符等。
多个分支可以在各种情况下共存,所述情况包括但不限于测试环境、 支持大量快照的主机可寻址逻辑单元的实施方式等。
要指出的是,如果有多个分支共存,则添加新的分支(例如,通过执 行回复操作)不一定会终止另一分支。根据本发明的实施例,定义了第三 数据结构。
所述第三数据结构包括针对每个LBA的第 一写入操作。此类表可以简 化各种扫描序列。对于另一实例,还可以定义包括每个分支的最后写入操 作的另一数据结构。根据本发明的另一实施例,B树由前缀B树所取代。
备选的解决方案是使B树表项仅为逻辑轨道号而没有时间分量,并且 在树叶中存储具有所有LBA表项及其时间信息的可变长度结构。
图8示出了根据本发明的实施例的管理数据的方法700。
方法700始于阶段710,在阶段710,提供代表针对由关键字(包括但 不限于逻辑块地址)标识的信息的写入操作的第一数据结构,以及提供代 表分支创建操作(包括但不限于回复操作、分支克隆操作等)的第二数据 结构。
便利地,所述第一数据结构包括写入时间戳以及逻辑块地址与关联的 物理地址之间的映射。便利地,所述第二数据结构包括分支标识符、分支开始时间、分支结束时间以及分支回复时间。便利地,所述第一数据结构
为B树。
在阶段710后执行阶段720、 730、 740和750。
阶段720包括接收写入或更新数据的请求,以及相应地更新所述第一 数据结构。
阶段730包括接收创建始于所请求时间戳处的数据版本的分支的请 求,以及相应地更新所述第二数据结构。例如,创建分支的请求可以是将 数据回复至特定回复时间(所述回复时间被认为是所请求的时间)的请求 的结果。对于另一实施例,创建分支的请求可以是逻辑地复制(克隆)数 据的请求的结果,并且在此情况下,该请求的时间就是所请求的时间。
阶段740包括接收读取在读取时间戳处的数据版本的请求,以及扫描 所述第一和第二数据结构以定位该版本。阶段740可以包括方法400的一 个或多个阶段。
阶段750包括响应于数据存储策略而更新所述第一和第二数据结构。 阶段750可以包括执行粗略分析,执行精细分析等。阶段750可以包括图 6和7中所示的一个或多个阶段。
图9A示出了才艮据本发明的另一实施例的管理凝:据的方法800。 方法800从提供与至少一个存储单元相连的回写式高速緩存单元的步 骤810开始。
在步骤810后执行定义数据存储策略的步骤820。所述数据存储策略 可以定义一个或多个相关性窗口,从而定义一个或多个数据粒度时段。此 定义影响登台和离台决策。
在步骤820后执行接收将新的数据版本写入特定数据分配单元的请求 的步骤830。
在步骤830后执行步骤840,在步骤840中,响应于数据存储策略, 判定是覆盖緩存在特定高速緩存数据分配单元处的緩存的数据版本、还是 在将新的数据版本写入特定高速緩存分配单元之前将緩存的数据版本离台 到第一存储单元,还是维护多个緩存的数据版本。便利地,所述数据存储策略(针对每个高速緩存数据分配单元)定义了由单个离台的数据版本表 示的离台时段。如果该时段过期,则可以离台最近緩存的数据版本。如果 新的数据版本和当前緩存的数据版本在同 一 离台时段内被发送到高速緩 存,则可以在不离台当前緩存的数据版本的情况下覆盖该当前緩存的数据 版本。
在步骤840后执行根据判定选择性地离台緩存的数据版本的步骤850。 便利地,步骤850可以应用于各种体系结构,包括分布式体系结构、
集中式体系结构、存储单元级别的分离体系结构以及选择性存储单元级别
的分离体系结构。
便利地,步骤850包括将不同的数据版本离台到第一和第二存储单元 处的步骤852以及维护指示将哪个数据版本从所述第一存储单元发送到所 述第二存储单元的第三数据结构的步骤854。
便利地,步骤850包括维护指示要登台到高速緩存的数据版本的位置 的第四数据结构的步骤856。
便利地,步骤850包括使用截听来提供所请求的数据版本。
便利地,步骤850包括将緩存的数据版本离台到第一存储单元以提供 离台的凝:据版本。
根据本发明的实施例,在步骤856后执行将先前离台到第一存储单元 的旧的数据版本发送到第二存储单元的步骤865 。
便利地,步骤865包括生成包含发送旧的数据版本的计时的伪入口。 所述伪入口是第一数据结构的一部分。便利地,步骤865包括将旧的数据 版本登台到回写式高速緩存单元以及将旧的数据版本从回写式高速緩存单 元离台到第二存储单元。
在步骤850后执行接收读取与特定时刻对应的数据版本的请求以及扫 描代表写入操作的第 一数据结构和代表回复操作的第二数据结构以确定所 请求数据版本的位置的步骤860。
便利地,步骤860包括维护指示所请求的数据版本是存储在所述第一 存储单元还是存储在所述第二存储单元中的后向数据结构。在步骤860后执行提供所请求的数据版本的步骤870。便利地,步骤 870包括在数据存储单元出现故障的情况下从非易失性存储器单元提供所 请求的数据版本。
根据本发明的实施例,步骤840包括在非易失性存储器单元处存储新 的数据版本。
图9B示出了根据本发明的进一步实施例的管理数据的方法900。
方法900始于提供第一高速緩存单元、第二高速緩存单元、第一存储 单元以及第二存储单元的步骤910。
在步骤910后执行定义数据存储策略的步骤920。所述数据存储策略 可以定义一个或多个相关性窗口,从而定义一个或多个数据粒度时段。此 定义影响登台和离台决策。所述体系结构定义数据版本如何被緩存(到一 个或两个高速緩存单元)以及如何离台(到一个或多个数据存储单元)。 离台到一个或多个数据存储单元可以是固定的,也可以动态地改变。固定 的离台策略由存储单元级别的分离体系结构和高速緩存级别的分离体系结 构表示。动态的离台策略由选择性的存储单元分离策略表示。
要指出的是,图9B示出了一系列包括接收写入新的数据版本的请求, 然后接收读取数据版本的请求的步骤。要指出的是,这些请求的顺序可以 更改,相应地,方法900的各个阶段的顺序也可以更改。
在步骤920后执行接收将新的数据版本写入所述第一高速緩存单元的 特定高速緩存数据分配单元的请求的步骤930。
在步骤930后执行步骤940,其中将新的数据版a存在特定高速緩 存数据分配单元处以及响应于数据存储策略,将当前存储在特定高速緩存 数据分配单元中的缓存的数据版本离台到所述第一和第二存储单元。
例如,如果新的数据版4^存在所述第一和第二高速緩存单元中,则 离台包括将緩存的数据版a所述第一高速緩存单元离台到所述第一数据 存储单元以及将緩存的数据版本从所述第二高速緩存单元离台到所述第二 数据存储单元。
在步骤940后执行接收读取与特定时刻对应的数据版本的请求以及提供所请求的数据版本的步骤950。
<更利地,步骤950包括从所述第一存储单元提供离台的数据版本以及 从所述第二数据单元提供旧的数据版本。
此外,本发明可以采取可从计算机可用或计算机可读介质访问的计算 机程序产品的形式,所述计算机可用或计算机可读介质提供了可以被计算 机或任何指令执行系统使用或与计算机或任何指令执行系统结合的程序代 码。出于此描述的目的,计算机可用或计算机可读介质可以是任何能够包 含、存储、传送、传播或传输由指令执行系统、装置或设备使用或与所述 指令执行系统、装置或设备结合的程序的装置
所述介质可以是电、磁、光、电磁、红外线或半导体系统(或装置或 设备)或传播介质。计算机可读介质的实例包括半导体或固态存储器、磁 带、可移动计算机盘、随才A^取存储器(RAM)、只读存储器(ROM)、硬磁 盘和光盘。光盘的当前实例包括光盘-只读存储器(CD-ROM)、光盘-读/写 (CR國R/W)和DVD。
适合于存储和/或执行程序代码的数据处理系统将包括至少一个通过 系统总线直接或间接连接到存储器元件的处理器。所述存储器元件可以包 括在程序代码的实际执行期间采用的本地存储器、大容量存储装置以及提 供至少某些程序代码的临时存储以减少必须在执行期间从大容量存储装置 检索代码的次数的高速緩沖存储器。
输入/输出或I/Oi殳备(包括但不限于键盘、显示器、指点设备等)可 以直接或通过中间I/O控制器与系统相连。
网络适配器也可以被连接到系统以使所述数据处理系统能够通过中间 专用或公共网络变得与其他数据处理系统或远程打印机或存^i殳备相连。 调制解调器、电缆调制解调器和以太网卡只是几种当前可用的网络适配器 类型。
根据本发明的实施例,数据被写入回写式高速緩存单元,并且当前数 据版本以及先前的数据版本被发送到诸如盘、盘阵列、磁带之类的一个或 多个存储单元。数据存储策略帮助刷新数据和元数据,并且还协助判定是否将特定it据版本发送到盘。
在不偏离所要求保护的本发明的精神和范围的情况下,本领域的技术 人员将想到此处所述的内容的变型、修改和其他实施方式。
相应地,本发明不是由上述示例性说明来限定,而是由以下权利要求 的精神和范围来限定。
权利要求
1.一种管理数据的方法,所述方法包括提供第一级存储器单元和第二级存储器单元;其中所述第一级存储器单元包括第一高速缓存单元和第二高速缓存单元并且其中所述第二级存储器单元包括第一存储单元和第二存储单元;接收将新的数据版本写入所述第一高速缓存单元的特定高速缓存数据分配单元的请求;将所述新的数据版本缓存在所述特定高速缓存数据分配单元处,以及响应于数据存储策略,将当前存储在所述特定高速缓存数据分配单元中的缓存的数据版本离台到所述第一存储单元和所述第二存储单元。
2. 如权利要求l中所述的方法,还包括维护指示要被登台到所述高速 緩存的数据版本的位置的第四数据结构。
3. 如权利要求1或2中所述的方法,其中所述緩存和离台包括将緩存 的数据版本从所述第 一 高速緩存单元离台到所述第 一存储单元和所述第二 存储单元。
4. 如权利要求1或2中所述的方法,其中所述緩存和离台包括判定将 所述緩存的数据版本离台到所述第 一和第二存储单元中的一个还是两个数 据存储单元以及响应于所述判定,离台所述緩存的数据版本。
5. 如权利要求1或2中所述的方法,其中所述方法还包括从所述第一 存储单元提供离台的数据版本以及从所述第二存储单元提供旧的数据版 本。
6. 如权利要求l中所述的方法,其中所述方法包括接收读取与特定时 刻对应的数据版本的请求以及扫描代表写入操作的第 一数据结构和代表回 复操作的第二数据结构以确定所请求的数据版本的位置。
7. 如权利要求2中所述的方法,其中响应于数据存储策略判定是否覆 盖緩存的数据版本包括判定多版本高速緩存单元是否可以存储额外的数据 版本。
8. 如权利要求2中所述的方法,还包括将不同的数据版本离台到单个 存储单元。
9. 一种管理数据的方法,所述方法包括提供与至少一个存储单元相连的回写式高速緩存单元; 接收将新的数据版本写入特定高速緩存数据分配单元的请求; 响应于数据存储策略,判定是覆盖緩存在所述特定高速緩存数据分配单元中的緩存的数据版本,还是在将所述新的数据版本写入所述特定高速緩存数据分配单元之前执行将所述緩存的数据版本离台到第 一存储单元; 接收读取与特定时刻对应的数据版本的请求以及扫描代表写入操作的第一数据结构和代表回复操作的第二数据结构以确定所请求的数据版本的位置。
10. 如权利要求9中所述的方法,还包括将不同的数据版本离台到第 一和笫二存储单元以及维护指示将哪个数据版本从所述第一存储单元发送到所述第二存储单元的第三数据结构。
11. 如权利要求9或10中所述的方法,还包括维护指示要被登台到所 述高速緩存的数据版本的位置的第四数据结构。
12. 如权利要求9或10中所述的方法,还包括使用截听来提供所请求 的数据版本的位置。
13. 如权利要求9中所述的方法,还包括将緩存的数据版本离台到第 一存储单元以提供离台的数据版本以及将先前离台到所述第一存储单元的 旧的数据版本发送到第二存储单元。
14. 如权利要求13中所述的方法,其中发送所述旧的数据版本包括生 成包含发送所述旧的数据版本的计时的伪入口 。
15. 如权利要求13或14中所述的方法,其中发送所述旧的数据版本 包括将所述旧的数据版本登台到回写式高速緩存单元以及将所述旧的数据 版本从所述回写式高速緩存单元离台到所述第二存储单元。
16. 如权利要求13中所述的方法,还包括响应于回复操作,将旧的数 据版本从所述第二存储单元物理地复制到所述第一存储单元,同时更新指示要被登台到所述高速緩存的数据版本的位置的所述第四数据结构。
17. 如权利要求9中所述的方法,其中响应于数据存储策略,判定是 否覆盖緩存的数据版本包括判定多版本高速緩存单元是否可以存储额外的 数据版本。
18. 如权利要求9中所述的方法,还包括将不同的数据版本离台到单 个存储单元。
19. 一种包括计算机可用介质的计算机程序产品,所述计算机可用介 质包含计算机可读程序,其中当所述计算机可读程序在计算机上执行时, 可使所述计算机执行以下操作接收将新的数据版本写入特定高速緩存数据分配单元的请求;响应于 数据存储策略,判定是覆盖緩存在所述特定高速緩存数据分配单元中的緩 存的数据版本,还是在将所述新的数据版本写入所述特定高速緩存数据分 配单元之前执行将所述緩存的数据版本离台到第一存储单元;第 一数据结构和代表回复操作的第二数据结构以确定所请求的数据版本的 位置。
20. 如权利要求19中所述的计算^^呈序产品,其中当所述计算机可读 程序在计算机上执行时,还导致所述计算机将不同的数据版本离台到第一 和第二存储单元以及维护指示将哪个数据版本从所述第一存储单元发送到所述第二存储单元的第三数据结构。
21. 如权利要求19或20中所述的计算^14呈序产品,其中当所述计算 机可读程序在计算机上执行时,还导致所述计算机维护指示要被登台到所 述高速緩存的数据版本的位置的第四数据结构。
22. 如权利要求19或20中所述的计算机程序产品,其中当所述计算 机可读程序在计算机上执行时,还导致所述计算机使用截听来提供所请求 的数据版本。
23. 如权利要求19中所述的计算机程序产品,其中当所述计算机可读 程序在计算机上执行时,还导致所述计算机将緩存的数据版本离台到第一存储单元以提供离台的数据版本以及将先前离台到所述笫一存储单元的旧 的数据版本发送到第二存储单元。
24. 如权利要求23中所述的计算才;i^呈序产品,其中当所述计算机可读 程序在计算机上执行时,还导致所述计算机生成包含发送所述旧的数据版 本的计时的伪入口。
25. —种包括计算机可用介质的计算枳4呈序产品,所述计算机可用介 质包含计算机可读程序,其中当所述计算机可读程序在计算机上执行时, 可使所述计算机执行以下操作接收将新的数据版本写入第一高速緩存单元的特定高速緩存数据分配 单元的请求;将所述新的数据版本緩存在所述特定高速緩存数据分配单元处,以及 响应于数据存储策略,将当前存储在所述特定高速緩存数据分配单元中的 緩存的数据版本离台到第二级存储器单元;其中所述新的数据版本和所述緩存的数据版本中的一个数据版M储 在属于同 一存储器级别的两个不同存储器单元处。
26. 如权利要求25中所述的计算才A^呈序产品,其中当所述计算机可读 程序在计算机上执行时,还导致所述计算机将所述新的数据版本緩存在所 述第一高速緩存单元和第二高速緩存单元处。
27. 如权利要求25或26中所述的计算机程序产品,其中当所述计算 机可读程序在计算机上执行时,还导致所述计算机将所述緩存的数据版本 从所述第 一高速緩存单元离台到所述第 一数据存储单元以及将所述緩存的 数据版本从所述第二高速緩存单元离台到所述第二数据存储单元。
28. 如权利要求25中所述的计算才;i4呈序产品,其中当所述计算机可读 程序在计算机上执行时,还导致所述计算机从所述第一存储单元提供离台 的数据版本以及从所述第二存储单元提供旧的数据版本。
29. 如权利要求25中所述的计算才;i^呈序产品,其中当所述计算机可读 程序在计算机上执行时,还导致所述计算机将緩存的数据版本从所述第一 高速緩存单元离台到所述笫一存储单元和所述第二存储单元。
30. 如权利要求25中所述的计算机程序产品,其中当所述计算机可读 程序在计算机上执行时,还导致所述计算机将不同的数据版本离台到单个 存储单元。
31. —种包括第一高速緩存单元、第二高速緩存单元、第一存储单元 以及第二存储单元的系统其中所述系统适于接收将新的数据版本写入所述第 一 高速緩存单元的 特定高速緩存数据分配单元的请求;将所述新的数据版本緩存在所述特定高速緩存数据分配单元处,以及 响应于数据存储策略,将当前存储在所述特定高速緩存数据分配单元中的 緩存的数据版本离台到所述第一和第二存储单元。
32. 如权利要求31中所述的系统,其中至少一个高速緩存单元是回写 式高速緩存单元;其中所述系统适于接收将新的数据版本写入特定高速緩存数据分配单 元的请求,以及响应于数据存储策略,判定是覆盖緩存在所述特定高速緩 存数据分配单元中的緩存的数据版本,还是在将所述新的数据版本写入所 述特定高速緩存数据分配单元之前执行将所述緩存的数据版本离台到第一 存储单元;接收读取与特定时刻对应的数据版本的请求以及扫描代表写入操作的 第一数据结构和代表回复操作的第二数据结构以确定所请求的数据版本的 位置。
33. 如权利要求31或32中所述的系统,还适于将不同的数据版本离 台到所述第 一和第二存储单元以及维护指示要被登台到所述高速緩存的数 据版本的位置的第四数据结构。
34. 如权利要求31、 32或33中所述的系统,其中所述第一高速缓存 单元为多版本高速緩存单元。
35. 如权利要求31中所述的系统,其中所述系统适于从所述第一存储 单元提供离台的数据版本以及从所述第二存储单元提供旧的数据版本。
36. 如权利要求32中所述的系统,还包括将不同的数据版本离台到第一和第二存储单元的装置以及维护指示将哪个数据版本从所述第一存储单 元发送到所述第二存储单元的第三数据结构的装置。
37. 如权利要求32或36中所述的系统,还包括维护指示要被登台到 所述高速緩存的数据版本的位置的第四数据结构的装置。
38. 如权利要求32或36中所述的系统,还包括使用截听来提供所请 求的数据版本的位置的装置。
39. 如权利要求32中所述的系统,还包括将緩存的数据版本离台到第 一存储单元以提供离台的数据版本的装置以及将先前离台到所述第一存储 单元的旧的数据版本发送到所述第二存储单元的装置。
40. 如权利要求39中所述的系统,其中发送所述旧的数据版本的装置 包括生成包含发送所述旧的数据版本的计时的伪入口。
41. 如权利要求39或40中所述的系统,其中发送所述旧的数据版本 的装置包括将所述旧的数据版本登台到回写式高速緩存单元的装置以及将 所述旧的数据版本从所述回写式高速緩存单元离台到所述第二存储单元的 装置。
42. 如权利要求39中所述的系统,还包括响应于回复操作,将旧的数 据版本从所述第二存储单元物理地复制到所述第一存储单元,同时更新指 示要被登台到所述高速緩存的数据版本的位置的第四数据结构的装置。
43. 如权利要求32中所述的系统,其中响应于数据存储策略,判定是 否覆盖所述緩存的数据版本的装置包括判定多版本高速緩存单元是否可以 存储额外的数据版本的装置。
44. 如权利要求32中所述的系统,还包括将不同的数据版本离台到单 个存储单元的装置。
45. 如权利要求31中所述的系统,还包括维护指示要被登台到所述高 速緩存的数据版本的位置的第四数据结构的装置。
46. 如权利要求31或45中所述的系统,其中用于緩存和离台的装置 包括将緩存的数据版本从所述第一高速緩存单元离台到所述第一存储单元 和所述第二存储单元的装置。
47. 如权利要求31或45中所述的系统,其中用于緩存和离台的装置 包括判定将所述緩存的数据版本离台到所述第 一和第二存储单元中的 一个 还是两个数据存储单元的装置以及响应于所述判定而离台所述緩存的数据 版本的装置。
48. 如权利要求31或45中所述的系统,其中所述系统还包括从所述 第一存储单元提供离台的数据版本以及从所述第二存储单元提供旧的数据版本的装置。
49. 如权利要求31中所述的系统,其中所述系统包括接收读取与特定 时刻对应的数据版本的请求的装置以及扫描代表写入操作的第一数据结构 和代表回复操作的第二数据结构以确定所请求的数据版本的位置的装置。
50. 如权利要求45中所述的系统,其中响应于数据存储策略而判定是 否覆盖緩存的数据版本的装置包括判定多版本高速緩存单元是否可以存储 额外的数据版本的装置。
51. 如权利要求45中所述的系统,还包括将不同的数据版本离台到单 个存储单元的装置。
52. —种包括程序代码装置的计算机程序,当所述程序在计算机上运 行时,所述程序代码装置适于执行如权利要求1至18中的任一权利要求所 述的方法。
全文摘要
一种管理数据的方法,所述方法包括提供与至少一个存储单元相连的回写式高速缓存单元;接收将新的数据版本写入特定高速缓存数据分配单元的请求;响应于数据存储策略,判定是覆盖缓存在所述特定高速缓存数据分配单元中的缓存的数据版本,还是在将所述新的数据版本写入所述特定高速缓存数据分配单元之前执行将所述缓存的数据版本离台到第一存储单元;接收读取与特定时刻对应的数据版本的请求以及扫描代表写入操作的第一数据结构和代表回复操作的第二数据结构以确定所请求的数据版本的位置。
文档编号G06F12/08GK101563677SQ200780046866
公开日2009年10月21日 申请日期2007年12月19日 优先权日2006年12月20日
发明者D·H·洛仑兹, G·拉登, M·法克特, P·K·塔-施马, S·S·平特, S·菲恩布利特 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1