CN107179878B - 基于应用优化的数据存储的方法和装置 - Google Patents

基于应用优化的数据存储的方法和装置 Download PDF

Info

Publication number
CN107179878B
CN107179878B CN201610141381.4A CN201610141381A CN107179878B CN 107179878 B CN107179878 B CN 107179878B CN 201610141381 A CN201610141381 A CN 201610141381A CN 107179878 B CN107179878 B CN 107179878B
Authority
CN
China
Prior art keywords
storage
application
data
application data
description information
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
CN201610141381.4A
Other languages
English (en)
Other versions
CN107179878A (zh
Inventor
赵军平
王鲲
曹逾
董哲
李三平
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.)
EMC Corp
Original Assignee
EMC IP Holding Co LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by EMC IP Holding Co LLC filed Critical EMC IP Holding Co LLC
Priority to CN201610141381.4A priority Critical patent/CN107179878B/zh
Priority to US15/455,858 priority patent/US10860245B2/en
Publication of CN107179878A publication Critical patent/CN107179878A/zh
Application granted granted Critical
Publication of CN107179878B publication Critical patent/CN107179878B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • G06F3/0641De-duplication techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0664Virtualisation aspects at device level, e.g. emulation of a storage device or system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • 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
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/04Protocols for data compression, e.g. ROHC
    • 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
    • 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/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • 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/16General purpose computing application
    • G06F2212/163Server or database system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/40Specific encoding of data in memory or cache
    • G06F2212/401Compressed data

Landscapes

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

Abstract

本公开的实施例提出基于应用优化的数据存储的方法和装置。该方法包括从应用获取对应用数据的描述信息;基于所述描述信息,执行存储优化;以及在将所述应用数据发送到后端存储设备之前,基于所述描述信息,提前执行要由所述后端存储设备实施的至少部分存储功能。根据本公开的实施例的方法或装置,能够提供应用和非易失性存储设备的高效的结合方式,使应用和存储能够协调,以改进效率和可扩展性。

Description

基于应用优化的数据存储的方法和装置
技术领域
本公开的实施例涉及存储系统,并且更具体地涉及对应用数据的存储进行优化的方法和装置。
背景技术
目前第三代存储平台(P3)应用正引起人们的浓厚兴趣,其中包括例如云计算、大数据、移动和社交等。这些第三代平台应用中通常需要非关系型数据库(NoSQL)作为骨干应用。预计一直到2020年,NoSQL将以26%的符合年增长率(CAGR)增长。键值数据库(K-V)是NoSQL的一种,通常用于高速缓存,元数据等,其具有速度快,非内存集约式的特点。
非关系型数据库(例如K-V)主要由互联网推动兴起,优势在于在灵活、无预定义模式、能够水平扩展、具有最终一致性和多副本等特性,并且速度快。然而具有内存为中心的架构的NoSQL应用通常运行在内存中。这导致如下缺陷:
首先,其扩展性目前受限于内存的容量,并且成本高;
另外,由于内存在停机和重启预热时会有时延或者数据丢失,这导致该应用的性能波动。
因此,目前存在将该应用运行于非易失性存储器,例如闪存中的尝试。例如,有些厂商正寻求通过对应用做一些改变来使其适用于在闪存中运行。但是,该技术目前还不成熟,并且性能未知。另外,对应用做出过大的改变是不期望的。
目前市面上有较多的闪存产品,它们通常以硬件盒子的形式出现,并具有各种接口和功能。但是,目前还不存在非易失性存储器(例如闪存)和应用的高效的集合方式。
在本公开的实施例中,提供了方法和装置,以解决以上问题中的至少一些问题。
发明内容
本公开的实施例提出了用于存储系统中的数据存储的方法和装置。下面给出了对各实施例的简要概述,以提供对各种实施例的一些方面的基本理解。该概述不旨在标识关键元素的要点或描述各种实施例的范围。其唯一目的在于以简化形式呈现一些概念,作为对后述更具体描述的前序。
本公开的第一方面提供了一种用于数据存储的方法,该方法包括:从应用获取对应用数据的描述信息;基于所述描述信息,执行存储优化;以及在将所述应用数据发送到后端存储设备之前,基于所述描述信息,提前执行要由所述后端存储设备实施的至少部分存储功能。
在一个实施例中,描述信息可以包括以下中的至少一项:所述应用数据是否热数据或者冷数据;所述应用数据是否元数据、所述应用数据是否可压缩或者可删除重复、所述应用数据是否数据快照、所述应用数据是否到期、以及所述应用数据是否垃圾数据。
在另一实施例中,从应用获取对应用数据的描述信息可以包括:通过查询所述应用的应用程序接口API,和/或通过接收来自所述应用的输入输出请求,来获取所述描述信息。
在又一实施例中,执行存储优化可以包括执行以下中的至少一项:写合并、预读、非均衡存储器访问NUMA、通过就地执行XIP或者零拷贝来减少内存拷贝、优先级排队、以及读或者写高速缓存。
在一个实施例中,要由所述后端存储设备实施的至少部分存储功能可以包括以下中的至少一项:使用安全散列算法(SHA)获取所述应用数据的摘要;执行重复删除;对所述应用数据进行压缩;对所述应用数据进行分片,确定要将所述应用数据发送到的目标存储设备;以及通过远程直接数据存取(RDMA)将所述应用数据发送到所述目标存储设备。
在另一实施例中,该方法可以进一步包括:在提前执行至少一些要由所述后端存储设备实施的存储功能后,将所述应用数据发送到所述后端存储设备。在又一实施例中,将所述应用数据发送到所述后端存储设备包括通过网络将所述应用数据发送到所述后端存储设备。
在一些实施例中,后端存储设备可以是为非易失性存储设备。
作为示例,应用可以包括以下中的至少一项:关系型数据库SQLDB、非关系型数据库NoSQL、文件系统FS、以及虚拟机VM。
在一些实施例中,方法可以进一步包括执行以下管理操作中的至少一项:监测所述数据存储;报告所述数据存储的状态;以及对所述数据存储进行路径管理。
在另一些实施例中,该方法在运行所述应用的服务器中实施。
本公开的第二方面提供了一种用于数据存储的装置,其包括:应用集成单元,被配置为从应用获取对应用数据的描述信息;存储优化单元,被配置为用于基于所述描述信息,执行存储优化;以及存储功能协调单元,被配置为在将所述应用数据发送到后端存储设备之前,基于所述描述信息,提前执行要由所述后端存储设备实施的至少部分存储功能。
在一个实施例中,该装置可以进一步包括:发送单元,被配置为在提前执行至少一些要由所述后端存储设备实施的存储功能后,将所述应用数据发送到所述后端存储设备。
在另一实施例中,该装置可以进一步包括管理单元,被配置为执行以下管理操作中的至少一项:监测所述数据存储、报告所述数据存储的状态、以及对所述数据存储进行路径管理。
本公开的第三方面提供了一种应用服务器,其包括应用以及根据本公开的第二方面所述的装置。
本公开的第四方面提供了一种装置,该装置包括至少一个处理器;以及包括计算机程序代码的至少一个存储器,其中该至少一个存储器和该计算机程序代码被配置为:与该至少一个处理器一起,促使该装置执行根据本公开的第一方面的方法。
本公开的第五方面提供了一种包括指令的计算机程序,所述指令在至少一个处理器中执行时,促使所述至少一个处理器执行根据本公开的第一方面所述的方法。
根据本公开的实施例的方法或装置,能够提供应用和非易失性存储设备的高效的结合方式,使应用和存储能够协调,以改进效率和可扩展性,和/或降低总体拥有成本(TCO)。
尽管在附图中通过示例的方式示出了特定的实施例,然而,应当理解,本文的具体实施例的描述不意在将实施例限制为所公开的具体形式。
附图说明
从下文的公开内容和权利要求中,本公开的目标、优点和其他特征将变得更加明显。这里仅出于示例的目的,参考附图来给出优选实施例的非限制性描述,在附图中:
图1a-1b示出了现有技术中应用和存储设备的结合方式的示意图;
图2示出了用于数据存储的方法的示例性流程图;
图3a-3c示出了用于数据存储的装置的示例性结构图;
图4示出了在服务器中实施本公开的实施例的方法/装置的示意图;以及
图5示出了一个可以用来实施本公开的实施例的设备的示意性框图。
具体实施方式
在以下描述中,出于说明的目的而阐述许多细节。然而,本领域普通技术人员将认识到可以在不使用这些具体细节的情况下实现本公开的实施例。因此,本公开不旨在于受限于所示实施例、而是将被赋予与本文描述的原理和特征一致的最宽的范围。
应当理解,术语“第一”、“第二”等仅被用来将一个元素与另一个元素区分开来。而实际上第一元素也能够被称为第二元素,反之亦然。另外还应当理解“包括”,“包含”仅被用来说明所陈述的特征、元素、功能或者部件的存在,然而并不排除存在一个或者多个其他的特征、元素、功能或者部件。
如上该,关于在闪存中运行P3应用,目前还没有有效的解决方案。例如,目前应用和闪存结合的方式是一种松散的耦合,即,闪存和应用基本独立,如图1a所示的结构100。在应用服务器110处,应用数据要经历多个层(例如,系统高速缓存101、文件系统102和内核103等),在每个层经历一些处理,这导致时延较长且效率较低。另外,应用数据然后还要经过网络120被传送到闪存存储器130,从而数据路径进一步增加,导致额外的时延。另外,在如图1所示结构中,应用140(例如K-V数据库应用)和在闪存存储器130(例如EMCTM全闪存阵列XtremIO块)之间缺乏有效的协同优化。这导致闪存存储器130并不了解该应用140的应用数据的特性,因此也无法针对该特性进行相应的优化,从而数据存储效率较低。
作为另一种替代方案,目前也有关于将应用和闪存进行紧密耦合的尝试。例如,一种方法是简单地将应用140(例如K-V数据库应用)集成到闪存130中,并一起封装成容器,如图1b所示的结构100’。但是,这种解决方案和松散的耦合实际上并无本质区别,其仅仅省略了通过网络120进行传输的部分;而在封装后的容器中,应用和存储依然独立运行,数据依然会经历多个层处理;时延和效率问题依然存在。不仅如此,这种结构还进一步导致其它问题。例如,这种情况下,可能导致关于内存/CPU的资源竞争严重,将需要更复杂的管理机制来处理,因此将增加管理开销。另外,这种结构的管理、维护、扩展开销较大。例如从支持一个KV扩展到支持另一个KV将均需要大量的摘要和资源投入。
为了解决以上问题中的至少一些问题,本公开的实施例提出了用于数据存储的更有效的方法和装置。
尽管出于说明的目的,在本公开的一些实施例中使用非关系型数据库(例如K-V)应用和闪存存储器为例来描述本公开的方法或者装置的原理,但是,如本领域技术人员能够理解的,本公开的实施例能够更加广泛地应用于存在类似问题的、和/或能够受益于该原理的其他场景,而不仅仅限于所列举的示例布置。
本公开的实施例可以体现为智能的客户端或者库,用于降低或者简化应用主机侧的软件堆栈和开销。一些实施例能够卸载或者协调存储任务,使处理更加高效。另一些实施例能够降低总体拥有成本(TCO),提高闪存/非易失性存储器生命周期。在又一些实施例中,根据本公开的实施例的客户机可以和应用一起被封装成容器,并且可以与存储器容器一起运行。另外,本公开的实施例对应用逻辑和存储器侧的改变均较小。
图2中示出了用于数据存储的方法200的示例性流程图。该方法可以在应用服务器(例如图1a中的110)中的客户端处实施,使得该客户端作为应用和存储设备之间的桥梁。但是本公开的实施例并不限于此。
如图2所示,该方法200包括:在块S201,从应用获取对应用数据的描述信息;在块S202,基于该描述信息,执行存储优化;以及在将该应用数据发送到后端存储设备之前,在块S203,基于该描述信息,提前执行要由该后端存储设备实施的至少部分存储功能。
在该方法200中,通过客户端与应用的通信,能够获取关于应用数据的描述信息,该描述信息进一步被用来执行优化处理和存储功能的协调,从而降低处理时延,缩短至少一些处理的路径,提高处理效率。
在一个实施例中,描述信息可以包括(但不限于)以下中的至少一项:该应用数据是否热数据或者冷数据、该应用数据是否元数据、该应用数据是否可压缩或可重复数据删除、该应用数据是否数据快照、该应用数据是否到期、以及该应用数据是否垃圾数据。
例如,在一个实施例中,在S201,可以通过查询应用的应用程序接口(API)来获取该描述信息。利用该描述信息,能够执行存储优化,提高存储效率。例如,对于热数据和冷数据可以进行不同的处理,并且/或者,对于到期的数据或者垃圾数据可以进行丢弃,并收回相应的存储空间。在另一实施例中,在S201,可以通过接收来自所述应用的输入输出(IO)请求,来获取所述描述信息。例如,该描述信息可以作为标签(tag)被包括在IO请求中。
取决于获得的描述信息,在S202执行的存储优化操作可以不同。仅作为示例,该存储优化可以包括执行以下中的至少一项:写合并、预读、非均衡存储器访问(NUMA)、通过就地执行(XIP)或者零拷贝(Zero-copy)来减少内存拷贝、进行优先级排队、以及读或者写高速缓存。一些优化操作使得能够跳过一些处理功能,缩短路径。另一些操作(例如,写合并)能够延长IO寿命。
替代地或者附加地,在S203中提前执行的要由该后端存储设备实施的至少部分存储功能包括以下中的至少一项:使用安全散列算法(SHA)获取该应用数据的摘要、执行重复删除、对该应用数据进行压缩、对该应用数据进行分片,确定要将该应用数据发送到的目标存储设备、以及通过RDMA将该应用数据发送到该目标存储设备。其中获取数据摘要有助于确定是否存在重复数据,以便于能够据此进行重复删除。压缩操作能够减少在网络上传输的数据量。另外,基于在S201获取的应用数据的描述信息,能够确定针对特定的应用数据选择性地执行操作。例如,如果该数据为元数据,则在S203不进行压缩操作。又例如,如果该应用数据是已经压缩过的数据,则在S203也不执行压缩操作。
在一个实施例中,后端存储设备可以是为非易失性存储设备,例如但不限于,全闪存存储设备、混合的闪存存储设备、针对非易失性存储器/闪存优化的存储设备等。在另一实施例中,该方法实施于应用服务器中,并且该应用服务器可以经由网络访问该后端存储设备。
在现有技术中,可以通过网络将应用数据发送到后端存储设备中的任意存储器盒子,然后由该存储器盒子进一步将应用数据转发到目的存储器。在本公开的一个实施例中,可以提前进行数据的分片(Partition),确定该应用数据的最终目的存储器,从而能够直接将该应用数据发送到目的存储器,从而节省了在后端存储设备中执行的转发操作。在另一实施例中,在S203可以通过远程存储器接入(RDMA)将应用数据发送到该最终目的存储器。
RDMA主要是为了降低网络传输中端数据处理的延迟,降低主CPU的开销。RDMA的实现包括,例如,融合以太网上的(RoCE),InfiniBand,以及iWARP。RDMA的工作过程可以包括:1)当一个应用执行RDMA读或写请求时,在不需要任何内核内存参与的条件下,RDMA请求从运行在用户空间中的应用中发送到本地网卡(NIC);2)NIC读取缓冲的内容,并通过网络传送到远程NIC;3)在网络上传输的RDMA信息包含寻址信息(其为元数据,例如包括目标虚拟地址、内存索引)和数据本身。RDMA操作使应用可以从一个远程应用的内存中读数据或向这个内存写数据;4)目标NIC确认地址索引,直接将数据写人应用缓存中。
如上所述,通过将一些存储功能/服务提前,能够实现端到端性能的优化,并且将对后端存储设备的改变最小化。
该方法200可以在应用服务中的客户端或者库(lib)中执行,使得客户端或者库作为应用和存储产品之间的桥梁。即,使得应用能够通过客户端或者lib访问存储功能,以优化端到端性能。
在一个实施例中,方法200还可以进一步包括S204,其中,将S203中提前处理后的应用数据发送到后端存储设备。在另一实施例中,将该应用数据发送到该后端存储设备包括通过网络将该应用数据发送到该后端存储设备。本公开的实施例不限于任何特定的网络。并且仅作为示例,该网络可以是因特网。
尽管在本公开的一些实施例中,以NoSQL应用为例介绍本公开的原理,但是本公开的实施例不限于该具体应用。仅作为示例,方法200涉及的应用还可以是(但不限于)关系型数据库(SQLDB)、文件系统(FS)、以及虚拟机(VM)等。其中,NoSQL的示例可以是键值数据库(K-V)和宽表项数据库(Column)。
替代地或者附加地,在一些实施例中,方法200可以进一步包括:在块S205,执行管理操作,该管理操作可以包括(但不限于)以下中的至少一项:监测该数据存储;报告该数据存储的状态;以及对该数据存储进行路径管理。
以下参考附图3a-3c描述用于数据存储的装置300示意性的结构。装置300可以位于运行应用的应用服务器中,并且用作应用和存储设备之间沟通的桥梁。该装置通过利用关于应用数据的信息能够提高数据存储处理的效率。在一些实施例中,该应用可以包括(但不限于)以下中的至少一项:关系型数据库SQLDB、非关系型数据库NoSQL、文件系统FS、以及虚拟机VM等。其中NoSQL的示例可以是K-V或者宽表项数据库(Column)。
装置300可以执行参考图2所述的方法200,但是不限于执行该方法200。同样,该方法200可以由装置300执行,但是不限于由装置300执行。例如方法200的至少一些操作可以由其它的装置来执行。
如图3a所示,装置300包括应用集成单元301,被配置为从应用获取对应用数据的描述信息;存储优化单元302,被配置为用于基于该描述信息,执行存储优化;以及存储功能协调单元303,被配置为在将该应用数据发送到后端存储设备之前,基于该描述信息,提前执行要由该后端存储设备实施的至少部分存储功能。
在一个实施例中,应用集成单元301可以包括一个可扩展的API集合,使得能够有效地从上层各种应用获得描述信息。获得这些描述信息,有助于本方法后续模块进行高效,快速,有针对性的处理。如结合图2所述的,在一个实施例中,应用数据的描述信息可以包括但不限于,以下中的至少一项:该应用数据是否热数据或者冷数据、该应用数据是否元数据、该应用数据是否可压缩或可重复数据删除、该应用数据是否数据快照、该应用数据是否到期、以及该应用数据是否垃圾数据。这使得存储优化单元302能够根据应用层收集/获取的描述信息确定针对特定数据类型的优化处理,实现应用和存储功能的更高效的耦合。
例如,描述信息可以包括哪些数据是该应用的元数据。对于元数据,由于其性能、可靠性等方面的更高要求,可配置地,元数据可以被给予更高的IO优先级,或者可以被免除执行某些功能,例如压缩,重复数据删除等。在另一示例中,应用集成单元301获得的描述信息可以包括哪些数据是冷数据。上层应用往往维护冷热数据的最近最少使用统计(LRU);对于冷数据,可以预先处理但对其设置较低的运行优先级。在又一示例中,描述信息可以包括哪些数据是快照数据。快照数据可能短期内并不会被访问,因此可以预先进行处理。在另一示例中,描述信息可以包括哪些数据是过期数据。应用(例如,K-V)允许用户设置一个过期时限;应用会定期扫描以检测该信息。在应用集成单元301获得过期数据之后,这些数据可以被快速回收。
在一个实施例中,应用集成单元301可以,例如,通过查询应用的API,从应用收集关于数据特性的描述信息。该收集可以是定期或者不定期主动执行的。在另一实施例中,可以由上层应用在发起IO时,附上标签以提供该描述信息。在又一实施例中,可以混合使用上述两种方法。例如,应用集成单元301可以主动查询应用以获知哪些是冷数据,哪些是过期的数据;同时还可以被动地获知哪些数据是元数据和/或数据快照。
在另一实施例中,存储优化单元302可以被配置为执行以下优化操作中的至少一项:写合并、预读、非均衡存储器访问(NUMA)、通过就地执行(XIP)或者零拷贝来减少内存拷贝、进行优先级排队、以及读或者写高速缓存。
在一个实施例中,存储优化单元302可以被配置为闪存高性能IO处理模块。其可以用于降低通用软件处理开销,例如锁,CPU切换,用户空间-内核空间进出,多次拷贝数据等。该存储优化单元302的主要模块可以运行在用户空间。
在图3b中示出了存储优化单元302与其它模块的连接以及其内部示例操作的示意图。如图3b所示,存储优化单元302可以被配置为针对每个CPU-核建立收发队列(302-1、302-2、302-3),并且在每核上进行数据合并,例如按照数据地址偏移量进行合并。在另一实施例中,存储优化单元302可以被配置为将多核上的数据在IO之前进行全局合并(302-4)。在又一实施例中,存储优化单元302可以被配置为最终向下层发送IO。在该存储优化单元302内减少或者避免内存拷贝(302-5),并跳过内核的缓存层,可采用例如RDMA技术,或者Linux UIO,DAX技术等。可选地,存储优化单元302可以被配置为例如利用后台预读模块302-6,根据访问模型和趋势把数据事先读取到内置的缓存模块302-7。
替代地或者附加地,在一个实施例中,由存储功能协调单元303提前执行的要由后端存储设备实施的至少部分存储功能可以包括以下中的至少一项:使用安全散列算法(SHA)获取该应用数据的摘要、执行重复删除、对该应用数据进行压缩、对该应用数据进行分片,确定要将该应用数据发送到的目标存储设备、以及通过RDMA将该应用数据发送到该目标存储设备。
SHA是一种经典的数据摘要算法。例如,SHA的一种实现,SHA1,会根据输入数据的内容产生一个160位的消息摘要;可以用作数字签名。在本公开的实施例中其主要起摘要目的。摘要相同的两段数据内容相同(即是重复的)的概率也是很高的。因此,该算法可以用于确定是否执行重复删除。
在一个实施例中,存储功能协调单元303可以被配置为针对闪存实际后端存储以及应用集成单元301所获得的元数据进行有针对性的优化,或者预处理。在图3c中示出了其操作的示例。如图3c所示,其可以被配置为:例如采用SHA算法对IO数据(310)进行摘要计算(303-1)以进行重复数据删除,目的是消除冗余数据,减小实际数据的写入量,提高写性能并降低flash/磁盘的损耗。在另一实施例中,存储功能协调单元303可以被配置为执行数据压缩(303-2)。例如可以采用常见的Gzip,Lz4,Lzs算法等。应该注意,以上操作,可以根据应用集成单元301所获得的的描述信息和系统配置有针对性的激活或关闭。例如为性能考虑,可以不对元数据执行上述操作。
在另一实施例中,存储功能协调单元303可以被配置为例如采用CRC64算法产生校验码并保存(303-3),以确保数据完整性。在进一步的实施例中,存储功能协调单元303可以被配置为执行下述中的任意一项:
-加密数据(303-4),密钥可以实现配置,例如整个磁盘/卷公用一个密钥;
-数据分片(303-5):把数据依据实现规则分布到多台存储节点上。例如可以按照数据的内容(以摘要代表内容)或者数据的偏移量。数据分片推荐与后端存储集群保持一致。即将后端存储的分配规则前移,运行在服务器端;
-对于后端是flash集群的应用场景,考虑到节点可能动态的添加/减少(例如维护,扩容,异常),为了使得分片保持一致,后端flash集群可以异步将节点变化情况通知服务器(303-6,303-7);
–将元数据统一保存在flash存储,或者采用查询-应答方式交互(303-8)。例如,可以只计算数据的摘要,然后将多个数据的摘要信息批处理的发送给flash存储集群,flash存储集群查询全局的摘要库,从而返回其中非重复的摘要信息给服务器;服务器基于此可以只发送这些非重复数据;
-数据传输(303-9),非重复数据从服务器根据分片规则直接发送给存储节点(320),可选的可以采用RDMA方式;该存储节点可以是例如共享的水平扩展的flash存储集群。
-另一种情况是flash存储并非共享存储,而是每个服务器内置flash存储器,且多台服务器以对等方式协同工作。此时数据可以保存在服务器本地,可选的为提高可靠性,可以将一个或者多个副本发送给另一台服务器(303-A)。
如前结合方法200所述的,该后端存储设备可以是(但不限于)非易失性存储设备。在一个实施例中,该装置300可以进一步包括:发送单元304,其被配置为将存储功能协调单元303所提前处理过的应用数据发送到该后端存储设备。在另一实施例中,该发送单元304可以进一步被配置为通过网络将该应用数据发送到该后端存储设备。本公开的实施例不限于任何特定的网络形式,例如其可以是因特网。
替代地或者附加地,在一个实施例中,装置300可以进一步包括管理单元305,其被配置为执行管理操作。该管理操作可以包括(但不限于)以下中的至少一项:监测该数据存储、报告该数据存储的状态、以及对该数据存储进行路径管理。
如图4所示,根据本公开的一个实施例的装置可以体现为在应用节点400(例如应用服务器)中运行的客户端/库/驱动器(例如客户端401或者407),以使得该应用节点能够和存储系统(例如存储设备402、403)协调,并且有效地将存储设备和应用(例如NoSQL404、405)连接。该应用服务器可以例如通过网络406连接到存储设备。
图4中所示的本公开的实施例的装置(例如实施为客户端401或者407,或者其一部分)可以采用分层的设计,如前参考图3a-3c所述。例如,可以由低层驱动器处理各种网络连接;该低层驱动器可以包括图3a-3c中的存储功能协调单元303的至少部分功能。在另一示例中,由高层的驱动器负责可视接口和API,该高层的驱动器可以包括图3a-3c中的应用集成单元301、存储优化单元302、以及存储功能协调单元303的至少部分功能。
根据本公开的另一实施例的装置可以被分成控制模块和数据路径模块。其中该控制模块可以是(或者包括)例如图3a中的管理单元305,其可以被配置为执行设备发现、认证、配置、输出、监测、高可靠性(HA)等功能。数据路径模块可以具有分层的结构,并且使得能够在必要时绕过文件系统(FS)/系统缓存,以降低上下文切换/系统调用。例如,其可以被配置为使一部分功能运行在用户态而非内核态中,由此来降低开销。在一些实施例中,该数据路径模块可以包括,例如,图3a-3c中的应用集成单元301、存储优化单元302、以及存储功能协调单元303的至少部分功能。
如前结合装置300所述的,其中应用集成单元301可以从应用层获知信息,用于前摄性地负载/非同步清除;以及/或者还可以收集垃圾数据分布信息,用于收回相应的闪存存储空间;以及/或者,还可以进行写合并或者实施存储器侧的检查点。存储优化单元302可以被配置用于公共闪存/非易失性存储器优化。其可以根据来自应用集成层301的信息进行成批地小的写操作、预加载数据等;并且/或者,经由Execute-In-Place(XIP)或者DirectAccess(DAX)跳过文件系统/页面缓存,降低从用户空间到设备的数据拷贝;并且/或者保持必要的数据/元数据。该存储优化单元302使得数据缓存能够被透写,因此数据对于闪存阵列是持续的,高效的。存储功能协调单元303能够用于闪存阵列优化,例如能够用于从后端存储设备卸载任务,或者用于主机辅助的数据重复删除/压缩;以及校验和生成等。K-V应用是内存集约式而不是CPU集约式的,数据重复删除有助于消除到阵列中的重复值流量。另外,存储功能协调单元303能够缓解后端设备遭受的压缩挑战。例如在数据块不足够大、或者不适合压缩或者已经被压缩的情况下,后端存储设备在不了解数据特性时可能会继续对其进行不必要的压缩处理,而存储功能协调单元303能够将压缩功能提前,并利用来自应用的数据描述信息避免不必要的操作。另外,如前所述,存储功能协调单元303还能够执行分片(Partition)功能,利用SHA脚印,应用能够直接与特定存储节点沟通,消除一跳,缩短处理时延。对于扩展阵列集群的情况,存储功能协调单元303能够提前复制数据,并且将其直接分布到其他主机上。在一个实施例中,可以利用远程存储器访问(RDMA)在应用和阵列之间传送数据。该操作能够被IB、互联网小型计算机接口(ISCSI,iSER)或者甚至因特网支持,能够降低CPU的使用和处理延时。
在本公开的另一实施例中,还提供一种应用服务器,例如图4中的应用服务器400,该应用服务器包括应用以及例如参考图3a-3c所述的任一装置。
如本领域技术人员能够理解的,装置300和服务器400还可以包括图3a-3c中未示出的其它单元;并且/或者,在一些实施例中,图3a-4中的某些单元可以被省略。
在提出本公开的实施例的方法和装置之前,不存在用于将应用和非易失性存储设备结合的有效方式。而本公开的实施例提供了方法和装置,用于使能应用和存储设备的沟通、以及存储功能的协调。
本领域技术人员将容易地认识到,各种上述各种方法中的块或者步骤可以通过编程的计算机来执行。在本公开中,一些实施例还意在涵盖一种包括指令的计算机程序,该指令在至少一个处理器中执行时,促使该至少一个处理器执行方法200中的任一方法。在本公开中,一些实施例还意在涵盖程序存储系统,例如,数字数据存储介质,这是机器或计算机可读的并且编码机器可执行或计算机可执行的指令程序,其中,该指令执行上述方法200中的一些或所有步骤。程序存储系统可以是,例如,数字存储器、诸如磁盘和磁带的磁存储介质、硬盘驱动器或光学可读数字数据存储介质。该实施例还意在涵盖编程为执行该上述方法的步骤的计算机。一些实施例还意在涵盖一种装置,该装置包括至少一个处理器;以及至少一个包括计算机程序代码的存储器,其中该至少一个存储器和该计算机程序代码被配置为:与该至少一个处理器一起,促使该装置执行方法200。
图5示出了一个可以用来实施本公开的实施例的设备500的示意性框图。如图所示,设备500包括处理单元(例如但不限于CPU)501,其可以根据存储在只读存储器(ROM)502中的计算机程序指令、或者来自存储单元508的计算机程序指令(例如,从存储单元508加载到随机访问存储器(RAM)503中的计算机程序指令),来执行各种适当的动作和处理。在RAM503中,还可存储设备500操作所需的各种程序和数据。处理单元501、ROM 502以及RAM 503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
设备500中的多个部件连接至I/O接口505,包括:输入单元506,例如键盘、鼠标等;输出单元507,例如各种类型的显示器、扬声器等;存储单元508,例如磁盘、光盘等;以及通信单元509,例如网卡、调制解调器、无线通信收发机等。通信单元509允许设备500通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
上文所描述的各个过程和处理,例如方法200,可由处理单元501执行。例如,在一些实施例中,方法200可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元508。在一些实施例中,计算机程序的部分或者全部可以经由ROM 502和/或通信单元509而被载入和/或安装到设备500上。当计算机程序被加载到RAM 503并由处理单元501执行时,可以执行上文描述的方法200的一个或多个步骤。
因此,本公开的解决方案可以利用各种方式来提供。例如,在一些实施例中,可以将实施例的方法/装置实现为硬件、软件或者软件和硬件的结合。在一些实施例中,实施例的方法/装置可以被实现为应用服务器中的客户端或者库或者驱动器。在另一实施例中,可以将本公开的解决方案实施为开源的软件库和闪存的集成,或者进一步与闪存,应用服务器集成为超融合系统(Hyper Converged System,例如EMCTM的VCE产品),例如将非关系型数据库应用节点和非易失性存储器(例如XtremIO)集成,或者将应用、客户端和存储一起集成为容器。
在附图中示出的装置的各种元件的功能,可以通过使用软件、专用硬件以及与适当软件相关联的能够执行软件的硬件、或者固件、或者其结合来提供。当由处理器提供时,该功能可以由单个专用处理器、由单个共享处理器或由多个单独的处理器来提供。此外,术语“处理器”可以包括但不限于,数字信号处理器(DSP)硬件、网络处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA),用于存储软件的只读存储器(ROM)、随机存取存储器(RAM)和非易失性存储装置。还可以包括其他常规和/或定制的硬件。
本领域技术人员应当理解,说明书和附图仅仅说明本公开的实施例的原理。因此,应当理解,本领域的技术人员将能够设计出各种布置,虽然这里没有明确地描述或示出,但是该布置体现本公开的实施例的原理并且被包括在本公开的实施例的精神和范围内。此外,这里阐述的所有示例主要旨在明确仅用于教学目的,以帮助读者理解本公开的实施例的原理和发明人贡献的用于促进本领域的概念,并且应被解释为不限于这些具体阐释的示例和条件。而且,这里阐述本公开的实施例的原理、方面和实施例的所有阐述及其具体示例也意在包含其等同物。

Claims (24)

1.一种用于数据存储的方法,包括
从应用获取对应用数据的描述信息,其中所述描述信息包括关于所述应用数据是否是元数据的信息;
基于所述描述信息,执行存储优化;
基于所述描述信息指示所述应用数据是元数据,省略对所述应用数据的压缩;
基于所述描述信息,提前执行要由后端存储集群实施的至少部分存储功能,其中所述后端存储集群包括闪存集群;其中要由所述后端存储集群实施的所述至少部分存储功能包括:
查询所述应用数据的摘要,并将与所述应用数据的所述摘要有关的非重复信息返回给服务器;
对所述应用数据进行分片,其中对所述应用数据进行分片包括:确定经分片的所述应用数据要被发送到的目标存储器,其中所述目标存储器包括一个或多个存储节点;以及
向经标识的所述一个或多个存储节点传输经分片的所述应用数据;
对所述数据存储进行路径管理;以及
经由所述后端存储集群,以异步方式向服务器通知对所述一个或多个存储节点中的至少一个存储节点的改变,其中对所述一个或多个存储节点中的至少一个存储节点的所述改变包括:对所述一个或多个存储节点中的至少一个存储节点的添加或移除。
2.根据权利要求1所述的方法,其中所述描述信息进一步包括以下中的至少一项:
所述应用数据是否热数据或者冷数据;
所述应用数据是否可压缩或者可删除重复;
所述应用数据是否数据快照;
所述应用数据是否到期;以及
所述应用数据是否垃圾数据。
3.根据权利要求1所述的方法,其中从应用获取对应用数据的描述信息包括:
通过查询所述应用的应用程序接口API,和/或通过接收来自所述应用的输入输出请求,来获取所述描述信息。
4.根据权利要求1所述的方法,其中执行存储优化包括执行以下中的至少一项:
写合并;
预读;
非均衡存储器访问NUMA;
通过就地执行XIP或者零拷贝来减少内存拷贝;
优先级排队;以及
读或者写高速缓存。
5.根据权利要求1所述的方法,其中要由所述后端存储集群实施的至少部分存储功能包括以下中的至少一项:
使用安全散列算法SHA获取所述应用数据的摘要;
执行重复删除;
对所述应用数据进行压缩;
用CRC算法生成校验码;
确定要将所述应用数据发送到的目标存储设备;以及
通过RDMA将所述应用数据发送到所述目标存储设备。
6.根据权利要求1所述的方法,进一步包括:
在提前执行至少一些要由所述后端存储集群实施的存储功能后,将所述应用数据发送到所述后端存储集群。
7.根据权利要求6所述的方法,其中将所述应用数据发送到所述后端存储集群包括通过网络将所述应用数据发送到所述后端存储集群。
8.根据权利要求1所述的方法,其中所述后端存储集群为非易失性存储设备。
9.根据权利要求1所述的方法,其中所述应用包括以下中的至少一项:关系型数据库SQLDB、非关系型数据库NoSQL、文件系统FS、以及虚拟机VM。
10.根据权利要求1-9中任一项所述的方法,进一步包括执行以下管理操作中的至少一项:
监测所述数据存储;以及
报告所述数据存储的状态。
11.根据权利要求1-9中任一项所述的方法,其中所述方法在运行所述应用的服务器中实施。
12.一种用于数据存储的装置,包括:
应用插入单元,被配置为从应用获取对应用数据的描述信息,其中所述描述信息包括关于所述应用数据是否是元数据的信息,其中所述应用是第三代存储平台应用;
存储优化单元,被配置为用于基于所述描述信息,执行存储优化,并且基于所述描述信息指示所述应用数据是元数据,省略对所述应用数据的压缩;
管理单元,被配置为对所述数据存储进行路径管理;以及
存储功能协调单元,被配置为基于所述描述信息,提前执行要由后端存储集群实施的至少部分存储功能,其中所述后端存储集群包括闪存集群;
其中要由所述后端存储集群实施的所述至少部分存储功能包括:
查询所述应用数据的摘要,并将与所述应用数据的所述摘要有关的非重复信息返回给服务器;
对所述应用数据进行分片,其中对所述应用数据进行分片包括:确定经分片的所述应用数据要被发送到的目标存储器,其中所述目标存储器包括一个或多个存储节点;
其中所述存储功能协调单元还被配置为向经标识的所述一个或多个存储节点传输经分片的所述应用数据。
13.根据权利要求12所述的装置,其中所述描述信息进一步包括以下中的至少一项:
所述应用数据是否热数据或者冷数据;
所述应用数据是否可压缩或者可删除重复;
所述应用数据是否数据快照;
所述应用数据是否到期;以及
所述应用数据是否垃圾数据。
14.根据权利要求12所述的装置,其中所述应用插入单元进一步被配置为通过查询所述应用的应用程序接口API,和/或,通过接收来自所述应用的输入输出请求,来获取所述描述信息。
15.根据权利要求12所述的装置,其中所述存储优化单元进一步被配置为通过以下中的至少一项来执行存储优化:
写合并;
预读;
非均衡存储器访问NUMA;
通过就地执行XIP或者零拷贝来减少内存拷贝;
优先级排队;以及
读或者写高速缓存。
16.根据权利要求12所述的装置,其中所述要由所述后端存储集群实施的至少部分存储功能包括以下中的至少一项:
使用安全散列算法SHA获取所述应用数据的摘要;
执行重复删除;
对所述应用数据进行压缩;
用CRC算法生成校验码;
确定要将所述应用数据发送到的目标存储设备;以及
通过RDMA将所述应用数据发送到所述目标存储设备。
17.根据权利要求12所述的装置,进一步包括:
发送单元,被配置为在提前执行至少一些要由所述后端存储集群实施的存储功能后,将所述应用数据发送到所述后端存储集群。
18.根据权利要求17所述的装置,其中所述发送单元进一步被配置为通过网络将所述应用数据发送到所述后端存储集群。
19.根据权利要求12中任一项所述的装置,其中所述应用包括以下中的至少一项:关系型数据库SQLDB、非关系型数据库NoSQL、文件系统FS、以及虚拟机VM。
20.根据权利要求12-19中任一项所述的装置,其中所述管理单元还被配置为执行以下管理操作中的至少一项:
监测所述数据存储;以及
报告所述数据存储的状态。
21.根据权利要求12-19中任一项所述的装置,其中所述装置位于运行所述应用的服务器中。
22.一种应用服务器,包括应用以及根据权利要求12-21中任一权利要求所述的装置。
23.一种电子设备,包括至少一个处理器以及包括计算机程序代码的至少一个存储器,其中所述至少一个存储器和所述计算机程序代码被配置为:利用所述至少一个处理器,促使所述电子设备执行根据权利要求1-11中任一权利要求所述的方法。
24.一种计算机可读存储介质,所述计算机可读存储介质存储指令,所述指令在至少一个处理器中执行时,促使所述至少一个处理器执行根据权利要求1-11中任一权利要求所述的方法。
CN201610141381.4A 2016-03-11 2016-03-11 基于应用优化的数据存储的方法和装置 Active CN107179878B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201610141381.4A CN107179878B (zh) 2016-03-11 2016-03-11 基于应用优化的数据存储的方法和装置
US15/455,858 US10860245B2 (en) 2016-03-11 2017-03-10 Method and apparatus for optimizing data storage based on application

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610141381.4A CN107179878B (zh) 2016-03-11 2016-03-11 基于应用优化的数据存储的方法和装置

Publications (2)

Publication Number Publication Date
CN107179878A CN107179878A (zh) 2017-09-19
CN107179878B true CN107179878B (zh) 2021-03-19

Family

ID=59787940

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610141381.4A Active CN107179878B (zh) 2016-03-11 2016-03-11 基于应用优化的数据存储的方法和装置

Country Status (2)

Country Link
US (1) US10860245B2 (zh)
CN (1) CN107179878B (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102619954B1 (ko) * 2018-03-29 2024-01-02 삼성전자주식회사 데이터를 처리하기 위한 방법 및 이를 지원하는 전자 장치
US20210034546A1 (en) * 2018-06-29 2021-02-04 John Joseph Browne Transparent encryption
CN110837479B (zh) * 2018-08-17 2023-09-01 华为云计算技术有限公司 数据处理方法、相关设备及计算机存储介质
CN109086172B (zh) * 2018-09-21 2022-12-06 郑州云海信息技术有限公司 一种数据处理的方法以及相关装置
CN110955614B (zh) * 2018-09-26 2022-05-03 Oppo广东移动通信有限公司 文件缓存的回收方法、装置、存储介质及终端
CN111104052B (zh) 2018-10-26 2023-08-25 伊姆西Ip控股有限责任公司 用于存储数据的方法、装置和计算机可读存储介质
CN110442565B (zh) * 2019-08-08 2023-06-30 深圳市今天国际物流技术股份有限公司 一种数据处理方法、装置、计算机设备及存储介质
CN112667558A (zh) * 2019-10-15 2021-04-16 瑞昱半导体股份有限公司 处理系统与芯片内执行控制方法
US11809379B2 (en) 2019-11-19 2023-11-07 International Business Machines Corporation Storage tiering for deduplicated storage environments
CN111209414B (zh) * 2020-01-03 2023-08-11 四川新网银行股份有限公司 基于影像资料调用业务场景实现资料冷热分离存储的方法
US11947803B2 (en) 2020-10-26 2024-04-02 EMC IP Holding Company LLC Effective utilization of different drive capacities

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7047377B2 (en) * 2002-08-20 2006-05-16 Gruintine Pueche, Inc. System and method for conducting an auction-based ranking of search results on a computer network
US8713180B2 (en) * 2005-06-22 2014-04-29 Cisco Technology, Inc. Zero-copy network and file offload for web and application servers
US7548928B1 (en) * 2005-08-05 2009-06-16 Google Inc. Data compression of large scale data stored in sparse tables
US9720616B2 (en) * 2008-06-18 2017-08-01 Super Talent Technology, Corp. Data-retention controller/driver for stand-alone or hosted card reader, solid-state-drive (SSD), or super-enhanced-endurance SSD (SEED)
US9208453B2 (en) * 2009-02-13 2015-12-08 Paypal, Inc. Targeted multi-dimension data extraction for real-time analysis
CN101908073B (zh) * 2010-08-13 2012-07-11 清华大学 一种文件系统中实时删除重复数据的方法
US8595268B2 (en) * 2010-09-28 2013-11-26 Garantia Data Ltd. System, methods, and media for compressing non-relational database objects
US9331955B2 (en) * 2011-06-29 2016-05-03 Microsoft Technology Licensing, Llc Transporting operations of arbitrary size over remote direct memory access
US8601473B1 (en) * 2011-08-10 2013-12-03 Nutanix, Inc. Architecture for managing I/O and storage for a virtualization environment
US9026717B2 (en) * 2011-09-30 2015-05-05 SanDisk Technologies, Inc. Apparatus, system, and method for a persistent object store
US9135269B2 (en) * 2011-12-07 2015-09-15 Egnyte, Inc. System and method of implementing an object storage infrastructure for cloud-based services
US9747293B2 (en) * 2012-02-28 2017-08-29 Deep Information Sciences, Inc. Method and system for storage and retrieval of information
CN102857558B (zh) * 2012-08-13 2015-11-25 广东科学技术职业学院 一种动态构建和自主管理的移动云存储集群系统
CN102929961B (zh) * 2012-10-10 2016-12-21 北京锐安科技有限公司 基于构建快速数据分级通道的数据处理方法及其装置
US9519486B1 (en) * 2012-11-21 2016-12-13 Xilinx, Inc. Method of and device for processing data using a pipeline of processing blocks
US20140229695A1 (en) * 2013-02-13 2014-08-14 Dell Products L.P. Systems and methods for backup in scale-out storage clusters
CN103118136B (zh) * 2013-02-28 2015-08-12 杭州电子科技大学 一种基于块级别云存储负载均衡优化的方法
US10404520B2 (en) * 2013-05-29 2019-09-03 Microsoft Technology Licensing, Llc Efficient programmatic memory access over network file access protocols
CN104823184B (zh) * 2013-09-29 2016-11-09 华为技术有限公司 一种数据处理方法、系统及客户端
US9426219B1 (en) * 2013-12-06 2016-08-23 Amazon Technologies, Inc. Efficient multi-part upload for a data warehouse
CN104731794B (zh) * 2013-12-19 2018-07-06 北京华易互动科技有限公司 一种冷热数据分片挖掘存储方法
CN104077380B (zh) * 2014-06-26 2017-07-18 深圳信息职业技术学院 一种重复数据删除方法、装置及系统
US9798745B2 (en) * 2014-09-13 2017-10-24 Samsung Electronics Co., Ltd. Methods, devices and systems for caching data items
US9516197B2 (en) * 2014-10-21 2016-12-06 Pixspan, Inc. Apparatus and method for lossless compression of raw color sensor data from a color array filtered image sensor
CN104484287B (zh) * 2014-12-19 2017-05-17 北京麓柏科技有限公司 一种非易失性缓存实现方法及装置
CN104539679A (zh) * 2014-12-22 2015-04-22 国网信通亿力科技有限责任公司 基于分布式闪存技术的集群数据库系统及其数据传输方法
US10318199B2 (en) * 2015-11-18 2019-06-11 International Business Machines Corporation System, method, and recording medium for reducing memory consumption for in-memory data stores

Also Published As

Publication number Publication date
US20170262232A1 (en) 2017-09-14
US10860245B2 (en) 2020-12-08
CN107179878A (zh) 2017-09-19

Similar Documents

Publication Publication Date Title
CN107179878B (zh) 基于应用优化的数据存储的方法和装置
US10783121B2 (en) Techniques for optimizing data flows in hybrid cloud storage systems
US8788628B1 (en) Pre-fetching data for a distributed filesystem
JP5485866B2 (ja) 情報管理方法、及び情報提供用計算機
US20160269501A1 (en) Using a cache cluster of a cloud computing service as a victim cache
US20040030731A1 (en) System and method for accessing files in a network
US9817865B2 (en) Direct lookup for identifying duplicate data in a data deduplication system
CN114201421B (zh) 一种数据流处理方法、存储控制节点及可读存储介质
CN103902479A (zh) 一种基于元数据日志的元数据缓存快速重建机制
US20130297969A1 (en) File management method and apparatus for hybrid storage system
CN108540510B (zh) 一种云主机创建方法、装置及云服务系统
CN114443364B (zh) 一种分布式块存储数据处理方法、装置、设备及存储介质
CN113905097B (zh) 一种数据传输方法和装置
CN107368608A (zh) 基于arc替换算法的hdfs小文件缓存管理方法
US20200145490A1 (en) Systems and methods for content origin administration
CN117539915B (zh) 一种数据处理方法及相关装置
CN103491124A (zh) 一种对彩信数据进行处理的方法及分布式缓存系统
CN107659626B (zh) 面向临时元数据的分离存储方法
US9667735B2 (en) Content centric networking
WO2015015727A1 (ja) ストレージ装置、データアクセス方法およびプログラム記録媒体
US8825985B2 (en) Data transfer reduction in scale out architectures
JP7318899B2 (ja) 二次ストレージにコンテンツアイテムを格納するためのシステムおよび方法
CN106873910B (zh) 一种基于openstack平台的SSD缓存方法
WO2023045385A1 (zh) 数据处理方法以及相关设备
CN116257521B (zh) 一种基于fpga的kv存储方法

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

Effective date of registration: 20200423

Address after: Massachusetts, USA

Applicant after: EMC IP Holding Company LLC

Address before: Ma Sazhusaizhou

Applicant before: EMC Corp.

GR01 Patent grant
GR01 Patent grant