CN116888579A - 分布式高速缓存管理 - Google Patents
分布式高速缓存管理 Download PDFInfo
- Publication number
- CN116888579A CN116888579A CN202280016536.5A CN202280016536A CN116888579A CN 116888579 A CN116888579 A CN 116888579A CN 202280016536 A CN202280016536 A CN 202280016536A CN 116888579 A CN116888579 A CN 116888579A
- Authority
- CN
- China
- Prior art keywords
- cache
- metrics
- application
- programmable switch
- different
- 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
Links
- 230000015654 memory Effects 0.000 claims description 97
- 238000000034 method Methods 0.000 claims description 39
- 230000002776 aggregation Effects 0.000 claims description 19
- 238000004220 aggregation Methods 0.000 claims description 19
- 230000008569 process Effects 0.000 description 18
- 238000012545 processing Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 239000007787 solid Substances 0.000 description 6
- 230000009471 action Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 238000007689 inspection Methods 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0813—Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/084—Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0842—Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/02—Capturing of monitoring data
- H04L43/028—Capturing of monitoring data by filtering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/30—Flow control; Congestion control in combination with information about buffer occupancy at either end or at transit nodes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/15—Use in a specific computing environment
- G06F2212/154—Networked environment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/50—Control mechanisms for virtual memory, cache or TLB
- G06F2212/502—Control mechanisms for virtual memory, cache or TLB using adaptive policy
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0805—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
- H04L43/0817—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning
Abstract
可编程交换机包括与节点通信的端口,该节点包括提供可以由其它节点访问的高速缓存的至少一个节点。该可编程交换机检查所接收到的分组以识别与该高速缓存相关的信息。基于所识别的信息确定用于该高速缓存的一个或多个高速缓存度量,并且基于该一个或多个高速缓存度量将该高速缓存的至少一部分分配给由该节点中的至少一个节点执行的至少一个应用。根据一个方面,分布式高速缓存由存储在节点处的高速缓存形成。该网络控制器存储分布式高速缓存度量并且从可编程交换机接收高速缓存度量用于该高速缓存以更新该分布式高速缓存度量。基于该更新后的分布式高速缓存度量将该分布式高速缓存的部分分配给不同应用。
Description
相关申请的交叉引用
本申请要求于2021年5月26日提交的名称为“DISTRIBUTED CACHE MANAGEMENT”的美国申请号17/331,453(代理人案卷号:WDA-5519-US)的优先权,其通过引用整体并入本文。本申请涉及于2019年8月22日提交的名称为“DISTRIBUTED CACHE WITH IN-NETWORKPREFETCH”的美国申请第16/548,116号(代理人案卷号:WDA-4307-US)),并于2020年11月5日公开为美国专利申请公开第2020/0349080号,其通过引用整体并入本文。本申请还涉及于2019年11月26日提交的名称为“FAULT TOLERANT DATA COHERENCE IN LARGE-SCALEDISTRIBUTED CACHE SYSTEMS”的美国申请第16/697,019号(代理人案卷号:WDA-4500-US),并于2020年11月5日公开为美国专利申请公开第2020/0351370号,其通过引用整体并入本文。本申请还涉及于2020年6月26日提交的名称为“DEVICES AND METHODS FOR MANAGINGNETWORK TRAFFIC FOR A DISTRIBUTED CACHE”的美国申请第16/914,206号(代理人案卷号:WDA-4952-US),其通过引用整体并入本文。本申请还涉及于2020年6月30日提交的名称为“DEVICES AND METHODS FOR FAILURE DETECTION AND RECOVERY FOR ADISTRIBUTEDCACHE”的美国申请第16/916,730号(代理人案卷号:WDA-4977-US),其通过引用整体并入本文。本申请还涉及于2021年2月12日提交的名称为“DEVICES AND METHODS FOR NETWORKMESSAGE SEQUENCING”的美国申请号17/174,681(代理人案卷号:WDA-5072-US),其通过引用整体并入本文。本申请还涉及于2021年2月12日提交的名称为“MANAGEMENT OF NON-VOLATILE MEMORY EXPRESS NODES”的美国申请第17/175,449号(代理人案卷号:WDA-5254-US),其通过引用整体并入本文。本申请还涉及于2021年6月21日提交的名称为“IN-NETWORKFAILURE INDICATION AND RECOVERY”的美国申请号17/353,781(代理人案卷号:WDA-5557-US),其通过引用整体并入本文。
背景技术
云计算、大数据和输入/输出(I/O)密集型应用的当前趋势使得在低延迟、高吞吐量和带宽方面对数据中心中的高性能分布式共享存储器系统的需求增加。例如,人工智能、图形处理、生物信息学和存储器内数据库应用通常使用大数据集,并且当数据不能在共享存储器中快速访问并且必须从存储装置加载到共享存储器中时,可能在性能上受到损害。可以高速缓存数据以减少访问数据的延迟时间,但是管理由遍及网络的节点所共享的分布式高速缓存提出了若干挑战。
当前的分布式存储器系统通常不支持不同节点之间的分布式高速缓存的全局协调,整体系统性能会受到负面影响。例如,共享同一高速缓存存储器的具有不同存储器请求速率的不同应用会受到负面影响,例如在访问存储器以进行大顺序读取的应用阻止不同的应用对高速缓存存储器的访问的情况下。现有高速缓存管理技术可能过度供应高速缓存或运行前需要用户调整以用于使用高速缓存的特定应用。除了需要更多存储器用于过度供应或更多时间用于用户初始化之外,这些现有高速缓存管理技术在运行时间期间未能适应改变的工作负载,因为在初始化阶段分派给不同应用的高速缓存大小是固定的并且无法在运行时间期间根据其工作负载来调整。
附图说明
通过下文所述的具体实施方式并且结合附图,本公开的实施方案的特征和优势将变得更加显而易见。提供附图和相关联描述是为了说明本公开的实施方案,而不是限制所要求保护的范围。
图1示出了根据一个或多个实施方案的包括节点、可编程交换机和网络控制器的示例性网络。
图2是根据一个或多个实施方案的图1的网络中包括的示例性部件的框图。
图3示出了根据一个或多个实施方案的示例性高速缓存度量。
图4是根据一个或多个实施方案的由可编程交换机执行的高速缓存分配过程的流程图。
图5是根据一个或多个实施方案的高速缓存再分配过程的流程图。
图6是根据一个或多个实施方案的由网络控制器执行的高速缓存分配过程的流程图。
具体实施方式
在以下具体实施方式中阐述了许多具体细节,以便提供对本公开的彻底理解。然而,对于本领域普通技术人员显而易见的是,可在不具有这些具体细节中的一些细节的情况下实践所公开的各种实施方案。在其他情况下,并未详细示出众所周知的结构和技术以避免不必要地模糊各种实施方案。
系统示例
图1示出了根据一个或多个实施方案的用于实现分布式高速缓存的示例性网络100。如图1所示,服务器机架101A、101B、101C和101D分别使用架顶(ToR)交换机102A、102B、102C和102D与网络100中的其他设备通信。每个服务器机架101包括一个或多个节点,例如图2中的节点108,该一个或多个节点可以使用例如读取和写入命令等消息访问其他节点中的存储器或存储位置。服务器机架101中的节点可以包括例如服务器或处理节点,例如精简指令集计算机(RISC)-V核心,以及存储器设备,例如固态驱动器(SSD)或硬盘驱动器(HDD)。在一些实现方式中,图1中的网络100可以用作数据中心的至少一部分和/或用于分布式处理,例如用于分布式机器学习或大数据分析。
网络100可以包括例如存储区域网络(SAN)、局域网(LAN)和/或广域网(WAN),诸如互联网。在这方面,服务器机架101、ToR交换机102、聚合交换机104、和/或网络控制器120中的一者或多者可能不会物理上位于同一位置。服务器机架101、ToR交换机102、聚合交换机104、和/或网络控制器120可以使用例如以太网等一个或多个标准进行通信。
如图1的实例所示,服务器机架101A、101B、101C和101D中的每一个都连接到ToR或边缘交换机102。在其它实现方式中,每个机架101可以与多个ToR或边缘交换机102进行通信来实现冗余。ToR交换机102可以包括可编程交换机,例如64端口ToR P4可编程交换机,该可编程交换机将消息路由到位于服务器机架101中的节点或从中路由消息。此类可编程交换机可以包括例如具有被配置为提供40千兆以太网(GE)帧速率的端口的BarefootNetworks Tofino专用集成电路(ASIC)。可以用作ToR交换机102的其他类型的可编程交换机可以包括例如Cavium Xpliant可编程交换机或Broadcom Trident 3可编程交换机。如下文更详细所讨论,每个ToR交换机102可以为存储在其相应服务器机架101的终端节点设备中的数据提供集中式高速缓存分配,如用于分布式缓存。
聚合交换机104A在ToR交换机102A和102B之间以及在ToR交换机102A和102B与网络控制器120之间路由消息。类似地,聚合交换机104B在ToR交换机102C和102D之间以及在ToR交换机102C和102D与网络控制器120之间路由消息。在这方面,具有ToR交换机102A和102B和聚合交换机104A的服务器机架101A和101B可以被视为网络100上的第一设备群集。具有ToR交换机102C和102D和聚合交换机104B的服务器机架101C和101D可以被视为网络100上的第二设备群集。
聚合交换机104A和104B可以包括可编程交换机(如64端口ToR P4可编程交换机),该可编程交换机向ToR交换机102和网络控制器120路由消息或从该ToR交换机和网络控制器路由消息。此类可编程交换机可以包括例如具有被配置为提供40千兆以太网(GE)帧速率的端口的Barefoot Networks Tofino专用集成电路(ASIC)。可以用作聚合交换机104的其他类型的可编程交换机可以包括例如Cavium Xpliant可编程交换机或Broadcom Trident3可编程交换机。
网络控制器120可以包括软件定义网络(SDN)控制器。如下文更详细所讨论,网络控制器120可以存储分布式高速缓存度量20,该分布式高速缓存度量用于存储在网络100中的不同节点处的分布式高速缓存。分布式高速缓存度量20可以基于从诸如ToR交换机102之类的可编程交换机所接收到的高速缓存度量来更新,并且由分布式高速缓存管理模块18用来将该分布式高速缓存的各部分分配给访问该分布式高速缓存的不同应用。
在这方面,ToR交换机102被配置为检查由该ToR交换机接收的分组以识别与该分布式高速缓存的部分有关的信息,该分布式高速缓存由节点的相应服务器机架101中该节点的至少一个节点提供。该ToR交换机可以使用高速缓存度量模块12来确定用于该分布式高速缓存的部分的高速缓存度量14,并且使用高速缓存管理模块10基于所确定的高速缓存度量来将该高速缓存的至少一部分分配给一个或多个应用或程序。该高速缓存度量可以包括例如与不同应用相关联的优先级、访问该高速缓存的不同应用的写-读比或读-写比、访问该高速缓存的不同应用的存储器带宽、访问该高速缓存的不同应用的高速缓存使用率、和/或访问该高速缓存的不同应用的高速缓存命中率或高速缓存未命中率的指示。
在一些实现方式中,ToR交换机102和聚合交换机104可以包括例如可编程交换机,该可编程交换机可以编程以处理不同的定制协议。可编程交换机102和104可以包括可编程匹配动作管线,以提供可配置的数据平面和通过L1/L2分组交换16的自定义的分组处理能力。此类可编程交换机的示例可以在以上通过引用并入本文的17/174,681号、16/914,206号和16/916,730号共同待决的美国申请以及2020/0349080号和2020/0351370号美国专利申请中找到。
图1示例中的可编程交换机102和104的数据平面可以控制可编程交换机的点对点分组转发行为,例如使用L1/L2以太网分组交换、分组接纳控制以及调度或排队。可编程交换机102和104的数据平面是可编程的并且与高级控制平面分隔,该高级控制平面为网络100中的设备之间的分组或消息确定端到端路由。
在一些实现方式中,ToR交换机102可以充当它们各自的服务器机架101中的非易失性存储器快速(NVMe)节点的NVMe控制器。在此类实现方式中,ToR交换机102可以更新用于服务器机架的NVMe映射中的可用命名空间和/或执行NVMe发现过程以确定是否存在一个或多个新可用命名空间。在以上通过引用并入本文的17/175,449号共同未决的美国申请中更详细地讨论了这种实现方式。
另外,使用可编程交换机102和104可以通过定义定制的分组格式和处理行为来实现高性能和可扩展的存储器中心架构的配置。可编程交换机102和104支持独立于协议的交换机架构和现成交换机的使用,与专门设计的片上网络(NoC)相反。可编程交换机102和104的处理资源,例如使用内容可寻址存储器(CAM)或三元CAM(TCAM)表或其他类型的匹配动作表,通常可以提供比在终端节点处可发生的更快的处理和深度分组检查,例如分组内NVMe消息的检查。
参考本公开,本领域普通技术人员将理解,其他实现方式可以包括与图1的示例中所示的不同数量或布置的服务器机架101、ToR交换机102和聚合交换机104。在这方面,图1中所示的网络100用于说明的目的,并且本领域普通技术人员将理解,网络100可以包括比图1的示例中所示更多的服务器机架101、交换机或路由器。其他实现方式可以包括网络100中的附加级别,该附加级别可以包括核心交换机、附加服务器和/或其它可编程交换机。在一些变型中,可以省略聚合交换机104。
另外,一些实现方式可以包括模块的不同布置,诸如由ToR交换机102执行的单个模块,该单个模块用于确定高速缓存度量并且用于将高速缓存存储器分配给访问该高速缓存的不同应用。在又一些实现方式中,高速缓存度量可以被存储在与图1中所示的位置不同的位置中,诸如在服务器机架101内的节点处而不是在ToR交换机102处。
图2是根据一个或多个实施方案的包括在图1的网络100中的示例性组件的框图。如图2所示,节点108包括用于在网络100上通信的处理器116、存储器118、存储设备121和接口122。节点108可以被包括作为例如图1中的服务器机架101A的一部分。尽管在图2的示例中仅示出了节点108,但是网络100中的其他节点可以具有与节点108类似或不同的部件。
处理器116可以执行指令,例如来自分布式高速缓存模块26和应用24的指令,该应用可以包括操作系统(OS)和/或由节点108使用的其他应用。处理器116可以包括电路,诸如中央处理单元(CPU)、一个或多个RISC-V核心、图形处理单元(GPU)、微控制器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、硬连线逻辑、模拟电路和/或它们的组合。在一些实现方式中,处理器116可以包括片上系统(SoC),该系统可以与存储器118和接口122中的一者或两者组合。
存储器118可以包括例如易失性随机存取存储器(RAM),诸如静态RAM(SRAM)、动态RAM(DRAM)、非易失性RAM或其他固态存储器,其由处理器116用作内部主存储器以存储数据。存储在存储器118中的数据可以包括从存储设备121读取的数据、要存储在存储设备121中的数据、从分布式高速缓存模块26或应用24加载以供处理器116执行的指令和/或用于执行此类应用的数据。除了从存储器118加载数据之外,处理器116还可以加载来自作为外部存储器或分布式高速缓存的其他节点的共享存储器位置的数据。此类数据也可以在修改之后由处理器116刷新,或在不修改的情况下经由可编程交换机102逐出回存储器118或外部节点。
如图2所示,存储器118存储分布式高速缓存模块26,该分布式高速缓存模块可以提供用于访问分布式高速缓存中的数据的指令。此类指令可以包括用于维护存储在网络100的不同节点上的数据(例如,高速缓存行)的一致性并其处理与可编程交换机102的通信的协议,例如用于维护消息的适当序列的协议。在一些实现方式中,分布式高速缓存模块26可以包括由节点108的OS使用的驱动器。
存储设备121用作辅助存储装置,其可以包括例如一个或多个旋转磁盘或非易失性固态存储器,例如闪存存储器。尽管本文中的描述通常是指固态存储器,但应理解,固态存储器可以包括各种类型的存储器设备中的一种或多种,如闪存集成电路、NAND存储器(例如,单层单元(SLC)存储器、多层单元(MLC)存储器(例如,两层或更多层)或它们的任何组合)、NOR存储器、电可擦可编程只读存储器(EEPROM)、其他离散的非易失性存储器(NVM)芯片或它们的任何组合。
接口122被配置为将节点108与可编程交换机102连接。接口122可以使用例如以太网等标准进行通信。在这方面,节点108、可编程交换机102和网络控制器120可以不物理上位于同一位置,并且可以通过诸如LAN或WAN的网络进行通信。如本领域普通技术人员将理解的,接口122可以作为处理器116的一部分。
如上文参考图1所讨论的,可编程交换机102可以是用于包括节点108的服务器机架101的ToR交换机。在图2的示例中,可编程交换机102包括端口130、电路132和存储器134。端口130提供连接并且被配置为与例如节点、网络控制器120和聚合交换机104等设备通信。例如,端口130可以包括以太网端口。
可编程交换机102的存储器134可以包括例如易失性RAM,诸如DRAM,或非易失性RAM或其他固态存储器,例如由电路132使用的寄存器阵列,以执行从高速缓存管理模块10、高速缓存度量模块12或可编程交换机102的固件加载的指令和/或用于执行此类指令的数据,例如高速缓存度量14。电路132可以包括例如ASIC、微控制器、DSP、FPGA、硬连线逻辑、模拟电路和/或它们的组合的电路。在一些实现方式中,电路132可以包括SoC,该SoC可以与存储器134组合。
如下文更详细所讨论,高速缓存管理模块10和高速缓存度量模块12可以包括用于实施各过程(例如结合图4和图5所讨论的过程)的指令,以使得能够在使用该高速缓存的应用之间分配及再分配高速缓存存储器。另外,使用高速缓存度量14使得可编程交换机102能够就使用高速缓存22来分配分布式高速缓存而更新网络控制器120,如下文参考图6的高速缓存分配过程更详细所讨论。在这方面,网络控制器120可以聚合来自可能在不同服务器机架101中的多个节点的高速缓存存储器,并且在可以在不同服务器机架101中的多个节点处执行的应用之间分配所聚合的高速缓存存储器的使用。
图2的示例中的网络控制器120维护分布式高速缓存度量20,该分布式高速缓存度量可以包括表或其他类型的数据结构,诸如键值存储(KVS)。控制器120经由接口128接收来自可编程交换机102和/或104的高速缓存度量更新或通知,该更新或通知指示对由可编程交换机102维护的高速缓存度量诸如高速缓存度量14的更新或改变。此类更新可以包括例如高速缓存的使用的改变,例如先前分配给应用的存储器的释放,或高速缓存存储器的新分配。其他更新可以包括带宽、高速缓存要求、访问高速缓存的应用的优先级的改变,或其他高速缓存度量诸如访问该高速缓存的不同应用的命中率或读写比的改变。另外,网络控制器120可以向可编程交换机102发送一个或多个消息以指示对位于相应服务器机架101中的高速缓存存储器的分配的调整。
网络控制器120的处理器124执行分布式高速缓存模块18以维护分布式高速缓存度量20并且根据需要向可编程交换机102通知调整。处理器124可以包括电路,如CPU、GPU、微控制器、DSP、ASIC、FPGA、硬连线逻辑、模拟电路和/或其组合。在一些实现方式中,处理器124可以包括SoC,该系统可以与存储器126和接口128中的一个或两个组合。存储器126可以包括例如易失性RAM(如DRAM)、非易失性RAM或其它固态存储器,其被处理器124用于存储数据。控制器120经由接口128与可编程交换机102通信,该接口被配置为与可编程交换机102的端口连接,并且可以根据例如以太网的标准进行连接。
如本领域普通技术人员参考本公开将理解的,其它实现方式可以包括与图2的实例中所示不同的组件或模块的布置或数量。例如,在一些实现方式中,节点108可以不包括存储设备121,或两个可编程交换机102可以用于单个服务器机架以实现冗余。另外,在一些实现方式中,图2中针对可编程交换机102示出的布置也可以应用于聚合交换机104。
图3示出了根据一个或多个实施方案的高速缓存度量14的示例。在图3的示例中,高速缓存度量14可以是表或其他类型的数据结构如KVS。例如,高速缓存度量14可以包括单个数据结构或可以由存储在可编程交换机102处的多个数据结构形成,该多个数据结构可以包括直接连接到可编程交换机102并由该可编程交换机使用的存储器(例如,图2中的存储器134)。由网络控制器120存储的分布式高速缓存度量20可以包括与针对图3的高速缓存度量14示出的信息类似的信息,但是具有针对使用该分布式高速缓存的遍及网络100的应用的高速缓存度量。
如图3所示,高速缓存度量14包括应用标识符(即,图3中的应用ID),该标识符标识访问存储在对应于ToR交换机102的服务器机架中的一个或多个高速缓存的不同应用或程序。在由聚合交换机104确定或存储高速缓存度量的实现方式中,应用标识符可以标识访问对应于聚合交换机104的群集中的多个服务器机架中的一个或多个高速缓存的不同应用或程序。在一些实现方式中,可编程交换机可以使用包括在用户数据报协议(UDP)报头或传输控制协议(TCP)报头中的端口号来标识应用,该端口号用于指示发起发送到该可编程交换机的消息的应用或程序。在一些实现方式中,该端口号可以用作高速缓存度量14中的应用标识符。
在图3的示例中,高速缓存度量14包含由可编程交换机针对每个应用确定的度量,例如写-读比、存储器带宽、命中率和应用的优先级。高速缓存度量14的其他实现方式可以包括不同的度量,例如读-写比或高速缓存未命中率。
可以通过例如识别由应用发起的分组中的操作码或消息类型来确定写-读比。此类操作码可以包括该分组中指示写入操作、读取操作或其它类型的操作的操作码字段。可编程交换机,例如,通过使用图2中的高速缓存度量模块12,可以计算应用的写-读比。
带宽可以由数据的量来确定,该数据从与该可编程交换机相关联的一个或多个高速缓存请求和/或发送到与该可编程交换机相关联的一个或多个高速缓存。在一些实现方式中,该可编程交换机可以检查分组以识别该分组的有效载荷的数据大小。高速缓存度量模块12可以接着通过将源自该应用的分组的有效载荷大小相加并且将总和除以接收该分组的时间周期来计算该应用的带宽。在其它实现方式中,高速缓存度量14还可以或另选地以不同的形式指示高速缓存使用率,例如通过指示应用在该高速缓存中访问的总数据量。
命中率可以通过检查从存储该高速缓存的节点返回的分组以识别该分组中指示高速缓存命中或高速缓存未命中的字段来确定。高速缓存命中指示由节点请求的数据被存储在该高速缓存中,而高速缓存未命中指示所请求的数据未被存储在该高速缓存中。在一些实现方式中,该字段可以是网络100上的设备所使用的定制协议的一部分。高速缓存度量模块12可以通过将具有指示高速缓存命中的字段的分组的数量除以指示高速缓存命中和高速缓存未命中的应用的分组的总数量来计算该应用的命中率。在分组中识别的目的地端口号可以用于将该高速缓存命中和未命中指示与该应用相关联。诸如图2中的节点108执行的高速缓存模块26的高速缓存模块可以由提供共享高速缓存的节点使用,以在响应于来自另一节点的高速缓存请求而发送的确认或错误消息中指示高速缓存命中或高速缓存未命中。可编程交换机然后可以识别发送回到请求节点的确认或错误消息中的高速缓存命中或高速缓存未命中字段,以确定高速缓存命中或高速缓存未命中。
应用的优先级可以通过识别优先级字段来确定,诸如作为基于IEEE 802.1Qbb优先级的流控制(PFC)标准的一部分的以太网报头中的802.1Q标签。高速缓存度量模块12可以通过将优先级字段与对应于应用的源或目的地端口号相关联来确定该应用的优先级。在上文所论述的图2的示例中,当发送消息以包含优先级标签时,节点108可以使用诸如高速缓存模块26的高速缓存模块。优先级可以指示特定应用或应用类别,例如可能需要比其它应用更大的带宽和/或更快的数据访问的视频应用。
高速缓存度量14可以由可编程交换机更新,以添加访问与该可编程交换机相关联的一个或多个高速缓存的新应用或移除在预定时间段(例如,5分钟)期间未访问该高速缓存的应用。在一些实现方式中,高速缓存度量14可以包含元数据或列,该列指示该高速缓存度量何时最后由可编程交换机更新以移除非激活应用的高速缓存度量。在一些情况下,可编程交换机可以从执行应用的节点接收分组,并且检查该分组以识别指示该应用不再需要高速缓存的释放或完成指示。在此类情况下,可编程交换机可以删除用于该应用的高速缓存度量(即,图3中的示例性高速缓存度量14中的行)。
另外,可编程交换机还可以重新分配或再分配先前分配或分派给非激活应用或发送完成的应用的存储器地址。如图3所示,每个应用被分配了与可编程交换机相关联的一个或多个高速缓存的一部分。例如,具有应用ID 1的应用被分配了存储器地址a至f,具有应用ID 2的应用被分配了存储器地址g至m,具有应用ID 3的应用被分配了存储器地址n至q,具有应用ID 4的应用被分配了存储器地址r至u。存储器地址可以表示由与可编程交换机相关联的一个或多个节点(例如,在与可编程交换机相同的服务器机架中)用于一个或多个高速缓存的物理存储器的范围。
可编程交换机的高速缓存管理模块10可以使用高速缓存度量14来调整或分配高速缓存存储器。例如,如果对存储设备(例如,图2中的存储设备121)的写入花费的时间不成比例地长于从该存储设备读取数据,则可以向具有较大写-读比的应用分配高速缓存存储器的较大部分以减少延迟。作为另一示例,可以向具有超过特定数据速率的带宽的应用分配较少高速缓存存储器以防止该应用独占高速缓存存储器。作为另一示例,可编程交换机可以将较多高速缓存存储器分配给具有较高命中率的应用以更有效地使用该高速缓存存储器。另外,可编程交换机可以向高速缓存度量14中具有较高优先级的应用分配较多高速缓存存储器以向此类应用提供较高带宽。在一些实现方式中,高速缓存管理模块10可以针对高速缓存度量中的部分或全部使用加权函数,以在访问该高速缓存的应用之间分配高速缓存存储器。
本领域普通技术人员根据本公开将理解,高速缓存度量14可以包括与图3所示不同的信息。例如,高速缓存度量14的一些实现方式可以包括最后更新的列,该列用于指示何时针对应用最后更新高速缓存度量以识别非激活应用。作为另一示例变型,高速缓存度量可以包括其他高速缓存度量,诸如读-写比或高速缓存未命中率。
示例性过程
图4是根据一个或多个实施方案的由可编程交换机执行的高速缓存分配过程的流程图。图4的过程可以由例如图2中执行高速缓存管理模块10和高速缓存度量模块12的可编程交换机102的电路132执行。
在框402中,该可编程交换机检查分组以识别信息,该信息与由至少一个节点(例如,图2中的节点108)提供的高速缓存的访问相关,该高速缓存可以由其它节点经由该可编程交换机访问。所识别的信息可以包括例如指示访问该高速缓存的应用的端口号、优先级标签(例如,802.1Q标签)、指示将要在该高速缓存中执行的操作(例如,写操作或读操作)的操作码、高速缓存命中或高速缓存未命中的指示、和/或该分组的有效载荷的数据大小中的至少一者。该检查可以由例如该可编程交换机的解析器来执行,该解析器提取或识别由该可编程交换机接收的分组中的报头或字段。在一些实现方式中,该可编程交换机的匹配动作阶段然后可以评估所解析的报头或字段以识别与该高速缓存相关的信息。
在框404中,该可编程交换机基于在框402中所识别的信息来确定一个或多个高速缓存度量。该高速缓存度量可以包括例如与访问该高速缓存的不同应用相关联的优先级、应用的写-读比或读-写比、访问该高速缓存的不同应用的存储器带宽、和/或访问该高速缓存的不同应用的高速缓存命中率或高速缓存未命中率的指示。在一些实现方式中,高速缓存度量模块(例如,图2中的高速缓存度量模块12)可以在框404中通过使用源端口号或目的端口号将框402中所识别的信息与特定应用相关联并且基于在周期时间内从分组收集的信息计算应用的高速缓存度量来确定高速缓存度量,该分组包含该应用的对应源端口号或对应目的端口号。
在框406中,该可编程交换机基于在框408中确定的高速缓存度量将该高速缓存的至少一部分分配给至少一个应用。在一些实现方式中,高速缓存管理模块10可以使用该高速缓存度量来确定分配给应用的可用高速缓存存储器的量或地址范围。在操作期间,该高速缓存管理模块可以基于更新后的高速缓存度量、应用的非激活性、应用对高速缓存存储器的释放、或来自网络控制器120的指示对该分布式高速缓存的分配的调整的消息来调整高速缓存存储器到不同应用的分配。
在框408中,该可编程交换机将在框404中确定的高速缓存度量发送到网络控制器120或不同的可编程交换机。该高速缓存度量的发送可以周期性地发生以更新由网络控制器120存储的分布式高速缓存度量20。在与诸如聚合交换机104或其他ToR交换机102之类的其他可编程交换机共享该高速缓存度量的实现方式中,该其他可编程交换机可以基于所接收到的高速缓存度量来更新其高速缓存度量中的部分或全部。
来自整个网络100的高速缓存度量的集合通常可以使得网络控制器120能够提供分布式高速缓存的动态管理,以针对变化的工作负荷进行调整并且适应可能变得不可用的网络100中的节点或其他设备。在不同的可编程交换机和网络控制器120之间共享高速缓存度量还可以更好地将高速缓存存储器的分配定制到在网络100中的不同节点上执行的不同应用。例如,如果服务器机架101具有未使用的高速缓存存储器,则网络控制器120可以向在不同的服务器机架中的节点处执行的应用分配该未使用的高速缓存存储器,否则该不同服务器机架可能在其自身的服务器机架中没有足够的高速缓存存储器可用。
参考本公开,本领域普通技术人员将理解,在其他实现方式中,图4的消息排序过程的方框的顺序可以不同。例如,在其他实现方式中,可以切换框406和408的顺序以使得所确定的高速缓存度量在分配该高速缓存的至少一部分之前被发送给该网络控制器或不同的可编程交换机。在又一些实现方式中,框408可以被省略。
图5是根据一个或多个实施方案的高速缓存再分配过程的流程图。图5的过程可以由例如图2中执行高速缓存管理模块10的可编程交换机102的电路132执行。
在框502中,该可编程交换机确定应用不再访问由至少一个节点(例如,图2中的节点108)提供的共享高速缓存,该共享高速缓存可以由其它节点经由该可编程交换机访问。例如可以由高速缓存管理模块10作出该确定,该高速缓存管理模块在预定时间周期内未针对该应用更新高速缓存度量14或在预定时间周期内未接收到源自或针对该应用的任何分组。在其他情况下,该可编程交换机可以在从该应用接收到包含存储器释放指示的分组之后确定该应用不再访问该高速缓存。
在框504中,该可编程交换机再分配该高速缓存存储器的一部分,该高速缓存存储器之前被分配给确定不再访问该高速缓存的应用。在再分配该高速缓存存储器时,高速缓存管理模块10可以重新评估高速缓存度量14和/或可以以与当前分配给仍访问该高速缓存的其他应用的百分比相同的百分比来重新分配该高速缓存存储器的部分。
图6是根据一个或多个实施方案的由网络控制器执行的高速缓存分配过程的流程图。图6的过程可以由例如图2中执行分布式高速缓存管理模块18的网络控制器120的处理器124执行。
在框602中,该网络控制器从可编程交换机接收高速缓存度量,该高速缓存度量用于存储在网络100中的节点处形成分布式高速缓存的共享高速缓存。该高速缓存度量可以包括以上针对图3中的高速缓存度量14的示例所讨论的那些度量。
在框604中的该网络控制器基于在框602中所接收到的高速缓存度量来更新框604中的分布式高速缓存度量20。在一些情况下,分布式高速缓存管理模块18可以针对访问不同服务器机架101中的共享高速缓存的应用聚合或重新计算高速缓存度量。在这种情况下,用于特定应用的分布式高速缓存度量表示从不同可编程交换机接收的高速缓存度量。在这方面,该应用也可以由不同服务器机架中的节点执行。由该网络控制器维护的分布式高速缓存度量可以包括例如与使用该分布式高速缓存的不同应用相关联的优先级、访问该分布式高速缓存的应用的写-读比或读-写比、不同应用对该分布式高速缓存的存储器带宽或存储器使用率、和/或使用该分布式高速缓存的不同应用的高速缓存命中率或高速缓存未命中率。
在框606中,该网络控制器基于在框604中所更新的分布式高速缓存度量来将该分布式高速缓存的各部分分配给不同的应用。例如,分布式高速缓存管理模块18可以确定应向具有较大写-读比的第一应用分配比具有较低写-读比的第二应用更多的该分布式高速缓存中的存储器。作为另一示例,分布式高速缓存管理模块18可以确定应向具有较低高速缓存命中率和较高带宽的应用分配比具有较高高速缓存命中率和较低带宽的另一应用更多的该分布式高速缓存中的存储器。
在框608中,该网络控制器向至少一个可编程交换机发送至少一个消息,该消息指示基于框606中的该分布式高速缓存的部分的分配对高速缓存存储器的分配的一个或多个调整。分布式高速缓存管理模块18可以识别可再分配或重新分配它们的服务器机架101中或其群集中的一个或多个高速缓存存储器的可编程交换机(例如,诸如针对聚合交换机104),并且发送所识别的可编程交换机消息,该可编程交换机消息指示对该高速缓存分配的调整。在一些实现方式中,分布式高速缓存管理模块18还可以将消息发送到执行一个或多个应用的节点,以向该应用通知用于访问该分布式高速缓存的重新分配部分的新位置。在其它实现方式中,该可编程交换机可以改为向执行该一个或多个应用的节点通知分配给该一个或多个应用的高速缓存存储器的位置。
参考本公开,本领域普通技术人员将理解,在其他实现方式中,图6的高速缓存分配过程的方框的顺序可以不同。例如,在一些实现方式中,可以在框602中接收高速缓存度量,并且在框606中进行分布式高速缓存的各部分的分配之前,可以在框604中多次更新该分布式高速缓存度量。
如上所讨论,使用在线可编程交换机和/或网络控制器作为用于确定高速缓存度量和分配高速缓存存储器的集中点改善了高速缓存分配的一致性,并且可以提供分布式高速缓存的更有效使用。通过在运行时间期间调整不同应用或程序之间的高速缓存分配,通常有可能使分布式高速缓存的使用适应应用的实际工作负荷和需要。
其他实施方案
本领域的普通技术人员将会知道,结合本文公开的示例所描述的各种例示性逻辑块、模块和过程可以实现为电子硬件、计算机软件或两者的组合。此外,前述过程可体现在计算机可读介质上,该计算机可读介质使处理器或控制器电路执行或实施某些功能。
为了清楚地说明硬件和软件的这种可互换性,上面已经在其功能方面对各种例示性部件、块和模块进行了总体描述。将此功能性实现为硬件还是软件取决于特定应用和施加在整个系统的设计约束。本领域的普通技术人员可以针对每个特定应用以不同方式实现所描述的功能,但这种实现决策不应被解释为导致脱离本公开的范围。
结合本文公开的示例所描述的各种例示性逻辑块、单元、模块、处理器电路和控制器电路可以用被设计用于执行本文所述功能的通用处理器、DSP、ASIC、FPGA或其他可编程逻辑器件、离散门或晶体管逻辑、分立硬件部件或它们的任何组合来实现或执行。通用处理器可以是微处理器,但是在替代方案中,处理器可以是任何传统的处理器、控制器、微控制器或状态机。处理器或控制器电路还可以实现为计算设备的组合,例如DSP和微处理器的组合、多个微处理器、SoC、结合DSP核心的一个或多个微处理器,或任何其他此类配置。
结合本文公开的示例而描述的方法或进程的活动可直接体现于硬件中、由处理器或控制器电路执行的软件模块中或两者的组合中。该方法或算法的步骤也可以以与示例中提供的顺序另选的顺序执行。软件模块可驻留在RAM存储器、闪存存储器、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动介质、光学介质或本领域中已知的任何其他形式的存储介质中。示例性存储介质耦接到处理器或控制器电路,使得处理器或控制器电路可以从该存储介质读取信息,并且可以向该存储介质写入信息。在替代方案中,存储介质可以是处理器或控制器电路的组成部分。该处理器或控制器电路和存储介质可驻留在ASIC或片上系统(SoC)中。
提供了本公开的示例性实施方案的上述描述,以使得任何本领域普通技术人员能够制作或使用本公开的实施方案。对这些示例的各种修改对于本领域普通技术人员而言将是显而易见的,并且在不脱离本公开的实质或范围的情况下,本文公开的原理可以应用于其他示例。所述实施方案将在所有方面被认为仅仅是示例性的而非限制性的。此外,在以下权利要求书中以“A和B中的至少一者”的形式使用的语言应理解为意指“仅A、仅B或A和B两者”。
Claims (20)
1.一种可编程交换机,所述可编程交换机包括:
多个端口,所述多个端口被配置为与多个节点通信,所述多个节点包括提供可以由其他节点访问的高速缓存的至少一个节点;和
电路,所述电路被配置为:
检查经由所述多个端口接收的分组以识别与所述高速缓存相关的信息;
基于所识别的信息确定所述高速缓存的一个或多个高速缓存度量;以及
基于所确定的一个或多个高速缓存度量,将所述高速缓存的至少一部分分配给由所述多个节点中的至少一个节点执行的至少一个应用。
2.根据权利要求1所述的可编程交换机,其中所识别的信息包括表示访问所述高速缓存的应用的端口号、优先级标签、表示将在所述高速缓存中执行的操作的操作码、正在向应用返回的高速缓存命中或高速缓存未命中的指示、和数据大小中的至少一者。
3.根据权利要求1所述的可编程交换机,其中所确定的一个或多个高速缓存度量包括与应用相关联的优先级、访问所述高速缓存的不同应用的写-读比或读-写比、访问所述高速缓存的不同应用的存储器带宽、访问所述高速缓存的不同应用的高速缓存使用率的指示、和访问所述高速缓存的不同应用的高速缓存命中率或高速缓存未命中率的指示中的至少一者。
4.根据权利要求1所述的可编程交换机,其中所述电路还被配置为:
确定应用不再访问所述高速缓存;以及
将分配给所述应用的高速缓存的一部分再分配给一个或多个其他应用。
5.根据权利要求1所述的可编程交换机,其中所述电路还被配置为向网络控制器发送所确定的高速缓存度量以更新网络高速缓存度量,所述网络高速缓存度量由所述网络控制器从多个可编程交换机接收以用于在网络上共享的不同高速缓存。
6.根据权利要求1所述的可编程交换机,其中所述电路还被配置为将所确定的高速缓存度量发送到不同的可编程交换机以更新由所述不同的可编程交换机确定的高速缓存度量。
7.根据权利要求1所述的可编程交换机,其中所述电路还被配置为:
基于新信息更新所述一个或多个高速缓存度量,所述新信息在经由所述多个端口接收的新分组中识别;以及
基于所述更新后的一个或多个高速缓存度量来调整所述高速缓存的至少一部分到所述至少一个应用的分配。
8.根据权利要求1所述的可编程交换机,其中所述至少一个应用由多个节点执行。
9.根据权利要求1所述的可编程交换机,其中所述可编程交换机是聚合交换机或架顶(ToR)交换机。
10.一种由可编程交换机执行的方法,所述方法包括:
检查由所述可编程接收的分组以识别信息,所述信息与访问与所述可编程交换机通信的节点的高速缓存有关;
基于所识别的信息确定所述高速缓存的高速缓存度量,其中所述高速缓存度量用于访问所述高速缓存的不同应用;以及
基于所确定的高速缓存度量将所述高速缓存的部分分配给所述不同应用。
11.根据权利要求10所述的方法,其中所识别的信息包括表示访问所述高速缓存的应用的端口号、优先级标签、表示将在所述高速缓存中执行的操作的操作码、正在向应用返回的高速缓存命中或高速缓存未命中的指示、和数据大小中的至少一者。
12.根据权利要求10所述的方法,其中所确定的高速缓存度量包括与应用相关联的优先级、访问所述高速缓存的不同应用的写-读比或读-写比、访问所述高速缓存的不同应用的存储器带宽、访问所述高速缓存的不同应用的高速缓存使用率的指示、和访问所述高速缓存的不同应用的高速缓存命中率或高速缓存未命中率的指示中的至少一者。
13.根据权利要求10所述的方法,所述方法还包括:
确定应用不再访问所述高速缓存;以及
将分配给所述应用的高速缓存的一部分再分配给一个或多个其他应用。
14.根据权利要求10所述的方法,所述方法还包括向网络控制器发送所确定的高速缓存度量以更新网络高速缓存度量,所述网络高速缓存度量由所述网络控制器从多个可编程交换机接收以用于在网络上共享的不同高速缓存。
15.根据权利要求10所述的方法,所述方法还包括将所确定的高速缓存度量发送到不同的可编程交换机以更新由所述不同的可编程交换机确定的高速缓存度量。
16.根据权利要求10所述的方法,所述方法还包括:
基于新信息更新所述高速缓存度量,所述新信息在由所述可编程交换机接收的新分组中识别;以及
基于所述更新后的高速缓存度量来调整所述高速缓存的部分到所述不同应用的分配。
17.根据权利要求10所述的方法,其中所述不同应用由网络上的不同节点执行。
18.根据权利要求10所述的方法,其中所述可编程交换机是聚合交换机或架顶(ToR)交换机。
19.一种用于网络的网络控制器,所述网络包括由在所述网络上的多个节点处的多个高速缓存形成的分布式高速缓存,所述网络控制器包括:
至少一个存储器,所述至少一个存储器被配置为存储用于所述分布式高速缓存的分布式高速缓存度量,其中所述分布式高速缓存度量用于访问所述分布式高速缓存的不同应用;
接口,所述接口被配置为与多个可编程交换机通信;和
装置,所述装置用于:
从所述多个可编程交换机接收用于所述多个高速缓存的高速缓存度量;
基于所接收到的高速缓存度量更新所述分布式高速缓存度量;
基于所述更新后的分布式高速缓存度量将所述分布式高速缓存的部分分配给所述不同应用;以及
向所述多个可编程交换机中的至少一个可编程交换机发送至少一个消息,所述消息指示基于所述分布式高速缓存的部分的分配对所述多个高速缓存中的高速缓存的分配的调整。
20.根据权利要求19所述的网络控制器,其中所述分布式高速缓存度量包括与应用相关联的优先级、访问所述分布式高速缓存的不同应用的写-读比或读-写比、访问所述分布式高速缓存的不同应用的存储器带宽、访问所述分布式高速缓存的不同应用的高速缓存使用率的指示、和访问所述分布式高速缓存的不同应用的高速缓存命中率或高速缓存未命中率的指示中的至少一者。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/331,453 | 2021-05-26 | ||
US17/331,453 US20220385732A1 (en) | 2021-05-26 | 2021-05-26 | Allocation of distributed cache |
PCT/US2022/017608 WO2022250751A1 (en) | 2021-05-26 | 2022-02-24 | Distributed cache management |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116888579A true CN116888579A (zh) | 2023-10-13 |
Family
ID=84195322
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280016536.5A Pending CN116888579A (zh) | 2021-05-26 | 2022-02-24 | 分布式高速缓存管理 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20220385732A1 (zh) |
CN (1) | CN116888579A (zh) |
DE (1) | DE112022000463T5 (zh) |
WO (1) | WO2022250751A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11914521B1 (en) * | 2021-08-31 | 2024-02-27 | Apple Inc. | Cache quota control |
US11681627B1 (en) * | 2021-10-18 | 2023-06-20 | Meta Platforms Technologies, Llc | Distributed temporal cache for Systems on a Chip |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101434887B1 (ko) * | 2012-03-21 | 2014-09-02 | 네이버 주식회사 | 네트워크 스위치를 이용한 캐시 시스템 및 캐시 서비스 제공 방법 |
US9712439B2 (en) * | 2013-02-28 | 2017-07-18 | Texas Instruments Incorporated | Packet processing match and action unit with configurable memory allocation |
US9880768B2 (en) * | 2015-01-27 | 2018-01-30 | Barefoot Networks, Inc. | Dynamic memory reallocation for match-action packet processing |
US9733987B2 (en) * | 2015-02-20 | 2017-08-15 | Intel Corporation | Techniques to dynamically allocate resources of configurable computing resources |
US11223520B1 (en) * | 2017-01-31 | 2022-01-11 | Intel Corporation | Remote control plane directing data plane configurator |
US10896059B2 (en) * | 2017-03-13 | 2021-01-19 | International Business Machines Corporation | Dynamically allocating cache in a multi-tenant processing infrastructure |
US11221886B2 (en) * | 2018-05-17 | 2022-01-11 | International Business Machines Corporation | Optimizing dynamical resource allocations for cache-friendly workloads in disaggregated data centers |
US10742557B1 (en) * | 2018-06-29 | 2020-08-11 | Juniper Networks, Inc. | Extending scalable policy management to supporting network devices |
US10880124B2 (en) * | 2018-12-28 | 2020-12-29 | Alibaba Group Holding Limited | Offload controller control of programmable switch |
US11656992B2 (en) | 2019-05-03 | 2023-05-23 | Western Digital Technologies, Inc. | Distributed cache with in-network prefetch |
US11375006B1 (en) * | 2020-12-28 | 2022-06-28 | Pensando Systems, Inc. | Methods and systems for rating workloads based on network interface device resources and for optimal scheduling |
US20210294702A1 (en) * | 2021-06-04 | 2021-09-23 | Intel Corporation | High-availability memory replication in one or more network devices |
-
2021
- 2021-05-26 US US17/331,453 patent/US20220385732A1/en active Pending
-
2022
- 2022-02-24 DE DE112022000463.0T patent/DE112022000463T5/de active Pending
- 2022-02-24 WO PCT/US2022/017608 patent/WO2022250751A1/en active Application Filing
- 2022-02-24 CN CN202280016536.5A patent/CN116888579A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
WO2022250751A1 (en) | 2022-12-01 |
US20220385732A1 (en) | 2022-12-01 |
DE112022000463T5 (de) | 2023-10-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200136943A1 (en) | Storage management in a data management platform for cloud-native workloads | |
US20210011888A1 (en) | Intelligent layout of composite data structures in tiered storage with persistent memory | |
US10191773B2 (en) | Methods, systems, and devices for adaptive data resource assignment and placement in distributed data storage systems | |
US7996597B1 (en) | Mapping address bits to improve spread of banks | |
US11888710B2 (en) | Technologies for managing cache quality of service | |
US10303618B2 (en) | Power savings via dynamic page type selection | |
US10248346B2 (en) | Modular architecture for extreme-scale distributed processing applications | |
CN116888579A (zh) | 分布式高速缓存管理 | |
US11675706B2 (en) | Devices and methods for failure detection and recovery for a distributed cache | |
US20150067695A1 (en) | Information processing system and graph processing method | |
US20220078119A1 (en) | Network interface device with flow control capability | |
US20210409506A1 (en) | Devices and methods for managing network traffic for a distributed cache | |
CN108781184A (zh) | 用于在网络设备中提供分类资源的分区的系统和方法 | |
CN108702339B (zh) | 用于在结构架构中基于服务质量进行节流的装置和方法 | |
US11552907B2 (en) | Efficient packet queueing for computer networks | |
Menezo et al. | Flask coherence: A morphable hybrid coherence protocol to balance energy, performance and scalability | |
US20220222010A1 (en) | Advanced interleaving techniques for fabric based pooling architectures | |
US20220004330A1 (en) | Memory pool data placement technologies | |
US11573718B2 (en) | Disaggregation of control path and data path | |
US20210194830A1 (en) | In-line data operations for storage systems | |
Kishani et al. | Padsa: Priority-aware block data storage architecture for edge cloud serving autonomous vehicles | |
US20230418642A1 (en) | Memory coherence in virtualized environments | |
US20230401079A1 (en) | Resource allocation in virtualized environments | |
US11599415B2 (en) | Memory tiering techniques in computing systems | |
WO2016122607A1 (en) | Dedicated memory server |
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 |