[发明专利]维护数据库与文件系统之间的链接级一致性有效
申请号: | 200680012268.0 | 申请日: | 2006-03-09 |
公开(公告)号: | CN101460930A | 公开(公告)日: | 2009-06-17 |
发明(设计)人: | B·S·拉曼;K·严;R·B·拉杰恩 | 申请(专利权)人: | 微软公司 |
主分类号: | G06F12/00 | 分类号: | G06F12/00 |
代理公司: | 上海专利商标事务所有限公司 | 代理人: | 陈 斌 |
地址: | 美国华*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 维护 数据库 文件系统 之间 链接 一致性 | ||
发明领域
本发明一般涉及数据库管理领域。更具体地,本发明涉及维护数据库与相应 的文件系统之间的链接级一致性。
发明背景
近年来,对诸如图片、视频和电影的大型非结构化数据类型的使用增长巨大, 伴随以高效方式存储这些大量数据流的需求。传统上,在诸如文件系统的结构中或 数据库中存储数据。
文件系统是其中在诸如硬盘的存储介质上将文件存入文件夹内的分级数据结 构。操作系统的一部分维护文件系统,并控制对文件系统中的文件的访问。文件系 统擅长将大量非结构化数据以流的形式传入和传出文件。目前已知的文件系统的问 题之一在于,诸文件必须被手动组织成分组(诸文件夹和子文件夹),并且,如果 用户忘记了他在哪里存储了特定的文件,则可能难以找到该文件。磁盘技术的进步 已经预见到发展越来越大的硬盘,诸如此类的技术动力使得这一问题更为严重。能 够存储在单张磁盘上的数据的绝对容量可能使跟踪文件系统中的文件成为极其困 难的任务。
数据组织的另一广泛使用的方法是数据库。数据库系统将数据存储为一个或 多个表,其中表的每一行包括涉及一个实体的相关数据元素的多个分组,各列表示 关于该行主题的实体的有用信息。例如,可维护人力资源信息的数据库,其中人力 资源数据库的每一行表示一个雇员,而人力资源数据库中的每一列表示诸如雇员 名、雇员社会保障号以及雇员薪资的数据元素。
数据库提供优于数据的文件系统组织的众多有用优点。数据库管理系统擅长 存储、寻找和检索结构化数据的细小片段。此外,通常存在搜索和访问存储在数据 库中的数据的指定部分的高度灵活的手段。然而,数据库还未能很好地处理大量非 结构化数据(被称为BLOB(Binary Large Object,二进制大对象))的存储和访 问。
具体地,当数据库包括BLOB列时,BLOB一般被拆分成分散在磁盘的细小 片段。数据库列中的条目包含指向BLOB第一片段的指针而非包含BLOB本身。 这种情况导致检索BLOB中的数据的低效率,因为必须找到并重新组合不同的 BLOB片段。为了减少这些低效率的影响,通常返回指向BLOB的第一片段的指 针而非即时检索BLOB本身。
例如,假定雇员信息的数据库包括雇员相片的BLOB列。假定用户请求特定 雇员的相片,并向其返回了指向该相片的指针。指针表示一个物理位置——例如, 表示磁盘扇区上存储相片第一片段的实际磁盘地址的16字节十六进制值。在这种 情况中,会引起若干问题。除了磁盘地址无法为用户所知以外,如果操作系统重新 组织磁盘上的数据,则相片可能不再存在于该位置,在这种情况中将向用户返回“找 不到”消息。
近来,开发了存储BLOB的另一方式,其中BLOB在文件系统中被存储为毗 邻文件即“FILESTREAM(文件流)”。提供可用于对关系表中的一列附加标签 的FILESTREAM数据存储属性。FILESTREAM属性指示该列的数据将被存储为 操作系统(OS)的文件系统中的文件。数据库管理系统管理文件系统中的文件的 创建和删除。在文件系统中的文件与单元(行和列的交集)之间存在1:1的引用。 可使用诸如SQL或MICROSOFT的T-SQL等程序设计语言按照与其它列中的数 据相同的方式操作FILESTREAM列中的数据。
因此,FILESTREAM列在数据库中用于大型非结构化数据。对FILESTREAM 数据存储属性的使用允许将大型非结构化数据存储为文件系统中的毗邻文件,而同 时仍可供数据库访问。这样的数据库管理系统需要维护具有FILESTREAM属性的 数据库行与其相应的FILESTREAM数据之间的链接的一致性(即,“链接级一致 性”)以确保数据完整性并避免数据库的讹误。例如,如果在将改变提交给磁盘(即 “刷新(flush)”)之前,发生诸如电源故障或系统崩溃的故障,则可能导致若干 问题。例如,数据库可能不会反映文件系统中存在的文件或目录的存在;或者,数 据库可能会反映文件系统中不存在的文件或目录的存在。因此,数据库与文件之间 被破坏链接损害了数据库的完整性,因为数据库用户不能确信数据库准确地反映了 由数据库列中FILESTREAM单元所表示的数据的当前状态。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于微软公司,未经微软公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200680012268.0/2.html,转载请声明来源钻瓜专利网。