CN107018172B - 用于在分布式缓存存储器中自适应分区的系统和方法 - Google Patents

用于在分布式缓存存储器中自适应分区的系统和方法 Download PDF

Info

Publication number
CN107018172B
CN107018172B CN201611001934.2A CN201611001934A CN107018172B CN 107018172 B CN107018172 B CN 107018172B CN 201611001934 A CN201611001934 A CN 201611001934A CN 107018172 B CN107018172 B CN 107018172B
Authority
CN
China
Prior art keywords
cache
computer node
slices
cache slices
routing table
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
CN201611001934.2A
Other languages
English (en)
Other versions
CN107018172A (zh
Inventor
P.A.米斯拉
D.P.诺埃
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.)
SanDisk Technologies LLC
Original Assignee
HGST Netherlands BV
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 HGST Netherlands BV filed Critical HGST Netherlands BV
Publication of CN107018172A publication Critical patent/CN107018172A/zh
Application granted granted Critical
Publication of CN107018172B publication Critical patent/CN107018172B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • 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
    • 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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0813Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
    • 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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • 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/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0846Cache with multiple tag or data arrays being simultaneously accessible
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • 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]
    • 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/133Protocols for remote procedure calls [RPC]
    • 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/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/63Routing a service request depending on the request content or context
    • 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/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/154Networked environment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/50Control mechanisms for virtual memory, cache or TLB
    • G06F2212/502Control mechanisms for virtual memory, cache or TLB using adaptive policy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/604Details relating to cache allocation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

提供了用于对分区成缓存切片的分布式缓存执行自适应分区的方法和系统。基于路由表,将分布式缓存的切片分配到集群的不同的计算机节点。在预定的时间段之后,可以基于访问统计将缓存切片重新分配到集群的其它计算机节点,并且提供新的路由表,其对应于对集群的计算机节点的缓存切片的重新分配。

Description

用于在分布式缓存存储器中自适应分区的系统和方法
技术领域
本公开涉及用于对分布式缓存或储存存储器进行自适应分区的系统和方法。
背景技术
计算机集群包括两个或更多个可以通过网络互连的计算机节点。计算机集群可以实现分布式储存存储器系统,例如,分布式缓存系统。集群的总储存容量通常被划分成具有某一标准大小的若干个切片(slice)。这些切片分布在集群的计算机节点之间。每一个切片可以对一个且仅对一个计算机节点来说是本地的。在一个计算机节点处对驻留在由远程计算机节点拥有的切片中的逻辑块地址(LBA)的任何请求需要经过网络发送以在该远程节点处处理。
这可以增加网络上的流量,其可能由于网络竞争而恶化网络带宽和延迟。因此,期望用于合适地分配这些切片的系统和方法,其可以减少远程数据请求对网络性能的影响。
发明内容
提供了用于对分区成缓存切片的分布式缓存执行自适应分区的方法和系统。基于路由表,将分布式缓存的切片分配到集群的不同的计算机节点。在预定的时间段之后,可以基于访问统计将缓存切片重新分配到集群的其它计算机节点,并且提供新的路由表,其对应于对集群的计算机节点的缓存切片的重新分配。
根据本公开的一些方面,提供了一种用于对集群中的分布式缓存进行自适应分区的方法,所述集群包括通过网络互连的多个计算机节点,所述分布式缓存被分区成缓存切片。所述方法可以包括步骤:基于第一路由表,分配第一多个缓存切片到第一计算机节点;在第一时间段之后,基于对于计算机节点的缓存切片的访问统计,重新分配第二多个缓存切片到第一计算机节点、以及重新分配第一多个缓存切片的第一子集到除了第一计算机节点之外的至少一个计算机节点;以及根据在第一时间段之后对计算机节点的缓存切片的分配,提供第二路由表。
根据本公开的一些方面,提供了一种用于对集群中的分布式缓存进行自适应分区的系统,所述集群包括通过网络互连的多个计算机节点。所述系统可以包括:被分区成缓存切片的分布式缓存和第一计算机节点。所述第一计算机节点可以被配置为:基于第一路由表,分配第一多个缓存切片到第一计算机节点;在第一时间段之后,基于对于计算机节点的缓存切片的访问统计,重新分配第二多个缓存切片到第一计算机节点、以及重新分配第一多个缓存切片的第一子集到除了第一计算机节点之外的至少一个计算机节点;以及根据在第一时间段之后对计算机节点的缓存切片的分配,提供第二路由表。
附图说明
结合以下附图时,参考以下详细的描述可以更全面地理解本公开的各种目标、特征和优点,附图中相似的标号标识出相似的元素。以下附图仅是为了说明的目的,并且不旨在限制本发明,本发明的范围在随后的权利要求中予以阐述。
图1示出了根据本公开各方面的示例性集群系统。
图2示出了根据本公开各方面的示例性集群系统、每个集群节点的数据传输速率、以及示例性切片分配。
图3示出了根据本公开各方面的例性集群系统、每个集群节点的数据传输速率、以及切片重新分配。
图4示出了根据本公开各方面的用于在集群系统中更新路由映射的示例性方法。
具体实施方式
公开用于分布式缓存系统的自适应分区的系统和方法。集群的全部的缓存被分为多个切片,其与集群的计算机节点相关联。所公开的系统和方法检查集群的网络利用率并且能够将切片重新分配到新的计算机节点。代表新的分配的新的路由映射能够路由至集群的每个计算机节点。
图1示出计算机节点的示例性集群100。具体地,集群100含有计算机节点102、104和106。节点102包含服务器108和存储设备110,节点104包含服务器112和存储设备114,并且节点106包含服务器116和存储设备118。通过网络120将节点102、104和106互连。一些现有技术的分布式存储系统典型地通过条带化(striping)跨计算机节点分布切片。例如,通过循环的方式,数据条带化技术在不同的计算机节点的物理存储设备上存储逻辑上顺序的切片。例如,集群100中的切片能够被连续地按此顺序分配至节点102、104和106。例如,使用散列函数(hash function),其他的现有技术的分布式存储系统能够在集群的节点之中随机地分布切片。
这些现有技术的系统的可扩展性差。例如,假设在集群中“N”个节点之中的切片的随机和均匀分布,从被本地存储的特定节点的服务器到所述节点的请求的数据包的概率仅为1/N。如果请求的数据包不是本地存储的,那么用于数据包的请求需要通过网络被发送至远程节点并且数据包需要通过网络被传输至请求它的节点。随节点数量的增长,越来越多的数据包必须通过网络被传输以满足数据包请求。这能够对网络的可用带宽有负面的影响。因为上层应用也可能尝试竞争网络带宽,系统由于网络拥塞而可能性能不佳。
在没有关于访问的现有知识的情况下,如上述所讨论的,切片可以跨集群中的所有节点被初始条带化。每个节点可以具有带有关于集群中的每个切片所有权的信息的路由映射,其可以被用来将请求路由至适当的所有者。每个节点也可以维护对所有切片的访问统计。用于存储该信息的数据结构可以是数组,该数组可以根据切片的数量定义大小并且还可以具有针对时间戳的数组中的字段。可以从数组索引中暗示切片数量,并且每个数组中的索引可以指示对那个切片的访问统计,例如,从那个节点至那个特定切片被读取和/或被写入的数据的量。可以针对整体数据结构存储时间戳以便可以自上一次数据结构中的信息重置后对于时间间隔轻易计算数据速率(MB/秒)。
无论何时特定节点接收到针对逻辑块地址(LBA)的请求,其可以确定LBA属于哪个切片并然后可以咨询路由映射以确定特定切片的所有者节点。如果特定节点为特定片的所有者,那么其在不消耗任何网络资源的情况下可以本地地服务该请求。如果特定切片被另一节点所有,那么该请求被路由至那个所有者。特定节点也可以相应地修改对那个切片的访问统计计数器。
根据本公开的方面,在预定的时间段之后,所公开的系统和方法可以对每个切片确定新的所有者,其可能降低网络利用率。在预定的时间段之后可以确定新的所有者,在该时间段内已收集了足够的关于访问统计的信息,以通知关于新的所有者的决定。如果所公开的方法确定切片可以改变为新的所有者,其可以被动态地重新分配,例如,在没有用户干预或对重新创建缓存的要求的情况下。
因为多于一个节点可以在相同的切片内访问数据,因此在将切片重新分配至新的所有者后,其他节点可以仍要求远程访问该切片。因此,网络仍应适应在远程节点中用于数据访问的请求。根据本公开的方面,切片可以基于局部访问被重新分配至节点,例如,分配至传输最多数据的节点,其可以使对网络的效果最小化。
除网络利用率降低以外,切片的动态分配还可以提高可扩展性,因为其可以允许更多的计算机节点添加至集群中。所公开的系统和方法还可以更好的适应访问模式中的改变,例如,在新的应用、应用失败的情况下,或用于负载平衡。
图2和图3示出切片的示例性动态分配以及产生的网络利用率降低。具体地,图2示出具有两个节点(N1,N2)的集群200。集群的总缓存被分为四个切片202。最初切片202以循环的方式在节点N1与N2之间被分配,如路由映射204中所示。具体地,切片{0,2}被分配至节点N1而切片{1,3}被分配至节点N2。根据路由映射204将服务在切片中任何接收到的针对数据的请求。例如,将本地地服务用于驻留于切片0中的LBA的节点N1上的请求。例如,通过请求来自节点N2的LBA,将通过网络服务用于驻留于切片1中的LBA的节点N1上的请求。如以上所讨论的,例如,通过检查对于集群中节点的访问统计,在预定的时段后,所公开的系统和方法可以为切片确定新的所有者。作为说明性的示例,表206示出对于节点N1的访问统计而表208示出对于节点N2的访问统计。例如,表206示出节点N1以50MB/s的传输速率从切片0中请求数据210,并且以100MB/s的传输速率从切片1中请求数据212。如以上所讨论的,只有远程请求增加网络利用率,其降低总的可用网络带宽,因此,对于节点N1,请求远程切片中的数据,例如,切片1和3有助于网络利用率。因此,对于节点N2,请求远程切片中的数据,例如,切片0和2有助于网络利用率。基于表206和208中的访问统计,基于下列等式可以计算对于节点N1的远程请求速率:
远程请求速率(N1)=传输速率切片1+传输速率切片3
=100(Mb/s)+30(Mb/s)=100(Mb/s)
类似地,基于下列等式可以计算对于节点N2的远程请求速率:
远程请求速率(N2)=传输速率切片0+传输速率切片2
=20(Mb/s)+60(Mb/s)=80(Mb/s)
总网络利用率因此为130MB/s+80MB/s=210MB/s,该总网络利用率高。根据本公开的方面,基于远程传输速率和总网络利用率,切片可以被重新分配以减小总网络利用率。这在图3中示出。例如,图3示出图2的集群,其中两个切片已被重新分配。具体地,之前被分配至节点N2的切片1,已被重新分配至节点N1 302,而之前被分配至节点N1的切片2,已被重新分配至节点N2 304。在所有重新分配之后,新的路由映射306流转至所有节点,以便每个节点能够意识到新的切片分配。
在重新分配后,基于下列等式可以计算对于节点N1的远程请求速率:
远程请求速率(N1)=传输速率切片2+传输速率切片3
=20(Mb/s)+30(Mb/s)=40(Mb/s)
类似地,基于下列等式可以计算对于节点N2的远程请求速率:
远程请求速率(N2)=传输速率切片0+传输速率切片1
=20(Mb/s)+40(Mb/s)=60(Mb/s)
总网络利用率因此为50MB/s+60MB/s=110MB/s,该总网络利用率非常低,例如,与初始值相比低了52.3%。对于在给定的时间窗口内已访问的每个切片,集群中的每个节点可以维持访问大小的累计值,例如,以字节。然后通过将访问大小通过窗口尺寸划分,可以计算对于每个切片的传输速率。在重新映射时,对于每个切片,重新映射算法可以校验每个节点的传输速率并且可以将它分配至具有最高传输速率的节点。在切片的当前所有者对于特定切片具有最大传输速率的情况下,切片不需要被重新映射。如果多个节点具有最高传输速率,则可以使用例如访问大小、切片所有权切换的周期性、缓存污染以及其他启发法来打破束缚。通过由远程节点对于每个切片的传输速率的相加能够计算原始的和新的网络利用率。在一轮重新映射后,可以重置该统计。
可以由管理员确定重新映射的频率。例如,它可以在白天期间的特定时间运行,例如,当请求流量低时。重新映射也可以是自动的,例如,后台处理可以周期地轮询来自每个节点的传输速率并确定是否存在从稳定状态的改变,例如,由于应用访问模式的改变。
根据本发明可选的方面,其他的启发法可以用来确定改善的切片布置,诸如在节点上的缓存空间利用率,在所有权改变后需要被迁移的无用数据的量和赶出。每个节点能够追踪能被刷新的无用数据的量。能够避免切片的重新映射,这意味着刷新高于阈值的无用数据。在重新映射期间通过不同节点刷新大量的数据能够创建随机写入磁盘,以及因此能够影响执行重新映射的时间,并且还对需要从缓存遗漏上的磁盘中取出数据的应用I/O有影响。缓存利用率也能被考虑因为节点能够是对于切片的最佳所有者,例如,基于传输速率,但这不意味存储在它的最佳所有者上的切片会提高性能。对于每个节点,基于传输速率能够将优先级分配至这些切片。在重新映射期间能够使用这些优先级与缓存利用率一起来确定特定的切片是否应被重新映射至给定的节点。如果缓存利用率低,那么能够发生重新映射,否则映射低优先级的切片能够引起来自其他高优先级的切片的数据被赶出,这将对性能产生负面影响。
在创建了新的路由映射后,宜在每个集群中动态更新路由映射,例如,没有任何停机时间、没有删除或重新创建集群,或没有停止长持续时间的数据请求的处理。
根据本公开的方面,新的路由映射可以通过集群中的所有节点被自动地更新。例如,节点的其中之一可以被分配为可以负责协调更新的管理节点。管理节点可以向集群的全部其它节点提供新的路由映射以及可以请求他们开始更新过程。根据本公开的方面,更新过程可以包含三个步骤。在第一步骤期间,所有节点可以单独的比较新的路由映射与当前路由映射并且可以确定哪个切片被从新分配至他们,例如,增加的切片,以及哪个切片不再被分配至他们,例如,丢失的切片。
当前切片所有者可以从后端将数据取回到切片缺失上。在重新映射期间,如果旧的所有者没有刷新全部的无用数据并且将全部后续的写入当作连续写入,那么新的所有者可结束从后端取回陈旧数据(在远程敲击时期结束之后)。对于全部丢失的切片所有权,节点可以刷新任何他们在切片内的用于这些切片的无用数据并且可以同时使这些切片连续写入。因此,在被刷新之后,任何新写入的将不会使切片再一次变无用。这可以保证后端的一致性(切片设备)从而如果发生任何错误,可以不依赖于切片的旧的所有者。
对于全部增加切片的所有权,节点可以删除当前切片内的任何之前存在的数据。执行这个行为是因为,如上所解释的,丢失切片所有权的过程在不删除属于具有丢失所有权的节点的切片的情况下刷新无用数据。当属于那个被丢失的所有权的切片的数据没有创建任何问题时,当新的数据被储存时,这个行为将最终从切片驱逐出来。例如,如果切片被重新映射到新的所有者,旧的所有者可以刷新任何与所有权改变之前的切片相关的无用数据。在所有权改变之后的远程敲击时期期间,新的所有者可以向就得所有者质询关于切片缺失的数据,因为从旧的所有者当中获得数据比从后端中获得数据更快速。这通常是正确的因为网络和固态驱动器存储比硬盘驱动器存取更快速。在所有权改变之后缓存请求可以同时避免缓存污染因为不是被缓存到旧的所有者的切片的区块全部会被新的所有者需要。远程敲击时期可以为有限时间段以及可以被用于警告新的所有者的缓存。对于区块上的读取请求,新的所有者可以为区块质询旧的所有者并且可以缓存它。如果旧的所有者不具有区块,新的所有者可以从后端中将其取回。以后时间的写入请求可以修改区块,其可使得旧的所有者上的区块拷贝变为陈旧。如果在重新映射的新一轮期间切片被重新映射至其旧的所有者,如果旧的所有者在其缓存内依然具有区块,那么对于读取请求其将返回陈旧的数据。这是预先清除任何可能具有正在增加所有权的切片的节点的现存数据的原因。
完成这个步骤之后,每个节点可以通知管理节点关于步骤完成的状态,例如,是否节点已经成功地刷新无用数据并且已经删除了之前存在的数据或者是否这个步骤中有错误。根据本公开的方面,如果全部节点指示他们已经成功地完成了步骤,管理节点可以命令全部节点移动到更新过程的第二步。如果至少一个节点指示在第一步骤期间有错误,管理节点可以命令全部节点中止更新过程。
在第二步骤管理节点可以命令全部节点来单独的暂停服务他们的请求,例如,接收的请求可以保留在队列中,并且应用于新的路由映射。在完成这个步骤之后,每个节点可以通知管理节点关于步骤完成的状态,例如,是否他们已经成功地应用新的映射或者是否步骤中有错误。如果全部的节点指示步骤成功,管理节点可以命令全部节点移动至更新过程的第三步。如果至少一个节点指示在第一步骤期间有错误,管理节点可以命令全部节点中止更新过程。当节点接收到中止指令,节点可以丢弃新的路由映射并且可以根据之前的路由映射恢复他们的请求过程。根据本发明的可替代的方面,管理节点可以在一些时间之后重新连接协议。在更新过程的第三步骤,全部节点可以恢复服务他们的请求。
图4示出根据本发明的方面用于更新路由映射的示例性方法400。具体的,管理节点可以发送新的路由映射到全部节点并且可以请求他们开始更新过程402。一旦节点接收到新的路由映射,节点可以比较新的路由映射与当先路由映射404。节点可以然后确定他们已经增加和/或丢失的406切片。对于全部丢失的片所有权,节点为这些片刷新缓存内的无用数据并且使这些片连续写入408。对于全部增加的片所有权,节点删除可在缓存410内呈现的任何之前存在的数据。如果错误发生在节点412的任何一个处,那么管理节点可以中止过程414。如果没有错误发生,节点可以停止服务他们的请求416并且应用新的路由映射418。如果错误发生在节点420的任何一个处,那么管理节点可以中止过程414。如果没有错误发生,那么节点可以恢复服务请求。
在通过全部节点更新录用映射之后,片的新的所有权有效。然而新的所有者不包含任何在所有权更新刚刚结束轮之后的他们增加的片的数据。这不产生任何数据一致性的质疑因为在所有权改变之前,属于这些所有权已经改变的片的全部无用数据被刷新并且因此,新的所有者可以经常从后端取回数据以服务任何请求。这可以增加延时,然而,因为缓存需要被复温,其可以在所有权改变的每一轮之后导致锯齿形类型表现特征,
所公开的系统以及方法可以调节这个问题。根据本公开的方面,在所有权更改之前,数据可以被传送到新的所有者而不是被刷新到后端。根据公开的可替代方面,在所有权更改之后,数据可以被传送到从旧的所有者节点到新的所有者节点的后台之内。
这些解决方法可以潜在地导致缓存污染因为并不是已经被用于特定片缓存的数据全部可被频繁地存取。例如,只有片的子集可以被频繁地存取并且剩余的被稀少地存取从而导致其不够热而不被缓存。对于这些情境,从旧的所有者节点到新的所有者节点传送用于特定片的全部缓存数据可以导致从新的所有者中驱逐出一些更频繁地存取的数据。
根据公开的方面,请求上的缓存数据可以改善锯齿形表现并且同时避免缓存污染。请求上的缓存数据是有时限的过程,被称作远程敲击时期。通过查阅新的和旧的路由映射,公开的方法可以确定当前和旧的所有者的片。对于任何请求,如果新的所有者没有数据,公开的方法可以查询旧的所有者并且可以检查如果其缓存内依然有数据。这假设在更新路由映射过程区间,用于丢失片的数据没有被删除。数据可以被刷新所以缓存内是清洁的并且根据缓存垃圾收集策略可以最终被驱逐。
根据公开的方面,如果旧的所有者依然有数据,请求可以被服务。数据同时被缓存并且定位在新的所有者之中。因此,数据可以按需从旧的所有者迁移到新的所有者,其避免了缓存污染。此外,从旧的所有者取回数据可以比从后端取回数据更快,并且因此,锯齿形表现可以被改善。数据需要被定位在新的所有者上因为其可被修改导致旧的所有者具有陈旧数据。这可在远程敲击时期期间防止属于新增加片的新的所有者上的数据的驱逐。如果旧的所有者在其缓存内没有数据,那么数据可以从后端被取回并且可以被缓存和定位在新的所有者之中。
远程敲击时期结束之后,旧的所有者不再为任何缓存丢失查询并且数据可以被释放到新的所有者上。使用不同探索方法远程敲击时期的时间长度可以被确定,例如,基于历史时刻用于缓和缓存。
本领域技术人员将会意识到在此描述说明书以及附图中的不同表示方法可以被实施作为电子硬件、计算机软件或者两者的组合。为了说明硬件和软件的这种可交换性,不同的说明性框图、模块、元件、组件、方法以及算法已经按照他们的功能性被总体的描述。是否这种功能性被实施作为硬件、软件或者组合依赖于施加到全部系统的特定的应用和设计限制。对于每个特定的应用技术人员可以以不同方式实施描述的功能性。不同的组件以及框图在不背离学科技术的范围内可以被全部不同的安排(例如,安排在不同的次序,或者分区在不同的方式)。
此外,通信协议的实施可以在一个计算机系统内以集中的方式被了解,或者在通过几个互相连接的计算机系统传播的不同元件内以分布式的方式被了解。任何种类的计算机系统,或者其它适用于完成描述在此方法的装置,适合于执行描述在此的功能。
硬件和软件的典型组合可以是具有计算机程序的通用计算机系统,当被载入以及实行时,所述计算机程序控制计算机系统完成描述在此的方法。用于通信协议的方法可以同时被嵌入到计算机程序产品,其包含全部使能描述在此方法的实施的特征,以及当载入至计算机系统中时,所述计算机程序产品可以完成这些方法。
在本背景的计算机程序或者应用表示指令的集合的任何表达方式、任何语言、代码或者标记用于导致系统具有信息处理能力直接或者之后以执行以下一个或者全部的特定功能a)转变为另一种语言、代码或者标记符号;b)在不同材料形式中复制。显著的,这个通信协议可以在其它没有背离在此的精神或者基础的特定方式中被体现,因此,引用应该被具有以下权利要求,而不是之前的说明书,作为指示本发明的保护范围。
通信协议已经与具体的引用说明性实施例被详细的描述。可以在不超过本领域保护范围的精神内对之前描述的说明书进行不同的修改以及更改是显而易见的,并且这种修改以及更改被认为是本发明的等同或一部分。

Claims (22)

1.一种用于对集群中的分布式缓存进行自适应分区的方法,所述集群包括通过网络互连的多个计算机节点,所述分布式缓存被分区成缓存切片,所述方法包括:
基于第一路由表,分配第一多个缓存切片到第一计算机节点;
在第一时间段之后,基于对于计算机节点的缓存切片的访问统计,重新分配第二多个缓存切片到第一计算机节点、以及重新分配第一多个缓存切片的第一子集到除了第一计算机节点之外的至少一个计算机节点;以及
根据在第一时间段之后对所述计算机节点的缓存切片的重新分配,提供第二路由表;
其中所述第二多个缓存切片和所述第一多个缓存切片的第一子集的重新分配导致降低的网络利用率。
2.如权利要求1所述的方法,其中所述访问统计包括缓存切片的传输速率,所述传输速率基于对于每一个缓存切片和时间段的访问大小。
3.如权利要求1所述的方法,还包括比较第一路由表和第二路由表,以确定第二多个缓存切片和第一多个缓存切片的第一子集。
4.如权利要求3所述的方法,还包括:
(a)从第一多个缓存切片的第一子集刷新无用数据;
(b)使第一多个缓存切片的第一子集连续写入缓存切片;以及
(c)从第二多个缓存切片中删除预先存在的数据。
5.如权利要求4所述的方法,还包括确定在(a)、(b)、和(c)中至少一个期间是否已发生第一错误。
6.如权利要求5所述的方法,还包括:如果已发生第一错误,则基于第一路由表,重新分配第一多个缓存切片到第一计算机节点。
7.如权利要求5所述的方法,还包括:如果未发生第一错误,则在第一计算机节点处停止服务数据请求。
8.如权利要求7所述的方法,还包括:基于第二路由表,在第一计算机节点处确定数据请求的目的地。
9.如权利要求8所述的方法,还包括:确定在基于第二路由表确定数据请求的目的地期间是否已发生第二错误。
10.如权利要求9所述的方法,还包括:如果已发生第二错误,则基于第一路由表,重新分配第一多个缓存切片到第一计算机节点。
11.如权利要求10所述的方法,还包括:如果未发生第一错误,则在第一计算机节点处恢复服务数据请求。
12.一种用于对集群中的分布式缓存进行自适应分区的系统,所述集群包括通过网络互连的多个计算机节点,所述系统包括:
所述分布式缓存,其被分区成缓存切片;
第一计算机节点,被配置为:
基于第一路由表,分配第一多个缓存切片到第一计算机节点;
在第一时间段之后,基于对于计算机节点的缓存切片的访问统计,重新分配第二多个缓存切片到第一计算机节点、以及重新分配第一多个缓存切片的第一子集到除了第一计算机节点之外的至少一个计算机节点;以及
根据在第一时间段之后对所述计算机节点的缓存切片的重新分配,提供第二路由表;
其中所述第二多个缓存切片和所述第一多个缓存切片的第一子集的重新分配导致降低的网络利用率。
13.如权利要求12所述的系统,其中所述访问统计包括缓存切片的传输速率,所述传输速率基于对于每一个缓存切片和时间段的访问大小。
14.如权利要求12所述的系统,其中所述第一计算机节点还被配置为:比较第一路由表和第二路由表,以确定第二多个缓存切片和第一多个缓存切片的第一子集。
15.如权利要求14所述的系统,其中所述第一计算机节点还被配置为:
(a)从第一多个缓存切片的第一子集刷新无用数据;
(b)使第一多个缓存切片的第一子集连续写入缓存切片;以及
(c)从第二多个缓存切片中删除预先存在的数据。
16.如权利要求15所述的系统,其中所述第一计算机节点还被配置为:确定在(a)、(b)、和(c)中至少一个期间是否已发生第一错误。
17.如权利要求16所述的系统,其中所述第一计算机节点还被配置为:如果已发生第一错误,则基于第一路由表,重新分配第一多个缓存切片到第一计算机节点。
18.如权利要求16所述的系统,其中所述第一计算机节点还被配置为:如果未发生第一错误,则停止服务数据请求。
19.如权利要求18所述的系统,其中所述第一计算机节点还被配置为:基于第二路由表,确定数据请求的目的地。
20.如权利要求19所述的系统,其中所述第一计算机节点还被配置为:确定在基于第二路由表确定数据请求的目的地期间是否已发生第二错误。
21.如权利要求20所述的系统,其中所述第一计算机节点还被配置为:如果已发生第二错误,则基于第一路由表,重新分配第一多个缓存切片到第一计算机节点。
22.如权利要求21所述的系统,其中所述第一计算机节点还被配置为:如果未发生第一错误,则恢复服务数据请求。
CN201611001934.2A 2015-11-13 2016-11-14 用于在分布式缓存存储器中自适应分区的系统和方法 Active CN107018172B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/941,125 2015-11-13
US14/941,125 US9832277B2 (en) 2015-11-13 2015-11-13 Systems and methods for adaptive partitioning in distributed cache memories

Publications (2)

Publication Number Publication Date
CN107018172A CN107018172A (zh) 2017-08-04
CN107018172B true CN107018172B (zh) 2020-04-21

Family

ID=58640181

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611001934.2A Active CN107018172B (zh) 2015-11-13 2016-11-14 用于在分布式缓存存储器中自适应分区的系统和方法

Country Status (5)

Country Link
US (1) US9832277B2 (zh)
JP (1) JP6263596B2 (zh)
KR (1) KR101960138B1 (zh)
CN (1) CN107018172B (zh)
DE (1) DE102016013577B4 (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160212198A1 (en) * 2015-01-16 2016-07-21 Netapp, Inc. System of host caches managed in a unified manner
US10467195B2 (en) 2016-09-06 2019-11-05 Samsung Electronics Co., Ltd. Adaptive caching replacement manager with dynamic updating granulates and partitions for shared flash-based storage system
US10455045B2 (en) 2016-09-06 2019-10-22 Samsung Electronics Co., Ltd. Automatic data replica manager in distributed caching and data processing systems
CN109842636A (zh) * 2017-11-24 2019-06-04 阿里巴巴集团控股有限公司 云服务迁移方法、装置以及电子设备
CN112748867B (zh) * 2019-10-31 2024-04-19 伊姆西Ip控股有限责任公司 用于存储管理的方法、电子设备以及计算机程序产品
US11294808B2 (en) 2020-05-21 2022-04-05 Micron Technology, Inc. Adaptive cache
US11409657B2 (en) 2020-07-14 2022-08-09 Micron Technology, Inc. Adaptive address tracking
US11422934B2 (en) 2020-07-14 2022-08-23 Micron Technology, Inc. Adaptive address tracking
US11507516B2 (en) 2020-08-19 2022-11-22 Micron Technology, Inc. Adaptive cache partitioning
US11372761B1 (en) 2020-12-11 2022-06-28 International Business Machines Corporation Dynamically adjusting partitioned SCM cache memory to maximize performance
US11379369B1 (en) * 2021-01-15 2022-07-05 Coupang Corp. Systems and methods for dynamic in-memory caching of mappings into partitions

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101980192A (zh) * 2010-10-15 2011-02-23 中兴通讯股份有限公司 一种基于对象的集群文件系统管理方法及集群文件系统
CN101989999A (zh) * 2010-11-12 2011-03-23 华中科技大学 一种分布式环境中的分级存储系统
CN102414673A (zh) * 2009-04-24 2012-04-11 微软公司 智能的备份数据分层
CN103400598A (zh) * 2007-08-14 2013-11-20 三星电子株式会社 固态存储器、包含其的计算机系统和操作其的方法
CN103616944A (zh) * 2013-10-18 2014-03-05 杭州电子科技大学 云存储系统中基于预判性绿色数据分类策略的降耗方法
WO2015157776A1 (en) * 2014-04-11 2015-10-15 Graham Bromley Network-attached storage enhancement appliance

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6321238B1 (en) 1998-12-28 2001-11-20 Oracle Corporation Hybrid shared nothing/shared disk database system
US6754220B1 (en) 1999-05-31 2004-06-22 International Business Machines Corporation System and method for dynamically assigning routers to hosts through a mediator
US7069324B1 (en) * 2000-06-30 2006-06-27 Cisco Technology, Inc. Methods and apparatus slow-starting a web cache system
US6792509B2 (en) 2001-04-19 2004-09-14 International Business Machines Corporation Partitioned cache of multiple logical levels with adaptive reconfiguration based on multiple criteria
US6961821B2 (en) * 2002-10-16 2005-11-01 International Business Machines Corporation Reconfigurable cache controller for nonuniform memory access computer systems
JP2004139366A (ja) * 2002-10-18 2004-05-13 Hitachi Ltd キャッシュ配置方法
US7461146B2 (en) 2003-01-20 2008-12-02 Equallogic, Inc. Adaptive storage block data distribution
US7827353B2 (en) * 2003-07-15 2010-11-02 International Business Machines Corporation Self healing memory
US7277897B2 (en) 2003-08-01 2007-10-02 Oracle International Corporation Dynamic reassignment of data ownership
US7120651B2 (en) * 2003-08-01 2006-10-10 Oracle International Corporation Maintaining a shared cache that has partitions allocated among multiple nodes and a data-to-partition mapping
US8145870B2 (en) * 2004-12-07 2012-03-27 International Business Machines Corporation System, method and computer program product for application-level cache-mapping awareness and reallocation
US7437510B2 (en) * 2005-09-30 2008-10-14 Intel Corporation Instruction-assisted cache management for efficient use of cache and memory
US8433851B2 (en) * 2007-08-16 2013-04-30 International Business Machines Corporation Reducing wiring congestion in a cache subsystem utilizing sectored caches with discontiguous addressing
US8645965B2 (en) * 2007-12-31 2014-02-04 Intel Corporation Supporting metered clients with manycore through time-limited partitioning
US8069322B2 (en) * 2008-08-15 2011-11-29 International Business Machines Corporation Active-active remote configuration of a storage system
JP5257843B2 (ja) 2008-12-12 2013-08-07 日本電気株式会社 分散キャッシュシステム、方法、プログラム、及び計算ノード
US8477597B2 (en) 2009-05-27 2013-07-02 Yin Zhang Method and system for resilient routing reconfiguration
JP5381336B2 (ja) 2009-05-28 2014-01-08 富士通株式会社 管理プログラム、管理装置および管理方法
US8429346B1 (en) 2009-12-28 2013-04-23 Emc Corporation Automated data relocation among storage tiers based on storage load
US8954790B2 (en) * 2010-07-05 2015-02-10 Intel Corporation Fault tolerance of multi-processor system with distributed cache
JP5661355B2 (ja) 2010-07-09 2015-01-28 株式会社野村総合研究所 分散キャッシュシステム
US9336060B2 (en) * 2011-06-17 2016-05-10 Microsoft Technology Licensing, Llc Middleware services framework for on-premises and cloud deployment
US11178244B2 (en) * 2011-08-09 2021-11-16 Comcast Cable Communications, Llc Content delivery network routing using border gateway protocol
US8984162B1 (en) * 2011-11-02 2015-03-17 Amazon Technologies, Inc. Optimizing performance for routing operations
JP5920105B2 (ja) * 2012-08-16 2016-05-18 富士通株式会社 演算処理装置および演算処理装置の制御方法
US9906436B2 (en) * 2013-08-05 2018-02-27 Futurewei Technologies, Inc. Scalable name-based centralized content routing
US9690706B2 (en) * 2015-03-25 2017-06-27 Intel Corporation Changing cache ownership in clustered multiprocessor
US9734070B2 (en) * 2015-10-23 2017-08-15 Qualcomm Incorporated System and method for a shared cache with adaptive partitioning
US9824030B2 (en) * 2015-10-30 2017-11-21 International Business Machines Corporation Adjusting active cache size based on cache usage

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103400598A (zh) * 2007-08-14 2013-11-20 三星电子株式会社 固态存储器、包含其的计算机系统和操作其的方法
CN102414673A (zh) * 2009-04-24 2012-04-11 微软公司 智能的备份数据分层
CN101980192A (zh) * 2010-10-15 2011-02-23 中兴通讯股份有限公司 一种基于对象的集群文件系统管理方法及集群文件系统
CN101989999A (zh) * 2010-11-12 2011-03-23 华中科技大学 一种分布式环境中的分级存储系统
CN103616944A (zh) * 2013-10-18 2014-03-05 杭州电子科技大学 云存储系统中基于预判性绿色数据分类策略的降耗方法
WO2015157776A1 (en) * 2014-04-11 2015-10-15 Graham Bromley Network-attached storage enhancement appliance

Also Published As

Publication number Publication date
US20170142217A1 (en) 2017-05-18
DE102016013577B4 (de) 2020-10-29
KR101960138B1 (ko) 2019-03-19
US9832277B2 (en) 2017-11-28
KR20170058293A (ko) 2017-05-26
CN107018172A (zh) 2017-08-04
JP6263596B2 (ja) 2018-01-17
DE102016013577A1 (de) 2017-05-18
JP2017134817A (ja) 2017-08-03

Similar Documents

Publication Publication Date Title
CN107018172B (zh) 用于在分布式缓存存储器中自适应分区的系统和方法
CN103902474B (zh) 一种支持固态盘缓存动态分配的混合存储系统和方法
US10649890B2 (en) Information processing system, storage control apparatus, storage control method, and storage control program
TWI684099B (zh) 剖析快取替代
US8397016B2 (en) Efficient use of hybrid media in cache architectures
US8566550B2 (en) Application and tier configuration management in dynamic page reallocation storage system
US9619149B1 (en) Weighted-value consistent hashing for balancing device wear
US9529724B2 (en) Layered architecture for hybrid controller
JP4435831B2 (ja) ストレージエリアネットワークレベルにおける代替キャッシュ方式の提供
US11169927B2 (en) Efficient cache management
US11075984B1 (en) Workload management at streaming data service supporting persistent connections for reads
KR100338224B1 (ko) 참조의 국한성에 대한 고효율의 동적 추적 방법 및 장치
US9996404B2 (en) Message cache management for message queues
US10671309B1 (en) Predicting usage for automated storage tiering
US10055349B2 (en) Cache coherence protocol
US9298616B2 (en) Systems and methods for tracking working-set estimates with a limited resource budget
CN110268391A (zh) 用于缓存数据的系统和方法
JP5531091B2 (ja) 計算機システム及びその負荷均等化制御方法
US10102147B1 (en) Phased based distributed LRU for shared cache systems
JP2011503725A (ja) 分散型共有メモリを備えるネットワーク
US10359945B2 (en) System and method for managing a non-volatile storage resource as a shared resource in a distributed system
Xu et al. Rethink the storage of virtual machine images in clouds
Chen et al. ECR: Eviction‐cost‐aware cache management policy for page‐level flash‐based SSDs
US9699263B1 (en) Automatic read and write acceleration of data accessed by virtual machines
US11070600B1 (en) Optimization techniques to support lagging readers at streaming data service

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
TR01 Transfer of patent right

Effective date of registration: 20210326

Address after: California, USA

Patentee after: Western Digital Technologies, Inc.

Address before: Amsterdam, The Netherlands

Patentee before: HGST Netherlands B.V.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20240930

Address after: Delaware, USA

Patentee after: SANDISK TECHNOLOGIES Inc.

Country or region after: U.S.A.

Address before: California, USA

Patentee before: Western Digital Technologies, Inc.

Country or region before: U.S.A.