针对分布式存储系统中的变化检测的动态散列函数组合技术方案

技术编号:31228843 阅读:22 留言:0更新日期:2021-12-08 09:45
本文公开了针对分布式存储系统中的变化检测的动态散列函数组合的技术。在一个实施例中,一种方法包括:针对文档的新版本的属性动态选择散列函数,并使用所选择的散列函数生成所述属性的所述值的散列值。方法然后可以包括:确定接收到的新版本的属性的生成的散列值是否与分布式存储系统中文档的先前版本的属性的散列值不同。响应于确定生成的散列值与文档的先前版本的散列值不同,可以向先前注册为接收关于属性变化的通知的一个或多个计算服务发送通知,而不向未注册为接收所述通知的其他计算服务发送所述通知。他计算服务发送所述通知。他计算服务发送所述通知。

【技术实现步骤摘要】
【国外来华专利技术】针对分布式存储系统中的变化检测的动态散列函数组合

技术介绍

[0001]分布式存储系统通常包括路由器、交换机、网桥和其他网络设备,它们经由有线或无线网络链路将大量计算机服务器、网络存储设备和其他类型的计算设备互连起来。计算机服务器可以托管一个或多个虚拟机、容器或其他类型的虚拟化组件,以便向用户提供各种计算和/或存储服务。例如,计算机服务器可以被配置为:提供允许用户存储、编辑、检索或执行其他数据管理任务的数据存储和检索服务。

技术实现思路

[0002]提供本
技术实现思路
以便以简化的形式对下面在具体实施方式中进一步描述的设计构思的选择进行介绍。本
技术实现思路
并不旨在标识要求保护的主题的关键特征或重要特征,也不旨在用于限制要求保护的主题的范围。
[0003]当今的分布式存储系统通常按照分层架构进行布置,以便为大量用户提供可靠且可扩展的存储服务。分布式存储系统的每一层都可以依赖相应的计算系统来提供设计的服务。例如,分布式存储系统可以包括高度可扩展且能够存储大量数据的存储层。存储层通常可以包括一组后端服务器,这些后端服务器被配置为:促进用户的存储、检索和/或其他数据管理任务。这组后端服务器还可以提供用于执行各种数据分析或分析任务的计算资源。此类分析任务的示例包括文档视图的聚合、修改信号的检测、趋势文档的计算等。此类存储层的一个示例是由华盛顿州雷德蒙德市的微软公司提供的Microsoft Outlook
[0004]虽然存储层适合执行大量数据的存储和分析,但存储层中使用的数据结构可能不适合提供对个体数据项的随机访问。例如,存储层可能不会在与数据项在列表中的位置或列表的大小无关的恒定时间访问列表中的数据项。此外,这种分布式存储系统的可扩展性通常是通过将存储的数据或对此类数据的索引拆分或“分片”到分区中来实现的。例如,在某些分布式存储系统中,存储层中数据项的主索引可以被拆分为多个子索引。代替引用数据项,主索引可以引用子索引,而子索引又可以引用数据项。在这样的分布式存储系统中,当用户请求存储的数据项时,在存储层中执行多个操作(例如,扇出联合)以对此类引用进行解析。执行多个操作可能会导致服务用户请求的高延时和计算负载。
[0005]一种用于提供对存储数据的快速随机访问的技术是将所存储的数据的子集(有时被称为“高影响数据”)高速缓存在被配置为提供针对高影响数据的高速缓存服务的集中式存储库中。例如,在存储层中运行的一组分析服务器和/或计算过程(在本文中被称为“摄取处理器”)可以被配置为:将所存储的数据的子集作为高影响数据推送到集中式存储库中。推送到集中式存储库的高影响数据可以包括各种场景计算服务可能感兴趣的各种类别的存储的数据。在一个示例中,在集中式存储库中高速缓存的针对存储层中存储的文档的高影响数据可以包括文档名称、文档扩展(例如“txt”)、最后更新的日期/时间、查看文档的次数、修改文档的次数、可以检索到文档的通用资源定位符(URL)和/或与文档相关的其他合适信息。通过对高影响数据进行高速缓存,用户可以容易地从集中式存储库中检索文档和/或文档的其他相关信息。
[0006]场景计算服务可以被配置为:从集中式存储库中检索高速缓存的高影响数据,并对存储层中存储的底层数据的变化做出反应,以提供相应的用户体验。例如,在上面的文档示例中,搜索索引服务可能对用于更新搜索索引的标题、主体、附录或其他合适类型的文档内容的变化感兴趣。另一方面,文档元数据服务可能对用于更新对文档的查看/编辑的次数的文档的查看者列表和文档的最后修改的时间戳感兴趣。
[0007]在某些分布式存储系统中,一旦在存储的文档中检测到任何变化,就向所有场景计算服务发送总括通知(blanket notification)以便进行进一步处理。检测到的变化的示例可以包括对文档的属性的写操作。然而,这种总括通知会导致分布式存储系统中计算资源的浪费。首先,总括通知的传输可能涉及资源密集型通知调用(例如,超文本传输协议或“HTTP”请求或远程过程调用)。其次,不同的场景计算服务可能对文档的不同属性的变化感兴趣。例如,在文档示例中,搜索索引服务可能对用于更新搜索索引的文档查看者列表或文档的修改次数的变化不感兴趣。另一方面,文档元数据服务可能对文档主体或标题的变化不感兴趣。因此,总括通知中指示的变化可能适用于一些场景计算服务,但与其他场景计算服务无关。尽管总括通知中指示的变化不相关,但所有场景计算服务都可能消耗额外的计算、网络、输入/输出和/或其他合适类型的资源来确定总括通知中指示的变化是否与个体场景计算服务相关。例如,可以消耗各种类型的资源来执行集中式存储库处的高影响数据的附加读取操作。这种读取操作会导致托管集中式存储库的服务器上的高计算负载、计算机网络中的高网络带宽消耗和/或对分布式存储系统的性能和/或操作的其他负面影响。
[0008]公开的技术的若干实施例可以通过在分布式存储系统中实现文档属性的粒度变化检测来解决上述缺陷的至少一些方面。在某些实施方式中,分布式存储系统可以包括存储层,该存储层具有经由计算机网络彼此可操作地耦合的一个或多个后端服务器、一个或多个集中式存储服务器以及一个或多个场景计算服务器。集中式存储库服务器可以被配置为:为存储在存储层中的数据的子集提供集中式存储库和高速缓存服务。场景计算服务器可以被配置为:响应于存储在后端存储服务器中的文档的某些属性的变化来提供各种类型的计算服务,例如上述搜索索引服务和文档元数据服务。
[0009]后端服务器可以被配置为:提供各种数据存储服务以促进存储、检索、修改、删除和/或其他合适类型的数据管理操作。后端服务器还可以被配置为提供摄取处理器,该摄取处理器被配置为:对在存储层接收并存储在存储层中的新的和/或经更新的数据进行分析。在某些实现中,摄取处理器可以被配置为:从场景计算服务接收注册或其他合适类型的指示。注册分别指示文档的一个或多个属性、相应的场景计算服务希望接收通知的变化。这种注册可以作为列表、表格或其他合适的数据结构保存在数据存储单元中。
[0010]在某些实施例中,集中式存储库可以包括变化检测器,该变化检测器被配置为:对在摄取处理器处接收到的数据项的一个或多个属性执行粒度变化检测。尽管下面将变化检测器描述为集中式存储库的一部分,但在其他实施例中,变化检测器也可以被配置为摄取处理器的一部分、分布式存储系统中的独立计算服务或其他合适的配置。
[0011]使用文档作为例子,当在摄取处理器处接收到文档的新版本时,摄取处理器可以从文档中提取某些高影响数据并将提取的高影响数据写入集中式存储库。进而,集中式存储库(或其组件)处的变化检测器可以被配置为:将接收到的新版本中的文档的属性的各种值与存储在集中式存储库中的先前版本中的属性的各种值进行比较。例如,变化检测器可
以比较文档的主体和/或标题以确定是否在主体和/或标题中检测到变化。在另一个示例中,变化检测器还可以将新版本中的文档的查看次数和/或修改次数与旧版本中的查看次数和/或修改次数进行比较。
[0012]响应于检测到属性中的至少一个属性的变化,变化检测器可以被配置本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种用于针对文档的变化检测的动态散列函数组合的方法,所述文档存储在具有经由计算机网络彼此互连的多个服务器的分布式存储系统中,所述方法包括:在所述服务器中的一个服务器处接收表示存储在所述分布式存储系统中的文档的新版本的数据,所接收的所述文档的新版本具有多个属性,所述多个属性分别具有描述或标识所述文档的值;以及响应于接收到表示所述文档的所述新版本的所述数据,对于所述属性中的每个属性,基于所述文档的所述新版本中的所述属性的值的数据大小或数据类型中的一项或多项来识别所述文档的所述新版本的所述属性的散列函数;使用所识别的散列函数来生成所述属性的所述值的散列值;将所接收的新版本中的、所述文档的所述属性的所生成的散列值与所述分布式存储系统中的所述文档的先前版本中的相应属性的散列值进行比较;以及当检测到所生成的散列值与所述文档的所述先前版本中的所述相应属性的散列值不同时,经由所述计算机网络,仅向先前注册为接收关于所述属性的变化的通知的一个或多个计算服务发送通知,而不向未注册为接收所述通知的其他计算服务发送所述通知。2.根据权利要求1所述的方法,其中,识别所述散列函数包括:当所述属性的所述值是整数或者是具有比阈值字符数少的字符串时,选择恒等函数作为所述散列函数,其中,所述恒等函数被配置为返回输入值作为输出。3.根据权利要求1所述的方法,其中,识别所述散列函数包括:当所述属性的所述值是整数或者是具有比阈值字符数少的字符串时,选择恒等函数作为所述散列函数,其中,所述恒等函数被配置为返回输入值作为输出;并且当所述属性的所述值不是整数或者不是具有比阈值字符数少的字符串时,选择被配置为将所述数据大小的所述值的数据映射到与所述值的所述数据大小不同的固定大小的散列值的散列函数。4.根据权利要求1所述的方法,其中,识别所述散列函数包括:确定用于执行所述比较的所述属性的数量是否高于阈值;以及响应于确定用于执行所述比较的所述属性的所述数量高于所述阈值,选择被配置为生成具有不少于阈值比特数的比特数的所述散列值的散列函数。5.根据权利要求1所述的方法,其中,识别所述散列函数包括:识别所述文档的所述新版本的所述属性的所述数据大小;以及基于所述属性的...

【专利技术属性】
技术研发人员:T
申请(专利权)人:微软技术许可有限责任公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1