CN112368682A - 使用高速缓存用于内容验证和错误补救 - Google Patents

使用高速缓存用于内容验证和错误补救 Download PDF

Info

Publication number
CN112368682A
CN112368682A CN201980045686.7A CN201980045686A CN112368682A CN 112368682 A CN112368682 A CN 112368682A CN 201980045686 A CN201980045686 A CN 201980045686A CN 112368682 A CN112368682 A CN 112368682A
Authority
CN
China
Prior art keywords
data structure
electronic file
data
content
cache memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201980045686.7A
Other languages
English (en)
Inventor
S·苏布希达尔
D·莫顿
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN112368682A publication Critical patent/CN112368682A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开涉及使得能够使用高速缓存存储器用于内容验证和内容错误补救的处理操作。高速缓存的功能被扩展以使得能够在高速缓存和验证组件之间进行接口,所述验证组件被配置为验证直接从高速缓存中读取的数据。可以更新损坏的内容并且将其传播到与应用/服务、系统等相关联的永久数据存储装置。使用高速缓存可能是针对近期和/或访问频繁的内容最佳的以及用于从永久数据存储装置中卸载数据处理操作的手段。在本文中所描述的示例扩展到其中已经将与电子文件相关联的数据存储在高速缓存存储器中的示例以及其中直接对永久数据存储装置进行更新并且随后转发用于验证处理的示例。

Description

使用高速缓存用于内容验证和错误补救
背景技术
通常,在一个或多个用户可以通过应用或服务更新内容的分布式联网示例中访问和修改数据。被存储在分布式存储装置(例如,云存储装置)中的一条数据可能由多个用户从多个设备来更新,并且还能够通过对数据起作用的各种服务来更新。在更新处理期间,被更新的数据有可能被破坏。除其他原因外,这可能是由于访问数据的任意客户端或服务上的问题所致。
以前,在内容损坏的情况下,以专门的方式来识别问题的原因,其中,进行尝试以将问题跟踪到可能已经访问分布式存储装置的特定客户端或服务。发现的任何错误均被修复。然而,该过程使得难以一致地识别问题的原因以及识别生产中可能已经进入损坏状态的数据。另外,从处理效率的角度来看,这种类型的处理是资源密集型的,例如,占用客户端侧以及服务器侧上的资源,并且还需要额外的处理操作以从数据存储装置中取回文件数据。损坏补救服务可以被配置为一个接一个地解决损坏问题,并且不识别(针对文件内容的)基础数据结构无效。考虑其中由于基础数据结构中的错误而发生上传错误的实例。常规的损坏补救处理可能不更新基础数据结构以防止发生该问题,这意味着大量数据有可能进入损坏状态。
发明内容
鉴于前述技术挑战,本公开涉及使得能够使用高速缓存存储器用于内容验证以及对内容的错误补救的处理操作。高速缓存通常被用于通过为在用户与永久数据存储装置之间的数据提供临时停止来优化性能。在本文中所描述的示例中,高速缓存的功能被扩展以使得能够在高速缓存存储器与验证组件之间进行接口,所述验证组件被配置为验证直接从高速缓存存储器中读取的数据。如果发现内容被损坏,则可以在高速缓存存储器中更新内容并且将其传播到与应用/服务、系统等相关联的永久数据存储装置。使用高速缓存可能是针对近期和/或访问频繁的内容最佳的以及用于从永久数据存储装置(例如,分布式数据存储装置)卸载数据处理操作的手段。在本文中所描述的示例扩展到其中已经将与电子文件相关联的数据存储在高速缓存存储器中的那些示例以及其中直接对永久数据存储装置进行更新并且随后进行转发以用于验证处理的那些示例。更新可以被转发到高速缓存存储器,从而用户接收新的(经更新的)数据。该更新处理还可以被用于验证在永久数据存储装置中最近已经被更新的数据。例如,针对示例性的应用/服务,可以更新不由实时处理系统直接编辑的内容(例如,通过系统、另一应用或服务)。在这样的情况下,可以提供要将内容添加到验证队列的通知。所述验证队列提供了侦听事务流并且验证排队的数据的异步层。
提供本发明内容以简化形式介绍了一些概念,这些概念将在下文的详细描述中进一步描述。本发明内容既不旨在标识所要求保护的主题的关键特征或必要特征,也并不旨在用于限制所要求保护的主题的范围。示例的额外方面、特征和/或优点将在下文的描述中部分地阐述,并且部分地从描述中将是显而易见的,或者可以通过本公开的实践而获悉。
附图说明
参考以下附图描述了非限制性和非穷举性示例。
图1图示了可以实践本公开的各方面的提供用于内容验证的示例性组件的示例性过程流。
图2图示了可以实践本公开的各方面的与内容验证有关的示例性方法。
图3图示了可以实践本公开的各方面的适合于实现在本文中所描述的内容验证处理的计算系统。
具体实施方式
本公开涉及使得能够使用高速缓存存储器用于内容验证以及对内容的错误补救的处理操作。高速缓存通常被用于通过为在用户与永久数据存储装置之间的数据提供临时停止来优化性能。在本文中所描述的示例中,高速缓存的功能被扩展以使得能够在高速缓存存储器与验证组件之间进行接口,所述验证组件被配置为验证直接从高速缓存存储器中读取的数据。如果发现内容被损坏,则所述内容可以在高速缓存存储器中被更新并且被传播到与应用/服务等相关联的永久数据存储装置。使用高速缓存可能是针对近期和/或访问频繁的内容最佳的以及用于从永久数据存储装置(例如,分布式数据存储装置)卸载数据处理操作的手段。在本文中所描述的示例扩展到其中已经将与电子文件相关联的数据存储在高速缓存存储器中的那些示例以及其中直接对永久数据存储装置进行更新的那些示例。例如,内容可以被更新(例如,通过系统、另一应用或服务),而没有被实时处理系统直接编辑以用于示例性应用/服务。在这样的情况下,可以提供将内容添加到验证队列的通知,其中,可以传播用于验证的数据以用于验证处理。更新可以被转发到高速缓存存储器,从而用户接收新的(经更新的)数据。该更新处理还可以被用于验证在永久数据存储装置中最近已经被更新的数据。例如,针对示例性的应用/服务,可以更新不由实时处理系统直接编辑的内容(例如,通过系统、另一应用或服务)。在这样的情况下,可以提供将内容添加到验证队列的通知。所述验证队列提供了侦听事务流并且验证排队的数据的异步层。
在一个非限制性示例中,从与应用或服务相关联的高速缓存存储器中读取电子文件的数据结构。基于对从高速缓存存储器中读取的数据结构的评估来验证电子文件的内容。例如,验证处理可以包括示例性验证规则的应用,所述示例性验证规则能用于评估与数据结构相关联的任何数据,包括但不限于:数据结构的示例性数据节点;以及与那些数据节点相关联的属性。示例性验证规则可以以编程方式评估任意类型的数据结构(例如,数据图、数据树、散列)的层级,包括评估数据节点(例如,父节点、子节点)、其对应的子节点以及与各个数据节点相对应的属性。这样,在一个示例中,与其中针对正确性仅评估对电子文件的修订的情况相比,可以评估电子文件的完整数据结构。这可以提高检测内容无效性(invalidity)的准确性,以及使得能够进行修复以防止更广泛的内容损坏以及将来的内容损坏的实例。
继续以上示例,可以基于验证处理的结果来检测内容中的一个或多个无效。当检测到损坏的实例时,可以自动地执行处理操作以执行对数据结构的存储器中修复。亦即,可以更新针对电子文件的示例性数据结构以校正电子文件的内容中的一个或多个无效性。这可以包括对示例性数据结构(和对应的数据/元数据)的特定部分的直接修复,以及对损坏的数据结构的整体的校正。在一个实例中,更新可以通过验证组件进行,其中,可以将经更新的数据结构传播到与示例性应用/服务相关联的永久数据存储装置。在一些情况下,也可以直接更新高速缓存存储器。该验证处理使得能够从高速缓存存储器直接访问电子文件的经更新的版本,以及从永久数据存储装置中取回电子文件的经更新的版本。在高速缓存了针对电子文件的文件数据的情况下以及永久数据存储装置是能由其他系统、应用/服务等访问的共享数据存储装置的情况下,更新永久数据存储装置是重要的。
在任何示例中,示例性高速缓存被配置为用作用于检测已经达到损坏状态的内容的存储。可以在已经访问共享数据存储装置的任何系统(包括分布式系统/服务)中利用该技术,所述共享数据存储装置包括其中数据未直接用于高速缓存存储器的实例。执行存储器中修复以校正电子文件中内容的无效性。在一些情况下,对无效性的检测可能导致确定(针对电子文件的)整个数据结构被损坏。在这样的情况下,可以重新呈现整个数据结构(例如,完整的数据结构),例如,以防止损坏的继续实例以及减轻未来(潜在的不可预见的)问题。
由在本公开中所描述的处理提供的示例性技术优点包括但不限于:将高速缓存存储器的功能扩展到常规的使用手段之上,以使得能够针对内容验证进行接口;实时(或者接近实时)地提高针对内容验证的处理效率;减少包括分布式数据存储装置的分布式系统/服务示例中的延迟;扩展针对共享数据存储系统的功能和可用性;在执行内容验证处理期间为计算设备改进处理效率(例如,减少处理周期、节省资源/带宽);定制验证规则的程序化应用,以改善验证处理;校正大量数据的无效性的能力;以及与任何类型的数据结构一起使用的可扩展性,以及其他技术优势。
图1图示了可以实践本公开的各方面的提供用于内容验证的示例性组件的示例性过程流100。作为示例,过程流100的组件可以由如在图3的描述中所描述的示例性计算系统(或者多个计算系统)执行。在过程流100中所描述的示例性组件可以是硬件和/或软件组件,其被编程为执行在本文中所描述的处理操作。在一个示例中,过程流100的组件中的每个组件均可以是与特定服务的执行相关联的一个或多个计算设备。示例性服务可以由应用平台来管理,所述应用平台还向组件提供对与应用/服务相关联的其他组件的访问和了解。在一个实例中,在过程流100中所描述的处理操作可以由通过分布式网络连接的一个或多个组件来实现。在过程流100中执行的操作可以对应于由系统和/或服务所执行的操作,所述系统和/或服务执行计算机程序、应用编程接口(API)、神经网络或机器学习处理、语言理解处理、搜索和过滤处理、以及生成用于通过应用/服务的用户界面呈现的内容、以及其他示例。
在过程流100的图示中,提供了经编号的过程流步骤,以图示说明在图1中所示的组件之间的交互。例如,步骤1A-5图示了用于执行在本文中所描述的验证处理的一个示例性过程流。步骤1B-5图示了用于执行验证处理的另一示例性过程流。应当认识到,所述编号的过程流步骤旨在图示图1的各组件之间的交互的非限制性示例。在不背离本公开的主旨的情况下,可以改变组件之间的过程流。
过程流100包括(一个或多个)用户计算设备102(例如,客户端计算设备)。用户计算设备102的示例是如在图3的描述中所描述的计算系统(或者多个计算系统)。用户可以通过(一个或多个)用户计算设备102与示例性应用/服务(随后在(一个或多个)组件116中所描述的)进行交互。例如,用户可以通过任意数量的不同设备模态连接到应用/服务。在一些示例中,用户可以通过不同的用户计算设备102连接到应用/服务(例如,分布式数据存储服务;生产力服务),其中,这样的非限制性示例是:智能电话、膝上型计算机、平板计算机、台式计算机等。在其他情况下,用户可以经由多个用户计算设备与应用/服务进行多模态通信。例如,用户可能正在经由膝上型计算机或平板计算机访问第一电子文件,并且还可能经由诸如蜂窝电话或智能电话的移动计算设备连接到协作共享的电子文件。
如上所述,示例性应用/服务可以与过程流100的其他组件进行接口,以增强如在本文中所描述的处理效率和功能。例如,过程流100的特定组件可以各自与一个或多个应用/服务相关联以实现所述组件中的每个组件的功能。应用/服务116可以是任意类型的编程软件。示例性应用/服务是被配置用于执行以使得用户能够完成计算设备上的任务的生产力应用/服务,其中,示例性生产力服务可以被配置用于访问包括经由网络连接(例如,互联网、
Figure BDA0002886906240000061
红外)取回的电子文件/内容的内容。生产力服务的示例包括但不限于:文字处理应用/服务、电子表格应用/服务、笔记/笔记记录应用/服务、创作应用/服务、数字演示应用/服务、搜索引擎应用/服务、电子邮件应用/服务、消息传送应用/服务、网络浏览应用/服务、协作团队应用/服务、数字助理应用/服务、目录应用/服务、映射服务、日历服务、电子支付服务、数字数据存储或分布式数据存储应用/服务、网络会议应用/服务、呼叫通信应用/服务、语言理解应用/服务、机器人框架应用/服务、网络应用/服务、以及社交网络应用/服务、以及其他示例。在一些示例中,示例性生产力应用/服务可以是可以被配置为与和应用平台相关联的其他应用/服务进行接口的生产力应用/服务套件的组件。例如,文字处理服务可以被包含在捆绑服务中(例如,
Figure BDA0002886906240000062
等)。此外,示例性生产力服务可以被配置为与包括第三方应用/服务的其他因特网源/服务进行接口,例如,以在诸如取回文件内容、访问文件内容、更新文件内容、验证内容和存储内容等的操作的执行期间增强生产力服务的功能。
示例性电子文件(或数字文档)是以诸如数字文件的电子媒体/电子格式的内容的表示。在文件可以被创建以与任意类型的应用/服务一起工作的情况下,电子文件的示例可以改变。电子文件的类型是本领域技术人员已知的。例如,可以为文字处理服务或笔记记录服务创建电子文件,其中,所述电子文件可以包括创作内容。可以通过被存储在用户计算设备上的应用本地访问电子文件。在替代示例中,可以通过网络连接来访问电子文件,例如,其中,电子文件是通过网络浏览器访问的网页或者正在访问但是被远程地存储在不同于用户计算设备的其他数据存储装置中的文档的分布式副本。考虑用户访问笔记记录服务以进行自由形式的信息收集和多用户协作的实例。用户可能正在使用笔记记录服务来访问和编辑由一组用户协作访问的共享电子文件。在后端,笔记记录服务自身可以包括针对用户的分布式数据存储装置(或共享数据存储装置)以存储电子文件,和/或笔记记录服务可以与数据存储应用/服务进行接口以提供针对所述电子文件的数据存储。
示例性实时处理系统104是被配置用于执行数据的一个或多个组件,以在(一个或多个)用户计算设备102、托管组件116(例如,应用、服务、系统)与后端处理组件(例如,高速缓存存储器106、队列110、队列侦听器110、验证组件112、永久数据存储装置114和通知组件118)之间提供数据的准瞬时输出。实时处理系统104可以直接与(一个或多个)用户计算设备102、以及过程流100的其他组件进行接口。作为示例,实时处理系统104被配置为使得为客户提供来自高速缓存存储器106的数据。实时处理系统104可以与来自高速缓存存储器106的关于正在访问或最近访问的内容的跟踪数据相关(在由开发人员和/或数据保留策略指定的预定时间段内)。来自高速缓存存储器106的数据是从永久数据存储装置114填充的,永久数据存储装置114维护用于执行示例性托管组件116的数据(例如,电子文件、日志数据、版本数据)。在执行中,实时处理系统104被配置为接收快速变化的数据的输入,并且然后几乎立即提供输出,从而将随着时间的变化有效地更新到永久数据存储装置114,并且易于由用户查看。例如,实时处理系统104可以检测用户对电子文件的请求和/或访问,并且与用户计算设备102进行接口以通过应用或服务的用户界面在表面提供电子文件的表示。高速缓存存储器106可以存储用于对电子文件的主动访问(或最近访问)的数据,其中,能够代表用户来跟踪和实现对该电子文件的更新。对电子文件的更新(例如,经由用户计算设备102)可以经由被用于验证对内容的更新正确的组件进一步传播到永久数据存储装置114。实时处理系统104可以通过API等与过程流100的其他处理组件进行接口。在一些示例中,实时处理系统104可以跟踪特定应用服务内的电子文件的使用。在其他示例中,实时处理系统104可以包括多个组件,所述多个组件被配置为跨可以共享对永久数据存储装置114的访问的多个应用/服务来跟踪电子文件的使用。
在图1中所示的一个示例中,用于内容验证处理的方法步骤可以由实时处理系统104来发起,其中,实时处理系统104检测用于验证的内容。在一个示例中,对用于验证的内容的检测(图1的步骤1A)可以包括检测电子文件的内容已经被编辑或修改。这可以包括用户对电子文件的内容进行改变(不保存)的情况以及用户保存其更改的那些情况。在另一示例中,对用于验证的内容的检测可以包括:检测用户已经访问了电子文件,无论电子文件的内容是否被修改。实时处理系统104还可以被配置为与用于验证的示例性队列108(验证队列)进行接口,其中,实时处理系统104可以向队列108发送/提交内容(例如,电子文件)的标识以进一步验证处理。内容的示例性标识(ID)可以是指示特定电子文件和/或对电子文件的数据在高速缓存存储器106内的位置的引用的任何类型的数据,从而可以分析电子文件的数据结构。示例性验证组件112可以被配置为利用ID从高速缓存存储器106取回针对电子文件的数据以执行验证处理。
如上所述,除了其他组件之外,高速缓存存储器106(或高速缓存)可以与实时处理系统104进行接口。示例性高速缓存存储器106是存储数据的硬件或软件组件,从而可以更快地满足对数据的未来请求。作为示例,高速缓存存储器106是高速静态随机存取存储器(SRAM),与常规随机存取存储器(RAM)相比,其处理组件(例如,处理器或微处理器)能够更快速(更有效)地进行访问,其可以被用于永久数据存储装置114。高速缓存通常被用于通过为在用户与永久数据存储装置之间的数据提供临时停止来优化性能。在本文中所描述的示例中,高速缓存存储器106的功能被扩展以使得能够在高速缓存存储器106与验证组件之间进行接口,所述验证组件被配置为验证直接从高速缓存存储器读取的数据。这样做,高速缓存存储器106被配置为用于对内容运行验证的数据存储。基于对从高速缓存存储器106中读取的电子文件的数据结构的评估,来验证电子文件的内容。
高速缓存存储器106还可以直接与验证组件112进行接口。通过这样做,高速缓存存储器106可以提供对与电子文件相关联的数据的访问,使得验证组件112可以执行在本文中所描述的验证处理。高速缓存存储器106可以被用于存储与电子文件相关联的任何数据(或元数据),包括针对电子文件的(一个或多个)基础数据结构。数据结构的非限制性示例包括但不限于:图形;数据树;以及散列,以及其他示例。实时更新通常是每个用户对数据结构(例如,图结构)的增量编辑。如前所述,并不总是通过实时处理系统104直接进行数据更新。随后描述验证的其他示例,诸如当通过其他系统(应用/服务)而不使用高速缓存存储器106对永久数据存储装置114进行直接编辑时。在这样的示例中,可以将通知提供给验证组件112(提供验证服务)以对这样的内容执行验证处理。在一些示例中,永久数据存储装置114与高速缓存存储器106进行接口以在高速缓存存储器106内存储用于直接编辑的数据结构,以用于待验证的执行处理。在其他替代实例(未示出)中,验证组件112可以被配置为直接与永久数据存储装置114进行接口以执行验证处理,由此绕过对高速缓存存储器的使用。
如前所述,在高速缓存存储器106中并不总是容易找到针对电子文件的数据。当能够在高速缓存存储器106中找到所请求的数据时,发生高速缓存命中;而当在高速缓存存储器106中未找到数据时,发生高速缓存未命中。通过从高速缓存中读取数据来提供高速缓存命中,这比重新计算结果或者从较慢的数据存储中读取要快。开发人员可以配置设置以用于在任意时长内将数据存储在高速缓存存储器106内(包括存储在高速缓存中的数据的保留),而不背离本公开的主旨。用于在高速缓存存储器106内存储数据的参数可以符合数据保留策略/规定以及任何用户隐私法规或惯例。
高速缓存存储器106还可以与永久数据存储装置114进行接口以进行进一步的验证处理。永久数据存储装置114是被配置为存储数据的硬件数据存储设备或软件组件(例如,虚拟数据存储装置)。数据存储设备和软件组件的示例是本领域技术人员已知的。示例性永久数据存储装置114用作针对电子文件或与用户账户(或群组用户账户)、系统和/或一个或多个应用/服务相关联的其他内容的专用存储装置。例如,永久数据存储装置114可以存储与特定应用/服务相关联的内容。在另一实例中,永久数据存储装置114可以跨多个托管组件116来存储内容,托管组件16可以包括应用、服务和系统。在这样的示例中,永久数据存储装置114是用于各种托管组件116的共享数据存储。在另外的示例中,永久数据存储装置114可以被配置为存储与用户账户相关联的数据,其中,可以跨与用户账户相关联的专用存储装置来存储任意类型的电子文件。
作为示例,永久数据存储装置114可以是能通过网络连接访问的一个或多个分布式数据存储装置。分布式数据存储装置的示例是基于云的数据存储装置。被存储在云中的一条数据能够由多个用户从多个设备进行更新,并且也能够通过对数据起作用的各种服务进行更新。由于任何客户端上的问题或者访问该数据的服务,经更新的数据可能在更新过程中损坏。然而,一旦由于任何一个客户端或用户或服务而在云中以这种损坏的状态更新了数据,那么访问该数据的所有用户、设备和服务此后将获得损坏的内容,并且在一些情况下将无法将数据显示回给用户。这能够看作是数据丢失,或者不能够跨设备同步数据而表现出的内容损坏。同样地,一旦数据进入该状态,就没有恢复机制来将其恢复为校正的状态。这样,高速缓存存储器106和用于内容的验证的处理组件(例如,验证组件112)被用于从其无效状态中获取损坏的数据并且恢复以供用户使用。
例如,在数据正被主动访问(或者最近被访问)的情况下,永久数据存储装置114与高速缓存存储器106交换数据。此外,在一个实例中,可以在将电子文件的经更新的版本持久保存在永久数据存储装置114上之前验证电子文件的数据结构。在一些替代实例中,永久数据存储装置114可以存储电子文件的任何版本,其中,对电子文件(或基础数据结构)内容的更新可能导致对电子文件的先前版本进行重写。
实时处理系统104还可以与示例性队列108进行接口以进行验证处理(或验证队列)。队列108被配置为提供排队机制以系统地向验证组件112馈送待验证的内容。如本领域技术人员已知的,可以实现任意类型的排队机制。此外,可以进一步定制队列108以管理示例性验证处理,以便减少系统操作期间的延时。示例性验证处理旨在提高系统操作的处理效率,并且不干扰用户访问数据的能力。按照推论,可以由实时处理系统104检测用于验证的内容,并且将其传播到队列108以在稍后的时间点进行验证。用于验证处理的执行的计时可以与不再访问电子文件的时间点相关,以便在访问内容的同时不影响服务操作。
示例性队列108可以被配置有处理规则,所述处理规则使得能够对特定内容的数据验证处理进行优先化(或者去优先化)。例如,可以基于包括但不限于以下项的参数来设置处理规则:电子文件的类型;对内容的修改的类型;访问量;访问的频率;编辑内容的特定用户;以及用于验证的处理工作负荷等其他示例。在一些示例中,队列108还可以应用准则以评估是否要验证内容修改。队列108可以提供被配置为确定是验证特定内容还是绕过验证处理的决策点。这些决策中的一些决策也可能在内容被排队以用于验证之前作为实时处理系统104的一部分而发生。用于确定是否要验证内容的标准的示例可以包括但不限于:电子文件的类型;对内容的修改的类型;对内容的验证处理的频率(例如,对电子文件进行的先验验证处理);与内容相关联的应用/服务的类型;以及对电子文件版本之间的差异的识别,以及其他示例。在更新满足用于选择待验证的内容的标准的示例中,将内容进行排队以用于验证(具有被存储在高速缓存存储器106中的内容的身份)。
示例性队列侦听器110可以在队列108与验证组件112之间建立接口。队列侦听器110是一个数据对象(或者多个数据对象),其用作异步事件处理程序,用于传播用于验证的内容到验证组件112。队列侦听器110可以实现消息传送接口,所述消息传送接口发起在队列108与验证组件112之间的通信,以在验证组件112具有带宽时将内容的标识馈送给验证组件112。在一些情况下,队列侦听器110可以一个接一个地传播内容的标识。在其他情况下,可以分批地传输用于验证的内容的标识。队列侦听器110可以执行在图1中所示的方法步骤3,其中,执行到验证组件112的调用以执行对特定内容(例如,电子文件)的验证处理。基于方法步骤3,验证组件112可以执行验证处理。
如上所述,验证组件112被实现为执行对内容的验证处理,其中,可以检查内容的无效性。示例性验证处理可以包括对电子文件的全部内容的评估,其中,可以评估针对电子文件的整个数据结构。这样,在一些示例中,验证处理可以周期性地检查电子文件的数据结构以主动地识别并且防止在示例性应用/服务的执行期间可能出现的潜在问题。在一些替代实例中,对用于验证的内容的检测可以包括对在电子文件(例如,电子文件的一部分)内编辑的特定内容的识别。应当理解,在本文中所描述的验证处理能应用于其中评估整个数据结构的实例以及其中仅评估数据结构的一部分(例如,与文件内的特定内容有关)的那些实例。
当验证组件112从队列侦听器110接收到具有待验证的内容的身份的消息时,验证组件112使用身份(ID)从高速缓存存储器106中取得针对该身份的最新内容。在图1中所示的方法步骤4图示了在高速缓存存储器106与验证组件112之间的交互,其中,验证组件112可以:1)直接访问针对高速缓存存储器106中的电子文件的数据结构(以及相关联的数据);或者2)高速缓存存储器106可以将针对电子文件的数据结构(以及相关联的数据)传播到验证组件112,以执行进一步的处理。
在从高速缓存存储器106取得内容之后,对内容的数据结构运行一组验证检查,以检查电子文件的数据结构中是否存在不一致/损坏。基于对从高速缓存存储器106读取的数据结构的评估来验证电子文件的内容。例如,验证处理可以包括示例性验证规则的应用,所述验证规则能用于评估与数据结构相关联的任何数据,包括但不限于:数据结构的示例性数据节点;以及与那些数据节点相关联的属性。示例性验证规则可以以编程方式评估任何类型的数据结构(例如,数据图、数据树,散列)的层级,包括评估数据节点(例如,父节点、子节点)、其对应的子节点以及与各自的数据节点相对应的属性。这样,在一个示例中,与其中针对正确性仅评估对电子文件的修订的情况相比,可以评估电子文件的完整数据结构。这可以改善对内容无效性的检测的准确性,以及实现修复以防止更广泛的内容损坏以及将来的内容损坏的情况。因为对完整内容的评估可能是确定无效性的仅有的方式,因此该处理也可能是必需的。
在执行验证处理中,验证组件112可以被配置为执行以下中的任意一项:计算机程序、软件代理、应用编程接口(API)、神经网络和/或机器学习处理、等其他示例。例如,可以通过应用验证规则来生成和训练示例性机器学习模型,以评估针对电子文件的数据结构,所述验证规则标识数据结构中的无效性(以及数据结构内的特定属性),以及确定和应用适用的存储器中修复以更新数据结构来移除任何无效性。机器学习模型的创建、训练和更新是本领域技术人员已知的。在本示例中,可以使用训练数据进一步定制机器学习模型以用于验证处理,所述训练数据使机器学习模型适于检测文件内容中的无效性并且应用存储器中的修复来更新电子文件的数据结构。验证组件112是利用一组验证检查来构建的,并且其检查数据结构的每个部分的一致性,并且检测数据是否无效。作为一个示例,将图视为针对内容的基础数据结构,其包括具有多个属性的不同类型的节点,所述属性也在其他节点中进行交叉引用。在该示例中,验证规则可以是检查节点是否具有属性值的正确范围。另一个可能是检查图没有丢失的子节点或重复的节点。在另一示例中,可以验证诸如文件扩展名、格式、访问特权等的特定文件属性。内容验证的类型可能基于所考虑的数据结构而有所不同。
一旦验证组件112已经使用验证规则检测到内容中的无效性,验证组件112还基于经编程的验证规则来尝试对内容进行存储器中的修复。连同这种类型的无效内容检测,所述验证规则还可以具有有关如何修改数据结构以校正其之内的内容以便使内容进入一致状态的信息。对“丢失子节点问题”的修复的一个示例可以是搜索图,以查找别处是否存在丢失子节点中期望的数据,并且然后利用该数据重新创建子节点并且替换丢失的子节点。针对“不正确的属性值的问题”的另一种修复可以是改变属性的值,以使其与针对该节点的有效属性值对齐,同时保持一致性。在另一示例中,可以设置验证规则以评估与特定内容部分相关联的文件扩展名。在文件扩展名被识别为内容损坏的问题的情况下,针对电子文件的数据结构的存储器中修复可以包括将文件扩展名更新为例如识别的文件扩展名以进行处理(例如,显示)内容的处理操作。
当数据结构的版本被更新时,验证组件112被编程为将经更新的内容写入到实时系统的永久数据存储装置114。图1的方法步骤5图示了在验证组件112和/或高速缓存存储器106与永久数据存储装置114之间的交互。在一个示例中,验证组件112将经更新的数据结构写入高速缓存存储器106中,并且指示高速缓存存储器106转发所述经更新的数据结构到永久数据存储装置114。在另一示例中,验证组件112直接请求利用永久数据存储装置114对电子文件的更新。在这种情况下,验证组件112为电子文件传播经更新的数据结构到永久数据存储装置114。例如,验证组件112可以从高速缓存存储器106获得经更新的数据结构,并且将其转发到永久数据存储装置114。
过程流100还可以包括托管组件116。托管组件116可以包括可以将数据/内容存储在永久数据存储装置114上以用于执行的应用、服务和/或系统等。例如,永久数据存储装置114可以服务于多个应用/服务,其中,应用/服务可以被配置为与高速缓存存储器106一起工作,而其他应用/服务可以在不使用高速缓存存储器106的情况下对内容进行编辑。在前文的描述中已经提供了应用和服务的示例。示例性系统可以包括被配置用于处理包括内容的任何类型的数据的硬件组件、软件组件或者其组合。
过程流100还可以包括通知组件118。示例性通知组件118是被配置为管理对与非高速缓存内容有关的永久数据存储装置114的直接编辑的一个或多个组件。例如,用户或系统可以对未高速缓存在高速缓存存储器106中的电子文件进行更新。在这样的情况下,通知组件118被配置为与永久数据存储装置114和队列108进行接口,以针对在永久数据存储装置114上直接编辑的内容(例如,电子文件)发起验证处理。通知组件118被配置为与永久数据存储装置114进行接口以接收对存储在永久数据存储装置114上的文件内容的直接更新的(一个或多个)通知。图1图示了方法步骤1B,其中,将对永久数据存储装置114的更新的通知发送给通知组件118。通知组件118还被配置为与队列108进行接口,以向验证队列提供添加与直接编辑相关联的内容的通知。此外,通知组件118可以被配置为指示高速缓存存储器106从永久数据存储装置114取回最新的内容,使得高速缓存存储器106具有最新的内容。图1图示了方法步骤2B,其中,通知被发送给队列108,以请求将与对永久数据存储装置114的直接更新相关联的数据发送给通知组件118。在一些示例中,类似于实时处理系统104的通知组件118可以提供被配置为确定是验证特定内容还是绕过验证处理的决策点。用于确定是否要验证内容的标准的示例可以包括但不限于:电子文件的类型;对内容的修改的类型;对内容进行验证处理的频率(例如,对电子文件进行的先验验证处理);与内容相关联的应用/服务的类型;以及对在电子文件的版本之间的差异的识别,以及其他示例。在更新满足用于选择待验证的内容的标准的示例中,将内容进行排队以用于验证。在图1中所示的在步骤1A和1B之后的其余方法步骤(3、4、5)与前述描述中所描述的相同。
图2图示了可以实践本公开的各方面的与内容验证有关的示例性方法200。在方法200中所描述的处理操作可以由在过程流100(图1)中所描述的组件来执行,其中,在过程流100中的详细描述支持并且补充方法200中所叙述的处理操作。在示例性组件之间的接口和通信(诸如在过程流100中所描述的那些)是本领域技术人员已知的。例如,可以在应用/服务之间传输数据请求和响应,以使得特定的应用/服务能够处理从其他应用/服务取回的数据。在不背离本公开的主旨的情况下,用于这样的通信的格式可以根据开发人员实现的编程协议而变化。
作为示例,如在图3的描述中所描述的,可以跨示例性计算系统(或者多个计算系统)来执行方法200。在方法200中所描述的示例性组件可以是硬件和/或软件组件,其被编程为执行在本文中所描述的处理操作。在方法200中所执行的操作可以对应于由执行计算机程序的系统和/或服务、软件代理、智能机器人、应用编程接口(API)、神经网络和/或机器学习处理等其他示例执行的操作。在一些示例中,在方法200中所描述的处理操作可以由与可以访问多个应用/服务、设备、知识资源等的网络服务相关联的一个或多个应用/服务来执行。在一个实例中,在方法200中所描述的处理操作可以由通过分布式网络连接的一个或多个组件来实现。
方法200在处理操作202处开始,其中,检测通过应用/服务对电子文件的访问。对电子文件的访问的检测(处理操作202)可以采用多种形式。如在前文的描述中所引用的,对电子文件的访问可以是用于执行验证处理的触发器。验证处理可以评估电子文件的整个数据结构。在很长一段时间未访问电子文件的一些情况下,可能很长一段时间(如果有的话)都没有执行验证处理。在那种情况下,针对损坏来验证电子文件的(一个或多个)数据结构可能是有用的。在用户使用期间出现问题之前,这可能有助于预防以补救数据结构中的任何潜在错误。对整个数据结构的验证的另一技术优势是修理已经进入损坏状态并且因此无法正确显示用户内容的文件。对对这样的文件的任何进一步访问都可能触发验证流程,所述验证流程能够修理损坏的文件。对电子文件的访问的检测(处理操作202)的另外的示例包括对电子文件的内容的更新和直接编辑。在一个实例中,用户可以经由网络连接来访问电子文件,其中,电子文件被存储在诸如如在图1中所描述的永久数据存储装置114的数据存储装置中。
在一些示例中,方法200可以进行到处理操作204,其中,电子文件的数据可以被传播到高速缓存存储器(例如,图1的高速缓存存储器106)。在一个示例中,这可能在检测到对电子文件的访问时发生(处理操作102)。在其他示例中,可以对永久数据存储进行直接编辑,其中,在将电子文件数据传播到高速缓存存储器之前,将通知传播到其他处理组件(例如,图1的通知组件118、队列108和验证组件112)。在这样的示例中,电子文件数据的传播可以在处理操作208处发生,其中,电子文件的数据被验证。如在前文的描述中所引用的,对高速缓存存储器的更新不需要直接经由验证组件来进行。在其他情况下,经更新的文件数据被传播到永久数据存储装置,其中,高速缓存存储器可以随后经由与永久数据存储装置进行接口来访问经更新的电子文件。
方法200的流程可以进行到处理操作206,其中,可以利用电子文件的标识来更新示例性验证队列。可以基于对内容(例如,电子文件)的更新的检测来自动地执行处理操作206。在另一实例中,当已经停止对电子文件的访问时(例如,用户已停止进行更新和/或关闭文件),可能发生将电子文件的标识传播给验证队列。示例性的验证队列是如在图1的描述中所描述的队列108。在前文的描述中已经描述了用于排队用于验证处理的内容的处理细节。作为示例,处理操作206可以包括将电子文件的标识提交给验证队列。如在图1的描述中所描述的,可以通过诸如实时处理系统104和通知组件118的各种处理组件将内容添加到验证队列。
在处理操作208处,执行验证处理。验证处理包括验证电子文件的数据结构(以及相关联的内容)以检查损坏和/或错误。在验证处理(处理操作208)期间,例如,基于在示例性系统的验证组件处接收到的提交的标识,从高速缓存存储器中读取电子文件的示例性数据结构。示例性验证组件可以是如在图1所描述的验证组件112。在前文的描述中已经描述了用于验证处理的处理操作。作为示例,可以通过从高速缓存存储器读取针对电子文件的数据结构来发起验证处理。在以下任意情况下都可能发生这种情况:1)当访问电子文件时;2)当已经停止对电子文件的访问时;3)在对电子文件的内容进行更新之后;以及4)基于对验证队列的优先级设置。
如在前文的描述中所引用的,基于从高速缓存存储器读取的数据结构的评估来验证电子文件的内容。例如,验证处理可以包括示例性验证规则的应用,所述示例性验证规则能用于评估与数据结构相关联的任何数据,包括但不限于:数据结构的示例性数据节点;以及与那些数据节点相关联的属性。示例性验证规则可以以编程方式评估任何类型的数据结构(例如,数据图、数据树、散列)的层级,包括评估数据节点(例如,父节点、子节点)、其对应子节点以及与各个数据节点相对应的属性。这样,在一个示例中,与其中针对正确性仅评估对电子文件的修订的情况相比,可以评估电子文件的完整数据结构。这可以提高内容无效性的检测的准确性,以及实现修复以防止更广泛的内容损坏以及将来的内容损坏的情况。
方法200的流程可以进行到决策操作210,其中,评估验证处理的结果(或者多个结果)。在决策操作210中,基于验证处理的执行,来确定在电子文件的数据结构(以及对应的内容)中是否检测到任何无效性。在没有检测到无效性的情况下,决策操作210分支为“否”,并且方法200的处理保持空闲,直到识别出后续数据以用于验证为止。在电子文件的数据结构中检测到一个或多个无效性(例如,电子文件或电子文件的内容处于损坏状态)的示例中,决策操作210分支为“是”,并且方法200的处理进入处理操作212。
在处理操作212中,校正在电子文件的数据结构中的无效性。在图1的前述描述中已经描述了用于补救电子文件的数据结构中的损坏的示例性处理操作。例如,当检测到损坏的实例时,可以自动地执行处理操作以执行对数据结构的存储器中修复。亦即,可以更新针对电子文件的示例性数据结构以校正电子文件的内容中的一个或多个无效性。这可以包括对示例性数据结构(以及对应的数据/元数据)的特定部分的直接修复,以及对损坏的数据结构的整体的校正。如在前文的描述中所引用的,示例性验证规则可以被编程为识别和校正电子文件的数据结构中的无效性。
方法200的流程可以进行到处理操作214,其中,可以将经更新的数据结构传播到与示例性应用/服务相关联的永久性数据存储装置。在一个实例中,更新可以通过验证组件来进行,其中,可以将经更新的数据结构传播到与示例性应用/服务相关联的永久数据存储装置。在一些情况下,高速缓存存储器也可以被直接地更新。该验证处理使得能够从高速缓存存储器直接访问电子文件的经更新的版本,以及从永久数据存储装置中取回电子文件的经更新的版本。在高速缓存了针对电子文件的文件数据的情况下以及在永久数据存储装置是能由其他系统、应用/服务等访问的共享数据存储装置的情况下,更新永久数据存储装置是重要的。
在处理操作216处,应用/服务的示例性用户界面被配置为呈现经更新的电子文件。当用户接下来访问电子文件时,可以代表用户进行呈现(处理操作216)。在一些示例中,可以在用户仍然在访问电子文件的版本时更新示例性电子文件。在这样的情况下,应用/服务的用户界面可以适于刷新电子文件的呈现,因此用户正访问未损坏状态的电子文件。
图3图示了可以实践本公开的各方面的适于实现在本文中所描述的内容验证处理的计算系统301。计算系统301表示可以在其中实现本文公开的各种应用、服务、场景和过程的任何系统或系统集合。计算系统301的示例包括但不限于服务器计算机、机架服务器、网络服务器、云计算平台和数据中心设备,以及任何其他类型的物理或虚拟服务器、容器以及其任何变型或组合。其他示例可以包括智能电话、膝上型计算机、平板计算机、台式计算机、混合计算机、游戏机、虚拟现实设备、智能电视、智能手表和其他可穿戴设备,以及其任何变型或组合。
计算系统301可以被实现为单个装置、系统或设备,或者可以以分布式方式被实现为多个装置、系统或设备。例如,计算系统301可以包括一个或多个计算设备,所述一个或多个计算设备在分布式网络上执行针对应用和/或服务的处理,以使得能够在一个或多个服务上执行在本文中所描述的处理操作。计算系统301可以包括执行针对前端应用/服务、后端应用/服务或者其组合的处理的设备的集合。计算系统301包括但不限于:处理系统302、存储系统303、软件305、通信接口系统307、以及用户接口系统309。处理系统302与存储系统303、通信接口系统307和用户界面系统309可操作地耦合。处理系统302从存储系统303加载并且执行软件305。软件305包括一个或多个软件组件,所述组件被配置用于高速缓存数据验证处理306和/或应用平台的其他应用/服务。示例性高速缓存数据验证处理包括访问、读取、验证和更新在高速缓存存储器中的数据和/或与永久数据存储进行接口的操作。当由处理系统302执行时,软件305指导处理系统302针对至少在前述实现方式中讨论的各种过程、操作场景和序列如本文所描述地进行操作。计算系统301可以可选地包括额外设备、特征或功能,出于简洁目的未进行讨论。
仍然参考图3,处理系统302可以包括处理器、微处理器和从存储系统303取回并且执行软件305的其他电路。处理系统302可以在单个处理设备内实现,但是还可以跨协作执行程序指令的多个处理设备或子系统来分布。处理系统302的示例包括通用中央处理单元、图形处理单元、专用处理器和逻辑设备、以及任何其他类型的处理设备、其组合或变型。
存储系统303可以包括由处理系统302可读并且能够存储软件305的任何计算机可读存储介质。存储系统303可以包括以用于存储信息(诸如计算机可读指令、数据结构、程序模块、高速缓存存储器或其他数据)的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。存储介质的示例包括随机存取存储器、只读存储器、磁盘、光盘、闪存、虚拟存储器和非虚拟存储器、盒式磁带、磁带、磁盘存储或其他磁性存储设备、或者其他合适的存储介质,除了传播的信号。在任何情况下,计算机可读存储介质都不是传播的信号。
除了计算机可读存储介质之外,在一些实现方式中,存储系统303还可以包括计算机可读通信介质,软件305中的至少一些可以通过其在内部或外部通信。存储系统303可以被实现为单个存储设备,但是也可以跨多个存储设备或者相对于彼此共置或分布的子系统来实现。存储系统303可以包括能够与处理系统302或者可能与其他系统通信的额外元件,诸如控制器。
软件305可以在程序指令中实现,并且在其他功能中,当由处理系统302执行时,可以指导处理系统302如在本文中所图示的各种操作场景、序列和过程所描述地进行操作。例如,软件305可以包括用于实现示例性高速缓存数据验证处理306和/或应用平台的其他应用/服务的程序指令,如在前述描述中所描述的。
具体地,所述程序指令可以包括各种组件或模块,所述组件或模块协作或者以其他方式交互以执行在本文中所描述的各种过程和操作场景。各种组件或模块可以被体现在编译或解释的指令中,或者被体现在指令的一些其他变型或组合中。各种组件或模块可以在单线程环境或多线程中以同步或异步方式串行或并行地执行,或者根据任何其他合适的执行范例、变型或组合来执行。软件305可以包括额外的进程、程序或组件,诸如操作系统软件、虚拟机软件或者其他应用软件。软件305还可以包括固件或者能由处理系统302执行的某种其他形式的机器可读处理指令。
通常,软件305可以在被加载到处理系统302中并且被执行时将合适的装置、系统或设备(其计算系统301是代表性的)总体上从通用计算系统转换为被定制用于处理数据并且响应于查询的专用计算系统。实际上,存储系统303上的编码软件305可以转换存储系统303的物理结构。物理结构的特定转换可以取决于该描述的不同实现方式中的各种因素。这样的因素的示例可以包括但不限于用于实现存储系统303的存储介质的技术以及计算机存储介质被表征为主要存储还是辅助存储,以及其他因素。
例如,如果计算机可读存储介质被实现为基于半导体的存储器,则当程序指令被编码在其中时,软件305可以诸如通过转换晶体管、电容器或者构成半导体存储器的其他分立电路元件的状态来转换半导体存储器的物理状态。关于磁性或光学介质,可能发生类似的转换。在不背离本说明书的范围的情况下,物理介质的其他转换是可能的,提供前述示例仅仅是为了促进本讨论。
通信接口系统307可以包括允许通过通信网络(未示出)与其他计算系统(未示出)进行通信的通信连接和设备。通信接口系统307也可以被用于覆盖在本文中所描述的处理组件之间的接口。一起允许系统间通信的连接和设备的示例可以包括网络接口卡或设备、天线、功率放大器、RF电路、收发器和其他通信电路。连接和设备可以在通信介质上进行通信以与其他计算系统或系统网络交换通信,诸如金属、玻璃、空气或者任何其他合适的通信介质。前述介质、连接和设备是公知的,并且在此无需详细讨论。
用户界面系统309是可选的,并且可以包括键盘、鼠标、语音输入设备、用于从用户接收触摸手势的触摸输入设备、用于检测用户的非触摸手势和其他运动的运动输入设备、以及能够接收来自用户的用户输入的其他相当的输入设备和相关联的处理元件。用户界面系统309中也可以包括输出设备,诸如显示器、扬声器、触觉设备以及其他类型的输出设备。在一些情况下,可以将输入设备和输出设备组合在单个设备中,诸如能够显示图像并且接收触摸手势的显示器。前述的用户输入和输出设备在本领域中是公知的,并且在此不需要详细讨论。
用户界面系统309还可以包括能由处理系统302执行以支持上文所讨论的各种用户输入和输出设备的相关联用户界面软件。用户界面软件和用户界面设备可以单独或彼此结合以及与其他硬件和软件元素相结合,可以支持图形用户界面、自然用户界面或者任何其他类型的用户界面,例如实现在本文中所描述的示例性应用/服务(包括生产力应用/服务)的前端处理。
在计算系统301与其他计算系统(未示出)之间的通信可以在一个或多个通信网络上并且根据各种通信协议、协议的组合或者其变型来进行。示例包括内联网、互联网、因特网、局域网、广域网、无线网络、有线网络、虚拟网络、软件定义网络、数据中心总线、计算底板或者任何其他类型的网络、网络的组合或者其变型。前述通信网络和协议是公知的,在这里不需要详细讨论。然而,可以使用的一些通信协议包括但不限于:互联网协议(IP、IPv4、IPv6等)、传输控制协议(TCP)、用户数据报协议(UDP)、以及任何其他合适的通信协议、其变型或组合。
在交换数据、内容或任何其他类型的信息的任何上述示例中,信息的交换可以根据多种协议中的任一种协议进行,所述协议包括FTP(文件传输协议)、HTTP(超文本传输协议)、REST(表示状态传输)、WebSocket、DOM(文档对象模型)、HTML(超文本标记语言)、CSS(级联样式表)、HTML5、XML(可扩展标记语言)、JavaScript、JSON(JavaScript对象表示法)和AJAX(异步JavaScript和XML),以及任何其他合适的协议、其变型或组合。
在附图中提供的功能框图、操作场景和序列以及流程图表示用于执行本公开的新颖方面的示例性系统、环境和方法。尽管为了简化说明的目的,在本文中所包括的方法可以是功能图、操作场景或序列或流程图的形式,并且可以被描述为一系列动作,但是应当理解和了解,这些方法不受动作次序的限制,因为一些动作可能根据以与在本文中所示和所述的动作不同的次序和/或与同时发生。例如,本领域技术人员将理解并且意识到,方法可以替代地表示为一系列相互关联的状态或事件,诸如在状态图中。此外,对于新颖的实现方式,可能不需要方法中图示的所有动作。
在本文中所包括的描述和附图描绘了特定的实现方式,以教导本领域技术人员如何制作和使用最佳选择。为了教导发明原理,已经简化或省略了一些常规方面。本领域技术人员将意识到落入本发明范围内的来自这些实现方式的变型。本领域技术人员还将理解,上述特征可以以各种方式组合以形成多个实现方式。结果,本发明并不限于上述特定的实现方式,而是仅由权利要求书及其等同物限定。
在整个说明书中已经引用了“一个示例”或“示例”,这意味着在至少一个示例中包括特定描述的特征、结构或特性。因此,这样的短语的使用可能涉及不止一个示例。此外,所描述的特征、结构或特性可以在一个或多个示例中以任何合适的方式组合。
然而,相关领域的技术人员可以认识到,可以在没有一个或多个具体细节的情况下,或者用其他方法、资源、材料等,来实践示例。在其他情况下,没有详细示出或描述公知的结构、资源或操作,以仅为了观察示例的晦涩方面。
尽管已经示出和描述了示例性示例和应用,但是应当理解,示例不限于上述精确的配置和资源。在不背离所要求保护的示例的范围的情况下,可以对本文公开的方法和系统的布置、操作和细节进行本领域技术人员显而易见的各种修改、改变和变化。

Claims (15)

1.一种方法,包括:
从与应用或服务相关联的高速缓存存储器中读取针对电子文件的数据结构;
基于对从所述高速缓存存储器中读取的所述数据结构的评估来验证所述电子文件的内容,其中,所述验证包括应用验证规则,所述验证规则对所述数据结构以及与所述数据结构相关联的属性进行评估;
基于所述验证的结果来检测所述内容中的一个或多个无效性;
更新所述数据结构以校正所述内容中的所述一个或多个无效性;以及
将经更新的数据结构传播到永久数据存储装置,以用于随后通过所述应用或服务来访问所述电子文件。
2.根据权利要求1所述的方法,还包括:检测通过所述应用或服务对所述电子文件的访问;以及基于对所述电子文件的所述访问的检测,将针对所述电子文件的所述数据结构从所述永久数据存储装置传播到所述高速缓存存储器。
3.根据权利要求1所述的方法,还包括:基于对所述电子文件的内容的更新的检测,将所述电子文件的标识提交给验证队列,其中,所述电子文件的所述数据结构是基于在验证所述电子文件的所述内容的验证组件处接收到的所提交的标识而从所述高速缓存存储器中读取的。
4.根据权利要求1所述的方法,还包括:检测通过所述永久数据存储装置对所述电子文件的版本进行的更新;以及将与经更新的电子文件相关联的数据传播到所述高速缓存存储器,其中,所述读取访问针对所述经更新的电子文件的所述数据结构。
5.根据权利要求1所述的方法,其中,对所述一个或多个无效性的所述检测包括:检测到所述数据结构的数据节点丢失,并且其中,对所述数据结构的所述更新还包括:执行对重新创建丢失的所述数据节点的所述数据结构的存储器中修复,并且其中,所述经更新的数据结构包括经重新创建的数据节点。
6.根据权利要求1所述的方法,其中,对所述一个或多个无效性的所述检测包括:检测到所述内容的文件扩展名无效,并且其中,对所述数据结构的所述更新还包括:执行更新所述文件扩展名的所述数据结构的存储器中修复,并且其中,所述经更新的数据结构包括经更新的文件扩展名。
7.根据权利要求1所述的方法,其中,对所述一个或多个无效性的所述检测包括:基于对所述一个或多个无效性的阈值评估来确定所述数据结构被损坏,并且其中,对所述数据结构的所述更新还包括:基于所述阈值评估的结果来重新呈现整个数据结构。
8.一种系统,包括:
至少一个处理器;以及
与所述至少一个处理器可操作地连接的存储器,其存储计算机可执行指令,所述计算机可执行指令当由所述至少一个处理器执行时使所述至少一个处理器执行一种方法,所述方法包括:
从与应用或服务相关联的高速缓存存储器中读取针对电子文件的数据结构;
基于对从所述高速缓存存储器中读取的所述数据结构的评估来验证所述电子文件的内容,其中,所述验证包括应用验证规则,所述验证规则对所述数据结构以及与所述数据结构相关联的属性进行评估;
基于所述验证的结果来检测所述内容中的一个或多个无效性;
更新所述数据结构以校正所述内容中的所述一个或多个无效性;以及
将经更新的数据结构传播到永久数据存储装置,以用于随后通过所述应用或服务来访问所述电子文件。
9.根据权利要求8所述的系统,其中,所执行的方法还包括:检测通过所述应用或服务对所述电子文件的访问;以及基于对所述电子文件的所述访问的检测,将针对所述电子文件的所述数据结构从所述永久数据存储装置传播到所述高速缓存存储器。
10.根据权利要求8所述的系统,其中,所执行的方法还包括:基于对所述电子文件的内容的更新的检测,将所述电子文件的标识提交给验证队列,其中,所述电子文件的所述数据结构是基于在验证所述电子文件的所述内容的验证组件处接收到的所提交的标识而从所述高速缓存存储器中读取的。
11.根据权利要求8所述的系统,其中,所执行的方法还包括:检测通过所述永久数据存储装置对所述电子文件的版本进行的更新;以及将与经更新的电子文件相关联的数据传播到所述高速缓存存储器,其中,所述读取访问针对所述经更新的电子文件的所述数据结构。
12.根据权利要求8所述的系统,其中,对所述一个或多个无效性的所述检测包括:检测到所述数据结构的数据节点丢失,并且其中,对所述数据结构的所述更新还包括:执行对重新创建丢失的所述数据节点的所述数据结构的存储器中修复,并且其中,所述经更新的数据结构包括经重新创建的数据节点。
13.根据权利要求8所述的系统,其中,对所述一个或多个无效性的所述检测包括:检测到所述内容的文件扩展名无效,并且其中,对所述数据结构的所述更新还包括:执行对更新所述文件扩展名的所述数据结构的存储器中修复,并且其中,所述经更新的数据结构包括经更新的文件扩展名。
14.根据权利要求8所述的系统,其中,对所述一个或多个无效性的所述检测包括:基于对所述一个或多个无效性的阈值评估来确定所述数据结构被损坏,并且其中,对所述数据结构的所述更新还包括:基于所述阈值评估的结果来重新呈现整个数据结构。
15.一种存储计算机可执行指令的计算机可读存储介质,所述计算机可执行指令当由至少一个处理器执行时使所述至少一个处理器执行一种方法,所述方法包括:
从与应用或服务相关联的高速缓存存储器中读取针对电子文件的数据结构;
基于对从所述高速缓存存储器中读取的所述数据结构的评估来验证所述电子文件的内容,其中,所述验证包括应用验证规则,所述验证规则对所述数据结构以及与所述数据结构相关联的属性进行评估;
基于所述验证的结果来检测所述内容中的一个或多个无效性;
更新所述数据结构以校正所述内容中的所述一个或多个无效性;以及
将经更新的数据结构传播到永久数据存储装置,以用于随后通过所述应用或服务来访问所述电子文件。
CN201980045686.7A 2018-07-09 2019-06-19 使用高速缓存用于内容验证和错误补救 Pending CN112368682A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/029,999 US10733044B2 (en) 2018-07-09 2018-07-09 Use of cache for content validation and error remediation
US16/029,999 2018-07-09
PCT/US2019/037844 WO2020013965A1 (en) 2018-07-09 2019-06-19 Use of cache for content validation and error remediation

Publications (1)

Publication Number Publication Date
CN112368682A true CN112368682A (zh) 2021-02-12

Family

ID=67139827

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980045686.7A Pending CN112368682A (zh) 2018-07-09 2019-06-19 使用高速缓存用于内容验证和错误补救

Country Status (4)

Country Link
US (1) US10733044B2 (zh)
EP (1) EP3821344B1 (zh)
CN (1) CN112368682A (zh)
WO (1) WO2020013965A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11194783B2 (en) * 2018-09-05 2021-12-07 International Business Machines Corporation Multiple parameter based composite rule wise data validation in cloud hybrid model
US11093480B2 (en) 2019-03-05 2021-08-17 Microsoft Technology Licensing, Llc Aggregation analysis and remediation of data invalidations
US11144383B2 (en) * 2020-03-10 2021-10-12 Sap Se Platform for automated administration and monitoring of in-memory systems
US11372842B2 (en) * 2020-06-04 2022-06-28 International Business Machines Corporation Prioritization of data in mounted filesystems for FSCK operations

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070067569A1 (en) * 2005-09-21 2007-03-22 Cisco Technology, Inc. Method and system for communicating validation information to a web cache
CN102216899A (zh) * 2008-11-14 2011-10-12 微软公司 管理高速缓存数据和元数据
CN105144121A (zh) * 2013-03-14 2015-12-09 微软技术许可有限责任公司 高速缓存内容可寻址数据块以供存储虚拟化
US20170286207A1 (en) * 2016-03-31 2017-10-05 Mckesson Financial Holdings Method and apparatus for improved error handling

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5594863A (en) * 1995-06-26 1997-01-14 Novell, Inc. Method and apparatus for network file recovery
US7921448B2 (en) * 2002-11-27 2011-04-05 Ascent Media Group, LLP Multicast media distribution system
US9934388B2 (en) * 2004-06-01 2018-04-03 Ben-Gurion University Of The Negev Research And Development Authority Method and system for database encryption
US20100293147A1 (en) * 2009-05-12 2010-11-18 Harvey Snow System and method for providing automated electronic information backup, storage and recovery
US9734171B2 (en) * 2009-12-16 2017-08-15 International Business Machines Corporation Intelligent redistribution of data in a database
US8612398B2 (en) * 2010-03-11 2013-12-17 Microsoft Corporation Clean store for operating system and software recovery
US8612382B1 (en) 2012-06-29 2013-12-17 Emc Corporation Recovering files in data storage systems
US10083299B2 (en) 2015-12-16 2018-09-25 Carbonite, Inc. Systems and methods for automatic snapshotting of backups based on malicious modification detection
US10320819B2 (en) 2017-02-27 2019-06-11 Amazon Technologies, Inc. Intelligent security management

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070067569A1 (en) * 2005-09-21 2007-03-22 Cisco Technology, Inc. Method and system for communicating validation information to a web cache
CN102216899A (zh) * 2008-11-14 2011-10-12 微软公司 管理高速缓存数据和元数据
CN105144121A (zh) * 2013-03-14 2015-12-09 微软技术许可有限责任公司 高速缓存内容可寻址数据块以供存储虚拟化
US20170286207A1 (en) * 2016-03-31 2017-10-05 Mckesson Financial Holdings Method and apparatus for improved error handling

Also Published As

Publication number Publication date
EP3821344B1 (en) 2022-08-03
US20200012553A1 (en) 2020-01-09
EP3821344A1 (en) 2021-05-19
US10733044B2 (en) 2020-08-04
WO2020013965A1 (en) 2020-01-16

Similar Documents

Publication Publication Date Title
EP3821344B1 (en) Use of cache for content validation and error remediation
US20140325011A1 (en) Rdma-optimized high-performance distributed cache
US20160179919A1 (en) Asynchronous data replication using an external buffer table
CN108287708B (zh) 一种数据处理方法、装置、服务器及计算机可读存储介质
CN113614699A (zh) 数据失效的聚合分析和补救
JP6257610B2 (ja) ユーザーに特有のローミング設定
US20180314620A1 (en) Selective object testing in a client-server environment
US9727523B2 (en) Remote direct memory access (RDMA) optimized high availability for in-memory data storage
US10459647B1 (en) Multiple storage class representation in versioned storage
US11301539B2 (en) Just-in-time front end template generation using logical document object models
US11811851B2 (en) Method and system for enforcing governance across multiple content repositories using a content broker
US10599629B2 (en) Reduced locking in a distributed data store
US11321374B2 (en) External storage of unstructured database objects
US9378178B1 (en) Enhancing HTTP caching by allowing content sharing of data blocks across resources identified by different uniform resource locators
US9253244B1 (en) Subscription based polling for resource updates
US9390193B2 (en) Delay the persistent memory storage of website data to control data that is stored in the browser
US8209302B2 (en) Systems and methods for processing data objects
US11899725B1 (en) Continuous file metadata refresh for file gateway
US11403179B1 (en) Transactionally consistent point-in-time restore
US20190005007A1 (en) Merging client content with cloud services
CN112783904A (zh) 一种更新索引数据的方法和装置
US20180270163A1 (en) Profile guided load optimization for browsers
US20160110310A1 (en) Cache management

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination