[发明专利]高效的文件散列标识符计算有效
申请号: | 200880110492.2 | 申请日: | 2008-09-22 |
公开(公告)号: | CN101809566A | 公开(公告)日: | 2010-08-18 |
发明(设计)人: | E·C·佩林;R·V·普迪派蒂 | 申请(专利权)人: | 微软公司 |
主分类号: | G06F17/00 | 分类号: | G06F17/00 |
代理公司: | 上海专利商标事务所有限公司 31100 | 代理人: | 张欣;钱静芳 |
地址: | 美国华*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 高效 文件 标识符 计算 | ||
1.一种经由文件系统来维护对一个或多个文件的变化的日志的方法, 包括:
与为相应文件维护的状态数据相关联地维护(312)所述一个或多个文 件的高速缓存的散列值,所维护的状态数据表示在为相应文件计算高速缓 存的散列值时所述相应文件的状态,所维护的状态数据包括与文件中记录 的更新相对应的更新序列号和标识日志实例的日志标识符;
通过确定(410)是否为第一文件维护了高速缓存的散列值来处理对所 述第一文件的散列值的请求(402);
当为所述第一文件维护了高速缓存的散列值时,根据所述第一文 件的所维护的状态数据和所述第一文件的当前状态数据来确定(412) 所述第一文件的内容自所述散列计算的时间以来是否未被改变,所述 当前状态数据包括当前更新序列号和当前日志标识符;
当当前更新序列号等于所维护的更新序列号并且当前日志标识符等于 所维护的日志标识符时,选择(420)所述第一文件的高速缓存的散列值作 为所选散列值;
当以下情况的至少之一时计算(428)所述第一文件的散列值并选择为 所述第一文件计算得到的散列值作为所选散列值:
没有为所述第一文件维护高速缓存的值,
确定当前状态数据不等于所维护的状态数据;以及
响应于所述请求返回(420、432)所选散列值。
2.如权利要求1所述的方法,其特征在于包括,当没有为所述第一文 件维护高速缓存的值时,创建(430)与状态数据相关联地维护所计算的散 列值的信息集合,所述状态数据表示在计算所述散列值时所述第一文件的 状态。
3.如权利要求1所述的方法,其特征在于包括,当维护了高速缓存的 值但是出现当前更新序列号不等于所维护的更新序列号和当前日志标识符 不等于所维护的日志标识符中的至少一个时,更新(424)所述第一文件的 高速缓存的散列值和计算所述散列值时的相关联的所维护的状态数据。
4.如权利要求1所述的方法,其特征在于,处理请求(402)包括:当 为所述第一文件维护了多个散列值时,确定是否为所述第一文件维护了与 所述请求相关联的特定类型的高速缓存的散列值。
5.如权利要求1所述的方法,其特征在于,确定所述第一文件的内容 自所述散列计算的时间以来是否未被改变包括:当当前更新序列号不等于 所维护的更新序列号并且当前日志标识符等于所维护的日志标识符时:
扫描(512)与在更新序列号之间记录的更新相对应的一个或多个更新 以确定更新是否属于修改所述文件内容的类型,以及
当确定所述更新属于未修改所述文件内容的类型时,认为(516)所述 第一文件的内容未被改变。
6.如权利要求5所述的方法,其特征在于包括,如果文件内容被认为 未被改变,更新与高速缓存的散列值相关联地维护的状态数据的更新序列 号。
7.如权利要求1所述的方法,确定所述第一文件的内容自所述散列计 算的时间以来是否未被改变包括:当当前更新序列号不等于所维护的更新 序列号并且当前日志标识符等于所维护的日志标识符时:
评估(508)与所述第一文件的高速缓存的散列值相关联地维护的文件 大小是否与所述第一文件的当前文件大小相等;
当与高速缓存的散列值相关联地维护的文件大小与当前文件大小不相 等时,认为(518)所述第一文件的内容已改变;
当与高速缓存的散列值相关联地维护的文件大小与第一文件的当前文 件大小相等时,则扫描(512)与更新序列号之间记录的更新相对应的一个 或多个更新以确定更新是否属于修改所述第一文件的文件内容的类型;
在确定更新属于未修改所述文件内容的类型时,认为(516)所述第一 文件的内容未被改变。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于微软公司,未经微软公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200880110492.2/1.html,转载请声明来源钻瓜专利网。