提供对更新后的文件的访问的方法和执行该方法的计算机的制作方法

文档序号:8319226阅读:147来源:国知局
提供对更新后的文件的访问的方法和执行该方法的计算机的制作方法
【专利说明】
[0001] 相关申请的交叉引用
[0002] 本申请要求转让于本申请的受让人的于2013年11月8日提交的临时专利申请 No. 61/902,092的权益,并且其以引用方式并入本文。
技术领域
[0003] 本申请一般地涉及计算机应用,具体地,涉及用于LBA的原子交换和剪切的SWAT 命令和API。
【背景技术】
[0004] 文档管理系统更新数据结构以跟踪文档的最新版本。在这个过程中,一些系统创 建文档的另一版本而非覆盖旧版本,并且将文档的旧版本保持一段时间。这允许系统在更 新新版本的同时访问文档的旧版本以进行读取。例如,如果用户更新他/她的博客页面,则 在他/她更新博客页面的同时,其它用户仍然可阅读旧版本的博客页面。在一些时候,系统 需要更新系统信息以访问新文档并替代旧文档。通常,这触发了系统的数据结构中的一系 列级联更新,并且需要对贮存器进行多次写入。
[0005] 因此,期望提供一种改进的方法和系统,用于对更新后的文件提供访问而不用在 系统的数据结构中执行级联更新。

【发明内容】

[0006] 示例性实施例提供了由具有至少一个处理器的计算机执行的对更新后的文件的 访问的方法,其中响应于接收到包括旧文件的修改内容的更新的应用,创建在其中复制了 所述修改内容的新文件,同时保持对旧文件的访问,其中旧文件逻辑块地址(LBA)映射到 旧文件物理块地址(PBA),并且新文件LBA映射到新文件PBA,所述方法包括步骤:将旧文 件LBA的映射从旧文件PBA自动地交换至新文件PBA ;剪切旧文件LBA到旧文件PBA的映 射;以及清除新文件LBA到新文件PBA的映射。
[0007] 根据示例性实施例的方法和系统,可在不用在系统的数据结构中执行级联更新并 且不用对贮存器进行不必要的写入的情况下更新文件。
【附图说明】
[0008] 通过以下结合附图对实施例的描述,本发明的整体构思的这些和/或其它特征和 效用将变得清楚和更容易理解,图中:
[0009] 图1是示出根据示例性实施例的文档管理系统的框图;
[0010] 图2是更新文件的常规文档管理系统的图解说明;
[0011] 图3是根据一个示例性实施例示出了文档管理系统执行的用于在更新期间对文 件提供访问的过程的流程图;以及
[0012] 图4是图解说明了图3所示过程的示图。
【具体实施方式】
[0013] 现在将详细描述本发明的整体构思的实施例,在附图中示出了其示例,其中相同 的附图标记始终表示相同的元件。以下在参照附图的同时描述实施例以解释本发明的整体 构思。
[0014] 通过参照以下实施例和附图的具体说明可更容易地理解本发明的优点和特征及 其实现方法。然而,本发明的整体构思可以许多不同的形式实现,并且不应理解为限于本文 阐述的实施例。此外,提供这些实施例是为了使得本公开将是彻底和完整的,并且将把本发 明的整体构思的概念完全传递给本领域技术人员,并且本发明的整体构思将仅由权利要求 限定。为了清楚起见,在附图中会夸大层和区的厚度。
[0015] 应该理解,除非本文表明不是这样或者在上下文中作出清楚的相反的指示,否则 在描述本发明的上下文中(尤其是在权利要求的上下文中),使用的术语"一"、"一个"、"该" 以及相似的指示语应解释为涵盖单数形式和复数形式二者。应该理解,除非说明不是这 样,否则术语"包括"是开放性术语(即,意味着"包括(但不限于)")。
[0016] 如本文所用的那样,术语"组件"或"模块"意指(但不限于)执行特定任务的软 件或诸如现场可编程门阵列(FPGA)或专用集成电路(ASIC)之类的硬件组件。组件或模块 可有利地构造为位于可寻址贮存介质中,并被构造为在一个或多个处理器上执行。因此,以 举例的方式,组件或模块可包括诸如软件组件、面向对象的软件组件、类组件和任务组件的 组件、处理、功能、属性、过程、子程序、程序代码片断、驱动器、固件、微代码、电路、数据、数 据库、数据结构、表、阵列和变量。针对组件以及组件或模块提供的功能性可组合到更少的 组件以及组件或模块中,或者进一步分为额外的组件以及组件或模块。
[0017] 除非另外限定,否则本文使用的所有技术术语和科学术语具有与本发明所属领域 的普通技术人员之一共同理解的含义相同的含义。应该注意,除非另外指明,否则使用本文 提供的任何和所有示例术语或示例性术语仅旨在更好地示出本发明,而不限制本发明的范 围。另外,除非另外限定,否则不可过度解释在通用词典中定义的所有术语。
[0018] 图1是示出根据示例性实施例的文档管理系统10的框图。文档管理系统10可包 括计算机12,其跟踪并存储电子文档或文件。在一个实施例中,计算机12可包括台式、笔记 本或工作站,而在另一实施例中,计算机12可包括经网络(未示出)与客户计算机通信的 服务器。计算机12可包括通常的计算机组件,其中包括处理器14、存储器16和诸如高速贮 存器18 (例如,固态驱动器(SSD))之类的贮存装置。
[0019] 处理器14可包括多个处理器,或具有一个或多个核的单个处理器。处理器14执 行来自存储器16的程序指令。软件的示例类型可包括应用20、操作系统22、文件系统24 和用于高速贮存器18的装置驱动器应用程序接口(API) 26。
[0020] 如本领域熟知的,应用20可表示计算机软件,当处理器14执行该计算机软件时使 得计算机12执行计算机12的运行之外的任务。示例可包括网络浏览器、文字处理器和数 据库程序。通常,应用20创建并修改或更新文件28。操作系统22是一种管理和控制计算 机12的操作的系统软件。示例可包括Microsoft Windows、Mac OS X和Linux。
[0021] 文件系统24是软件,其控制如何在诸如高速贮存器18的数据贮存装置上存储、检 索和更新诸如文件28之类的信息。通常,文件系统24使用逻辑块寻址,以指明诸如文件28 之类的数据在高速贮存器18或其它计算机贮存装置上的存储位置。更具体地说,逻辑块寻 址是一种将逻辑块地址(LBA) 30分配给映射到高速贮存器18上的特定贮存位置的文件28 的抽象。
[0022] 装置驱动器应用程序接口(API) 26允许应用20、操作系统22和文件系统24与高 速贮存器18透明地交互。装置驱动器API 26将命令提供至高速贮存器18和/或从高速 贮存器18接收数据。
[0023] 在一个实施例中,高速贮存器18使用物理块寻址,以将地址提供至存储在高速贮 存器18上的数据的各个物理块。这些类型的地址可被称作物理块地址(PBA) 32。在一个实 施例中,高速贮存器18可包括固态驱动器(SSD)(也称作固态盘)。SSD是一种使用集成电 路组件作为存储器以永久地存储诸如文件28之类的数据的数据贮存装置。在一个实施例 中,SSD可使用基于NAND的闪速存储器或随机存取存储器(RAM)。
[0024] 在实施例中,高速IC存器18还可包括文件转换层(file translation layer, FTL) 34或等同物,其在将逻辑扇区接口提供至计算机12的同时管理高速贮存器18。这样, FTL 34控制由文件系统24保持的LBA 30与由高速贮存器18保持的PBA 32之间的映射关 系。在替代实施例中,示例性实施例可与除SSD以外的其它类型的贮存装置一起使用。
[0025] 图2是更新文件的常规文档管理系统的图解说明。示出的示例假设应用保持表示 用户的博客页面的文件200。每当用户更新博客时,应用将文件200读到存储器中,并相应 地修改内容。在更新过程中,系统创建新文件204,将修改内容复制到新文件204中。同时, 在用户持续更新博客的同时其它用户仍可访问和浏览旧文件202。当用户完成对博客的编 辑并提交页面时,应用切换到新文件204并删除旧文件202。
[0026] 在贮存系统(实际存储文件之处)保持物理块地址(PBA) 208的同时,文件系统保 持针对旧文件202和新文件204的逻辑块地址(LBA) 206。在该示例中,文件系统将旧文件 202映射到LBA4和LBA5,而贮存装置将LBA4-LBA5分别映射到PBA0-PBA1。相似地,新文件 204 映射到 LBA24-LBA25,并且 LBA24-LBA25 继而分别映射到 PBA11-PBA12。
[0027] 常规系统的一个问题在于,系统有些时候需要更新系统信息以访问替代旧文件 202的新文件204。通常,这会触发系统的数据结构中的一系列级联更新,并导致对贮存器 进行多次与入。
[0028] 系统信息可包括针对各个文件/文档的元数据。例如,元数据可包括存储文档的 日期和存储文件的用户的身份。元数据通常按照数据结构进行存储。这种数据结构的一个 示例是B树,这是一种分类保持数据并允许以对数时间(logarithmic time)进行搜索、顺 序存取、插入和删除的树数据结构。针对各个文件200的元数据和/或一列LBA206可通过 B树中的i节点保持。通常每个文件200具有一个i节点。如果文件200的i节点存储在 靠近B树的叶层,则会需要更新从该节点直至根节点的路径上的所有节点,因而进行级联 更新和对贮存器写入。
[0029] 例如,每当用户更新如上所述的博客时,应用也需要更新包含该博客的文件信息, 这导致至少一个盘写入。当用户更多时,发生更多的盘写入。
[0030] 示例性实施例涉及一种用于提供对新的更新后的文件进行访问而不用更新系统 数据结构的改进的方法和系统,从而最小化或消除系统中的级联更新和过多的盘写入。
[0031] 示例性实施例提出了一种用于处理该问题的新的贮存器(例如,SSD)命令和API。 也就是说,如果可在不用更新系统数据结构的情况下访问新版本的文档,则由于用于反映 最新系统信息的级联更新的取消可避免或明显减少贮存器写入。实际上,除该简化的示例 以外,示例性实施例也可应用于诸如B+树、文档日志和其他具有这些特征
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1