CN104050098A - 优化的数据去重复的动态高速缓存模块选择的方法和系统 - Google Patents
优化的数据去重复的动态高速缓存模块选择的方法和系统 Download PDFInfo
- Publication number
- CN104050098A CN104050098A CN201410093753.1A CN201410093753A CN104050098A CN 104050098 A CN104050098 A CN 104050098A CN 201410093753 A CN201410093753 A CN 201410093753A CN 104050098 A CN104050098 A CN 104050098A
- Authority
- CN
- China
- Prior art keywords
- module
- cache module
- data
- different
- request
- 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.)
- Granted
Links
Classifications
-
- 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/0866—Addressing 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
- G06F12/0871—Allocation or management of cache space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- 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/0808—Multiuser, multiprocessor or multiprocessing cache systems with cache invalidating means
-
- 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/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
- G06F12/0833—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means in combination with broadcast means (e.g. for invalidation or updating)
-
- 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/0844—Multiple simultaneous or quasi-simultaneous cache accessing
- G06F12/0855—Overlapped cache accessing, e.g. pipeline
-
- 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/0888—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
-
- 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/0891—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
-
- 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/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/128—Replacement control using replacement algorithms adapted to multidimensional cache systems, e.g. set-associative, multicache, multiset or multilevel
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/215—Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
- G06F3/0641—De-duplication techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- 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/12—Replacement control
-
- 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/26—Using a specific storage system architecture
- G06F2212/264—Remote server
-
- 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/28—Using a specific disk cache architecture
- G06F2212/283—Plural cache memories
-
- 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/31—Providing disk cache in a specific location of a storage system
- G06F2212/314—In storage network, e.g. network attached cache
-
- 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/62—Details of cache specific to multiprocessor cache arrangements
- G06F2212/621—Coherency control relating to peripheral accessing, e.g. from DMA or I/O device
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)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Quality & Reliability (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明的实施例提供用于针对优化的数据去重复的动态高速缓存模块选择的方法、系统和计算机程序产品。在本发明的实施例中,提供用于针对优化的数据去重复的动态高速缓存模块选择的方法。该方法包括接收检索数据的请求以及分类该请求。该方法还包括从每个具有不同配置的多个不同的高速缓存模块中识别与请求的类别相关联的特定的高速缓存模块。最后,该方法包括在识别的高速缓存模块中对数据去重复。
Description
技术领域
本发明涉及数据去重复,并且更具体地涉及通过字节高速缓存的数据去重复。
背景技术
数据去重复是指通过消除数据中的冗余来减小数据流。数据去重复的动作可以减小通过通信信道传输的流量的量,从而提高在通过通信信道交换数据的网络实体之间的通信的响应性。数据去重复在技术上可以以几种不同的方式执行,包括数据压缩、△编码、代理缓存和数据冗余消除。
数据压缩通过用哈希值代表重复字节来在每对象的基础上去除冗余内容。在△编码中,技术仅可应用于基于对象的Web,Web对象的类似部分可以用哈希值代表。代理高速缓存,如同数据压缩和△编码,是基于对象的方法,该方法通过存储随后可能潜在地被引用的对象来执行对象等级的去重复。数据冗余消除,也称为字节高速缓存,不同于数据压缩、△编码和代理高速缓存在于字节高速缓存操作在字节等级并且不仅仅限于Web对象和超文本传输协议(HTTP)。
在字节高速缓存中,编码器和解码器的组合跨边带信道一致动作,以识别在编码器内字节流中的重复字节的区域并且用哈希值代替这些区域,从而在解码器重构为完全字节流。由字节高速缓存提供的精度可以提供去重复的最有效形式,但是不是无需实质的计算和资源消耗。
具体地,作为数据处理系统中的中间件的字节高速缓存的使用可以导致不期望的过多的存储器利用,并且处理循环的过利用造成在字节高速缓存点的吞吐量的瓶颈。此外,到字节高速缓存依赖于合适的指纹大小选择的程度,对于不同应用的数据流的字节高速缓存的利用可以仅对于一些应用有效,而对其他无效,其中指纹大小选择在对于来自不同应用源的数据的有效性方面不同。最后,字节高速缓存的有效性中的很多在字节流缺少冗余时,诸如加密字节流,通过字节高速缓存的无效被减弱。
发明内容
本发明实施例致力于关于用于数据去重复的字节高速缓存的技术领域的缺陷,并且提供新颖和非显而易见的、用于针对优化的数据去重复的动态高速缓存模块选择的方法、系统和计算机程序产品。在本发明实施例中,提供用于针对优化的数据去重复的动态高速缓存模块选择的方法。该方法包括接收检索数据的请求以及分类该请求。该方法还包括从每个具有不同配置的多个不同的高速缓存模块中识别与请求的类别相关联的特定的高速缓存模块。最后,该方法包括在识别的高速缓存模块中对数据去重复。
在实施例的一方面,根据对于高速缓存模块中的不同高速缓存模块相关不同请求的表格分类请求,例如表格使针对不同请求的每个的协议和网络地址与高速缓存模块中的对应高速缓存模块相关。该表格可以包括通过以下确定的条目:处理在高速缓存模块的每个中用于不同请求的每个的训练数据和使不同请求的每个与模块中的最优的一个相关。在实施例的另一方面,高速缓存模块包括每个配置有不同指纹大小的字节高速缓存模块。在实施例的另一方面,高速缓存模块另外地包括对象高速缓存模块。在实施例的又一方面,当请求指示数据是加密的时忽略数据的去重复。
在本发明的另一实施例中,数据去重复数据处理系统配置用于针对优化的数据去重复的动态高速缓存模块选择。该系统包括通过计算机通信网络和布置在服务器群和客户端计算机之间并在主机计算机的存储器中执行的中间件通信地耦接到不同客户端计算机的服务器群。该中间件包括不同的高速缓存模块,每个高速缓存模块具有不同的配置。最后,该系统包括调度程序,以从不同的高速缓存模块中识别与请求的分类关联的特定高速缓存模块,并且在识别的高速缓存模块中路由用于去重复的数据,该调度程序包括在主机计算机的存储器中执行并且能够分类检索来自服务器群的数据的请求的程序代码。
本发明的另外的方面将部分在随后的描述中阐述,并且部分从描述中将是显然的,或者通过本发明的实施可以认识到。本发明的各方面将通过在权利要求书中特别指出的元件和组合来实现和获得。要理解上述一般描述和以下详细描述二者都仅仅是示例性的和说明性的,并且不限制如权利要求请求保护的本发明。
附图说明
合并入并构成本说明书部分的附图图示本发明的实施例,并且与描述一起用于说明本发明的原理。在此图示的实施例目前是优选的,然而能理解,本发明不限于所示的精确安排和手段,其中
图1是用于针对优化的数据去重复的动态高速缓存模块选择的过程的绘画图示;
图2是配置用于针对优化的数据去重复的动态高速缓存模块选择的数据去重复数据处理系统的示意图示;以及
图3是图示用于针对优化的数据去重复的动态高速缓存模块选择的过程的流程图。
具体实施方式
本发明的实施例提供针对优化的数据去重复的动态高速缓存模块选择。根据本发明的实施例,入站(inbound)字节流可以被分类并与预定分类的表格比较,该预定分类使特殊的分类与具有不同的指纹大小的不同配置的字节流高速缓存器相关。可以根据入站字节流的分类和表格选择字节流高速缓存器中的特定的一个,并且可以在选择的字节流高速缓存器中对于去重复路由字节流。可选地,代理高速缓存器也可以包括在表格中,以便特定分类的字节流可以路由到用于去重复的代理高速缓存器。作为进一步的选择,对于特定分类的字节流,诸如加密的字节流,可以完全忽略去重复。
在进一步的图示中,图1绘画地示出用于针对优化的数据去重复的动态高速缓存模块选择的过程。如图1中所示,数据源120可以通过定位请求的字节流140响应于通过网络130来自客户端110的数据请求。优化的数据去重复逻辑180可以例如按照客户端110中的消费应用、客户端110中的消费应用的地址、以及通过其访问消费应用的客户端110中的端口来分类字节流140。
其后,优化的数据去重复逻辑180可以选择与分类相关联的、若干不同配置的编码去重复模块160中的特定的一个,以对字节流140执行字节高速缓存。结果的字节高速缓存可以生成通过边带信道提供给若干不同配置的解码去重复模块170中的对应的一个的已去重复的字节流150。最后,解码去重复模块170中的对应的一个按照已去重复的字节流150动作以再生字节流140用于传送到客户端110。
关于图1描述的过程可以在数据去重复数据处理系统中实现。在进一步的图示中,图2示意性地示出配置用于针对优化的数据去重复的动态高速缓存模块选择的数据去重复数据处理系统。该系统可以包括服务器群230,其包括管理通过一个或多个服务器计算机来自数据存储的数据的存储和检索并且经由通过服务器网关250的计算机通信网络220通信地耦接到数据消费客户端210的数据存储。值得注意的,优化的数据去重复中间件可以布置在服务器群230和客户端210之间。
中间件可以包括多个不同的编码高速缓存模块270A、270B、270C,每个在主机计算机的存储器中执行并且通信地链接到对应的解码高速缓存模块280A、280B、280C。中间件还可以包括配置为按照Web对象动作的代理高速缓存器270N、280N。最后,每对编码和解码高速缓存模块270A、280A、270B、280B、270C、280C可以是根据不同指纹大小每个不同配置的字节高速缓存器。编码高速缓存模块270A、270B、270C的每个可以共享相同的存储器空间。重要的,调度程序300可以在耦接到服务器网关250的主机计算机的存储器中执行。调度程序300可以包括能够通过客户端210之一中的应用分类对于服务器群230中的数据的请求。
调度程序300的程序代码还可以能够选择编码高速缓存模块270A、270B、270之一来基于对于数据的请求的分类执行数据去重复(或者代理高速缓存270N、280N)。在这点上,在实施例的一方面,调度程序300可以查阅使不同类别与编码高速缓存模块270A、270B、270C中的不同编码高速缓存模块相关的表格。类别例如可以包括与请求相关联的应用的身份、应用的网络地址、用于与应用通信的端口、或者其任何组合。
表格本身可以根据训练数据构造,训练数据根据不同的协议从不同的服务器提交到编码高速缓存模块270A、270B、270C中的每个。例如可以对于吞吐量、处理器和存储器利用以及响应时间(仅指出几个例子)来监视和测量编码高速缓存模块270A、270B、270C中的每个的性能度量。测量的度量可以提交给性能函数,例如对于不同资源的利用加权不同的度量然后将加权的结果合计到总合度量的函数。用于特定训练数据集合的总合度量可以与编码高速缓存模块270A、270B、270C中的不同编码高速缓存模块中的用于相同训练数据集合的其他总合度量比较。以该方式,可以用对应于分类的编码高速缓存模块270A、270B、270C中的最优的一个来构造表格。可选地,编码高速缓存模块270A、270B、270C的性能可以监视并反馈到调度程序300,以便可以根据监视的编码高速缓存模块270A、270B、270C的性能改写表格。
一旦调度程序300已经选择编码高速缓存模块270A、270B、270C中的特定的一个,则通过客户端210中的请求客户端中的应用的被请求数据的字节流可以由编码高速缓存模块270A、270B、270C中的选择的一个来去重复,并且通过边带信道传送到解码高速缓存模块280A、280B、280C中的对应一个。解码高速缓存模块280A、280B、280C中的对应一个可以重构已去重复的字节流,并且可以经由交换机通过网关/防火墙260将重构的字节流传送到请求应用。
在调度程序300的操作的又一个图示中,图3是图示用于针对优化的数据去重复的动态高速缓存模块选择的过程的流程图。在框310开始,字节流可以从服务器群接收用于通过计算机通信网络传递到请求应用。在判断框320,可以确定请求的字节流是否以及被调度程序300分类。如果没有,在框330字节流可以根据用于传送请求的协议、传送地址的服务器的服务器地址和与请求应用相关联的服务器的端口来分类。随后,在框340分类可以返回到调度程序。
在判断框350,可以确定字节流是否要去重复。在这点上,如果分类指示请求的协议不宜于高效去重复,则在框360,可以忽略高速缓存,并且在框390过程可以结束。否则,在框370可以根据分类选择特定的高速缓存模块,并且在框380字节流可以路由到选择的高速缓存模块。最后,在框390过程可以结束。
所属技术领域的技术人员知道,本发明的各个方面可以实现为系统、方法或计算机程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、驻留软件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明的各个方面还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
上面根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明。附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
还将理解,可以通过计算机程序指令来实现流程图图示和/或框图的每个框以及流程图图示和/或框图中的各框的组合。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器以产生一种机器,以便经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现流程图和/或框图的一个或多个框中规定的功能/动作的装置。
这些计算机程序指令还可以存储在指引计算机、其他可编程数据处理装置、或其他设备以特定方式工作的计算机可读介质中,以便存储在计算机可读介质中的指令产生一种包括实现流程图和/或框图的一个或多个框中规定的功能/动作的指令的制造品。计算机程序指令还可以加载到计算机、其他可编程数据处理装置、或其他设备上以使得在计算机、其他可编程装置、或其他设备执行一系列操作步骤从而产生计算机实现的过程,以便在计算机或其他编程装置上执行的指令提供用于实现流程图和/或框图的一个或多个框中规定的功能/动作的过程。
最后,在此使用的术语仅用于描述特定实施例的目的,并且不意图限制本发明。如在此使用的,单数形式“一”、“一个”和“这个”意图也包括复数形式,除非上下文中另外清楚地指示。将进一步理解术语“包括”和/或“包含”,当在本说明书中使用时,规定声明的特征、整数、步骤、操作、元件、和/或组件的存在,但是不排除一个或多个其他特征、整数、步骤、操作、元件、组件、和/或上述的组的存在或增加。
权利要求中的所有装置或步骤加功能元件的对应结构、材料、动作和等价物意图包括用于与如具体请求保护的其他请求保护的元件组合执行功能的任何结构、材料、或动作。已经为了说明和描述的目的呈现本发明的说明书,但是不意图以公开的形式穷举或限制本发明。许多修改和变化对本领域的技术人员将是显然的,而不背离本发明的范围和精神。选择和描述实施例以便最好地说明本发明的原理和实践应用,并且能使本领域的技术人员中的其他人针对具有各种修改的各种实施例来理解本发明,如适合于预期的特定使用。
因此已经详细描述本申请的发明并且引用其实施例,修改和变化是可能的而不脱离权利要求限定的发明的范围将是显然的。
Claims (18)
1.一种用于针对优化的数据去重复的动态高速缓存模块选择的方法,该方法包括:
接收检索数据的请求;
分类所述请求;
从每个具有不同配置的多个不同高速缓存模块中识别与所述请求的类别相关联的特定高速缓存模块;以及
在识别的高速缓存模块中对数据去重复。
2.如权利要求1的方法,其中根据对于所述高速缓存模块中的不同高速缓存模块相关不同请求的表格来分类所述请求。
3.如权利要求1的方法,其中所述高速缓存模块包括每个配置有不同指纹大小的字节高速缓存模块。
4.如权利要求3的方法,其中所述高速缓存模块还包括对象高速缓存模块。
5.如权利要求2的方法,其中所述表格将用于不同请求的每个的协议和网络地址与所述高速缓存模块中的对应高速缓存模块相关。
6.如权利要求1的方法,其中当所述请求指示数据是加密的时,忽略数据的去重复。
7.如权利要求2的方法,其中所述表格包括通过以下确定的条目:处理在所述高速缓存模块的每个中用于不同请求的每个的训练数据和使不同请求的每个与模块中的最优模块相关。
8.如权利要求7的方法,进一步包括通过以下步骤构造所述表格:
根据不同的协议从不同的服务器提交所述训练数据到所述模块中的每个,
监视所述模块的每个的性能度量,并且对于吞吐量、处理器和存储器利用与响应时间测量所述性能,
提交测量的度量给性能函数,所述函数对于不同资源的利用加权不同的度量,然后将加权的度量合计到总合度量,
用于特定训练数据集合的总合度量与在所述模块中的不同模块中用于所述训练数据集合的其他总合度量比较,以及
选择对应于用于所述训练数据的分类的所述模块中的最优模块。
9.一种配置用于针对优化的数据去重复的动态高速缓存模块选择的数据去重复数据处理系统,该系统包括:
通过计算机通信网络通信地耦接到数据存储和多个客户端计算机的服务器;
布置在所述服务器和所述客户端计算机之间并在主机计算机的存储器中执行的中间件,所述中间件包括多个高速缓存模块,每个高速缓存模块具有不同的配置;以及
调度程序,包括在主机计算机的存储器中执行并且能够分类检索来自所述服务器的所述数据存储的请求的程序代码,以从不同的高速缓存模块中识别与所述请求的分类相关联的特定高速缓存模块,并且在识别的高速缓存模块中路由用于去重复的数据。
10.如权利要求9的系统,其中根据对于所述高速缓存模块中的不同高速缓存模块相关不同请求的表格来分类所述请求。
11.如权利要求9的系统,其中所述高速缓存模块包括每个配置有不同指纹大小的字节高速缓存模块。
12.如权利要求11的系统,其中所述高速缓存模块还包括对象高速缓存模块。
13.如权利要求12的系统,其中所述对象高速缓存模块压缩对象。
14.如权利要求10的系统,其中所述表格将用于不同请求的每个的协议和网络地址与所述高速缓存模块中的对应高速缓存模块相关。
15.如权利要求9的系统,其中所述调度程序的所述程序代码响应于所述调度程序中的忽略所述请求引用的数据的去重复的指示,忽略所述数据的去重复。
16.如权利要求9的系统,其中所述表格包括通过以下确定的条目:处理在所述高速缓存模块的每个中用于不同请求的每个的训练数据和使不同请求的每个与模块中的最优模块相关。
17.如权利要求16的系统,其中通过以下步骤构造所述表格:
根据不同的协议从不同的服务器提交所述训练数据到所述模块中的每个,
监视所述模块的每个的性能度量,并且对于吞吐量、处理器和存储器利用与响应时间测量所述性能,
提交测量的度量给性能函数,所述函数对于不同资源的利用加权不同的度量,然后将加权的度量合计到总合度量,
将用于特定训练数据集合的总合度量与在所述模块中的不同模块中用于所述训练数据集合的其他总合度量比较,以及
选择对应于用于所述训练数据的分类的所述模块中的最优模块。
18.一种用于针对优化的数据去重复的动态高速缓存模块选择的系统,该系统包括:用于实现权利要求1-8中的任何权利要求的任何步骤的部件。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/800,289 | 2013-03-13 | ||
US13/800,289 US9298637B2 (en) | 2013-03-13 | 2013-03-13 | Dynamic caching module selection for optimized data deduplication |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104050098A true CN104050098A (zh) | 2014-09-17 |
CN104050098B CN104050098B (zh) | 2017-08-01 |
Family
ID=51502978
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410093753.1A Active CN104050098B (zh) | 2013-03-13 | 2014-03-13 | 优化的数据去重复的动态高速缓存模块选择的方法和系统 |
Country Status (2)
Country | Link |
---|---|
US (4) | US9298637B2 (zh) |
CN (1) | CN104050098B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104853212A (zh) * | 2015-05-05 | 2015-08-19 | 福州瑞芯微电子有限公司 | 一种视频解码器缓存高效率处理的装置及其方法 |
CN106663060A (zh) * | 2014-10-07 | 2017-05-10 | 谷歌公司 | 用于缓存线路去重的方法和系统 |
CN108513659A (zh) * | 2016-12-29 | 2018-09-07 | 谷歌有限责任公司 | 搜索和检索使用键控数据库维持的键控数据 |
WO2019127104A1 (zh) * | 2017-12-27 | 2019-07-04 | 华为技术有限公司 | 高速缓存中资源调整方法、数据访问方法及装置 |
CN110427391A (zh) * | 2018-04-28 | 2019-11-08 | 伊姆西Ip控股有限责任公司 | 确定重复数据的方法、设备和计算机程序产品 |
CN110659279A (zh) * | 2018-06-28 | 2020-01-07 | 北京金风科创风电设备有限公司 | 参数显示方法和装置、计算机可读存储介质 |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9298637B2 (en) * | 2013-03-13 | 2016-03-29 | International Business Machines Corporation | Dynamic caching module selection for optimized data deduplication |
US9690711B2 (en) * | 2013-03-13 | 2017-06-27 | International Business Machines Corporation | Scheduler training for multi-module byte caching |
US10776378B2 (en) | 2014-07-09 | 2020-09-15 | Oracle Interntional Corporation | System and method for use of immutable accessors with dynamic byte arrays |
US9880938B2 (en) * | 2014-09-26 | 2018-01-30 | Oracle International Corporation | System and method for compacting pseudo linear byte array |
US10324656B1 (en) * | 2016-07-29 | 2019-06-18 | EMC IP Holding Company LLC | Application-aware control for data services |
US20190044816A1 (en) * | 2017-08-04 | 2019-02-07 | Hewlett Packard Enterprise Development Lp | Filtering responses to discovery requests |
US10761945B2 (en) * | 2018-06-19 | 2020-09-01 | International Business Machines Corporation | Dynamically directing data in a deduplicated backup system |
US10838727B2 (en) * | 2018-12-14 | 2020-11-17 | Advanced Micro Devices, Inc. | Device and method for cache utilization aware data compression |
CN110134547B (zh) * | 2019-04-28 | 2023-08-18 | 平安科技(深圳)有限公司 | 一种基于中间件的重复数据删除方法和相关装置 |
CN114637777A (zh) * | 2022-02-17 | 2022-06-17 | 深圳市双合电气股份有限公司 | 一种前后台系统数据实时交换处理方法和系统 |
CN116957908B (zh) * | 2023-09-20 | 2023-12-15 | 上海登临科技有限公司 | 一种硬件处理架构、处理器以及电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102195877A (zh) * | 2010-03-18 | 2011-09-21 | 马维尔以色列(M.I.S.L.)有限公司 | 分组处理优化 |
US20120047328A1 (en) * | 2010-02-11 | 2012-02-23 | Christopher Williams | Data de-duplication for serial-access storage media |
CN102546817A (zh) * | 2012-02-02 | 2012-07-04 | 清华大学 | 集中式数据中心数据冗余消除方法 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8280926B2 (en) | 2003-08-05 | 2012-10-02 | Sepaton, Inc. | Scalable de-duplication mechanism |
US8086799B2 (en) | 2008-08-12 | 2011-12-27 | Netapp, Inc. | Scalable deduplication of stored data |
US9401967B2 (en) | 2010-06-09 | 2016-07-26 | Brocade Communications Systems, Inc. | Inline wire speed deduplication system |
US8694703B2 (en) | 2010-06-09 | 2014-04-08 | Brocade Communications Systems, Inc. | Hardware-accelerated lossless data compression |
US8930307B2 (en) | 2011-09-30 | 2015-01-06 | Pure Storage, Inc. | Method for removing duplicate data from a storage array |
US9703796B2 (en) | 2011-12-06 | 2017-07-11 | Brocade Communications Systems, Inc. | Shared dictionary between devices |
US9104582B1 (en) | 2011-12-29 | 2015-08-11 | Juniper Networks, Inc. | Optimized data storage |
WO2013152229A2 (en) * | 2012-04-04 | 2013-10-10 | 32Huawei Technologies Co., Ltd. | Systems and methods for selective data redundancy elimination for resource constrained hosts |
KR20150021117A (ko) | 2012-06-18 | 2015-02-27 | 액티피오 인크. | 강화형 데이터 관리 가상화 시스템 |
US20140115182A1 (en) | 2012-10-24 | 2014-04-24 | Brocade Communications Systems, Inc. | Fibre Channel Storage Area Network to Cloud Storage Gateway |
US20140201442A1 (en) | 2013-01-15 | 2014-07-17 | Lsi Corporation | Cache based storage controller |
US9298637B2 (en) * | 2013-03-13 | 2016-03-29 | International Business Machines Corporation | Dynamic caching module selection for optimized data deduplication |
US10089185B2 (en) | 2014-09-16 | 2018-10-02 | Actifio, Inc. | Multi-threaded smart copy |
-
2013
- 2013-03-13 US US13/800,289 patent/US9298637B2/en active Active
- 2013-10-22 US US14/059,959 patent/US9298638B2/en active Active
-
2014
- 2014-03-13 CN CN201410093753.1A patent/CN104050098B/zh active Active
-
2016
- 2016-03-11 US US15/068,535 patent/US9733843B2/en not_active Expired - Fee Related
-
2017
- 2017-06-16 US US15/626,057 patent/US10241682B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120047328A1 (en) * | 2010-02-11 | 2012-02-23 | Christopher Williams | Data de-duplication for serial-access storage media |
CN102195877A (zh) * | 2010-03-18 | 2011-09-21 | 马维尔以色列(M.I.S.L.)有限公司 | 分组处理优化 |
CN102546817A (zh) * | 2012-02-02 | 2012-07-04 | 清华大学 | 集中式数据中心数据冗余消除方法 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106663060A (zh) * | 2014-10-07 | 2017-05-10 | 谷歌公司 | 用于缓存线路去重的方法和系统 |
CN106663060B (zh) * | 2014-10-07 | 2019-11-19 | 谷歌有限责任公司 | 用于缓存线路去重的方法和系统 |
CN104853212A (zh) * | 2015-05-05 | 2015-08-19 | 福州瑞芯微电子有限公司 | 一种视频解码器缓存高效率处理的装置及其方法 |
CN104853212B (zh) * | 2015-05-05 | 2018-02-16 | 福州瑞芯微电子股份有限公司 | 一种视频解码器缓存高效率处理的装置及其方法 |
CN108513659A (zh) * | 2016-12-29 | 2018-09-07 | 谷歌有限责任公司 | 搜索和检索使用键控数据库维持的键控数据 |
CN108513659B (zh) * | 2016-12-29 | 2021-12-28 | 谷歌有限责任公司 | 搜索和检索使用键控数据库维持的键控数据 |
US11372946B2 (en) | 2016-12-29 | 2022-06-28 | Google Llc | Search and retrieval of keyed data maintained using a keyed database |
WO2019127104A1 (zh) * | 2017-12-27 | 2019-07-04 | 华为技术有限公司 | 高速缓存中资源调整方法、数据访问方法及装置 |
CN110427391A (zh) * | 2018-04-28 | 2019-11-08 | 伊姆西Ip控股有限责任公司 | 确定重复数据的方法、设备和计算机程序产品 |
CN110427391B (zh) * | 2018-04-28 | 2023-07-28 | 伊姆西Ip控股有限责任公司 | 确定重复数据的方法、设备和计算机程序产品 |
CN110659279A (zh) * | 2018-06-28 | 2020-01-07 | 北京金风科创风电设备有限公司 | 参数显示方法和装置、计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US10241682B2 (en) | 2019-03-26 |
US9733843B2 (en) | 2017-08-15 |
US9298637B2 (en) | 2016-03-29 |
CN104050098B (zh) | 2017-08-01 |
US20160224256A1 (en) | 2016-08-04 |
US9298638B2 (en) | 2016-03-29 |
US20140281262A1 (en) | 2014-09-18 |
US20140281258A1 (en) | 2014-09-18 |
US20170329531A1 (en) | 2017-11-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104050098A (zh) | 优化的数据去重复的动态高速缓存模块选择的方法和系统 | |
US20220188028A1 (en) | Computational data storage systems | |
US20210216385A1 (en) | Invoking external functions from a data system | |
US9516091B2 (en) | Web page script management | |
US20140067920A1 (en) | Data analysis system | |
US11816239B2 (en) | Privilege based access checks for query results | |
US10097582B2 (en) | Secure data redaction and masking in intercepted data interactions | |
US12032685B2 (en) | Logging from user-defined functions | |
US11792113B2 (en) | Information centric network dynamic compute orchestration | |
US9690711B2 (en) | Scheduler training for multi-module byte caching | |
US11038814B2 (en) | Establishing quality of service for internet of things devices | |
US9348790B2 (en) | Method for efficient use of content stored in a cache memory of a mobile device | |
US20160037509A1 (en) | Techniques to reduce bandwidth usage through multiplexing and compression | |
KR20190072619A (ko) | 정보 리소스들 상에서의 해시 기반 동적 제한 | |
TW201413468A (zh) | 交互用戶資料的方法和裝置 | |
KR102169717B1 (ko) | 컨텐츠 캐싱 방법 및 이를 위한 캐시 장치 | |
CN109891421B (zh) | 部署对信息资源上的内容元素的基于散列的动态限制的对策 | |
WO2024131083A1 (zh) | 一种数据处理方法、装置、电子设备、计算机存储介质及计算机程序产品 | |
KR20150015356A (ko) | 콘텐트 중심 네트워크 내의 콘텐트 스토어로부터 콘텐트를 전달하는 방법 및 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |