CN117546154A - 用于智能缓存的方法和系统 - Google Patents
用于智能缓存的方法和系统 Download PDFInfo
- Publication number
- CN117546154A CN117546154A CN202280036130.3A CN202280036130A CN117546154A CN 117546154 A CN117546154 A CN 117546154A CN 202280036130 A CN202280036130 A CN 202280036130A CN 117546154 A CN117546154 A CN 117546154A
- Authority
- CN
- China
- Prior art keywords
- data
- data object
- cache
- copied
- objects
- 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
- 238000000034 method Methods 0.000 title claims abstract description 37
- 230000010076 replication Effects 0.000 claims description 37
- 230000002688 persistence Effects 0.000 claims description 12
- 238000013500 data storage Methods 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 5
- 230000003362 replicative effect Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 239000000463 material Substances 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 239000004615 ingredient Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请描述了一种设备、系统、方法和计算机可读存储介质,所述设备包括:缓存;包括在所述缓存中的多个数据对象,所述多个数据对象将复制到多个不同的已知目标位置;缓存管理器,用于:确定所述缓存中接下来将复制的第一数据对象,并将所述第一数据对象保留在所述缓存中;跟踪所述多个数据对象中的哪些数据对象将复制到所述多个不同目标位置中的哪些所述已知目标位置:当所述缓存已满时,删除以下之一:不要复制的第二数据对象和将最后复制的第三数据对象;其中,数据对象的每次复制由不同的任务执行。
Description
本发明的技术领域和背景技术
本发明在一些实施例中涉及用于缓存对象存储复制的系统和方法,更具体地,但不排他性地,涉及用于将待复制的对象复制到多个目标的方法和系统。
当有多个对象要以不同的带宽复制到多个目标时,复制的性能通常会降为最慢链路的性能。在存储系统中,数据通常存储在块设备中,块设备中的数据通常以特定的文件系统格式存储。通常,块设备是计算机数据存储设备,支持在固定大小的块、扇区或集群中读取和可选地写入数据。此外,数据复制是将数据存储在多于一个节点(例如主存储器以及辅助存储器)中的过程,用以提高数据的可用性,并确保在数据丢失时提供数据保护。因此,出于安全原因,通常使用辅助存储器复制主机存储设备的主存储系统中存在的数据。在示例中,主存储系统和辅助存储系统都可以是用于数据存储的块设备。
全球范围内定期生成和存储大量数据。例如,主要是社交网络、物联网、科学实验、商业服务、工业服务、银行服务、企业等生成这些数据。目前,数据存储系统(例如,辅助存储系统、远程数据存储系统等)用于存储这些数据。因此,在数据存储系统中妥善管理和存储数据很重要,以便提高和最大化数据存储系统的效率。
一些云存储提供商支持将存储的数据对象复制到多个目标,但他们不使用智能缓存选项。
一个简单的方案是,同一数据移动器从日志记录设备读取对象时会将对象发送到所有目标。但是,如果目标具有不同的带宽,则数据移动过程将卡在将数据对象移动到目标的过程中,速度将降低到最慢的链路。另一选择是,每个目标将由另一个任务管理。在这种情况下,每次需要复制对象时,都会从日志记录设备读取该对象,从而增加日志记录设备上的负载。因此,即使目标设备的带宽彼此相似,也需要从日志记录设备多次读取数据对象。
一种替代方案可能是使用最近最少使用(least recently used,LRU)缓存淘汰算法,以便数据对象将按使用顺序组织在缓存中。在LRU中,顾名思义,当缓存接近满时,最长时间未使用的数据对象将从缓存中淘汰。典型的缓存算法使用LRU等方法。但是,LRU可能是一个糟糕的选择,例如,在知道每个对象在未来将从缓存中读取多少次的情况下。此外,LRU需要维护每个存储的数据对象上次被访问的时间记录。
作为示例,在有两个复制任务复制同一组对象a1、a2、……、an的情况下,两个复制任务之一的速度可以是例是另一个复制任务的速度的两倍。希望每项任务都能尽可能快地完成。然而,缓存存储器的本质是,它通常在任何给定的时间只保存少量对象。作为示例,假设缓存只能保存10个对象,在本示例中假设这些对象的大小相同。因此,当两个任务中的第一个复制对象20时,两个任务中的第二个仅复制对象10。如果对象11至20存储在缓存中,则两个任务中的第二个将不需要从缓存读取这些对象,因为该第二任务仍在复制对象1至10。但是,如果实现了LRU,则当两个任务中的第一个是复制对象22时,对象11和12将已经被删除。因此,第二复制任务将具有缓存未命中,即,复制任务请求从缓存检索数据,但该特定数据当前不在缓存存储器中的事件。
其它缓存算法也有缺点。例如,最不常用(least frequently used,LFU)缓存使用计数器来跟踪缓存中对象的访问频率。对于LFU缓存算法,首先删除计数最低的对象。但是,LFU并没有考虑到最初访问速率较高但随后长时间未被访问的对象。
因此,需要一种智能缓存方法和系统,以克服LRU等的缺点。
发明内容
提供了一种智能缓存方法和系统,以克服LRU的缺点。存储在缓存中的数据对象由可以驻存在处理器中的缓存管理器管理,并根据需要复制到各自的目标位置。数据对象的每次复制都由缓存管理器创建的单个专用任务执行。当缓存已满时,将从缓存中删除不要复制的数据对象或将最后复制的数据对象。
根据本发明的一些实施例的一方面,提供了:缓存;包括在所述缓存中的多个数据对象,所述多个数据对象将复制到多个不同的已知目标位置;缓存管理器,用于:确定所述缓存中接下来将复制的第一数据对象,并将所述第一数据对象保留在所述缓存中;跟踪所述多个数据对象中的哪些数据对象将复制到所述多个不同目标位置中的哪些所述已知目标位置:当所述缓存已满时,删除以下之一:不要复制的第二数据对象和将最后复制的第三数据对象;其中,数据对象的每次复制由不同的任务执行。
根据本发明的一些实施例的一方面,提供了一种方法,用于:将多个数据对象存储在缓存中,所述多个数据对象将复制到多个不同的已知目标位置;缓存管理器确定所述缓存中接下来将复制的第一数据对象;所述缓存管理器跟踪所述多个数据对象中的哪些数据对象将复制到所述多个不同目标位置中的哪些所述已知目标位置;将所述第一数据对象保留在所述缓存中;当所述缓存已满时,删除以下之一:不要复制的第二数据对象或将最后复制的第三数据对象;其中,数据对象的每次复制由不同的任务执行。
根据本发明的一些实施例的一方面,提供了一种其中存储有代表计算机可执行的软件的数据的计算机可读存储介质,所述软件包括用于以下操作的指令:将多个数据对象存储在缓存中,所述多个数据对象将复制到多个不同位置;缓存管理器确定所述缓存中接下来将复制的第一数据对象;将所述第一数据对象保留在所述缓存中;当所述缓存已满时,删除以下之一:不要复制的第二数据对象或将最后复制的第三数据对象;其中,数据对象的每次复制由不同的任务执行。
根据本发明的一些实施例,所述多个数据对象中的每个数据对象被写入到日志设备。
根据本发明的一些实施例,所述日志设备存储在持久层中。
根据本发明的一些实施例,数据移动器从所述日志设备读取所述第一数据对象数据,并将所述第一数据对象数据复制到复制站点。
根据本发明的一些实施例,所述多个数据对象中的每个数据对象在索引层中索引。
根据本发明的一些实施例,将在所述第一数据对象之后读取的数据对象与所述第一数据对象连续存储在所述缓存中。
根据本发明的一些实施例,如果将在所述第一数据对象之后读取的第四数据对象不在所述缓存中,则所述缓存管理器预取所述第四数据对象。
根据本发明的一些实施例,所述多个数据对象的复制发生在Kubernetes集群中。
根据本发明的一些实施例,所述缓存管理器用于在所述缓存已满时删除最新接收到的数据对象。
根据本发明的一些实施例,还包括,当所述多个数据对象中的一个数据对象已复制到其所有已知目标位置时,所述缓存管理器删除所述一个数据对象。
根据本发明的一些实施例,所述缓存管理器删除所述多个数据对象中依序写入在硬盘上且需要逐个发送的至少两个数据对象。
根据本发明的一些实施例,还包括,在删除所述多个数据对象中的至少两个数据对象之后,所述缓存管理器从硬盘驱动器获取所述多个数据中的所述至少两个数据对象。
除非另有定义,否则本文所用的所有技术和/或科学术语都具有与本发明普通技术人员公知的含义相同的含义。虽然与本文描述的方法和材料类似或等效的方法和材料可以用于本发明实施例的实践或测试,但下文描述了示例性方法和/或材料。如有冲突,以包括定义的专利说明书为准。另外,这些材料、方法和示例仅是说明性的,并不一定具有限制性。
本发明的实施例的方法和/或系统的实现方式可以包括手动、自动或手动与自动组合执行或完成选定任务。此外,根据本发明的方法和/或系统的实施例的实际仪器和设备,若干个选定的任务可以通过硬件、软件或固件或其组合使用操作系统来实现。
例如,本发明的实施例提供的用于执行选定任务的硬件可以实现为芯片或电路。作为软件,本发明的实施例提供的选定任务可以实现为由计算机使用任何合适的操作系统执行的多个软件指令。在本发明的示例性实施例中,本文所述的方法和/或系统的示例性实施例提供的一个或多个任务由数据处理器执行,该数据处理器例如用于执行多个指令的计算平台。可选地,所述数据处理器包括用于存储指令和/或数据的易失性存储器和/或用于存储指令和/或数据的非易失性存储器,例如磁性硬盘和/或可移动介质。可选地,还提供了网络连接。还可选地提供了显示器和/或如键盘或鼠标等用户输入设备。
附图说明
本文参考附图仅举例描述了本发明的一些实施例。现在具体结合附图,强调了所示的项目用于示例,并且用于说明性地讨论本发明的实施例。这样,根据附图说明,可如何实践本发明的实施例对本领域技术人员而言是显而易见的。
在附图中:
图1为在连续数据对象复制和备份到云之间进行优化的示例性系统;
图2为华为云环境中多个数据项的备份和复制的示例;并且
图3为图1和2中描述的系统和装置的操作方法的简化流程图。
具体实施方式
本发明在其一些实施例中涉及用于缓存对象存储复制的系统和方法,更具体地,但不排他性地,涉及用于将待复制的对象复制到多个目标的方法和系统。
描述了一种用于在从单个对象存储器复制到多个目标时优化缓存并最小化从对象存储器的读取的系统和方法。
在一些云存储系统中,例如作为非限制性示例,在华为云存储系统中,没有针对对象存储复制进行智能缓存。例如,当有多个目标时,可能需要将对象逐次发送到所有目标。当存在多个目标且每个目标具有不同的数据传输带宽时,复制的性能会降级到最慢数据传输链路的性能。其它云存储系统,例如亚马逊业务平台(amazon web services,AWS)、Microsoft Azure、Google云平台等,可能会替代地支持将数据传输到多个目标。然而,缓存可能不是以最优方式执行的。
在详细解释本发明的至少一个实施例之前,应理解,本发明在应用时并不一定限于以下描述和/或附图和/或示例中阐述的组件和/或方法的构造和布置的细节。本发明能够有其它实施例,或者能够以各种方式实践或执行。
现在参考附图,图1示出了用于在连续数据对象复制和备份到云之间进行优化的示例性系统100。包括多个数据对象120A、120B、120C的缓存110可以包括在云存储系统中。云存储系统可以是华为云存储系统、AWS、Microsoft Azure、Google云平台或其它可用的云存储系统。云存储系统可以包括公用的云存储系统或专用的云存储系统。多个数据对象120A、120B、120C可以在缓存中排队,以便复制到多个不同的已知目标位置,例如目标位置130A、130B、130C等等。作为示例,数据对象120A可以排队复制到目标位置130A和目标位置130C。数据对象120B可以排队复制到目标位置130B和目标位置130C。数据对象120C可以排队复制到目标位置130A和目标位置130B。未图示的另一数据对象可以排队复制到目标位置130A、目标位置130B、目标位置130C和也未图示的另一目标位置。应当理解,对三个示例性数据对象120A、120B和120C以及三个示例性目标位置130A、130B和130C的图示和描述仅作为非限制性示例,可以实现任何数量的数据对象和目标位置。多个数据对象120A、120B、120C中的一些或全部数据对象可以以加密形式或以未加密形式存储。
缓存管理器140可以管理缓存110中的数据项。缓存管理器140可以位于与包括缓存110的一个或多个物理存储设备相关联的硬件设备上。例如,在不限制前述内容的一般性的情况下,缓存110可以包括多个硬盘驱动器、固态磁盘驱动器或其它数据存储技术的其它设备,这些设备位于远程位置(例如,“云”)中,例如可通过网络访问。该网络可以包括局域网(local area network,LAN)、广域网(wide area network,WAN)、LAN与WAN的组合等等。例如,网络访问可能限于VPN。例如,网络访问可能限于使用安全令牌或证书的访问。应当理解,尽管仅图示了一个缓存管理器140,但多个缓存管理器140可以发挥与单个缓存管理器140相同或相似的功能。主缓存管理器140(未具体图示)可以在多个缓存管理器140中的各个缓存管理器140之间协调,使得多个缓存管理器140作为单个缓存管理器140有效地运行。缓存管理器140本身可以在处理器中实现,该处理器例如微处理器,即并入有计算机中央处理器(central processing unit,CPU)的核心功能的集成电路(integrated circuit,IC)。微处理器可以是时钟驱动、基于寄存器的可编程多用途硅芯片,它接受二进制数据作为输入,并在根据存储器中存储的指令处理该二进制数据之后提供输出。
为了便于图示为在缓存中,所示的数据移动器150可以将数据对象120A、120B、120C从缓存110内适当地移动到目标位置130A、130B和130C中的任何或所有位置,如下文将描述。应当理解,尽管仅图示了一个数据移动器150,但多个数据移动器150可以发挥与单个数据移动器150相同或相似的功能。主数据移动器150(未具体图示)可以在多个数据移动器150中的各个数据移动器150之间协调,使得多个数据移动器150作为单个数据移动器150有效地运行。
多个数据对象120A、120B、120C将复制到多个不同的已知目标位置130A、130B、130C。此时,缓存管理器140确定接下来将复制多个数据对象120A、120B、120C中的哪个数据对象。作为示例,数据对象120A可以是下一个将复制的数据对象。在这种情况下,缓存管理器140用于将数据对象120A保留在缓存110中。
缓存管理器140将跟踪多个数据对象120A、120B、120C中的哪些数据对象120A、120B、120C将复制到多个不同目标位置130A、130B、130C中的哪些已知目标位置130A、130B、130C。根据上面给出的示例,如图1中所示,数据对象120A可以排队复制到目标位置130A和目标位置130C;数据对象120B可以排队复制到目标位置130B和目标位置130C;数据对象120C可以排队复制到目标位置130A和目标位置130B。如上所述,另一个未图示的数据对象可以排队复制到所有目标位置130A、130B、130C和又一未图示的目标位置。
应注意,用于将数据对象120A、120B、120C复制到目标位置130A、130B、130C的可用带宽根据目标位置而变化。各种因素可能会影响可用带宽,例如但不限于传输技术、网络上的其它用途和流量、物理硬件等等。作为示例,缓存110和目标位置130A之间的带宽被图示为100Mbps;缓存110和目标位置130B之间的带宽被图示为50Mbps;缓存110和目标位置130C之间的带宽被图示为70Mbps。
当缓存110已满(即,数据对象,例如多个数据对象120A、120B、120C等接近超过缓存110的存储容量)时,缓存管理器140可以删除不要复制到多个不同目标位置130A、130B、130C的数据对象160中的一个。或者,如果没有其它数据对象160不要复制到多个不同目标位置130A、130B、130C,或如果不要复制到多个不同目标位置130A、130B、130C的所述数据对象160与多个数据对象120A、120B、120C中将复制到多个不同目标位置130A、130B、130C之一的一个数据对象或例如最新接收到的数据对象(例如,数据对象130B)相比需要更少的存储空间,则缓存管理器140可以删除多个数据对象120A、120B、120C中的一个,通常是多个数据对象120A、120B、120C中将为待复制的多个数据对象120A、120B、120C中的最后一个的一个数据对象。或者,当缓存110已满时,缓存管理器140可以删除最新接收到的数据对象130A、130B、130C。
此外,缓存管理器140可以确定从持久层(下文更详细地描述)读取数据对象(例如多个数据对象120A、120B、120C中的一个)的成本(在计算能力方面),并且当删除多个数据对象中的一个数据对象,多个数据对象120A、120B、120C中的一个时,缓存管理器140将首先删除多个数据对象120A、120B、120C中从持久层读取数据对象120A、120B、120C的成本最低的数据对象。
缓存管理器140可以创建用于复制多个数据对象120A、120B、120C中的每个数据对象的不同任务。例如,可以创建并实现第一任务以便将数据对象120A复制到目标位置130A,可以创建并实现第二任务以便将数据对象120A复制到目标位置130C。
如下面将参考图2更详细地示出的,多个数据对象120A、120B、120C可以被写入到日志设备。日志设备可以存储在持久层中。持久层可以包括数据库、平面文件、注册表等,并且日志设备可以包括分布式服务,提供按顺序组织的持久存储和传递的记录,这些记录被称为日志。为了耐久性,每个数据对象(例如数据对象120A、120B、120C)的副本跨多个服务器和故障域存储。
当多个数据对象120A、120B、120C中的一个将复制到目标位置时,数据移动器150从日志设备读取第一数据对象数据,并将第一数据对象数据复制到复制站点,例如,多个不同目标位置130A、130B、130C中的一个。
索引层可以包括索引多个数据对象120A、120B、120C在缓存110内的位置的数据结构。
当特定数据对象将在第一数据对象之后由数据移动器150读取以进行复制时,缓存管理器140可以将特定数据对象定位在缓存110中,使得特定数据对象与第一数据对象连续存储在缓存中。作为示例,如果数据对象120A被排队为复制到一个或多个目标位置130A、130C的第一数据对象(根据上述示例),然后数据对象120B被排队为复制到一个或多个目标位置130B、130C的下一个数据对象(根据上述示例),则缓存管理器140可以将数据对象120B与数据对象120A连续布置在缓存中。如果数据对象120C被排队成在数据对象120B之后被复制,则数据对象120C可以与数据对象120B在缓存中连续布置在缓存中。
在某些情况下,当下一个数据对象不在缓存中,例如数据对象170,并且不在缓存中的数据对象将复制到某个目标位置时,缓存管理器140可以在复制之前将下一个数据对象预取到缓存中。作为示例,数据对象170可以布置在目标位置130A中。缓存管理器140可以具有复制队列,该复制队列可以显示数据对象170即将从目标位置130A复制到例如目标位置130B。在这种情况下,缓存管理器140可以将数据对象170从目标位置130A预取到缓存110中。当数据对象170到目标位置130B的排队复制位于队列的顶部时,数据对象170现在位于缓存110中,并且可用于立即复制到目标位置130B。
缓存110和多个目标位置130A、130B、130C可以是运行容器化应用程序的一组节点的一部分,即Kubernetes集群。容器化应用程序将应用程序及其依赖项和一些必要的服务(取决于如此容器化的应用程序)打包。容器化应用程序通常比虚拟机更轻量、更灵活。通过这种方式,容器化应用程序的Kubernetes集群允许此类应用程序更容易移动和管理。
一旦一个数据对象120A、120B、120C已经被复制到其所有已知目标位置,则缓存管理器140可以删除这个数据对象120A、120B、120C。作为示例,根据上述示例,一个数据对象120A被排队成复制到目标位置130A和130C。一旦一个数据对象120A已经被复制到目标位置130A和130C,则缓存管理器140可以从缓存110中删除这个数据对象120A。
现在参考图2,图2是华为云环境中多个数据项的备份和复制系统200的示例。应注意,虽然图2是特定于华为云环境的,但特定元素是其在其它云环境(作为非限制性示例,AWS、Microsoft Azure、Google云平台等)中对应元素的示例。例如,图2可以图示一种特定类型的消息队列(即,Kafka),然而,应当理解,这种特定类型的消息队列是示例性的,并且可以使用任何其它适当的消息队列应用。
第一对象存储器210A具有多个节点220A、220B、……、220n(其中‘n’,如本描述中所使用,表示某个正整数,且不是14)。数据对象120A、120B、120C可以存储(或在其被创建之后存储)在节点220A、220B、……、220n中的对象存储器(OpenShift容器存储器(openShiftcontainer storage,OCS))225中,该对象存储器将数据作为对象,即单个数据单元和相关联元数据(例如访问策略)来管理。数据对象通常由某种唯一的数据对象ID标识。
当在多个节点220A、220B、……、220n之一中创建数据对象(对应于上文参考图1描述的数据对象120A、120B、120C),更新索引层230,以便索引相关信息(至少新创建的数据对象的位置)。数据对象被写入到日志设备,该日志设备在图2中表示为存储在持久层250中的PLog 240。
当索引层230被更新为新创建的数据对象已被添加到第一对象存储器210A时,索引层230通过消息服务(messaging service,MSG SVC)235通知消息队列,例如Kafka消息队列260。Kafka是一个分布式事件存储和流处理平台。Kafka提供了一个统一、高吞吐量、低延迟的平台,用于处理实时数据馈送。Kafka使用基于二进制传输控制协议(transmissioncontrol Protocol,TCP)的协议,该协议针对效率进行了优化,并依赖于“消息集”提取,该“消息集”提取将消息自然地分组在一起,以减少网络往返的开销。Kafka的目标是提供大型网络数据包、大型顺序磁盘操作、连续内存块、将突发的随机消息写入流转换为线性写入。
待复制到目标位置(例如,图1的130A)的数据对象(例如,图1的120A)在Kubernetes(K8s)集群(其可以是多个Kubernetes集群中的一个)270中复制。
复制管理器280从Kafka消息队列260接收待复制的数据对象的列表。复制管理器280确定哪个数据移动器(data mover,DMS)290会将每个待复制的对象复制到目标位置(例如,图1的目标位置130A、130B、130C)。数据移动器290可以与图1的数据移动器150相同或相似。如上所述,参考图1,缓存管理器140针对每个目标位置(例如,图1的目标位置130A、130B、130C)创建任务,但同一复制节点270将针对每个不同的任务复制相同的对象。数据移动器290从PLog设备240读取数据对象,例如图1的数据对象120A、120B、120C。在典型系统中,当数据移动器290从PLog设备240读取对象时,同一数据移动器290将数据对象120A、120B、120C(图1)发送到所有目标位置130A、130B、130C(图1)。在这种情况下,如果目标具有非常不同的频带宽度(如图1所示),则数据移动器可能会在将对象移动到所有位置130A、130B、130C(图1)时减速,复制速度将降低到最慢链路的速度(在图1的示例中为50Mbps)。或者,每个目标位置130A、130B、130C(图1)可以由另一任务管理。在这种情况下,每次需要复制数据对象120A、120B、120C(图1)中的一个时,将从PLog设备240读取该数据对象,这增加PLog设备240上的负载。这样,即使当目标位置130A、130B、130C(图1)的带宽彼此相似时,也需要从PLog设备240多次读取数据对象120A、120B、120C(图1)。
提供了缓存算法来管理缓存295,该缓存可以与图1的缓存150相同或相似。可以使用最近最少使用(least recently used,LRU)缓存淘汰算法,使得数据对象120A、120B、120C按使用顺序组织在缓存295中。在LRU中,顾名思义,当缓存接近满时,最长时间未使用的数据对象将从缓存中淘汰。然而,由于每个数据对象120A、120B、120C将复制的次数是已知的,因此实现了上面参考图1描述的用于缓存管理的方法和系统。
例如,可以调用两个复制任务来复制数据对象120A、120B、120C。如上所述,由于带宽考虑,两个复制任务中的第一个的速度可能是两个复制任务中的第二个的速度的两倍。由于缓存295的容量是有限的,因此在任何给定时间,只有有限数量的数据对象120A、120B、120C可以保存在缓存295中。为了举例,假设在任何给定时间,只有十个数据对象可以保存在缓存295中。此外,假设两个复制任务中的第一个的速度是两个复制任务中的第二个的速度的两倍。因此,当两个复制任务中的第一个复制第二十个数据项时,两个复制任务中的第二个复制第十个数据项。
因此,缓存算法会将接下来将读取的数据对象120A、120B、120C(图1)保留在缓存295中。当缓存295已满时,将删除一个不读取的数据对象120A、120B、120C。如果当缓存已满时,缓存295中不存在这样的数据对象120A、120B、120C,则将删除将最后复制的数据对象120A、120B、120C。如果所述PLog设备240是所有PLog设备240中最少使用的PLog设备240,则从缓存295中删除的数据对象120A、120B、120C也可以从所述数据对象120A、120B、120C所驻存的PLog设备240中删除。
由于PLog设备240通常存储在硬盘驱动器(hard disk drive,HDD)上,因此从PLog设备240的下一次读取将配置为依序的。具体来说,数据对象120A、120B、120C可以依序存储在缓存295中,使得从缓存295的读取不需要被分段。
如果接下来将复制的数据对象120A、120B、120C没有依序存储,则可以在数据对象120A、120B、120C复制之前从它们的当前位置预取这些数据对象,以便它们可以在复制之前依序放置。
回到图2的解释,数据对象120A、120B、120C传输是通过第一网络网关297进行的。第一网络网关297通常可以包括通过将通信从一个协议转换到另一个协议来连接不同网络的设备或节点。然后,数据对象通过网络301发送到第二对象存储器210B、第三对象存储器210C等。
为了便于描述,下面将在此描述第二对象存储器210B。
在第二网络网关397处接收传输的数据对象120A、120B、120C。通常,第二对象存储器210B中的项将标记为比其在第一对象存储器210A中的对应项大一百(100)的数字,因此,例如,第一对象存储器210A具有第一网络网关297,第二对象存储器210B具有对应的第二网络网关397。类似地,此类项将描述为“第二”此类项,即使此类项中的“第一”(即,在第一对象存储器210A中)没有明确地指定为“第一”。
第二Kubernetes(K8s)集群(其可以是多个Kubernetes集群中的一个)370包括第二数据移动器(data mover,DMS)390和第二复制管理器380。第二数据移动器390将接收到的数据对象120A、120B、120C从第二Kubernetes(K8s)集群370移动到对象存储器320(其可以是第二对象存储器210B的几个未标记对象存储节点之一)。
复制的数据对象120A、120B、120C由第二数据移动器390移动到第二OCS 325。接收到的数据对象在第二索引层335,即在第二对象存储器210B的索引层中索引。复制的数据对象120A、120B、120C可以存储在第二持久层350中的第二PLog设备340中。
另一方面,对象存储器将数据作为单个数据单元和相关联元数据(例如访问策略)这样的对象来管理。对象由某种唯一ID标识。
现在参考图3,图3是图1和2中描述的系统和装置的操作方法的简化流程图。在步骤410中,将多个数据对象存储在缓存中,多个数据对象是待复制到多个不同的已知目标位置的数据对象。例如,多个数据对象可以与图1的多个数据对象120A、120B、120C相同或相似。缓存可以与图1的缓存110和图2的缓存295相同或相似。多个不同的已知目标位置可以与图1的目标位置目标位置130A、130B、130C和/或图2的第二对象存储器210B和第三对象存储器210C相同或相似。
在步骤420,缓存管理器确定缓存中接下来将复制的第一数据对象。缓存管理器可以与图1的缓存管理器140相同或相似。在步骤430,缓存管理器跟踪多个数据对象中的哪些数据对象将复制到多个不同目标位置中的哪些已知目标位置。在步骤440,将第一数据对象保留在缓存中。在步骤450,当缓存已满时,删除不要复制的第二数据对象和将最后复制的第三数据对象中的一个。数据对象的每次复制由不同的任务执行。
预计在本申请的专利有效期内,将开发许多相关的数据存储技术,本申请的术语范围旨在先验地包括所有这些新技术。
术语“包括(comprises/comprising/includes/including)”、“具有”及其共轭词表示“包括但不限于”。
术语“由……组成”表示“包括并限于”。
术语“基本上由……组成”表示组合物、方法或结构可以包括额外的成分、步骤和/或部分,但前提是额外的成分、步骤和/或部分不会实质性地改变所要求保护的组合物、方法或结构的基本和新颖特性。
除非上下文另有明确说明,否则本文所使用的单数形式“一个(a/an)”和“所述(the)”包括复数含义。例如,术语“数据对象”或“至少一个数据对象”可以包括多个数据对象。
在本申请中,本发明的各种实施例可以范围格式呈现。应理解,范围格式的描述仅为了方便和简洁起见,并且不应该被解释为对本发明范围的固定限制。因此,对范围的描述应被认为是已经具体地公开所有可能的子范围以及所述范围内的单独数值。例如,对于例如从1到6的范围的描述应被视为已具体公开了从1到3、从1到4、从1到5、从2到4、从2到6、从3到6等的子范围以及该范围内的单独数字例如1、2、3、4、5和6。不论范围有多广,这都适用。
当此处指出一个数字范围时,表示包括了在指出的这个范围内的任意所列举的数字(分数或整数)。短语“在第一个所指示的数和第二个所指示的数范围内”以及“从第一个所指示的数到第二个所指示的数范围内”和在这里互换使用,表示包括第一个和第二个所指示的数以及二者之间所有的分数和整数。
应了解,为简洁起见在单独实施例的上下文中描述的本发明的某些特征还可以组合提供于单个实施例中。相反地,为简洁起见在单个实施例的上下文中描述的本发明的各个特征也可以单独地或以任何合适的子组合或作为本发明的任何其它所述实施例提供。在各种实施例的上下文中描述的某些特征不应当被认为是这些实施例的基本特征,除非在没有这些元件的情况下实施例是不可操作的。
虽然本发明已经结合其具体实施例进行了描述,但很明显许多替代方案、修改和变化对本领域技术人员来说是显而易见的。因此,本发明是为了涵盖属于所附权利要求书的精神和广泛范围内的所有这类替代方案、修改和变化。
本申请人的目的是,本说明书中提及的所有出版物、专利和专利申请书都通过全文引用结合在本说明书中,如同每个单独的出版物、专利或专利申请书在提及要通过引用结合在本文中时被具体和单独指出。此外,对本申请的任何参考的引用或识别不可当做是允许这样的参考在现有技术中优先于本发明。对于章节标题而言,它们不应当被解释为必然的限制。此外,本申请的一个或多个任何优先权文件通过全文引用并入本文。
Claims (24)
1.一种设备,其特征在于,包括:
缓存;
包括在所述缓存中的多个数据对象,所述多个数据对象将复制到多个不同的已知目标位置;以及
缓存管理器,用于:
确定所述缓存中接下来将复制的第一数据对象,并将所述第一数据对象保留在所述缓存中;
跟踪所述多个数据对象中的哪些数据对象将复制到所述多个不同目标位置中的哪些所述已知目标位置;并且
当所述缓存已满时,删除以下之一:不要复制的第二数据对象和将最后复制的第三数据对象;
其中,数据对象的每次复制由不同的任务执行。
2.根据权利要求1所述的设备,其特征在于,所述多个数据对象中的每个数据对象被写入到日志设备。
3.根据权利要求2所述的设备,其特征在于,所述日志设备存储在持久层中。
4.根据权利要求2或3所述的设备,其特征在于,数据移动器从所述日志设备读取第一数据对象数据,并将所述第一数据对象数据复制到复制站点。
5.根据权利要求1至4中任一项所述的设备,其特征在于,所述多个数据对象中的每个数据对象在索引层中索引。
6.根据权利要求1至5中任一项所述的设备,其特征在于,将在所述第一数据对象之后读取的数据对象与所述第一数据对象连续存储在所述缓存中。
7.根据权利要求1至6中任一项所述的设备,其特征在于,如果将在所述第一数据对象之后读取的第四数据对象不在所述缓存中,则所述缓存管理器预取所述第四数据对象。
8.根据权利要求1至7中任一项所述的设备,其特征在于,所述多个数据对象的复制发生在Kubernetes集群中。
9.根据权利要求1至8中任一项所述的设备,其特征在于,所述缓存管理器用于在所述缓存已满时删除最新接收到的数据对象。
10.根据权利要求1至9中任一项所述的设备,其特征在于,还包括,当所述多个数据对象中的一个数据对象已复制到其所有已知目标位置时,所述缓存管理器删除所述一个数据对象。
11.根据权利要求1至10中任一项所述的设备,其特征在于,所述缓存管理器删除所述多个数据对象中依序写入在硬盘上且需要逐个发送的至少两个数据对象。
12.根据权利要求11所述的设备,其特征在于,还包括,在删除所述多个数据对象中的至少两个数据对象之后,所述缓存管理器从硬盘驱动器获取所述多个数据中的所述至少两个数据对象。
13.一种方法,其特征在于,所述方法包括:
将多个数据对象存储在缓存中,所述多个数据对象将复制到多个不同的已知目标位置;
缓存管理器确定所述缓存中接下来将复制的第一数据对象;
所述缓存管理器跟踪所述多个数据对象中的哪些数据对象将复制到所述多个不同目标位置中的哪些所述已知目标位置;
将所述第一数据对象保留在所述缓存中;以及
当所述缓存已满时,删除以下之一:不要复制的第二数据对象或将最后复制的第三数据对象;
其中,数据对象的每次复制由不同的任务执行。
14.根据权利要求13所述的方法,其特征在于,所述多个数据对象中的每个数据对象被写入到日志设备。
15.根据权利要求14所述的方法,其特征在于,数据移动器从所述日志设备读取所述第一数据对象数据,并将所述第一数据对象数据复制到复制站点。
16.根据权利要求14所述的方法,其特征在于,所述日志设备存储在持久层中。
17.根据权利要求13至16中任一项所述的方法,其特征在于,所述多个数据对象中的每个数据对象在索引层中索引。
18.根据权利要求13至17中任一项所述的方法,其特征在于,将在所述第一数据对象之后读取的数据对象与所述第一数据对象连续存储在所述缓存中。
19.根据权利要求13至18中任一项所述的方法,其特征在于,如果将在所述第一数据对象之后读取的第四数据对象不在所述缓存中,则所述缓存管理器预取所述第四数据对象。
20.根据权利要求13至19中任一项所述的方法,其特征在于,所述多个数据对象的复制发生在Kubernetes集群中。
21.根据权利要求13至20中任一项所述的方法,其特征在于,还包括所述缓存管理器在所述缓存已满时删除最新接收到的数据对象。
22.根据权利要求14所述的方法,其特征在于,所述缓存管理器确定从所述持久层读取数据对象的成本,并且当删除所述多个数据对象中的一个数据对象时,所述缓存管理器将首先删除从所述持久层读取时成本最低的数据对象。
23.根据权利要求13至22中任一项所述的方法,其特征在于,还包括,当所述多个数据对象中的一个数据对象已复制到其所有已知目标位置时,所述缓存管理器删除所述一个数据对象。
24.一种计算机可读存储介质,其特征在于,存储有代表计算机可执行的软件的数据,所述软件包括用于以下操作的指令:
将多个数据对象存储在缓存中,所述多个数据对象将复制到多个不同位置;
缓存管理器确定所述缓存中接下来将复制的第一数据对象;
将所述第一数据对象保留在所述缓存中;并且
当所述缓存已满时,删除以下之一:不要复制的第二数据对象或将最后复制的第三数据对象;
其中,数据对象的每次复制由不同的任务执行。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/EP2022/064385 WO2023227224A1 (en) | 2022-05-27 | 2022-05-27 | Method and system for smart caching |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117546154A true CN117546154A (zh) | 2024-02-09 |
Family
ID=82214190
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280036130.3A Pending CN117546154A (zh) | 2022-05-27 | 2022-05-27 | 用于智能缓存的方法和系统 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN117546154A (zh) |
WO (1) | WO2023227224A1 (zh) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8762642B2 (en) * | 2009-01-30 | 2014-06-24 | Twinstrata Inc | System and method for secure and reliable multi-cloud data replication |
US20150074222A1 (en) * | 2013-09-12 | 2015-03-12 | Guanfeng Liang | Method and apparatus for load balancing and dynamic scaling for low delay two-tier distributed cache storage system |
US10452619B1 (en) * | 2014-12-05 | 2019-10-22 | EMC IP Holding Company LLC | Decreasing a site cache capacity in a distributed file system |
-
2022
- 2022-05-27 WO PCT/EP2022/064385 patent/WO2023227224A1/en active Application Filing
- 2022-05-27 CN CN202280036130.3A patent/CN117546154A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
WO2023227224A1 (en) | 2023-11-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9513817B2 (en) | Free space collection in log structured storage systems | |
US9672267B2 (en) | Hybrid data management system and method for managing large, varying datasets | |
CA2910211C (en) | Object storage using multiple dimensions of object information | |
Peng et al. | VDN: Virtual machine image distribution network for cloud data centers | |
US9020984B1 (en) | Methods and apparatus for optimizing resource utilization in distributed storage systems | |
US9191437B2 (en) | Optimizing data storage among a plurality of data storage repositories | |
US11561930B2 (en) | Independent evictions from datastore accelerator fleet nodes | |
US8996799B2 (en) | Content storage system with modified cache write policies | |
KR100979750B1 (ko) | 분산 저장 시스템에서 파일을 관리하는 장치 및 방법 | |
US20140250073A1 (en) | Asynchronous namespace maintenance | |
US9313270B2 (en) | Adaptive asynchronous data replication in a data storage system | |
US9189494B2 (en) | Object file system | |
CN104184812B (zh) | 一种基于私有云的多点数据传输方法 | |
CN103037004A (zh) | 云存储系统操作的实现方法和装置 | |
US10452619B1 (en) | Decreasing a site cache capacity in a distributed file system | |
CN109522283A (zh) | 一种重复数据删除方法及系统 | |
CN110603518A (zh) | 复合聚合架构 | |
CN109582213A (zh) | 数据重构方法及装置、数据存储系统 | |
US20110252217A1 (en) | Capping a number of locations referred to by chunk references | |
CN108431815A (zh) | 在处理器网格中的分布式数据的去重复数据 | |
US20230036075A1 (en) | Indicating extents of tracks in mirroring queues based on information gathered on tracks in extents in cache | |
CN117546154A (zh) | 用于智能缓存的方法和系统 | |
KR20150061314A (ko) | 네트워크 분산 파일 시스템 기반 iSCSI 스토리지 시스템에서의 장애 복구 방법 및 시스템 | |
Zhang et al. | Oasis: Controlling Data Migration in Expansion of Object-based Storage Systems | |
CN109416663A (zh) | 用于最小化存储系统和其设备内的ssd中的碎片化的方法 |
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 |