CN114145005B - 没有一致性消息收发的情况下的集群相干云读取缓存 - Google Patents

没有一致性消息收发的情况下的集群相干云读取缓存 Download PDF

Info

Publication number
CN114145005B
CN114145005B CN202080053053.3A CN202080053053A CN114145005B CN 114145005 B CN114145005 B CN 114145005B CN 202080053053 A CN202080053053 A CN 202080053053A CN 114145005 B CN114145005 B CN 114145005B
Authority
CN
China
Prior art keywords
particular data
data portion
cache
stored
cloud
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.)
Active
Application number
CN202080053053.3A
Other languages
English (en)
Other versions
CN114145005A (zh
Inventor
R·P·特斯塔迪
C·M·哈尔
S·普拉卡什
E·皮斯托
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 CN114145005A publication Critical patent/CN114145005A/zh
Application granted granted Critical
Publication of CN114145005B publication Critical patent/CN114145005B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • H04L67/5682Policies or rules for updating, deleting or replacing the stored data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • 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
    • 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
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/172Caching, prefetching or hoarding of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/31Providing disk cache in a specific location of a storage system
    • G06F2212/314In storage network, e.g. network attached cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/46Caching storage objects of specific type in disk cache
    • G06F2212/463File

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本文中描述了用于在没有一致性消息收发的情况下执行集群相干云读取缓存的***和方法。在具有读取缓存的云读取器代理处,接收针对特定数据部分的请求从客户端。该请求包括发出请求的节点的标识符、关于节点发出请求的当前时间、特定数据部分的最后存根时间和/或特定数据部分的标识符。当特定数据部分被存储在云读取器代理的读取缓存中时,云读取器代理可以至少部分地基于所接收的发出请求的节点的标识符、所接收的特定数据部分的最后存根时间和/或与所缓存的特定数据部分相关联的存储时间来确定所缓存的特定数据部分是否有效。

Description

没有一致性消息收发的情况下的集群相干云读取缓存
背景技术
传统的读取缓存(尤其是集群读取缓存)在后备存储库被修改时依赖于一致性消息收发来使(多个)缓存条目无效。一致性消息收发通常跨过程或节点,并且在大型集群中,通常跨许多节点。一致性消息收发通常还是同步的。这使得一致性消息收发在性能和复杂性方面非常昂贵。一致性消息收发在集群环境中可能尤其昂贵,在集群环境中,一致性消息收发可能必须跨节点甚至跨多个节点,在同步消息未被确认时拖延后备存储库的更新。
发明内容
本文中描述了一种读取缓存***,包括:计算机,包括处理器和其上存储有计算机可执行指令的存储器,该计算机可执行指令当被处理器执行时,使计算机:在云读取器代理处:从客户端接收针对特定数据部分的请求,该请求包括发出请求的多个节点中的节点的标识符、关于节点发出请求的当前时间、特定数据部分的最后存根时间、以及特定数据部分的标识符;当特定数据部分被存储在云读取器代理的缓存中时,至少部分地基于所接收的发出请求的节点的标识符、所接收的特定数据部分的最后存根时间、以及与所缓存的特定数据部分相关联的存储时间,确定所缓存的特定数据部分是否有效;当确定所缓存的特定数据部分有效时,响应于请求,提供所缓存的数据;当确定所缓存的特定数据部分无效时:请求特定数据部分的当前副本;接收特定数据部分的当前副本;以及响应于来自客户端的请求,提供所接收的特定数据部分的当前副本。
本发明内容被提供来以简化形式介绍下面在具体实施方式中被进一步描述的概念的选择。本发明内容无意于标识所要求保护主题的关键特征或必要特征,也无意于用于限制所要求保护主题的范围。
附图说明
图1是图示了读取缓存一致性***的功能框图。
图2是在特定时间的文件存储库的示例性内容、云的内容和读取缓存的内容的示图。
图3是存根文件的方法的流程图。
图4是响应于客户端读取请求的方法的流程图。
图5和图6是在没有一致性消息收发的情况下执行集群相干云读取缓存的方法的流程图。
图7和图8是在没有一致性消息收发的情况下执行集群相干云读取缓存的方法的流程图。
图9是图示了示例性计算***的功能框图。
具体实施方式
现在参考附图来描述与集群相干云读取缓存有关的各种技术,其中类似的附图标记自始至终用于指代类似的元素。在以下描述中,出于解释的目的,阐述了许多具体细节,以便提供对一个或多个方面的透彻理解。然而,显然可以在没有这些具体细节的情况下实践这样的(多个)方面。在其他实例下,以框图形式示出众所周知的结构和设备,以便助于描述一个或多个方面。进一步地,应当理解,被描述为由某些***组件进行的功能性可以被多个组件执行。相似地,例如,组件可以被配置为执行被描述为由多个组件进行的功能性。
本主题公开支持执行或被配置为执行关于集群相干云读取缓存的各种动作的各种产品和过程。以下是一种或多种示例性***和方法。
本公开的方面涉及没有一致性消息收发情况下的集群相干云读取缓存的技术问题。与解决该问题相关联的技术特征涉及在云读取器代理处:从客户端接收针对特定数据部分的请求,请求包括发出请求的多个节点中的节点的标识符、关于节点发出请求的当前时间、特定数据部分的最后存根时间、以及特定数据部分的标识符;当特定数据部分被存储在云读取器代理的缓存中时,至少部分地基于所接收的发出请求的节点的标识符、所接收的特定数据部分的最后存根时间、以及与所缓存的特定数据部分相关联的存储时间,确定所缓存的特定数据部分是否有效;当确定所缓存的特定数据部分有效时,响应于请求,提供所缓存的数据;当确定所缓存的特定数据部分无效时:请求特定数据部分的当前副本;接收特定数据部分的当前副本;以及响应于来自客户端的请求,提供所接收的特定数据部分的当前副本。因此,这些技术特征的方面表现出更高效和有效地读取所缓存的内容的技术效果,例如减少(多种)计算机资源的消耗和/或减少带宽的消耗。
此外,术语“或”旨在意味着包括性的“或”而不是排他性的“或”。即,除非另外说明或从上下文中清楚,否则短语“X采用A或B”旨在意味着自然包括性排列中的任何自然包括性排列。即,短语“X采用A或B”满足以下实例中的任何实例:X采用A;X采用B;或者X采用A和B两者。另外,除非另有说明或从上下文中清楚,被指定为单数形式,否则如在本申请和所附权利要求中所使用的冠词“一”和“一个”通常应被解释为意味着“一个或多个”。
如本文所使用的,术语“组件”和“***”以及其各种形式(例如,组件、***、子***等)旨在指代计算机相关的实体,或者硬件、硬件与软件的组合、软件、或者正在执行的软件。例如,组件可以是但不限于在处理器上运行的过程、处理器、对象、情况、可执行文件、执行线程、程序和/或计算机。通过说明的方式,在计算机上运行的应用和计算机两者可以是组件。一个或多个组件可以驻留在过程和/或执行线程内,并且组件可以位于一台计算机上和/或分布在两台或更多台计算机之间。进一步地,如本文所使用的,术语“示例性”旨在意味着用作某事物的说明或示例,而不旨在指示偏好。
常规地,当后备存储库被修改时,(多个)读取缓存使用同步一致性消息收发来使(多个)缓存条目无效。在许多实例中,后备存储库的更新取决于从具有或可能具有(多个)所缓存的条目的其他的(多个)过程和/或(多个)节点的(多条)确认消息的接收。因此,一致性消息收发在性能和/或复杂性方面可能是昂贵的。
本文中描述了在没有一致性消息收发的情况下执行读取缓存一致性的***和方法。相反,要读取的数据请求包括用于允许具有读取缓存的云读取器代理确定所请求的数据的所缓存的副本是否有效(例如,不是陈旧的)的信息(例如,节点标识符、关于节点的当前时间、上次重影(ghost)时间和/或文件/blob名称)。在一些实施例中,云读取器代理可以独立于任何其他的(多个)云读取器代理/(多个)读取缓存,并且在(多个)云读取器代理和/或云写入器组件(例如,云写入器代理)之间没有缓存一致性消息收发的情况下,执行该确定。当所请求的数据的所缓存的副本有效时,云读取器代理可以提供所请求的数据的所缓存的副本。否则,云读取器代理可以从云请求所请求的数据的当前副本。
参照图1,图示了相干读取缓存***100。***100包括一个或多个节点104,节点104中的至少一些节点具有文件***108,该文件***具有文件存储库112(例如,blob存储库),例如基于服务器消息块(SMB)和/或网络文件***(NFS)协议。文件存储库112可以存储文件和/或关于文件112的信息(例如,(多个)存根文件)。“存根文件”是指对文件(或者,blob)的引用,该文件(或者,blob)的数据当前未被本地存储在文件***108上,如下面所讨论的。
节点104可以包括云写入器组件120(例如,云写入器代理),接收关于特定(多个)文件或(多个)文件的(多个)部分(例如,关于创建、修改和/或删除)的写入信息。云写入器组件120可以将写入信息提供给云116,该云维护文件***108的一些或所有文件的副本。
***100还包括一个或多个云读取器组件124(例如,(多个)云读取器代理),其中至少一些云读取器组件具有读取缓存128。每个读取缓存128可以响应于被文件***108接收和/或预期被文件***108接收的(多个)读取请求而存储从云116读取的数据。数据可以比从云116读取的数据明显更快地从读取缓存128被提供给文件***108。
在一些实施例中,云读取器组件124可以采用将最近接收的数据存储在读取缓存128中的缓存策略。在一些实施例中,云读取器组件124可以采用将最有可能被请求的接收的数据存储在读取缓存128中的缓存策略。
文件***108还包括用对具有被存储在云116中的内容的文件(例如,存根文件)的内容的引用替换文件的内容的本地副本的存根组件132。当用对文件的内容的引用替换(移除)文件的内容的本地副本时,存根组件136可以包括关于文件何时被存根(例如当文件被存根时的时间)的信息。当从文件112读取所存根的文件时,云读取器组件124可以使所存根的文件的副本被读取(例如,从云116或从读取缓存128),如下面所讨论。
在一些实施例中,文件被存根的时间不像文件数据的其余部分那样被持久地存储(例如,在磁盘上),而只是被存储在存储器中(例如,RAM中)。在崩溃情景中,也可以被存储在存储器中的读取缓存128可以随文件被存根的时间而被丢失。在一些实施例中,***100可以利用针对在***100备份时的每个文件的“最后存根时间”,而不是每个文件实际上被最后存根的时间。通过利用“比实际更新”的文件存根时间,最坏情况结果是***100在可以使用时不会使用缓存的数据。
常规地,当(多个)读取缓存被采用时,在文件的写入之前,一致性消息收发被利用来使(多个)缓存条目无效。响应于接收指示(多个)缓存条目已无效的(多个)确认消息,可以发生文件的写入。
***100不采用一致性消息收发来使(多个)缓存条目无效。相反,数据读取请求包括用于允许具有读取缓存128的云读取器组件124确定被存储在读取缓存128中的所请求的数据的副本是否有效(例如,陈旧)的信息(例如,节点标识符、关于节点的当前时间、上次重影(ghost)时间和/或文件/blob名称)。云读取器组件124可以独立于具有(多个)读取缓存128的任何其他的(多个)云读取器代理124和/或云写入器组件120(例如,云写入器代理)来执行该确定。当云读取器组件124确定被存储在读取缓存128中的所请求的数据的副本有效时,云读取器组件124可以响应于数据读取请求而提供所请求的数据的所缓存的副本。否则,所请求的数据的副本可以被确定是无效的,并且云读取器组件124可以从云116请求所请求的数据的当前副本。响应于从云116接收所请求的数据,云读取器组件124可以将从云116接收的所请求的数据提供给读取器组件136。在一些实施例中,云读取器组件124可以将所接收的所请求的数据存储在读取缓存128中。
出于解释而非限制的目的,描述了写入并随后读取文件(或者,其部分)的第一版本的第一场景。图2是时间间隔210、文件存储库220(例如,文件***108的文件存储库112)的内容、云230(例如,云116)的内容和读取缓存240(例如,读取缓存128)的内容的示图200。
首先,客户端组件136将新创建的文件(Vl)提供给节点104的文件***108(时间T0)。在一些实施例中,客户端组件136在节点104上执行。在一些实施例中,客户端组件136在与节点104物理上分离的设备上执行。
文件***108将新创建的文件(Vl)的副本存储在文件存储库112中。此后,云写入器组件120将新创建的文件(Vl)提供(例如,存储)在云116中。
在新创建的文件(Vl)已被存储在云116中之后的某个时间点,存根组件132存根新创建的文件(Vl)。这样做时,存根组件132将对新创建的文件(Vl)的引用以及文件被存根的时间(Tl)存储在文件存储库112中。
随后,客户端设备136请求从文件***108读取Vl。由于Vl被存根,因此文件没有被存储在文件存储库112中,并且文件***108请求使用云读取器组件124来读取文件(Vl)。除了文件的名称以外,文件***108还提供文件***108正在其上执行的节点104的节点标识符(Nl),以及由存根组件132存储在文件存储库112中的最后存根时间(Tl)和当前时间(T2)。
云读取器组件124首先检查其读取缓存128,该读取缓存不具有文件的所缓存的副本。此后,云读取器组件124从云116请求并接收文件的副本。随后,在时间(T3),云读取器组件124将文件(Vl)以及文件***108所提供的节点标识符(Nl)和/或当前时间(T2)存储在读取缓存128中。云读取器组件124还将文件(Vl)的副本提供给文件***108,该文件***将文件(Vl)的副本提供给客户端组件136。
此后,客户端组件136对文件做出改变,产生文件(V2)。在时间T4,客户端组件136将经改变的文件(V2)提供给文件***108,该文件***将文件(V2)存储在文件存储库112中。此后,云编写器组件120将经改变的文件(V2)提供(例如,存储)在云116中。
在经改变的文件(V2)已被存储在云116中之后的某个时间点,存根组件132存根经改变的文件(V2)。在这样做时,存根组件132将对经改变的文件(V2)的引用以及文件被存根的时间(T5)存储在文件存储库112中。
随后,客户端设备136请求从文件***108读取V2。由于文件(V2)被存根,因此文件没有被存储在文件存储库112中,并且文件***108请求使用云读取器组件124来读取文件(V2)。除了文件的名称以外,文件***108还提供文件***108正在其上执行的节点104的节点标识符(N1),以及由存根组件132存储在文件存储库112中的最后存根时间(T5)和当前时间(T6)。
云读取器组件124首先检查其读取缓存128并确定文件的副本被存储在读取缓存128中。文件(V1)的所缓存的副本包括节点标识符(N1)和/或所存储的当前时间(T2)。至少部分地基于确定所存储的当前时间(T2)在最后存根时间(T5)之前(例如,小于),云读取器组件124可以确定文件的所缓存的副本(V1)无效(例如,陈旧)。
此后,云读取器组件124从云116请求并接收文件(V2)的副本。在时间(T7),云读取器组件124将文件(V2)以及文件***108所提供的(例如,客户端读取的)当前时间(T6)存储在读取缓存128中。云读取器组件124还将文件(V2)的副本提供给文件***108,该文件***将文件(V2)的副本提供给客户端组件136。
在一些实施例中,节点104包括文件***108、云写入器组件120、存根组件132和/或云读取器组件124。在一些实施例中,多个节点104中的每个节点包括文件***108、云写入器组件120、存根组件132和云读取器组件124。在一些实施例中,硬件装置包括多个节点104(例如,集群装置)。
在一些实施例中,节点标识符不是由文件***108提供和/或由云读取组件124存储。例如,节点标识符在单节点场景中将是多余的。另外,可以使用时钟歪斜(clock skew)阈值来被补偿节点集群中的节点之间的时钟漂移,如下文所讨论。在一些实施例中,上述算法可被用于读取一系列文件(例如,由偏移量、长度描述)和/或(多个)数据子集。
出于解释而非限制的目的,本文中关于文件***108、文件存储库112和文件已描述了***和方法。在一些实施例中,本文中所描述的***和方法可以与存储在文件***108和文件存储库112中的数据部分(例如,块和/或blob)和/或关于数据部分的信息(例如,关于块和/或blob的存根)一起使用。
图3-图8说明了与没有一致性消息收发的情况下的集群相干云读取缓存相关的示例性方法。虽然方法被示出并描述为按顺序执行的一系列动作,但是应当理解和领会,方法不受该顺序的次序限制。例如,一些动作可以与本文中所描述的次序不同的次序发生。另外,动作可以与另一动作同时发生。进一步地,在一些实例中,并非所有动作可被需要来实施本文中所描述的方法。
此外,本文中所描述的动作可以是可以由一个或多个处理器实现和/或存储在计算机可读介质/媒介上的计算机可执行指令。该计算机可执行指令可以包括例程、子例程、程序、执行线程和/或类似物。更进一步地,方法的动作的结果可以被存储在计算机可读介质中、被显示在显示设备上和/或类似物。
参照图3,图示了存根文件的方法300。在一些实施例中,方法300由存根组件132执行。
在310处,用存根替换文件***的文件的本地副本。存根包括当存根发生时文件***的节点的当前时间。
转向图4,图示了响应于客户端读取请求的方法400。在一些实施例中,方法400由文件***108执行。
在410处,例如从客户端接收对读取特定数据部分(例如,blob、文件)的请求。在420,做出关于所请求的特定数据部分(例如,块、blob、文件)是否已被存根的确定做出。如果420处的确定是否,则在430处,从文件***提供(例如,向客户端)所请求的特定数据部分,并且不发生其他处理。
如果420处的确定为是,则在440处,向云读取器代理(例如,云读取器组件124)提供对读取特定数据部分的请求。该请求包括发出请求的节点的标识符、关于节点发出请求的当前时间、特定数据部分的最后存根时间和/或特定数据部分的标识符(例如,文件名称、blob名称)。
在450处,从云读取器代理接收所请求的特定数据部分。在460处,(例如,向客户端)提供所请求的特定数据部分,并且不发生其他处理。
接下来,参照图5和图6,图示了在没有一致性消息收发的情况下执行集群相干云读取缓存的方法500。在一些实施例中,方法500由云读取器组件124执行。
在510处,接收针对特定数据部分(例如,文件、blob)的请求。该请求包括发出请求的多个节点中的节点的标识符、关于节点发出请求的当前时间、特定数据部分的最后存根时间和/或特定数据部分的标识符。
在520处,做出关于是否将特定数据部分存储在云读取器代理的缓存中的确定。如果520处的确定是否,那么在530处,处理继续。如果520处的确定为是,那么在534处,至少部分地基于所接收的发出请求的节点的标识符,所接收的特定数据部分的最后存根时间和与所缓存的特定数据部分相关联的存储时间,确定所缓存的特定数据部分有效或确定所缓存的特定数据部分无效。在一些实施例中,仅当所缓存的数据针对与发出当前请求相同的节点被读取,并且与所缓存的特定数据部分相关联的存储时间与所接受的特定数据部分的最后存根时间相同或稍晚时,所缓存的数据才有效。即,所缓存的数据是响应于在与特定数据被存根的时间同时或稍晚时源自同一节点的请求而被读取。
在540处,做出关于所缓存的特定数据部分是否有效是确定。如果540处的确定为是,则在550处,响应于请求而提供所缓存的特定数据部分,并且不发生其他处理。
如果540处的确定为否,则在530处,向云提供针对特定数据部分的请求。在一些实施例中,云读取器代理请求云读取器代理预期客户端可能请求的附加数据。在560处,从云接收特定数据部分的当前副本。在570处,响应于请求,提供所接收的特定数据部分的当前副本。在580处,将所接收的特定数据部分的当前副本以及所接受的关于节点发出请求的当前时间和所接收的节点标识符存储在缓存中。在一些实施例中,云读取器代理将云读取器代理预期客户端可能请求的附加数据与所接收的关于节点发出请求的当前时间和所接收的节点标识符一起存储在缓存中。
接下来,转向图7和图8,图示了在没有一致性消息收发的情况下执行集群相干云读取缓存的方法700。在一些实施例中,方法700由云读取器组件124执行。
在710处,接收针对特定数据部分(例如,文件、blob)的请求。请求包括关于节点发出请求的当前时间、特定数据部分的最后存根时间和/或特定数据部分的标识符。
在720处,做出关于是否将特定数据部分存储在云读取器代理的缓存中的确定。如果720处的确定为否,则在730处处理继续。如果720处的确定为是,则在734处,至少部分地基于所接收的特定数据部分的最后存根时间和与所缓存的特定数据部分相关联的存储时间,确定所缓存的特定数据部分有效或确定所缓存的特定数据部分无效。预定时钟歪斜阈值(例如,两分钟)还可以被采用来解释节点之间的时钟歪斜。例如,如果与所缓存的特定数据部分相关联的存储时间等于或晚于所接收的特定数据部分的最后存根时间和预定时钟歪斜阈值的总和。
在740处,做出所缓存的特定数据部分是否有效的确定。如果740处的确定为是,则在750处,响应于请求而提供所缓存的特定数据部分,并且不发生其他处理。
如果740处的确定为否,则在730处,向云提供针对特定数据部分的请求。在760处,从云接收特定数据部分的当前副本。在770处,响应于请求,提供所接收的特定数据部分的当前副本。在780处,将所接收的特定数据部分的当前副本以及所接受的关于节点发出请求的当前时间存储在缓存中。
本文中描述了一种相干读取缓存***,包括:计算机,包括处理器和其上存储有计算机可执行指令的存储器,该计算机可执行指令当被处理器执行时,使计算机:在云读取器代理处:从客户端接收针对特定数据部分的请求,该请求包括发出请求的多个节点中的节点的标识符、关于节点发出请求的当前时间、特定数据部分的最后存根时间、以及特定数据部分的标识符;当特定数据部分被存储在云读取器代理的缓存中时,至少部分地基于所接收的发出请求的节点的标识符、所接收的特定数据部分的最后存根时间、以及与所缓存的特定数据部分相关联的存储时间,确定所缓存的特定数据部分是否有效;当确定所缓存的特定数据部分有效时,响应于请求而提供所缓存的数据;当确定所缓存的特定数据部分无效时:请求特定数据部分的当前副本;接收特定数据部分的当前副本;以及响应于来自客户端的请求,提供所接收的特定数据部分的当前副本。
该***可以包括其上存储有其他计算机可执行指令,该其他计算机可执行指令当被处理器执行时,使计算机:将所接收的特定数据部分的当前副本、所接收的当前时间、以及所接收的节点标识符存储在云读取器代理的缓存中。该***还可以包括:其中确定所缓存的特定数据部分是否有效仅基于所接收的发出请求的节点的标识符、所接收的特定数据部分的最后存根时间、以及与所缓存的特定数据部分相关联的存储时间。
该***还可以包括:其中缓存一致性消息收发不被用于确定所缓存的特定数据部分是否有效。该***还可以包括:其中特定数据部分的标识符包括文件名称。该***还可以包括:其中特定数据部分包括文件。
该***还可以包括:其中特定数据部分包括文件的一部分。该***可以包括其上存储有其他计算机可执行指令的存储器,该其他计算机可执行指令当被处理器执行时,使计算机:当确定所缓存的特定数据部分无效时:请求特定数据部分的当前副本和附加数据;接收特定数据部分的当前副本和附加数据;响应于来自客户端的请求,提供所接收的特定数据部分的当前副本;以及将所接收的特定数据部分的当前副本和附加数据、所接收的当前时间、以及所接收的节点标识符存储在云读取器代理的缓存中。
本文中描述了一种在没有一致性消息收发的情况下执行集群相干云读取缓存的方法,包括:从客户端接收针对特定数据部分的请求,该请求包括发出请求的多个节点中的节点的标识符、关于节点发出请求的当前时间、特定数据部分的最后存根时间、以及特定数据部分的标识符;当特定数据部分被存储在云读取器代理的缓存中时,至少部分地基于所接收的发出请求的节点的标识符、所接收的特定数据部分的最后存根时间、以及与所缓存的特定数据部分相关联的存储时间,确定所缓存的特定数据部分是否有效;当确定所缓存的特定数据部分有效时,响应于请求,提供所缓存的数据;当确定所缓存的特定数据部分无效时:请求特定数据部分的当前副本;接收特定数据部分的当前副本;以及响应于来自客户端的请求,提供所接收的特定数据部分的当前副本。
该方法还可以包括将所接收的特定数据部分的当前副本、所接收的当前时间、以及所接收的节点标识符存储在云读取器代理的缓存中。该方法还可以包括:其中确定所缓存的特定数据部分是否有效仅基于所接收的发出请求的节点的标识符、所接收的特定数据部分的最后存根时间、以及与所缓存的特定数据部分相关联的存储时间。该方法还可以包括:其中缓存一致性消息收发不被用于确定所缓存的特定数据部分是否有效。
该方法还可以包括:其中特定数据部分的标识符包括文件名称。该方法还可以包括:其中特定数据部分包括文件。该方法还可以包括:其中特定数据部分包括文件的一部分。
该方法还可以包括:当确定所缓存的特定数据部分无效时:请求特定数据部分的当前副本和附加数据;接收特定数据部分的当前副本和附加数据;响应于来自客户端的请求,提供所接收的特定数据部分的当前副本;以及将所接收的特定数据部分的当前副本和附加数据、所接收的当前时间、以及所接收的节点标识符存储在云读取器代理的缓存中。
本文中描述了一种计算机存储介质,存储计算机可读指令,当该计算机可读指令在被执行时使计算设备:从客户端接收对针对特定数据部分的请求,请求包括关于节点发出请求的当前时间、特定数据部分的最后存根时间、以及特定数据部分的标识符;当特定数据部分被存储在云读取器代理的缓存中时,至少部分地基于所接收的特定数据部分的最后存根时间、以及与所缓存的特定数据部分相关联的存储时间,确定所缓存的特定数据部分是否有效;当确定所缓存的特定数据部分有效时,响应于请求,提供所缓存的数据;当确定所缓存的特定数据部分无效时:请求特定数据部分的当前副本;接收特定数据部分的当前副本;以及响应于来自客户端的请求,提供所接收的特定数据部分的当前副本。
计算机存储介质可以存储其他计算机可读指令,所述指令在被执行时使得计算设备:将特定数据部分的接收的当前副本和接收的当前时间存储在云读取器代理的缓存中。计算机存储介质还可以包括:其中确定所缓存的特定数据部分是否有效还基于预定时钟歪斜阈值。
计算机存储介质可以存储其他计算机可读指令,当该其他计算机可读指令在被执行时使计算设备:当确定所缓存的特定数据部分无效时:请求特定数据部分的当前副本和附加数据;接收特定数据部分的当前副本和附加数据;响应于来自客户端的请求,提供所接收的特定数据部分的当前副本;以及将所接收的特定数据部分的当前副本和附加数据、所接收的当前时间存储在云读取器代理的缓存中。
参考图9,图示了示例通用计算机或计算设备902(例如,移动电话、台式机、膝上型计算机、平板、手表、服务器、手持式、可编程消费或工业电子设备、机顶盒、游戏***、计算节点等)。例如,计算设备902可以在相干读取缓存***100中使用。
计算机902包括一个或多个(多个)处理器920、存储器930、***总线940、(多个)大容量存储设备950、以及一个或多个接口组件970。***总线940至少可通信地耦接上面的***组成部分。然而,应当理解,在其最简单的形式中,计算机902可以包括耦接到存储器930的一个或多个处理器920,该一个或多个处理器执行存储在存储器930中的各种计算机可执行动作、指令和/或组件。指令可以是例如用于实施被描述为由上面所讨论的一个或多个组件执行的功能性的指令或者用于实现上面所描述的方法中的一个或多个方法的指令。
(多个)处理器920可以通过被设计为执行本文中所描述的功能的通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其他可编程逻辑设备、离散门或晶体管逻辑、离散硬件组件或其任何组合实现。通用处理器可以是微处理器,但是在备选方案中,处理器可以是任何处理器、控制器、微控制器或状态机。(多个)处理器920还可以被实现为计算设备的组合,例如DSP与微处理器的组合、多个微处理器、多核处理器、一个或多个微处理器结合DSP核、或者任何其他这样的配置。在一个实施例中,(多个)处理器920可以是图形处理器。
计算机902可以包括各种计算机可读介质或以其他方式与各种计算机可读介质交互以促进对计算机902的控制以实现所要求保护主题的一个或多个方面。计算机可读介质可以是可以被计算机902访问的任何可用介质并包括易失性和非易失性介质,以及可移除和非可移除介质。计算机可读介质可以包括两种不同且相互排斥的类型,即计算机存储介质和通信介质。
计算机存储介质包括以用于存储例如计算机可读指令、数据结构、程序模块或其他数据的信息的任何方法或技术实现的易失性和非易失性、可移除和非可移除介质。计算机存储介质包括存储设备,诸如存储器设备(例如,随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)等)、磁存储设备(例如,硬盘、软盘、卡带、磁带等)、光盘(例如,压缩盘(CD)、数字通用磁盘(DVD)等)和固态设备(例如,固态驱动器(SSD))、闪存驱动器(例如,卡、棒、钥匙驱动器等),或者任何其他的类似介质,与传输或通信相反,存储计算机902可访问所需信息。因此,计算机存储介质不包括调制数据信号以及关于通信介质所描述的信号。
通信介质在例如载波或其他传输机制的调制数据信号中实现计算机可读指令、数据结构、程序模块或其他数据,并且包括任何信息传递介质。术语“调制数据信号”意味着使其特性中的一个或多个特性以编码信息中的信号的方式被设置或改变的信号。例如但并非限制,通信媒体包括例如有线网络或直接有线连接的有线媒体,和例如声学、RF、红外线和其他无线媒体的无线媒体。
存储器930和(多个)大容量存储设备950是计算机可读存储介质的示例。取决于计算设备的确切配置和类型,存储器930可以是易失性的(例如,RAM)、非易失性的(例如,ROM、闪存等)或两者的某种组合。例如,基本输入/输出***(BIOS),包括例如在启动期间在计算机902内的元件之间传输信息的基本例程,可以被存储在非易失性存储器中,而易失性存储器可以作为外部缓存存储器以促进被(多个)处理器920处理等。
(多个)大容量存储设备950包括用于存储与存储器930相关的大量数据的可移除/非可移除、易失性/非易失性计算机存储介质。例如,(多个)大容量存储设备950包括但不限于一个或多个设备,例如磁盘或光盘驱动器、软盘驱动器、闪存、固态驱动器或记忆棒。
存储器930和(多个)大容量存储设备950可以包括或其中已存储了操作***960、一个或多个应用962、一个或多个程序模块964和数据966。操作***960用于控制和分配计算机902的资源。应用962包括***软件和应用软件中的一者或两者,并且可以利用操作***960通过被存储在存储器930和/或(多个)大容量存储设备950中的程序模块964和数据966的资源管理来执行一个或多个动作。因此,应用962可以根据其提供的逻辑将通用计算机902变成专用机器。
可以使用标准编程和/或工程技术来产生软件、固件、硬件或其任何组合以控制计算机实现所公开的功能性来实现所要求保护主题的全部或部分。通过示例而非限制的方式,***100或其部分可以是应用962或形成应用962的一部分,并且包括被存储在存储器和/或(多个)大容量存储设备950中的一个或多个模块964和数据966,其功能性可以当被一个或多个(多个)处理器920执行时被实现。
在一些实施例中,(多个)处理器920可以对应于片上***(SOC)或类似架构,包括或换言之在单个集成电路衬底上集成硬件和软件两者。在此,(多个)处理器920可以包括一个或多个处理器以及至少与(多个)处理器920和存储器930相似的存储器等。常规的处理器包括最少量的硬件和软件并广泛依赖于外部硬件和软件。相比之下,处理器的SOC实现更强大,因为该实现在其中嵌入了硬件和软件,从而在对外部硬件和软件的依赖最小或不依赖的情况下实现特定功能性。例如,***100和/或相关联的功能性可以被嵌入在SOC架构的硬件中。
计算机902还包括可通信地耦接到***总线940并促进与计算机902的交互的一个或多个接口组件970。例如,接口组件970可以是端口(例如,串行、并行、PCMCIA、USB、FireWire等)或接口卡(例如,声音、视频等)或类似物。在一个示例实现中,接口组件970可以被实现为用户输入/输出接口,以使得用户能够将命令和信息输入到计算机902中,例如通过一个或多个手势或语音输入,通过一个或多个输入设备(例如,定点设备,例如鼠标、轨迹球、触控笔、触摸板、键盘、麦克风、操纵杆、游戏手柄、卫星天线、扫描仪、照相机、其他计算机等)。在另一示例实现中,接口组件970可以被实现为输出***接口以将输出供应给显示器(例如,LCD、LED、等离子等)、扬声器、打印机和/或其他计算机等。更进一步地,接口组件970可以被实现为网络接口以实现与其他计算设备(未示出)的通信,例如通过有线或无线通信链路。
上面已描述的内容包括所要求保护主题的方面的示例。当然,出于描述所要求保护主题的目的,不可能描述组件或方法的每一种可能的组合,但是本领域普通技术人员可以认识到所公开主题的许多其他组合和排列是可能的。因此,所公开的主题旨在包括落入所附权利要求的精神和范围内的所有这样的改变、修改和变化。此外,就在具体实施方式或权利要求中使用的术语“包括(includes)”而言,当“包括(comprising)”在被采用来作为权利要求中的过渡词时被解读,这样的术语旨在以与术语“包括(comprising)”相似的方式为包括性的。

Claims (20)

1.一种***,包括:
处理器和其上存储有计算机可执行指令的存储器,所述计算机可执行指令在由所述处理器执行时,使所述***:
在云读取器代理处:
从客户端接收针对特定数据部分的请求,所述请求包括发出所述请求的多个节点中的节点的标识符、关于所述节点发出所述请求的当前时间、所述特定数据部分的指示所述特定数据部分何时被对所述特定数据部分的引用替换的最后存根时间、以及所述特定数据部分的标识符;
如果所述特定数据部分被存储在所述云读取器代理的缓存中,则执行所述最后存根时间与存储时间的比较,所述存储时间与被存储在所述缓存中的所述特定数据部分相关联;
至少基于所述最后存根时间与所述存储时间的所述比较,确定被存储在所述缓存中的所述特定数据部分是否有效;
如果被存储在所述缓存中的所述特定数据部分被确定为有效,则响应于所述请求,从所述缓存提供所述特定数据部分;
如果被存储在所述缓存中的所述特定数据部分未被确定为有效:
从云请求所述特定数据部分的当前副本;
从所述云接收所述特定数据部分的所述当前副本;以及
响应于来自所述客户端的所述请求,提供所述特定数据部分的所述当前副本。
2.根据权利要求1所述的***,所述存储器其上存储有其他计算机可执行指令,所述其他计算机可执行指令在由所述处理器执行时,使所述***:
如果被存储在所述缓存中的所述特定数据部分未被确定为有效,则在所述缓存中存储所述特定数据部分的所述当前副本、所接收的所述当前时间、以及所接收的节点标识符。
3.根据权利要求2所述的***,其中所述请求包括所述请求节点的所述标识符,并且其中被存储在所述缓存中的所述特定数据部分是否有效仅基于如下来确定:所述请求节点的所述标识符、所述特定数据部分的所述最后存根时间、以及与被存储在所述缓存中的所述特定数据部分相关联的所述存储时间。
4.根据权利要求1所述的***,其中缓存一致性消息收发不被用于确定被存储在所述缓存中的所述特定数据部分是否有效。
5.根据权利要求1所述的***,其中所述特定数据部分的所述标识符包括文件名称。
6.根据权利要求1所述的***,其中所述特定数据部分包括文件。
7.根据权利要求1所述的***,其中所述特定数据部分包括文件的一部分。
8.根据权利要求1所述的***,所述存储器其上存储有其他计算机可执行指令,所述其他计算机可执行指令在由所述处理器执行时,使所述***:
如果被存储在所述缓存中的所述特定数据部分未被确定为有效:
从所述云请求附加数据,其中所述附加数据被预期为由提供所述请求的请求节点在稍后的时间被请求;
从所述云接收所述附加数据;以及
在所述缓存中存储所述特定数据部分的所述当前副本、所述附加数据、所接收的所述当前时间、以及所接收的节点标识符。
9.一种用于管理云读取器代理的缓存的方法,包括:
从客户端接收针对特定数据部分的请求,所述请求包括发出所述请求的多个节点中的节点的标识符、关于所述节点发出所述请求的当前时间、所述特定数据部分的指示所述特定数据部分何时被对所述特定数据部分的引用替换的最后存根时间、以及所述特定数据部分的标识符;
如果所述特定数据部分被存储在云读取器代理的缓存中,则执行所述最后存根时间与存储时间的比较,所述存储时间与被存储在所述缓存中的所述特定数据部分相关联;
至少部分地基于所述最后存根时间与所述存储时间的比较,确定被存储在所述缓存中的所述特定数据部分是否有效;
如果被存储在所述缓存中的所述特定数据部分被确定为有效,则响应于所述请求,从所述缓存提供所述特定数据部分;
如果被存储在所述缓存中的所述特定数据部分未被确定为有效:
从云请求所述特定数据部分的当前副本;
从所述云接收所述特定数据部分的所述当前副本;以及
响应于来自所述客户端的所述请求,提供所述特定数据部分的所述当前副本。
10.根据权利要求9所述的方法,还包括:
如果被存储在所述缓存中的所述特定数据部分未被确定为有效,则在所述缓存中存储所述特定数据部分的所述当前副本、所接收的所述当前时间、以及所接收的节点标识符。
11.根据权利要求9所述的方法,其中所述请求包括发出所述请求的请求节点的标识符,并且确定被存储在所述缓存中的所述特定数据部分是否有效仅基于所述请求节点的所述标识符、所述特定数据部分的所述最后存根时间、以及与被存储在所述缓存中的所述特定数据部分相关联的所述存储时间。
12.根据权利要求9所述的方法,其中缓存一致性消息收发不被用于确定被存储在所述缓存中的所述特定数据部分是否有效。
13.根据权利要求9所述的方法,其中所述特定数据部分的所述标识符包括文件名称。
14.根据权利要求9所述的方法,其中所述特定数据部分包括文件。
15.根据权利要求9所述的方法,其中所述特定数据部分包括文件的一部分。
16.根据权利要求9所述的方法,还包括:
被存储在所述缓存中的所述特定数据部分未被确定为有效:
至少基于预期到附加数据随后将被请求所述特定数据部分的请求节点请求,从所述云请求所述附加数据;
从所述云接收所述附加数据;以及
在所述缓存中存储所述特定数据部分的所述当前副本、所述附加数据、所接收的所述当前时间、以及所接收的节点标识符。
17.一种计算机存储介质,所述计算机存储介质存储计算机可读指令,所述计算机可读指令在被执行时使计算设备:
从客户端接收针对特定数据部分的请求,所述请求包括关于节点发出所述请求的当前时间、所述特定数据部分的指示所述特定数据部分何时被对所述特定数据部分的引用替换的最后存根时间、以及所述特定数据部分的标识符;
如果所述特定数据部分被存储在缓存中,执行所述最后存根时间与存储时间的比较,所述存储时间与被存储在所述缓存中的所述特定数据部分相关联;
如果被存储在所述缓存中的所述特定数据部分被确定为有效,则响应于所述请求,从所述缓存提供所述特定数据部分;
如果被存储在所述缓存中的所述特定数据部分未被确定为有效:
从云请求所述特定数据部分的当前副本;
从所述云接收所述特定数据部分的所述当前副本;以及
响应于来自所述客户端的所述请求,提供所述特定数据部分的所述当前副本。
18.根据权利要求17所述的计算机存储介质,其中所述请求从文件***被接收,并且所述最后存根时间指示所述文件***何时最后用所述引用替换所述文件***上的所述特定数据部分。
19.根据权利要求17所述的计算机存储介质,其中确定被存储在所述缓存中的所述特定数据部分是否有效还基于预定时钟歪斜阈值。
20.根据权利要求17所述的计算机存储介质,存储其他计算机可读指令,所述其他计算机可读指令在被执行时使所述计算设备:
如果被存储在所述缓存中的所述特定数据部分未被确定为有效:
至少基于所述客户端被预期为未来请求附加数据的确定,从所述云请求所述附加数据;
从所述云接收所述附加数据;以及
在所述缓存中存储所述特定数据部分的所述当前副本、所述附加数据、以及所接收的所述当前时间。
CN202080053053.3A 2019-07-23 2020-06-09 没有一致性消息收发的情况下的集群相干云读取缓存 Active CN114145005B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/519,120 US10999397B2 (en) 2019-07-23 2019-07-23 Clustered coherent cloud read cache without coherency messaging
US16/519,120 2019-07-23
PCT/US2020/036720 WO2021015874A1 (en) 2019-07-23 2020-06-09 Clustered coherent cloud read cache without coherency messaging

Publications (2)

Publication Number Publication Date
CN114145005A CN114145005A (zh) 2022-03-04
CN114145005B true CN114145005B (zh) 2024-03-15

Family

ID=71899908

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080053053.3A Active CN114145005B (zh) 2019-07-23 2020-06-09 没有一致性消息收发的情况下的集群相干云读取缓存

Country Status (4)

Country Link
US (1) US10999397B2 (zh)
EP (1) EP3984200B1 (zh)
CN (1) CN114145005B (zh)
WO (1) WO2021015874A1 (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101625663A (zh) * 2008-07-07 2010-01-13 英特尔公司 满足部分读取和非监听访问之间的访存顺序要求
CN101802790A (zh) * 2007-09-21 2010-08-11 美普思科技公司 对多个一致域的支持
CN104396220A (zh) * 2012-06-21 2015-03-04 思科技术公司 用于安全内容检索的方法和设备
CN104584603A (zh) * 2012-08-24 2015-04-29 高通股份有限公司 对sim卡初始化的优化
CN105324770A (zh) * 2013-04-30 2016-02-10 亚马逊科技公司 有效读出副本
CN109375872A (zh) * 2018-09-27 2019-02-22 腾讯科技(深圳)有限公司 数据访问请求的处理方法、装置和设备及存储介质

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002037225A2 (en) 2000-11-02 2002-05-10 Pirus Networks Switching system
US20070101284A1 (en) * 2005-10-28 2007-05-03 Microsoft Corporation Unified tracking of time dependent events
US8504515B2 (en) * 2010-03-30 2013-08-06 Commvault Systems, Inc. Stubbing systems and methods in a data replication environment
WO2012045023A2 (en) * 2010-09-30 2012-04-05 Commvault Systems, Inc. Archiving data objects using secondary copies
US20120254555A1 (en) 2011-03-31 2012-10-04 Hitachi, Ltd. Computer system and data management method
WO2013014695A1 (en) 2011-07-22 2013-01-31 Hitachi, Ltd. File storage system for transferring file to remote archive system
US8977561B2 (en) 2011-12-06 2015-03-10 Toshiba Global Commerce Solutions Holding Corporation Caching item information in a cloud-based point of sale system
US9432457B2 (en) 2013-08-30 2016-08-30 Citrix Systems, Inc. Redirecting local storage to cloud storage
JP6203592B2 (ja) * 2013-10-07 2017-09-27 株式会社日立製作所 計算機システム、キャッシュ管理方法及び計算機
US9298624B2 (en) 2014-05-14 2016-03-29 HGST Netherlands B.V. Systems and methods for cache coherence protocol
KR101879619B1 (ko) * 2014-06-24 2018-07-19 구글 엘엘씨 콘텐츠 항목의 저장
US9727470B1 (en) 2014-09-30 2017-08-08 EMC IP Holding Company LLC Using a local cache to store, access and modify files tiered to cloud storage
US10097659B1 (en) * 2014-12-16 2018-10-09 Amazon Technologies, Inc. High performance geographically distributed data storage, retrieval and update
US9953038B2 (en) 2015-01-30 2018-04-24 Microsoft Technology Licensing, Llc Cloud-based hierarchical system preservation
US10445289B1 (en) * 2015-03-31 2019-10-15 EMC IP Holding Company LLC Method and apparatus for automatic cleanup of disfavored content
US9928174B1 (en) * 2016-03-16 2018-03-27 Amazon Technologies, Inc. Consistent caching
US20180032249A1 (en) 2016-07-26 2018-02-01 Microsoft Technology Licensing, Llc Hardware to make remote storage access appear as local in a virtualized environment
US20180307702A1 (en) 2017-04-20 2018-10-25 Microsoft Technology Licensing, Llc File directory synchronization
US10719484B2 (en) 2017-09-07 2020-07-21 Cohesity, Inc. Remotely mounted file system with stubs
US10970222B2 (en) * 2019-02-28 2021-04-06 Micron Technology, Inc. Eviction of a cache line based on a modification of a sector of the cache line

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101802790A (zh) * 2007-09-21 2010-08-11 美普思科技公司 对多个一致域的支持
CN101625663A (zh) * 2008-07-07 2010-01-13 英特尔公司 满足部分读取和非监听访问之间的访存顺序要求
CN104396220A (zh) * 2012-06-21 2015-03-04 思科技术公司 用于安全内容检索的方法和设备
CN104584603A (zh) * 2012-08-24 2015-04-29 高通股份有限公司 对sim卡初始化的优化
CN105324770A (zh) * 2013-04-30 2016-02-10 亚马逊科技公司 有效读出副本
CN109375872A (zh) * 2018-09-27 2019-02-22 腾讯科技(深圳)有限公司 数据访问请求的处理方法、装置和设备及存储介质

Also Published As

Publication number Publication date
WO2021015874A1 (en) 2021-01-28
US20210029213A1 (en) 2021-01-28
US10999397B2 (en) 2021-05-04
EP3984200B1 (en) 2024-05-15
EP3984200A1 (en) 2022-04-20
CN114145005A (zh) 2022-03-04

Similar Documents

Publication Publication Date Title
US9838340B2 (en) Systems and methods for storing message data
US8881153B2 (en) Speculative thread execution with hardware transactional memory
CN109997118B (zh) 在永久存储器***中以超高速一致地存储大量数据的方法
US20180260324A1 (en) Data Structure Store in Persistent Memory
US20150032972A1 (en) Methods and apparatus for supporting persistent memory
US20170371889A1 (en) Data cloning in memory-based file systems
US10255062B1 (en) Optimized class loading
KR102235047B1 (ko) 데이터 아이템들을 캐시하기 위한 방법들, 장치들, 및 시스템들
US8423736B2 (en) Maintaining cache coherence in a multi-node, symmetric multiprocessing computer
US10657068B2 (en) Techniques for an all persistent memory file system
US20220253252A1 (en) Data processing method and apparatus
US11687392B2 (en) Method and system for constructing persistent memory index in non-uniform memory access architecture
CN110928890B (zh) 数据存储方法、装置、电子设备及计算机可读存储介质
CN114145005B (zh) 没有一致性消息收发的情况下的集群相干云读取缓存
CN109240941B (zh) 一种存储***的垃圾回收方法及相关装置
US11126459B2 (en) Filesystem using hardware transactional memory on non-volatile dual in-line memory module
WO2016127807A1 (zh) 多副本写入存储设备的方法及存储设备
US11360906B2 (en) Inter-device processing system with cache coherency
Boubriak et al. SlimFS: a thin and unobtrusive file system for embedded systems and consumer products
CN115840635A (zh) 计算资源管理方法、电子设备和程序产品
US20240095076A1 (en) Accelerating data processing by offloading thread computation
KR101881039B1 (ko) 비휘발성 메모리에 저장된 메모리 매핑 파일의 비동기식 원자적 업데이트 방법 및 제어 장치
Misra Enhancing Transactional Key-Value Storage Systems in Datacenters using Precise Clocks and Software-Defined Storage
KR101900699B1 (ko) 단발성 쓰기 특성을 고려한 모바일 기기의 버퍼캐쉬 관리방법
CN116909485A (zh) 数据回写方法、装置、电子设备及计算机可读存储介质

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
GR01 Patent grant
GR01 Patent grant