用于多个访问方法的无锁存、日志结构化的存储的制作方法_5

文档序号:9650615阅读:来源:国知局
的分配和释放。例如,在事务执行期间,PID可被分配或释放,且Update-D增量可被生成。例如,这些资源的管理可基于时期机制来被实现,如本文中讨论的。例如,因为SM0在单个用户操作请求内执行,所以线程可保持在其时期中达该事务的历时。
[0169]根据本文讨论的示例技术,示例LLAMA实现可依赖于事务提交或放弃来收回资源。例如,对于提交操作,FreePage PID(释放页PID)可被添加到当前时期的PID待释放列表。例如,对于放弃操作,AllocatePage PID(分配页PID)可在撤消期间被释放并类似地添加到PID待释放列表。例如,对于Update-D操作,在事务放弃的情况下,更新增量可被添加到当前时期的存储待释放列表。
[0170]如本文讨论的,“崩溃恢复” 一般不指“事务恢复”。如本文讨论的,“检查点” 一般不指用来管理事务日志的检查点。相反,如本文讨论的,“崩溃恢复”可以指用于LSS(例如,日志结构化存储)以将其各页以及它们的状态的映射表恢复到系统崩溃前的时刻的示例技术。这一特定类型的恢复步骤通常不关心常规就地更新存储系统。
[0171]关于本文讨论的“崩溃恢复”,映射表可被认为是一种类型的“数据库”。例如,对这一数据库的更新可包括转储清除到LSS的页状态。因而,每一页转储清除可更新“映射表数据库”。在系统崩溃的情况下,LSS “日志”可被重放以使用转储清除的页作为重做日志记录以更新映射表,来恢复“映射表数据库”。
[0172]在支持以上策略的情况下,映射表可被周期性地设置检查点,以避免无限期地维护LSS更新。例如,上述LFS清除技术可被用于这一目的(即,缩短恢复日志);然而,这样的技术可留下比高速恢复所需的日志基本上更大的恢复日志(LSS日志结构化存储)。
[0173]根据本文讨论的示例技术,有利策略可被用于设置检查点。例如,示例LLAMA实现可以是异步的且在对两个替换位置之一设置检查点期间递增地写入完整映射表。图10是根据本文讨论的示例技术的示例检查点数据1000。例如,这两个替换位置可被选作两个不同的“公知位置”(WKL),使得该系统将知道这些位置,甚至在可能丢失与各实体的位置有关的其他“当前”信息的系统崩溃后。因而,指向与系统的状态(在崩溃时存在的状态)有关的信息的指针可被保存(例如,使用WKL)。例如,通过使用两个检查点,用户可不就地更新“实况”检查点。
[0174]例如,作为完整映射表的补充,每一位置可在闪存日志1006中存储恢复起始位置(RSP) 1002和垃圾收集偏移GC 1004,如图10所示。例如,RSP 1002可包括在发起映射表304的复制时LSS存储中的结束偏移。例如,GC偏移1004可标记垃圾收集“边境”。
[0175]根据本文讨论的示例技术,较晚检查点具有较高RSP 1002,因为LSS偏移通过被虚拟化而单调递增。例如,在系统崩溃后,具有最高RSP 1002的已完成的检查点可被用来初始化经恢复的映射表304的状态。例如,RSP 1002指示LSS “日志”(1006)中的位置以用于开始重做恢复。为标识最后完成检查点,RSP 1002不被写入检查点,直至映射表304已被完全捕捉。因而,先前高RSP (来自替换位置)将是最高RSP 1002,直至当前检查点完成。
[0176]根据本文讨论的不例技术,作为检查点的一部分写出映射表304不是映射表304的逐字节复制,因为它存在于高速缓存中。例如,映射表304的经高速缓存的形式具有针对经高速缓存的页的映射表条目中的主存储器指针,而本文讨论的示例所需检查点涉及捕捉各页的LSS地址。作为另一示例,当前未被分配的映射表条目被维护在使用映射表条目作为列表项的空闲列表上。因而,空闲映射表条目要么具有零要么具有紧接先前空闲映射表条目的地址(基于它们被添加到空闲列表的时间而处于时间次序)。例如,可使用的空闲列表可能在映射表的异步“复制”期间不被捕捉,如本文讨论的。例如,映射表304的复制(如本文讨论的)被异步且递增地写入,这可帮助最小化对正常执行的影响。
[0177]根据本文讨论的示例技术,示例LLAMA实现可首先将LSS存储的当前结束偏移保存为RSP 1002,并可将当前LSS清除偏移保存为GC 1004。例如,映射表304可被扫描(例如,与正在进行的操作并发地),且针对每一 PID条目的页的最近转储清除的LSS地址(存储在最近转储清除增量中)可被标识,且该LSS地址可被存储在该映射表304条目的示例检查点中。例如,如果条目是空闲的,则该条目在检查点复制中可被置零。例如,空闲列表可在重做恢复的结束处被重建。此外,在映射表304的复制完成时,先前保存的RSP 1002和GC 1004可被写入稳定的检查点区,从而完成检查点。
[0178]根据本文讨论的示例技术,恢复可通过将具有最高RSP 1002的检查点(即,最近完成的检查点)的映射表304复制到高速缓存312来发起。例如,日志1006随后可从RSP1002前进至LSS的结束来被读出。例如,遇到的每一页转储清除可被带入高速缓存312,如同它是页读取的结果一样。
[0179]例如,页的内容可被读取,且增量可被设置使得LSS中的位置在转储清除增量中被引用。例如,在遇到分配页(AllocatePage)操作时,所分配的PID的映射表304条目可被初始化为“空”,如AllocatePage (分配页)操作所预期的。例如,在遇到释放页(FreePage)操作时,映射表304条目可被设为零。例如,LSS清除者可恢复对来自从检查点读取的GC偏移(1004)的日志进行垃圾收集。
[0180]根据本文讨论的示例技术,在恢复期间,所有空闲映射表304条目可被设为零。例如,重建的映射表304可被扫描。例如,在遇到零条目,它可被添加到空闲列表,这可作为栈来管理(即,要被重用的第一条目是被添加到列表的最后一个条目)。根据这些示例技术,低阶PID可被重用(作为重用中的优选),这可趋向于保持表大小集群化且很小(至少作为恢复的结果)。例如,高水位标记可被维护在映射表中,从而指示迄今使用的最高PID。例如,在空闲列表被耗尽时,PID可从表的未使用部分添加,从而递增高水位标记。
[0181]如在本文进一步讨论的,图11是用于管理无锁存和日志结构化存储的系统1100的框图。数据处理领域的技术人员将认识到系统1100可以用硬件实现、软件实现或其组合来实现。如图11所示,系统1100可包括包含至少一个处理器1104的设备1102。设备1102可包括数据管理器1106,数据管理器1106可包括可被配置成向任意选择的面向页的访问方法1110提供对页数据存储1112的接口访问的数据不透明接口 1108,所述对页数据存储1112的接口访问包括对所述页数据存储1112的无锁存访问。例如,面向页的访问方法1110可以是任何任意访问方法。例如,页数据存储1112可包括任何类型的页数据存储,包括(至少)易失性存储(如主存储器)和更稳定的存储(例如,更非易失性的存储)(诸如“辅助存储”,它可包括闪存存储以及其他类型的盘驱动器,等等)。数据处理领域技术人员将明白,可存在可与本文讨论的技术一起使用的许多类型的页数据存储,而不背离本文讨论的精神。
[0182]根据一示例实施例,数据管理器1106或其一个或多个部分可包括可被存储在有形计算机可读存储介质上的可执行指令,如下所讨论。根据一示例实施例,计算机可读存储介质可包括任何数量的存储设备以及任何数量的存储介质类型,包括分布式设备。
[0183]在该上下文中,“处理器”可包括被配置成处理与计算系统关联的处理指令的单个处理器或多个处理器。处理器由此可包括以并行方式和/或分布式方式处理指令的一个或多个处理器。虽然设备处理器1104在图11中被描绘为在数据管理器1106外部,但数据处理领域的技术人员将理解,设备处理器1104可被实现为单个组件和/或可位于数据管理器1106和/或其任何元件的内部或外部的分布式单元。
[0184]例如,系统1100可包括一个或多个处理器1104。例如,系统1100可包括存储可由一个或多个处理器1104执行的指令的至少一个有形计算机可读存储介质,可执行指令被配置成使至少一个数据处理装置执行与包括在系统1100中的各个示例组件相关联的操作,如本文所讨论地。例如,一个或多个处理器1104可被包括在至少一个数据处理装置中。数据处理领域的技术人员将理解,存在可根据本文的讨论配置的处理器和数据处理装置的许多配置,而不背离这样的讨论的精神。
[0185]在本上下文中,“组件”可指的是可被配置成执行某些操作的指令或硬件。这样的指令可被包括在指令的组成群组内,或可跨多于一个群组分布。例如,与第一组件的操作相关联的一些指令可被包括在与第二组件(或更多组件)的操作相关联的指令的群组中。例如,此处的“组件”可以指可由指令实现的一种功能,这些指令可以位于单个实体中或者可以分散或分布在多个实体上,并且可以与同其它组件相关联的指令和/或硬件重叠。
[0186]根据一示例实施例,数据管理器1106可关联于一个或多个用户设备来被实现。例如,数据管理器1106可与服务器通信,如以下进一步讨论。
[0187]例如,一个或多个数据库可经由数据库接口组件1122被访问。数据处理领域的技术人员将理解,存在用于存储本文中所讨论的信息的许多种技术,诸如各种类型的数据库配置(例如关系数据库、分层数据库、分布式数据库)和非数据库配置。
[0188]根据一示例实施例,数据管理器1106可包括可存储诸如中间结果等对象的存储器1124。在该上下文中,“存储器”可包括被配置成存储数据和/或指令的单个存储器设备或多个存储器设备。此外,存储器1124可跨多个分布式存储设备。此外,存储器1124可以分布在多个处理器中。
[0189]根据一示例实施例,用户接口组件1126可管理用户1128与数据管理器1106之间的通信。用户1128可与接收设备1130相关联,接收设备1130可与显示器1132和其它输入/输出设备相关联。例如,显示器1132可被配置成经由内部设备总线通信或经由至少一个网络连接与接收设备1130通信。
[0190]根据示例实施例,显示器1132可被实现为平面屏幕显示器、印刷形式显示器、二维显示器、三维显示器、静态显示器、移动显示器、传感显示器(诸如触觉输出、听觉输出以及任何其它形式输出)以用于与用户(例如,用户1128)通信。
[0191]根据一示例实施例,数据管理器1106可包括网络通信组件1134,该网络通信组件1134可管理数据管理器1106和可经由至少一个网络1136与数据管理器1106通信的其它实体之间的网络通信。例如,网络1136可包括因特网、至少一个无线网络、或至少一个有线网络的至少其中之一。例如,网络1136可包括蜂窝网络、无线电网络或可支持用于数据管理器1106的数据传输的任何类型的网络。例如,网络通信组件1134可管理数据管理器1106与接收设备1130之间的网络通信。例如,网络通信组件1134可管理用户接口组件1126与接收设备1130之间的网络通信。
[0192]例如,数据不透明接口 1108可被配置成向任意选择的面向页的访问方法1110提供对页数据存储1112的接口访问,所述接口访问包括对所述页数据存储1112的日志结构化访问。
[0193]例如,高速缓存层管理器1138可包括映射表管理器1140,映射表管理器1140可被配置成在与所述数据不透明接口 1108相关联的间接地址映射表1142上发起表操作,所述表操作包括在所述间接地址映射表1142中的各条目上发起原子比较并交换(CAS)操作,以用与所述页数据存储1112相关联的页的新状态来替换所述页的先前状态。
[0194]例如,映射表管理器1140可被配置成在与数据不透明接口 1108相关联的间接地址映射表1142上发起表操作,其中间接地址映射表1142被共同用于对包括高速缓存层存储1144和辅助存储1146的数据存储的管理。
[0195]例如,间接地址映射表1142将页的逻辑位置与页的对应物理位置分开,其中页数据存储的用户根据页的物理位置地址值来将页标识符值存储在引用页数据存储的数据结构中的其他位置。
[0196]例如,更新管理器1148可被配置成使用间接地址映射表1142中的条目上的无锁存比较并交换操作来控制数据更新和管理更新,以实现间接地址映射表1142上的原子状态改变。
[0197]例如,存储层1149可包括日志结构化存储层管理器1150,日志结构化存储层管理器1150可被配置成使用针对所述间接地址映射表1142中的条目上的无锁存比较并交换操作来控制与得自页转储清除的日志结构化相关联的页位置变化。
[0198]例如,缓冲区管理器1151可被配置成经由无锁存更新操作来控制对日志结构化辅助存储缓冲区的更新。因而,例如,多个线程可经由无锁存操作来同时更新日志结构化辅助存储缓冲区。
[0199]例如,缓冲区管理器1151可被配置成发起稳定性操作以用于确定转储清除到日志结构化辅助存储缓冲区的页(具有较低地址),直至第一辅助存储地址自变量,在日志结构化辅助存储中是稳定的。
[0200]例如,页管理器1152可被配置成控制页上的转储清除操作、分配操作、以及释放操作。例如,页管理器1152可被配置成基于以下操作来发起高速缓存层存储中的第一页到辅助存储中的位置的转储清除操作:发起所述第一页的页状态到辅助存储缓冲区的复制,发起转储清除增量记录到所述页状态的前缀,所述转储清除增量记录包括指示所述第一页在辅助存储中的存储位置的辅助存储地址以及与调用者相关联的注释,以及基于将所述转储清除增量记录的地址安置在映射表中经由比较并交换(CAS)操作来发起对所述页状态的更新。
[0201]例如,页管理器1152可被配置成基于发起部分交换增量记录到与第一页相关联的页状态的前缀,来发起高速缓存层存储中的所述第一页的一部分到辅助存储中的位置的交换操作,所述部分交换增量记录包括指示转储清除增量记录的存储位置的主存储器地址,所述转储清除增量记录指示所述第一页的丢失部分在辅助存储中的位置。
[0202]例如,系统事务管理器1154可被配置成提交事务和放弃事务。
[0203]例如,记录管理器1156可被配置成基于更新增量记录操作和替换更新操作来控制更新。
[0204]例如,时期管理器1160可被配置成在第一处理器操作访问页信息之前,发起第一处理器操作加入与第一时期相关联的第一时期登记列表。例如,第一处理器操作可以是线程。
[0205]例如,页管理器1152可被配置成基于将转储清除增量记录的指针安置到映射表中经由比较并交换(CAS)操作来将页状态转储清除到辅助存储,所述转储清除增量记录被前缀到经由所述CAS操作在所述映射表中被替换的现有页状态。
[0206]例如,页管理器1152可被配置成确定所述CAS操作是否成功,并在确定所述CAS操作成功的情况下发起写操作以将所述现有页状态写入辅助存储转储清除缓冲区。
[0207]例如,页管理器1152可被配置成在确定CAS操作失败的情况下发起对先前分配给现有页的存储空间的空操作。
[0208]数据处理领域的技术人员将理解,可使用许多不同的技术来用于无锁存、日志结构化存储系统,而不背离本文讨论的精神。
[0209]II1.流稈图描沭
[0210]在此讨论的特征被提供为可用数据处理领域的技术人员所理解的多种不同方式来实现,而不背离在此的讨论的精神。这样的特征被解释为仅为示例实施
当前第5页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1