CN107851122B - 大规模存储和检索具有良有界生命的数据 - Google Patents
大规模存储和检索具有良有界生命的数据 Download PDFInfo
- Publication number
- CN107851122B CN107851122B CN201680043454.4A CN201680043454A CN107851122B CN 107851122 B CN107851122 B CN 107851122B CN 201680043454 A CN201680043454 A CN 201680043454A CN 107851122 B CN107851122 B CN 107851122B
- Authority
- CN
- China
- Prior art keywords
- storage
- logical
- data
- physical
- storage unit
- 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
Links
Images
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/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- 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/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0607—Improving 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
-
- 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/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- 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]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0806—Configuration setting for initial configuration or provisioning, e.g. plug-and-play
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/40—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using virtualisation of network functions or resources, e.g. SDN or NFV entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/50—Network service management, e.g. ensuring proper service fulfilment according to agreements
- H04L41/5041—Network service management, e.g. ensuring proper service fulfilment according to agreements characterised by the time relationship between creation and deployment of a service
- H04L41/5051—Service on demand, e.g. definition and deployment of services in real time
-
- 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/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1031—Controlling of the operation of servers by a load balancer, e.g. adding or removing servers that serve requests
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
方法包括:从租户接收一个或多个数据存储规范;确定物理存储***中的多个物理存储单元包括足够的***容量,为租户提供数据存储;发送存储请求消息以根据所述数据存储规范来请求为所述租户创建网络存储实体;根据所述数据存储规范,接收指示分配给所述网络存储实体的多个逻辑存储单元中的第一逻辑存储单元的存储响应消息,其中所述多个逻辑存储单元分布在所述多个物理存储单元中,所述多个逻辑存储单元按顺序排列以形成逻辑循环缓冲器。
Description
相关申请案交叉申请
本申请要求于2015年8月5日递交的发明名称为“大规模存储和检索具有良有界生命的数据”的第14/818,925号美国专利申请案的在先申请优先权,该在先申请的内容以引入的方式并入本文。
背景技术
可以预计的是,物联网(Internet of Things,简称IoT)的发展将导致可用于描述世界的数据量的急剧增加。例如,由IoT设备生成的数据可以包括从IoT设备收集的传感器数据、从视频监测***收集的视频和/或图像以及从数据中心(data center,简称DC)、移动网络和/或移动终端收集的其它监测和/或性能数据。随着数据量的增长,用户通过备份和复制来寻求保存和/或保护数据,进一步提高存储需求。然而,IoT设备生成的大量数据很快就会变冷。用户通常对最新的数据最感兴趣,对较旧的数据的兴趣明显较少。因此,除了存储技术之外,在设计大规模存储***时的一些挑战可以包括高效、可扩展和灵活的存储***架构。
发明内容
在一个实施例中,本公开包括一种方法,所述方法包括:从租户接收一个或多个数据存储规范;确定物理存储***中的多个物理存储单元包括足够的***容量,为租户提供数据存储;发送存储请求消息以根据所述数据存储规范来请求为所述租户创建网络存储实体;根据所述数据存储规范,接收指示分配给所述网络存储实体的多个逻辑存储单元中的第一逻辑存储单元的存储响应消息,其中所述多个逻辑存储单元分布在所述多个物理存储单元中,所述多个逻辑存储单元按顺序排列以形成逻辑循环缓冲器。
在另一个实施例中,本公开包括一种装置,所述装置包括:接收器,用于接收请求为租户创建网络存储实体的存储请求消息;处理器,耦合到所述接收器,并用于根据所述存储请求消息通过以下步骤来组成所述网络存储实体:根据存储度量,分配映射到物理存储***中多个物理存储单元的多个逻辑存储单元;依次排列所述逻辑存储单元以形成逻辑循环缓冲器;生成元数据以关联所述网络存储实体、所述逻辑循环缓冲器和所述逻辑存储单元,其中所述元数据包括所述逻辑存储单元和所述物理存储单元之间的映射以及所述逻辑存储单元之间的顺序关系;发射器,耦合到所述处理器,并用于向网元(NE)发送包含至少一部分元数据的存储记录消息,以指示所述NE根据所述逻辑存储单元之间的顺序关系以及所述逻辑存储单元和物理存储单元之间的映射将数据存储到所述网络存储实体。
在另一个实施例中,本公开包括一种装置,所述装置包括:接收器,用于从租户接收数据记录;存储器,用于存储分配给所述租户的网络存储实体的存储记录,其中所述存储记录指示由映射到物理存储***中的多个物理存储单元的逻辑存储单元序列形成的逻辑循环缓冲器;存储所述逻辑循环缓冲器的当前写入位置,所述当前写入位置对应于所述逻辑存储单元的第一逻辑存储单元的位置;处理器,与所述接收器及所述存储器耦合,且所述处理器用于确定所述当前写入位置对应于由所述第一逻辑存储单元映射的所述物理存储单元的第一物理存储单元的物理位置;确定与所述第一物理存储单元相关联的NE;发射器,耦合到所述处理器,并用于向所述NE发送指示所述NE根据所述物理位置将所述数据记录写入所述第一物理存储单元的数据存储消息。
通过以下结合附图和权利要求的详细描述,这些以及其它特征将会被更清楚地理解。
附图说明
为了更透彻地理解本发明,现参阅结合附图和具体实施方式而描述的以下简要说明,其中的相同参考标号表示相同部分。
图1是一种存储网络的实施例示意图;
图2是一种通用数据存储方案的实施例示意图;
图3是一种冷数据的只能添加的数据存储方案的实施例示意图;
图4是一种解耦数据逻辑和物理存储的存储架构的实施例示意图;
图5是一种用于执行数据存储的NE的实施例示意图;
图6是一种网络存储实体逻辑布局的实施例示意图;
图7是一种分布式存储***的实施例示意图;
图8A示出了一种初始分配和缓冲场景的实施例;
图8B示出了一种后续分配和缓冲场景的实施例;
图8C示出了一种后续分配和缓冲场景的另一实施例;
图8D示出了一种分配和缓冲完成场景的另一实施例;
图8E示出了一种包括完整逻辑循环缓冲器的网络存储实体中的缓冲场景的实施例;
图9是一种数据存储过程转移图的实施例示意图;
图10是一种提供多租户存储方案的实施例示意图;
图11是一种提供多租户存储方法的实施例流程图;
图12是一种存储处理方法的实施例协议图;
图13是一种包括不完整逻辑循环缓冲器的网络存储实体的存储处理方法的实施例协议图;
图14是一种包括完整逻辑循环缓冲器的网络存储实体的存储处理方法的实施例协议图;
图15是一种数据存储管理方法的实施例流程图;
图16是一种数据存储管理方法的另一实施例流程图;
图17是一种数据存储方法的实施例流程图;
图18是一种数据查询方法的实施例流程图;
图19是一种随时间变化的用户对数据兴趣的示例曲线图。
具体实施方式
首先应理解,尽管下文提供一项或多项实施例的说明性实施方案,但所公开的***和/或方法可使用任何数目的技术来实施,无论该技术是当前已知还是现有的。本发明决不应限于下文所说明的说明性实施方案、附图和技术,包括本文所说明并描述的示例性设计和实施方案,而是可在所附权利要求书的范围以及其等效物的完整范围内修改。
本文公开了各种实施例,用于为具有良有界生命的数据提供具有读写装置的大规模多租户存储***。良有界生命数据是指包括已知使用寿命或兴趣的特定持续时间的数据。所述公开的实施例通过采用分布式循环链接的只能添加的缓冲器元件来分离逻辑数据存储与物理数据存储。所述缓冲器元件是分布在物理存储***中的多个物理存储单元上的逻辑存储单元。只能添加的指的是从先前写入位置继续写入数据。所述循环链接的缓冲器元件形成逻辑循环缓冲器,适于将最旧数据替换为最新数据来提供具有有界持续时间的存储。在一个实施例中,大规模多租户存储***包括租户供应***、元数据服务器、多个写入路由器、多个查询路由器、多个写入器和多个读取器。所述租户供应***用于从租户接收存储要求(例如,数据存储规范),确定租户的存储容量和存储成本,并请求所述元数据服务器为租户创建网络存储实体。所述元数据服务器用于根据请求为所述租户创建网络存储实体。例如,所述元数据服务器通过分配分布在物理存储***的多个物理存储单元中的多个逻辑存储单元(例如,缓冲器元件)和依次排列所述多个逻辑存储单元形成逻辑循环缓冲器,来构成网络存储实体。所述元数据服务器生成元数据以关联网络存储实体、逻辑循环缓冲器、逻辑存储单元和物理存储单元。例如,所述元数据服务器包括逻辑存储单元和物理存储单元之间的逻辑到物理映射以及形成所述逻辑循环缓冲器的逻辑存储单元之间的顺序关系。所述元数据服务器将至少一部分元数据发送到写入路由器,以使得写入路由器能够将数据路由到所述网络存储实体。所述写入路由器用于与所述写入器协作,以将数据记录写入所述物理存储***。读取路由器用于与所述读取器协调,以在数据查询时从所述物理存储***检索数据记录。每个物理存储单元可以由单个写入器写入,但每个读取器可以访问任何物理存储单元。在一个实施例中,所述元数据服务器根据最小化所述物理存储单元的输入/输出(IO)吞吐量和/或IO热量的目标函数来进行缓冲器元件分配。此外,所述元数据服务器可以随时间将特定逻辑循环缓冲器的开放元件重定位到不同的物理存储单元,以最小化IO吞吐量和/或IO热量。所述公开的实施例提供一组用于与所述存储***通信的应用软件编程接口(application programming interface,简称API),例如用于网络存储实体的创建,删除和调整大小以及从网络存储实体读取数据和/或将数据写入网络存储实体。
图1是一种存储网络100的实施例示意图。所述网络100包括进行相互数据通信的租户供应***110、元数据服务器120、存储***130、多个写入路由器141、多个写入器142、多个查询路由器151和多个读取器152。所述租户供应***110、所述元数据服务器120、所述存储***130、所述写入路由器141、所述写入器142、所述查询路由器151和所述读取器152可以对应于数据存储***的组件,并且可以由数据存储服务提供商提供。例如,所述数据存储服务提供商可以向多个租户160(例如,租户A、租户B和租户C)提供网络存储。每个租户160可以包括共享对所述网络100拥有特定权限的公共访问的一组用户。每个租户160可以经由数据源161生成和/或捕获数据,请求所述数据存储服务提供商存储数据,并在稍后查询所述存储的数据,以便通过监测和/或分析应用162进行监测和/或分析。
所述数据源161包括用于捕获数据并将相关联的比特流转发到所述写入路由器141的任何设备。例如,所述数据源161可以包括视频和/或音频监测***、包括传感器的IoT设备、捕获关于***状态/利用率的数据的DC、捕获关于***状态/利用率的数据的移动网络等。因此,所述比特流包括数据记录,所述数据记录包括各种数据阵列,如媒体(例如,视频和/或音频数据)、传感器数据和/或被连续监测的任何其它类型的时间序列数据。所述数据记录还可以包括与数据相关联的其它信息,例如温度、电流、设备利用率或与数据相关的任何其它属性。在一些实施例中,所述数据可以包括有界生命。例如,随着时间的推移,对用户而言,数据可能变得不那么重要或不太有趣。
所述监测和/或分析应用162包括可以在虚拟机(virtual machine,VM)、服务器或任何计算和/或处理设备上执行的一个或多个软件组件。所述监测和/或分析应用162可以用于检索数据和/或搜索数据来进行监测和分析。例如,所述监测和/或分析应用162可能对在特定时间段内捕获的特定范围内的数据感兴趣,和/或包括特定数据属性。
所述存储***130可以是适于存储数据的一个或多个设备。如图1所示,所述存储***130包括多个物理存储单元131,所述物理存储单元131可以包括存储级存储器(storage class memory,简称SCM)、非易失性存储器(non-volatile memory,简称NVM)、固态驱动器(solid state driver,简称SSD)、硬盘驱动器(hard disk drive,简称HDD)、磁记录和/或带状磁记录(shingled magnetic recording,简称SMR)。所述物理存储单元131可以被分成多个存储组(如虚线框所示)。所述存储***130用于从数据源161接收比特流,并且经由写入路由器141和写入器142将所述接收到的比特流存储为例如数据段,和/或提供对读取器152的读取访问,使得所述读取器152和所述查询路由器151应所述监测和/或分析应用162的请求检索所述存储的数据,以下将进行全面讨论。在一些实施例中,所述存储***130可另外进行数据压缩以优化存储使用。
所述写入器142可以是适于向所述存储***130写入数据的任何设备。所述写入器142可以包括处理单元、存储器和/或到所述存储***130的IO接口。每个物理存储单元131或每组物理存储单元131可以由单个写入器142写入。所述读取器152可以是适于从所述存储***130检索和/或读取数据的任何设备。所述读取器152可以包括处理单元、存储器和/或到所述存储***130的IO接口。每个读取器152可以包括对所述存储***130中的所有物理存储单元131的读取访问。
所述租户供应***110可以包括用于从所述租户160接收数据存储规范,并根据所述数据存储规范确定所述租户160的存储要求和/或成本的一个或多个计算设备。所述数据存储规范可以包括数据生成规范和数据查询规范。例如,数据生成规范可以包括与数据发布频率、兴趣持续时间、序列化方案(例如,数据类型和/或存储格式)和/或索引方案相关联的信息。因此,所述租户供应***110可以基于租户160的数据生成规范来确定租户160的存储容量、写入吞吐量要求以及入口数据流和处理成本。数据查询规范可以包括与数据查询频率和/或复杂度相关联的信息。因此,所述租户供应***110可以基于租户160的数据查询规范来确定租户160的读取吞吐量要求以及出口数据流和处理成本。所述入口处理成本和出口处理成本可以被称为租赁成本。在一些实施例中,可以在所述数据存储服务提供商和所述租户160之间预先协商供应。在一些其它实施例中,可以在所述数据存储服务提供商和所述租户160之间动态协商供应,并且可以随时间调整和/或更新。在所述租户供应***110和租户160之间约定存储要求和/或成本之后,所述租户供应***110请求所述元数据服务器120根据所述租户160的存储要求,通过从所述存储***130分配资源来为所述租户160创建网络存储实体。应当注意的是,当支持多租户时,可以为所述多个租户160创建单独的网络存储实体。例如,每个租户160可被授予仅对为所述租户160创建的网络存储实体的访问权限。
所述元数据服务器120是虚拟机(VM)、服务器或任何用于管理所述存储***130的设备。所述元数据服务器120基于所述租户供应***110提供的存储要求信息为租户160创建网络存储实体。所述元数据服务器120采用解耦存储***130上的数据的逻辑存储和物理存储的存储架构。例如,所述元数据服务器120定义逻辑存储单元并将逻辑存储单元映射到物理存储单元131。所述逻辑存储单元可以包括相同大小和/或不同大小。在一个实施例中,所述元数据服务器120可以将物理存储单元131逻辑划分成多个逻辑存储单元所述元数据服务器120还可以根据租户160所需的存储量来进一步链接多个逻辑存储单元。
在一个实施例中,所述元数据服务器120将多个逻辑存储单元分派给租户160,并且通过采用循环链表技术将所述多个逻辑存储单元作为单个网络存储实体呈现给租户160。例如,每个网络存储实体可以被表示为由所述逻辑存储单元序列形成的逻辑循环缓冲器,并且数据可以依次写入所述逻辑存储单元序列。因此,逻辑循环缓冲器包括在任何给定时刻准备好数据写入的单个逻辑存储单元。当逻辑存储单元已满时,密封所述逻辑存储单元(例如,不打开用于存储),并且在所述序列的下一逻辑存储单元处继续数据写入。所述被打开用于存储或当前接受数据写入的逻辑存储单元被称为开放元件。在一些实施例中,所述元数据服务器120可以将物理存储从所述存储***130预分配给逻辑存储单元,并且根据网络存储实体创建请求来形成逻辑循环缓冲器。在一些其它实施例中,所述元数据服务器120可以在从所述租户160的数据源161处接收到数据记录时,通过将物理存储分配给逻辑存储单元来为租户160构建网络存储实体或逻辑循环缓冲器。当所述网络存储实体分配有足量内存时(例如,根据存储要求),所述网络存储实体或所述逻辑循环缓冲器构建完成。下面将更全面地描述用于构建所述逻辑循环缓冲器并将数据写入到所述逻辑循环缓冲器和/或存储***130的机制。
所述元数据服务器120跟踪和维护与网络存储实体相关联的元数据。例如,所述元数据服务器120可以为每个网络存储实体生成存储记录或元数据。所述存储记录可以包括物理存储单元131的全局地址、所述逻辑存储单元和所述物理存储单元131之间的映射、所述逻辑存储单元之间的链接和/或关系(例如,以循环链表的形式)和/或其它相关存储信息,例如状态、可用容量和IO性能。以下将进行全面讨论。所述元数据服务器120可以为写入路由器141提供至少一部分存储记录,使得写入路由器141能够将数据记录路由到对应的物理存储单元131。另外,所述元数据服务器120可以为查询路由器151提供所述至少一部分存储记录,使得查询路由器151能够从存储***130检索数据记录。
所述写入路由器141可以是路由器、交换机或任何用于经由写入器142将数据从数据源161路由到存储***130的设备。所述写入路由器141缓存所述元数据服务器120提供的存储记录。所述写入路由器141维护和跟踪每个逻辑循环缓冲器中的开放元件和每个开放元件中的当前写入位置。当写入路由器141从数据源161接收到数据记录时,所述写入路由器141确定与所述数据源161和/或数据源161的租户160相关联的存储记录,并与所述写入器142和/或元数据服务器120协作,将所述数据记录写入存储***130。例如,所述写入路由器141确定由开放元件映射的物理存储单元131和对应于当前写入位置的物理存储单元131的地址范围内的物理地址。所述写入路由器141确定与物理存储单元131相关联的写入器142,并将所述数据记录路由到写入器142,指示所述写入器142从对应于当前写入位置的物理地址开始,将所述数据记录写入物理存储单元131。所述写入路由器141可另外向写入器142提供对应于开放元件的物理地址,使得所述写入器142可以在开放元件已满时通知所述写入路由器141。当所述开放元件已满时,写入路由器141可以从存储记录查找网络存储实体的下一逻辑存储单元,和/或与所述元数据服务器142协商,以确定下一逻辑存储单元并将剩余数据记录路由到与映射到下一逻辑存储单元的物理存储单元131相对应的写入器142。以下将更全面地讨论写入路由器141、写入器142和数据写入的元数据服务器142之间的交互。
所述查询路由器151可以是路由器、交换机或任何用于经由读取器152将数据从存储***130路由到租户160的监测和/或分析应用162的设备。所述查询路由器151缓存元数据服务器120提供的存储记录。当查询路由器151从监测和/或分析应用程序162接收到数据记录的读取请求时,所述查询路由器151检索与所述数据记录相关联的存储记录。所述查询路由器151根据所述存储记录来确定与所述数据记录相关联的逻辑存储单元和所述逻辑存储单元映射的物理存储单元131。随后,所述查询路由器151请求读取器152从所述物理存储单元131检索数据记录。由于每个读取器152包括对所有物理存储单元131的读取访问,因此所述查询路由器151可以将读取请求路由到任何读取器152。在一些实施例中,所述查询路由器151可以基于所述读取器152的负载来确定特定的读取器152。应当注意的是,所述元数据服务器120不被调用于将每个数据写入存储***130或从存储***130读取每个数据。因此,IO吞吐量可以不受所述元数据服务器120的限制。此外,输入负载可以分布在写入路由器141,和/或输出负载可以分布在查询路由器151。另外,网络100可以进行如图所示的配置或如本领域普通技术人员的决定进行配置,以实现类似功能。
图2是一种通用数据存储方案200的实施例示意图,可以应用于存储设备,例如存储***130。在所述方案200中,多个数据频带210存储有数据。每个数据频带210包括相对大量的数据,例如32—256兆字节(megabyte,简称MB)。在一个具体示例中,当数据流以每五秒传输一次的频率发送64位数据时,32MB数据频带中可以存储大约4周的数据流。存储设备包括将接收的数据写入存储器的写入头和从存储器读取数据的读取头。每个数据频带210包括与所述写入头大致相同的写入宽度221。由于与硬件相关联的原因,写入头中心附近的数据比写入头边缘的数据的错误少。因此,读取头小于写入头,并且仅读取每个数据频带210的中心。间隙223位于数据频带210之间,以防止在写入过程中相邻的数据频带210被破坏。所述方案200允许独立写入、读取和覆盖每个数据频带210。然而,间隙223的存在减少了适合存储器的任何指定区域的数据频带210的数量。
图3是一种冷数据的只能添加的数据存储方案300的实施例示意图,所述方案可供存储设备使用,如存储***130。所述方案300使用与数据频带210相似的数据频带310。与所述方案200相比,所述方案300通过消除所述方案200中示出的一些间隙223将所述数据频带310分组为组311和312。虽然所述方案300描述了所述数据频带310的第一组311和所述数据频带310的第二组312,但是可以使用任何数量的组。所述第一组311通过间隙323与所述第二组312隔开。所述方案300使所述数据频带310叠盖,即,使组中每个数据频带310覆盖组311或312中前一个数据频带310的一部分。虽然所述数据频带310的写入宽度321的部分被覆盖,但是会保留每个数据频带310的读取宽度322(例如,不会覆盖读取宽度)。因此,所述方案300通过利用读取头和写入头之间的大小差异来使适合指定空间的数据频带310的数量最大化。与所述方案300相关联的运营成本是覆盖任何数据频带310也将覆盖/破坏任何后续数据频带310中的数据。因此,所述方案300是只能添加的方案。只要保留间隙323,即可将新数据频带310追加到任何组311或312的末端,而不会破坏数据。覆盖任何写入数据频带310还需要覆盖相关组311或312中的所有后续数据频带310。因此,所述方案300不太适合需要频繁更新的数据,但非常适合存储后很少更改的大量冷数据的存储。例如,所述方案300允许最佳的数据频带310的存储空间效率,这有利于大量的数据,因为冷数据很少被修改,而不需要大量的运营成本。
图4是一种解耦数据逻辑和物理存储的存储***400架构的实施例示意图。所述存储***400可以类似于所述存储***130。所述***400包括类似于所述物理存储单元131的多个物理存储单元410。所述***400通过定义多个逻辑存储单元420并将所述逻辑存储单元420映射到所述物理存储单元410来解耦数据的逻辑和物理存储。每个逻辑存储单元420对应于缓冲器元件,并且可以指所述***400中的最小存储分配单元。在一些实施例中,所述逻辑存储单元420是只能添加的缓冲器,其中可以从先前写入位置继续数据写入。通过采用若干机制可以将所述逻辑存储单元420映射到所述物理存储单元410。例如,单个物理存储单元410可以在逻辑上分成多个逻辑存储单元420。或者,单个逻辑单元420可被映射到一个物理存储单元410的一部分和另一物理存储单元410的一部分。每个逻辑存储单元420可以包括相同的存储容量或不同的存储容量。当DC或数据存储服务器提供商采用所述***400架构时,租户,如所述租户160,分配有分布在所述物理存储单元410上的一个或多个逻辑存储单元420。所述逻辑存储单元420可以逻辑链接在一起以形成循环缓冲器,并且可以表示为单个网络存储实体。以下将进行全面描述。
图5是网络中作为节点的NE500的实施例示意图,如网络100。例如,所述NE500可以作为租户供应***,如租户供应***110,元数据服务器,如元数据服务器120,写入路由器,如写入路由器141,写入器,如写入器142,查询路由器,如查询路由器151,和/或读取器,如读取器152。可以在单个节点中实现NE500,或者可以在网络的多个节点中实现NE 500的功能。本领域技术人员将意识到,术语NE包含广泛范围的设备,NE500仅是其中一个示例。包含在内的NE500是为了表述清晰,并不旨在将本发明的应用限制为特定的NE实施例或某一类NE实施例。本发明中所描述的至少部分特征/方法可以在如NE500等网络装置或组件中实现。例如,可以使用硬件、固件和/或硬件上运行的安装软件来实现本发明中的特征/方法。NE500可以是通过网络来处理、存储和/或转发数据帧的任何设备,如服务器、客户端和数据源等。如图5所示,所述NE500可以包括收发机(transceiver,简称Tx/Rx)510,其可以是发射机、接收机或其组合。Tx/Rx510可以耦合到多个端口550(例如上游接口和/或下游接口),用于从其它节点发送和/或接收帧。处理器530可耦合到所述Tx/Rx510,以处理帧和/或确定向哪些节点发送帧。所述处理器530可以包括一个或多个多核处理器和/或存储器设备532,其可以用作数据存储器和缓冲器等。处理器530可以实现为通用处理器,或者可以是一个或多个专用集成电路(application specific integrated circuit,简称ASIC)和/或数字信号处理器(digital signal processor,简称DSP)的一部分。处理器530可以包括数据存储处理模块534,其可以根据实施例执行方法1100、1200、1300、1400、1500、1600、1700和1800。在一个实施例中,所述数据存储处理模块534估计租户的存储要求和成本。在另一个实施例中,所述数据存储处理模块534为租户分配网络存储。在另一个实施例中,所述数据存储处理模块534将数据记录路由到存储设备和/或执行数据写入。在另一个实施例中,所述数据存储处理模块534从存储设备检索数据。在替代实施例中,所述数据存储处理模块534可以被实现为存储在存储器设备532中的指令,所述指令可以由处理器530执行,如作为计算机程序产品。在另一替代实施例中,所述数据存储处理模块534可以在单独的NE上实现。所述存储器设备532可以用于存储元数据和/或存储记录,其中所述数据存储处理模块534可以采用存储元数据和/或存储记录。所述端口550可以包含电和/或光传输和/或接收组件。
应当理解,通过将可执行指令编程和/或加载到所述NE500,所述处理器530、数据存储处理模块534、端口550、Tx/Rx510和/或设备存储器532中的至少一个会发生改变,从而在某种程度上将所述NE500转换成具有本发明新颖功能的特定机器或装置,如多核转发架构。对于电气工程和软件工程领域至关重要的是,可以按照公知的设计规则将可以通过将可执行软件加载到计算机来实现的功能转换为硬件实现。在软件还是硬件中实现某一概念的决定通常取决于设计的稳定性和要生产的单元数量的考虑,而非考虑任何涉及从软件域到硬件域的转换问题。通常,经常变化的设计可以优先在软件中实现,这是因为重编硬件实现要比重编软件设计更加昂贵。通常,稳定性好并大批量生产的设计可以优先在硬件中实现,例如,在ASIC中,这是因为大批量生产运行使得硬件实现比软件实现更廉价。通常,一项设计可以以软件的形式进行开发和测试,之后根据公认的设计规则转化为专用集成电路中的等效的硬件实现方式,所述硬件实现方式硬连线至所述软件的指令。按照相同的方式,由新型ASIC控制的机器即为一种特定机器或装置,同样地,已被编程和/或加载可执行指令的计算机可被视为一种特定的机器或装置。
图6是一种网络存储实体逻辑布局600的实施例示意图。当为租户创建网络存储实体时,如租户160,元数据服务器可以采用所述布局600,如元数据服务器120。所述布局600包括多个缓冲器元件620,所述缓冲器元件可以类似于逻辑存储单元420,以有序序列(例如,逻辑顺序关系)排列并循环链接以形成逻辑循环缓冲器650。所述缓冲器元件620由作为逻辑链路的链路640互连。所述缓冲器元件620意识不到逻辑关系。相反,所述链接640的逻辑关系或表示由元数据服务器分开维护。例如,所述元数据服务器可以使用存储记录来跟踪所述缓冲器元件620和给定逻辑循环缓冲器650中的缓冲器元件620的物理位置之间的映射。所述缓冲器元件620分布在如所述存储***130的存储***中的多个物理存储单元,如所述物理存储单元131和410。在一个实施例中,所述逻辑循环缓冲器650或网络存储实体可以由名称来识别。例如,该名称可以包括标识特定承租人的租户标识符(identifier,简称ID)和/或标识特定类型数据或度量的度量或数据ID,所述数据和度量可以采用所述逻辑循环缓冲器650进行存储,并且可以以/TenantID/MetricID形式。所述特定缓冲器元件620的物理位置可以由包括存储设备、物理存储单元、存储带,例如数据频带210和/或310,和存储带中的一段等的位置的全局地址来标识,并且可以以/Hub/Writer/DiskGrouping/Disk/Band/Segment形式。当数据写入网络存储实体时,写入路由器,如写入路由器141,和写入器,如写入器142可以采用所述物理位置。当从网络存储实体检索数据时,查询路由器,如查询路由器151,和阅读器,如阅读器152也可以采用所述物理位置。
图7是一种分布式存储***700布局的实施例示意图。所述***700可以对应于存储***130的一部分和***400。所述***700包括多个物理存储单元710和映射到所述物理存储单元710的多个逻辑存储单元720。所述物理存储单元710类似于物理存储单元131和410。所述逻辑存储单元720类似于逻辑存储单元420。所述布局示出了在某个给定时刻,例如在元数据服务器,如元数据服务器120,从所述***700创建多个网络存储实体之后,网络存储实体、所述逻辑存储单元720和物理存储单元710之间的映射。如图所示,所述***700提供两个网络存储实体。第一网络存储实体分配有分布在物理存储单元710上的多个第一逻辑存储单元720(例如,A1、A2、A3、A4和A5)以及由虚线箭头741表示的逻辑存储单元A1-A5720之间的逻辑关系。第二网络存储实体包括多个第二逻辑存储单元720(例如,C1、C2、C3、C4和C5)720以及由实线箭头742表示的所述第二逻辑存储单元C1-C5 720之间的逻辑关系。因为所述第二网络存储实体分配完成,所以逻辑存储单元C1-C5 720形成完整的逻辑循环缓冲器,而所述第一网络存储实体正在构建中。因此,所述逻辑存储单元A1-A5 720形成开环而不是闭环的循环。例如,所述逻辑存储单元A5 720可以对应于所述第一网络存储实体中的开放元件,所述开放元件也是最后分配的元件。在所述逻辑存储单元A5 720已满之后,可以密封所述逻辑存储单元A5 720,并且可以从物理存储单元710分配下一逻辑存储单元720。所述逻辑存储单元A1-A5 720的序列被称为不完整的逻辑循环缓冲器。
图8A-E示出了循环缓冲方案800的实施例。所述方案800由存储网络,如网络100,中的元数据服务器,如元数据服务器120,和写入路由器,如写入路由器141来实现。在为租户,例如租户160,建立网络存储实体时,实现方案800。例如,所述网络存储实体可以是逻辑循环缓冲器的形式,如循环缓冲器650。所述方案800可以应用于存储***,如存储***130、400和700的存储***,所述存储***可以解耦逻辑存储与物理存储。
图8A示出一种初始分配和缓冲场景的实施例。例如,元数据服务器从存储***分配类似于缓冲器元件620和逻辑存储单元420和720的第一缓冲器元件C1 820,并为所述网络存储实体创建逻辑循环缓冲器。例如,逻辑循环缓冲器可以从链接到第一缓冲器元件C1820的第一逻辑链路841开始,其可以在稍后链接到后续缓冲器元件820。在分配所述第一缓冲器元件C1 820之后,所述第一缓冲器元件C1 820可以开始接受数据写入。写入路由器可以使用写入指针860来跟踪所述第一缓冲器元件C1 820的当前写入位置。例如,在数据写入之后,更新所述写入指针860以指示最后写入位置或下一位置,使得可以从最后写入位置继续后续数据写入。存储器设备,如存储器设备532,可以本地存储所述写入指针860。
图8B示出了一种后续分配和缓冲场景的实施例。例如,在第一缓冲器元件C1 820已满之后,第二缓冲器元件C2 820从存储***被分配给逻辑循环缓冲器。所述第二缓冲器元件C2 820被逻辑定位在所述第一缓冲器元件C1 820之后并由第二逻辑链路842逻辑链接到所述第一缓冲器元件C1 820。另外,所述写入指针860提前(例如,由写入路由器)指向第二缓冲器元件C2 820的开始位置,所述第二缓冲器元件为准备接受数据写入的逻辑循环缓冲器中的当前开放元件。
图8C示出了一种后续分配和缓冲场景的另一实施例。例如,在第二缓冲器元件C2820已满之后,从存储***向网络存储实体分配第三缓冲器元件C3 820。类似地,所述第三缓冲器元件C3 820被逻辑定位在第二缓冲器元件C2 820之后,并由第三逻辑链路843逻辑链接到第二缓冲器元件C2 820。另外,所述写入指针860提前指向第三缓冲器元件C3 820的开始位置,所述第三缓冲器元件为准备接受数据写入的网络存储实体中的当前开放元件。
图8D示出了一种分配和缓冲完成场景的实施例。例如,在第三缓冲器元件C3 820已满之后,从存储***为网络存储实体分配第四缓冲器元件C4 820。类似地,所述第四缓冲器元件C4 820被逻辑定位在第三缓冲器元件C3 820之后,并由第四逻辑链路844逻辑链接到第三缓冲器元件C3 820。类似地,所述写入指针860提前指向第四缓冲器元件C4 820的开始位置,第四缓冲器元件为准备接受数据写入的网络存储实体中的当前开放元件。当逻辑循环缓冲器或网络存储实体分配有足量内存时,例如,基于租户提供的数据存储规范,通过逻辑链接最后分配的缓冲器元件和首先分配的缓冲器元件来形成完整的逻辑循环缓冲器。如图所示,所述第一逻辑链路841将所述第四缓冲器元件C4 820链接到所述第一缓冲器元件C1 820。
图8E示出了一种包括完整逻辑循环缓冲器的网络存储实体中的缓冲场景的实施例。例如,在最后分配的缓冲器元件,缓冲器元件C4 820已满之后,所述写入指针860前进到定位在逻辑循环缓冲器中的下一缓冲器元件。这样,所述写入指针860被旋转回所述第一缓冲器元件C1820,并且先前写入所述第一缓冲器元件C1 820的数据可以被新数据覆盖。因此,存储在每个缓冲器元件820中的数据包括有界生命,并且例如可以由租户供应***,如租户供应***110,基于租户的存储量要求、租户的数据发布和/或写入频率、租户公布的数据的数据格式和/或数据的兴趣持续时间来计算逻辑循环缓冲器的大小。
图9是一种数据存储过程900转移图的实施例示意图。存储网络,如网络100,采用所述数据存储过程900。所述数据存储过程900可以采用存储***,如存储***130、400和700,以及与所述循环缓冲方案800描述类似的机制。在为租户,如租户160,提供网络存储实体时可以实现所述数据存储过程900。所述数据存储过程900描述租户,租户供应***,如租户供应***110,和元数据服务器,如元数据服务器120之间的交互。所述数据存储过程900包括供应状态910、激活状态920和操作状态930。在租户请求网络数据存储时,开始进入供应状态910。例如,租户可以提供一个或多个指定存储要求的数据存储规范,以下将进行全面描述。在所述供应状态910期间,所述租户供应***基于所述数据存储规范确定是否能为租户提供足够的***容量。当存在足够的***容量时,所述租户供应***请求元数据服务器根据租户的数据存储规范为租户创建网络存储实体。在元数据服务器将第一缓冲器元件,如缓冲器元件620和820以及逻辑存储单元420和720,分配给网络存储实体之后,所述数据存储过程900转换(由箭头951示出)到所述激活状态920,其中租户可以开始向所述网络存储实体发送数据记录以存储。例如,所述激活状态920可以从逻辑循环缓冲器开始,该逻辑循环缓冲器包括类似于图8A所示场景中的单个缓冲器元件(例如,逻辑存储单元420和720以及缓冲器元件620和820)。在所述激活状态920期间,租户的数据记录可以,例如经由写入路由器,如写入路由器141,和写入器,如写入器142,写入所述网络存储实体。以下将进行全面讨论。在所述第一缓冲器元件已满之后,所述元数据服务器可以将第二缓冲器元件分配给所述逻辑循环缓冲器,并通过将所述第二缓冲器元件逻辑链接到第一缓冲器元件来继续构建所述逻辑循环缓冲器。租户可以继续向所述网络存储实体发送数据记录以存储,并且所述元数据服务器可以继续向逻辑循环缓冲器(由箭头952示出)分配缓冲器元件,例如,类似于图8B和8C所示的场景。所述数据存储过程900可以继续在所述激活状态920中操作直到分配给网络存储实体的存储容量达到租户要求。当所述逻辑循环缓冲器分配有足量存储时,最后分配的缓冲器元件被逻辑链接到第一分配的缓冲器元件,以完成逻辑循环缓冲器,例如类似于图8D所示的场景,并且所述数据存储处理900转换(由箭头953示出)到所述操作状态930。在所述操作状态930期间,租户可以继续发送数据记录(由箭头954示出)到网络存储实体以存储,其中数据记录可以依次写入所述逻辑循环缓冲器中。当数据记录写入围绕缓冲器元件旋转时,最旧的数据记录可以被最近的数据覆盖,例如,类似于图8E所示的场景。在所述网络存储实体的生命期间,所述逻辑循环缓冲器可以被重定位,以下将进行更全面地描述。当租户请求删除所述网络存储实体(箭头955所示)时,所述数据存储过程900终止。
图10是一种提供多租户存储方案1000的实施例示意图。当确定租户,如租户160,存储容量和/或IO性能要求时,租户供应***采用所述方案1000,如租户供应***110。租户可以向租户供应***提供一个或多个数据存储规范1063,以请求网络存储实体存储特定类型的数据度量。数据度量的一些示例可以包括从传感器收集的温度或从视频监测***收集的视频流。当租户向租户供应***提供数据存储规范1063、数据生成规范1064以及数据查询规范1065时,步骤1081开始所述方案1000。所述数据生成规范1064可以包括标识特定类型数据度量的度量ID、描述特定类型数据度量的描述、数据度量的到达频率或发布频率、对数据度量的兴趣持续时间、序列化规范和/或索引规范。所述序列化规范可以包括数据度量的一个或多个描述符。所述描述符可以包括描述数据度量的数据类型(例如,整数,结构)、序列化顺序、编码规则和/或代码。所述序列化规范使得租户供应***可以估计存储数据度量所需的内存量。所述索引规范可以包括用于对数据度量进行分类的索引块大小和/或最大值和/或最小值。所述索引规范可用于在数据查询期间搜索数据。所述数据查询规范1065可以包括标识监测和/或分析应用的应用ID,如监测和/或分析应用162、应用的描述、数据查询频率和/或与数据查询复杂度相关联的参数。
在步骤1082,所述租户供应***基于租户的数据生成规范1064来估计租户的数据存储容量、存储量成本和入口数据流(例如,写入吞吐量性能)和处理成本。在步骤1083,所述租户供应***基于租户的查询规范1065来估计查询成本,出口数据流(例如,读取吞吐量性能)和处理成本。在步骤1084,所述租户供应***结合估计的存储量成本、估计的入口数据流和处理成本、估计的查询成本、估计的出口数据流和处理成本来计算租户的租赁成本。可以为每个租户重复步骤1081-1084。
图11是一种提供多租户存储方法1100的实施例流程图。所述方法1100由存储网络,例如网络100,中的租户供应***,如租户供应***110,或NE,如NE500来实现。当租户,如租户160,请求数据存储时,实现所述方法1100。所述方法1100采用与方案1000中描述类似的机制。在步骤1110,从租户接收诸如数据生成规范1064和数据查询规范1065的一个或多个数据存储规范。如上所述,数据生成规范可以包括数据发布频率、数据感兴趣的持续时间、与数据的存储格式相关联的序列化规范、以及与数据的搜索方案相关联的索引规范、或其组合。数据查询规范可以包括数据查询频率和与数据查询复杂度相关联的一个或多个参数。在步骤1120,物理存储***中的多个物理存储单元确定包括足够***容量以根据数据存储规范为租户提供数据存储。例如,可以基于所述数据发布频率、感兴趣的持续时间和/或包括在数据生成规范中的序列化规范来确定租户所需的存储容量。在步骤1130,例如,将存储请求消息发送到诸如元数据服务器120的元数据服务器,以根据所述数据存储规范请求为租户创建网络存储实体。在步骤1140,从元数据服务器接收指示分配给所述网络存储实体的多个逻辑存储单元(例如,逻辑存储单元420和720以及缓冲器元件620和820)中的第一逻辑存储单元的存储响应消息。所述多个逻辑存储单元分布在多个物理存储单元(例如,物理存储单元131、410和710)上,并且按顺序排列以形成逻辑循环缓冲器(例如,逻辑循环缓冲器650)。所述逻辑循环缓冲器提供具有有界持续时间的数据存储。如上所述,所述逻辑循环缓冲器中的缓冲器元件可以在一些持续时间之后被覆盖,其中旧数据可以被新数据替代。因此,所述逻辑循环缓冲器提供具有有界持续时间的数据存储。应当注意,还可以从数据生成规范确定写入吞吐量要求、存储量成本以及入口数据流和处理成本。此外,可以从数据查询规范中确定读取吞吐量需求,查询成本以及出口数据流和处理成本。
图12是一种存储处理方法1200的实施例协议图。所述方法1200在租户的数据源,如租户160的数据源161,写入路由器,如写入路由器141,写入器,如写入器142,以及物理存储单元,如物理存储单元131、410和710之间实施,所述物理存储单元131、410和710可以是存储设备的一部分,如存储***130、400和700。在为租户创建部分或完整的网络存储实体之后,例如,通过采用方案1000和/或方法1200实施所述方法1200。例如,写入路由器包括描述网络存储实体的缓存存储记录。所述存储记录可以包括租户ID(例如租户A)、数据记录ID(例如,传感器数据A)、逻辑循环与网络存储实体之间的关联、逻辑存储单元的有序序列如逻辑存储单元420和720、逻辑到物理存储映射(例如,逻辑存储单元的物理存储位置的地址)、为存储而开放的逻辑存储单元(例如,开放元件)以及跟踪开放元件内的写入位置的写入指针(例如,写入指针860)。在步骤1210,所述租户的数据源将数据记录发送到写入路由器,以请求写入路由器将数据记录存储到网络存储实体。在步骤1220,在接收到数据记录时,所述写入路由器确定与租户的数据源相关联的存储记录。所述写入路由器确定由开放元件映射的物理存储单元和对应于由写入指针指示的写入位置的物理位置(例如物理存储单元的物理地址)。随后,所述写入路由器确定负责写入对应物理存储单元的写入器。在步骤1230,所述写入路由器将数据记录路由到写入器,并向写入器提供对应的物理地址。在步骤1240,在接收到数据记录和物理地址时,写入器从物理地址开始,将数据记录存储到物理存储单元。应当注意,在一些实施例中,将数据记录写入物理存储单元可以包括写入器和物理存储单元之间的多个事务。此外,写入路由器可以在步骤1230另外向写入器提供对应于开放元件末端的物理地址,使得写入器可以在开放元件已满时停止写入,以下将进行全面讨论。图13是一种包括不完整逻辑循环缓冲器的网络存储实体的存储处理方法1300的实施例协议图。所述方法1300在元数据服务器,如元数据服务器120,写入路由器,如写入路由器141,第一写入器和第二写入器,如写入器142,以及第一物理存储单元和第二物理存储单元,如物理存储单元131、410和710之间实现。例如,第一物理存储单元和第二物理存储单元是由元数据服务器管理的一个或多个存储设备的一部分,诸如存储***130、400和700。例如,在通过采用方案1000和/或方法1200为租户,如租户160,创建网络存储实体之后实现方法1300,而网络存储实体可能仍在建立中。如上所述,网络存储实体可以从包括单个逻辑存储单元,如逻辑存储单元420和720以及缓冲器元件620和820的逻辑循环缓冲器开始,并且当接收到数据存储时,可以分配后续逻辑存储单元。例如,写入路由器缓存租户的存储记录,如租户160。所述存储记录可以包括租户ID、数据度量ID和网络存储实体、逻辑循环缓冲器、逻辑存储单元、物理存储单元和/或标识当前开放以存储的逻辑存储单元(例如,开放元件)的开放元件ID之间的关联。例如,关联可以包括逻辑存储单元和物理存储单元之间的逻辑到物理映射,以及形成逻辑循环缓冲器的逻辑存储单元之间的顺序关系。此外,所述写入路由器跟踪开放元件内的写入位置,因为逻辑循环缓冲器不完整,所以所述开放元件是最后分配的元件。
在步骤1305,所述写入路由器基于写入指针根据缓存的存储记录为从租户接收的数据记录确定第一写入器。例如,所述写入路由器确定由开放元件映射的第一物理存储单元、对应于写入位置的第一物理位置(例如,当前写入地址)和对应于开放元件末端的第二物理位置(例如,末端地址)。在步骤1310,所述写入路由器将数据记录发送到第一写入器,并向第一写入器提供当前写入地址和末端地址。在步骤1320,所述第一写入器根据当前写入地址开始将数据记录写入第一物理存储单元。在步骤1325,所述第一写入器确定数据写入到达或即将到达末端地址(例如,开放元件已满)。在步骤1330,所述第一写入器通知写入路由器数据写入到达或即将到达末端地址。在步骤1340,所述写入路由器向元数据服务器发送请求逻辑循环缓冲器的下一逻辑存储单元的请求。在步骤1345,在所述元数据服务器接收到该请求时,从存储设备向逻辑循环缓冲器分配下一逻辑存储单元,并将所述下一逻辑存储单元排在所述逻辑循环缓冲器中最后分配的逻辑存储单元之后。例如,所述元数据服务器可以基于一个或多个目标,如容量,IO吞吐量,IO热量或温度等,来确定存储设备中的目标物理存储单元(例如,第二物理存储单元)。在确定目标物理存储单元之后,所述元数据服务器更新与网络存储实体相关联的本地存储记录(例如,存储在永久存储器中)。在步骤1350,所述元数据服务器向写入路由器发送存储记录更新,以指示关联信息并将下一逻辑存储单元添加到逻辑循环缓冲器。在一个实施例中,所述元数据服务器可以确定网络存储实体的存储容量已经达到例如从租户供应***,如租户供应***110,接收到的所请求的存储容量。因此,所述元数据服务器可以添加最终链接以完成逻辑循环缓冲器,使得所分配的下一逻辑存储单元位于最后分配的逻辑存储单元之后并且在首先分配的逻辑存储单元之前。在这样的实施例中,所述元数据服务器可另外指示存储记录更新消息中的分配完成。
在步骤1360,在接收到存储记录更新时,写入路由器根据接收到的存储记录更新来更新本地缓存的存储记录。随后,所述写入路由器确定负责写入由下一逻辑存储单元映射的第二物理存储单元的第二写入器。在步骤1370,所述写入路由器,例如根据在步骤1320中先前写入到第一物理存储单元的数据量,将数据记录或一部分数据记录发送到第二写入器。在步骤1380,第二写入器将数据记录存储到第二物理存储单元。在一个实施例中,最后的开放元件和当前开放元件可被映射到同一物理存储单元的不同部分。在这样的实施例中,第一物理存储单元和第二物理存储单元对应于相同的物理存储单元,并且第一写入器和第二写入器对应于相同的写入器。在另一个实施例中,最后的开放元件和当前开放元件可以被映射到不同的物理存储单元。因此,第一物理存储单元和第二物理存储单元是不同的物理存储单元,并且第一写入器和第二写入器可以是不同的写入器。可以持续所述方法1300直到向租户分配足量的存储容量。
图14是一种包括完整逻辑循环缓冲器的网络存储实体的存储处理方法1400的实施例协议图。所述逻辑循环缓冲器可以类似于逻辑循环缓冲器650,并且可以包括与缓冲器元件620类似的多个循环链接缓冲器元件。所述方法1400在元数据服务器,如元数据服务器120,写入路由器,如写入路由器141,第一写入器和第二写入器,如写入器142,以及第一物理存储单元和第二物理存储单元,如物理存储单元131、410和710之间实现。例如,第一物理存储单元和第二物理存储单元是元数据服务器管理的一个或多个存储设备的一部分,如存储***130。例如,在通过采用类似于方案1000和/或方法1100、1200和1300中所描述的机制全部构建完成租户的网络存储实体后,如租户160,实施所述方法1400。当网络存储实体全部构建完成时,缓冲器元件可以开始旋转(例如,将最旧的数据替换成最新数据)。例如,写入路由器缓存与租户相关联的存储记录。存储记录可以包括租户ID、数据度量ID和网络存储实体、逻辑循环缓冲器、逻辑存储单元、物理存储单元和/或标识当前开放以存储的逻辑存储单元(例如,开放元件)的开放元件ID之间的关联。例如,关联可以包括逻辑存储单元和物理存储单元之间的逻辑到物理映射,以及形成逻辑循环缓冲器的逻辑存储单元之间的顺序关系。另外,写入路由器跟踪开放元件内的写入位置。
在步骤1405,写入路由器确定用于写入从租户接收的数据记录的第一写入器。例如,写入路由器确定由开放元件映射的第一物理存储单元、对应于写入指针标识的当前写入位置的第一物理位置(例如,物理存储单元处的当前写入地址)以及根据缓存的存储记录对应于开放元件末端的第二物理位置(例如,末端地址)。在步骤1410,所述写入路由器将数据记录发送到第一写入器,并向第一写入器提供当前写入地址和末端地址。在步骤1420,所述第一写入器从当前写入地址开始将数据记录写入第一物理存储单元。在步骤1425,所述写入器确定数据写入到达末端地址(例如,开放元件已满)。在步骤1430,所述第一写入器通知写入路由器所述数据写入已经到达末端地址。在步骤1435,写入路由器更新开放元件标识符以标识逻辑循环缓冲器中的下一逻辑存储单元,确定由下一逻辑存储单元映射的第二物理存储单元,并选择与第二物理存储单元相关联的第二写入器。在步骤1440,写入路由器向元数据服务器发送更新以指示该开放元件被更新到下一逻辑存储单元。在步骤1445,在接收到更新时,所述元数据服务器更新与网络存储实体相关联的本地存储记录(例如,存储在类似于存储器设备532的永久存储器中)。在步骤1450,所述元数据服务器向写入路由器发送确认以确认接收更新。在步骤1460,所述写入路由器,例如根据在步骤1420中先前写入到第一物理存储单元的数据量将数据记录或一部分数据记录路由到第二写入器。在步骤1470,第二写入器将数据记录存储到第二物理存储单元。类似于方法1200,第一和第二物理存储单元可以是相同的物理存储单元或不同的物理存储单元,并且第一和第二写入器可以是相同的写入器或不同的写入器。在一些实施例中,在步骤1445,元数据服务器可另外将开放元件重定位到不同的物理存储单元。在这样的实施例中,除步骤1450的确认之外,所述元数据服务器可以将重定位信息(例如,逻辑到物理映射更新)发送到写入路由器。
应当注意,所述元数据服务器将存储记录存储在永久存储器中,而写入路由器可以不将存储记录存储在永久存储器中。因此,在写入路由器停电时,存储记录可以不用保存在写入路由器。此外,写入路由器保持和跟踪写入指针或当前写入位置,无需与元数据服务器进行交互,使得元数据服务器可以以较低的吞吐量,较低的处理速度和/或较低的IO速率进行操作。因此,通过在步骤1440更新具有已更新的开放元件的元数据服务器,元数据服务器可以保留与存储记录相关联的信息,并且在停电时为写入路由器提供包括开放元件标识符的存储记录。随后,例如可以通过采用存储器校验和方法或任何其它合适的恢复方案来恢复当前写入位置。图15是一种数据存储管理方法1500的实施例流程图。方法1500由存储网络如网络100中的元数据服务器,如元数据服务器120,或NE,如NE500来实现。所述方法1500采用与方法1100、1200、1300和1400类似的机制。当从租户供应***,如租户供应***110,接收到用于为租户,如租户160,创建网络存储实体的存储请求消息时,从步骤1510开始进行方法1500。存储请求消息可以请求网络存储实体的固定存储容量。在步骤1520,通过从物理存储***,如存储***130、400和700,的多个物理存储单元,如物理存储单元131、410和710分配第一逻辑存储单元,如逻辑存储单元420和720和缓冲器元件620和820,为租户创建网络存储实体。例如,元数据服务器可以基于存储度量来选择目标物理存储单元,例如平均IO热量。在分配第一逻辑存储单元之后,元数据服务器生成逻辑循环缓冲器,并关联第一逻辑存储单元和逻辑循环缓冲器。例如,逻辑循环缓冲器包括第一逻辑存储单元和类似于图8A所示场景的链接。
在步骤1530,生成用于跟踪与网络存储实体相关联的元数据的存储记录。存储记录可以包括租户ID、数据度量ID和网络存储实体、逻辑循环缓冲器、逻辑存储单元、物理存储单元和/或标识当前开放以存储的逻辑存储单元(例如,第一逻辑存储单元)的开放元件ID之间的关联。例如,关联可以包括逻辑存储单元和物理存储单元之间的逻辑到物理映射,以及形成逻辑循环缓冲器的逻辑存储单元之间的顺序关系。在步骤1540,存储记录消息被发送到写入路由器,如写入路由器141,以向写入路由器提供至少一部分存储记录,使得写入路由器可以根据存储记录将数据记录路由到物理存储单元。应当注意,一旦第一逻辑存储单元被分配给网络存储实体,网络存储实体可以开始接受数据写入。
在步骤1550,确定是否从写入路由器接收到存满消息。如上所述,当开放元件已满时,写入器,如写入器142,通知写入路由器。如果接收到存满消息,则方法1500转到步骤1560。否则,在步骤1550,方法1500继续等待存满消息。在步骤1560,将下一逻辑存储单元分配给逻辑循环缓冲器。例如,元数据服务器可以基于一些存储度量为下一个逻辑存储单元选择目标物理存储单元,如平均IO热量测量或物理存储单元的可用容量。下一逻辑存储单元被排在逻辑循环缓冲器中的第一逻辑存储单元之后,例如,类似图8B和8C场景所示。
在步骤1570,例如通过将分配给网络存储实体的存储容量与在步骤1510中接收到的所请求的存储容量进行比较来确定是否完成网络存储实体。如果分配未完成,方法1500转到步骤1580。在步骤1580中,发送存储记录更新消息到写入路由器。存储记录消息可以包括下一逻辑存储单元的ID、下一逻辑存储单元的逻辑到物理映射和/或下一逻辑存储单元与逻辑循环缓冲器中先前分配的逻辑存储单元之间的关联。
如果分配完成,则接下来在步骤1590,通过添加最终链接关联所分配的逻辑存储单元与逻辑循环缓冲器首先分配的逻辑存储单元,来完成逻辑循环缓冲器。因此,所分配的下一逻辑存储单元位于先前分配的逻辑存储单元之后并且在第一逻辑存储单元之前。在步骤1595,发送分配完成消息至写入路由器。分配完成消息可以类似于在步骤1580中发送的存储记录更新消息,但是可以另外指示分配完成。应当注意,也可以通过在用存储记录更新写入路由器之前分配全部存储容量来构建网络存储实体,其中数据写入在逻辑循环完全构建之后开始。
图16是一种数据存储管理方法1600的另一实施例流程图。方法1600由存储网络,如网络100,中的元数据服务器,如元数据服务器120,和NE,如NE 500来实现。方法1600使用与方法1300中描述类似的机制。在为租户,如租户160,构建完整的网络存储实体之后,实现方法1600。例如,元数据服务器可以将与网络存储实体相关联的元数据存储在存储记录中。存储记录可以包括逻辑存储单元序列,如逻辑存储单元420和720和缓冲器元件620,其通过逻辑链接以形成逻辑循环缓冲器,如逻辑循环缓冲器650,将逻辑存储单元映射到物理存储单元,如物理存储单元131、410和710,的逻辑到物理映射以及标识当前接受数据写入的逻辑存储单元的开放元件ID。在步骤1610,例如从写入路由器,如写入路由器141,接收开放元件更新消息。例如,所述写入路由器可以将逻辑存储单元中的第一逻辑存储单元先标识为开放元件,随后第一逻辑存储单元因为数据写入可以为满。因此,写入路由器可以将开放元件更新为在逻辑循环缓冲器中的第一逻辑存储单元之后的逻辑存储单元中的第二逻辑存储单元。在步骤1620,可以根据所接收的开放元件更新消息来更新存储记录,其中开放元件被更新到第二逻辑存储单元。在步骤1630,例如,基于一些存储度量,如IO热量,确定是否将开放元件,即第二逻辑存储单元,重定位到不同的物理存储单元。如果确定重定位开放元件,接下来在步骤1640,根据存储度量为开放元件选择新的目标物理存储单元。在步骤1650,重定位消息被发送到写入路由器来指示重定位,其可以包括第二逻辑存储单元的更新的逻辑到物理映射。如果在步骤1630确定不重定位开放元件,则接下来在步骤1660,将更新确认消息发送到写入路由器来指示接收开放元件更新消息。应当注意,在一些实现方式中,步骤1660可以是可选步骤。可以在网络存储实体的生命周期期间重复方法1600。
图17是一种数据存储方法1700的实施例流程图。方法1700由存储网络,如网络100,中的写入路由器,如写入路由器141,和NE,如NE500,来实现。方法1700采用与方法1200、1300和/或1400中描述类似的机制。例如,当从元数据服务器,如元数据服务器120,接收到存储记录时,在步骤1710开始所述方法1700。存储记录可以包括与为租户创建的网络存储实体相关联的元数据,如租户160,其中所述网络存储实体对应于逻辑循环缓冲器,该逻辑循环缓冲器至少包括从存储***,如存储***130、400和700,的多个物理存储单元,如物理存储单元131、410和710,分配的第一逻辑存储单元,如逻辑存储单元420和720以及缓冲器元件620和820。元数据的一些示例可以包括标识租户的租户ID、标识可以存储在网络存储实体中的数据记录类型的租户的度量ID、第一逻辑存储单元和逻辑循环缓冲器之间的关联、逻辑到物理存储映射以及标识第一分配逻辑存储单元的开放元件ID。在步骤1720,例如,在如存储设备532的存储设备中本地缓存存储记录,其可以不是持久的。在步骤1725,创建写入指针用于跟踪当前写入位置,并且所述写入指针可以与存储记录相关联。所述写入指针也可以被缓存在存储设备。例如,所述写入器指针可以被设置在开放元件的起始位置。在步骤1730,例如从租户的数据源,如数据源161,接收数据记录。在步骤1740,在接收到数据记录之后,确定写入器,如写入器142,写入数据记录。例如,写入路由器可以查找与租户和/或数据记录相关联的存储记录和与存储记录相关联的写入指针。所述写入路由器确定开放元件映射的物理存储单元和对应于写入指针的物理存储单元的物理位置。在步骤1750,将数据记录转发给写入器。在步骤1760,确定是否从写入器接收到存满指示。如果从写入器接收到存满指示,则方法1700转到步骤1770,否则方法1700返回到步骤1730。在步骤1770,确定逻辑循环缓冲器是否完整。如果逻辑循环缓冲器不完整,接下来在步骤1790,向元数据服务器发送分配请求以请求下一逻辑存储单元。在步骤1793,从元数据服务器接收指示响应分配请求的分配的分配更新。例如,分配更新可以指示将下一逻辑存储单元添加到逻辑循环缓冲器以及指示下一逻辑存储单元的逻辑到物理映射。在步骤1795,根据分配更新来更新本地缓存的存储记录。在更新本地缓存的存储记录之后,方法1700返回到步骤1730。
如果在步骤1770确定完成逻辑循环缓冲器,则接下来在步骤1780将该开放元件更新为逻辑循环缓冲器中的下一逻辑存储单元。在步骤1785,更新的开放元件被发送到元数据服务器以指示开放元件被更新到下一个逻辑存储单元。可以继续步骤1730-1795直到网络存储实体被删除。
图18是一种数据查询方法1800的实施例流程图。方法1800由存储网络,如网络100,中的查询路由器,如查询路由器151,和NE,如NE 500来实现。例如,在通过采用与方法1100、1200、1300、1400、1500、1600和/或1700描述类似的机制为租户,如租户160,创建网络存储实体之后,开始实施方法1800。例如,在元数据服务器,如元数据服务器120,创建网络存储实体之后,元数据服务器可以将描述网络存储实体的存储记录发送到查询路由器。例如,查询路由器可以例如在本地存储设备,如存储设备532,缓存存储记录。存储记录可以包括租户ID、度量ID、形成逻辑循环缓冲器,如循环缓冲器650,的多个逻辑存储单元的逻辑到物理映射和/或索引方案。在步骤1810,例如从租户的监测应用,如监测和/或分析应用162,接收对数据记录的查询。在步骤1820,确定所请求的数据记录的逻辑存储位置。例如,查询路由器根据缓存在本地存储设备处的存储记录来确定逻辑循环缓冲器内的数据记录的逻辑存储位置。在步骤1830,确定逻辑存储位置是否在逻辑循环缓冲器的当前有效大小之内。如果逻辑存储位置不在逻辑循环缓冲器的当前有效大小之内,接下来在步骤1880,返回读取错误以响应在步骤1810接收到的查询。否则,方法1800转到步骤1840。在步骤1840,确定所请求的数据记录的物理存储位置。例如,查询路由器根据逻辑到物理映射查找由逻辑存储位置映射的物理存储位置。在步骤1850,向读取器,如读取器152,发送请求以在物理存储位置检索数据记录。如上所述,读取器不与任何特定物理存储单元相关联,并且可以访问任何物理存储单元。因此,查询路由器可以基于负载或其它性能参数来选择读取器。在步骤1860,从读取器接收数据记录以响应步骤1850发送的请求。在步骤1870,转发检索的数据记录以响应于步骤1810接收的查询。
在一个实施例中,数据存储服务可以包括一组***应用软件编程接口(API)。下表列出了一组API。
表1—数据存储服务API的列表
APIs | 说明 |
创建 | 创建租户规范和元数据(例如,创建逻辑循环缓冲器大小或文件大小) |
调整大小 | 增加或减小逻辑循环缓冲器的大小 |
删除 | 删除与逻辑循环缓冲器相关联的元数据和空闲物理存储 |
写入/放置 | 将数据记录附加到当前写入位置 |
读取/获得 | 从逻辑循环缓冲器读取数据 |
元数据服务器,如元数据服务器120,以及供应服务器,如租户供应***110,采用所述创建API。所述创建API基于租户规范为网络存储实体创建元数据,如数据生成规范1064和数据查询规范1065。例如,可以基于数据到达频率、数据序列化规范和/或租户规范所提供的兴趣持续时间来确定存储容量(例如,逻辑循环缓冲器大小或文件大小)。
元数据服务器和供应服务器采用所述调整大小API。所述调整大小API可以增加或减小逻辑循环缓冲器的大小。直到完成或开始旋转逻辑循环缓冲器,才开始调整逻辑循环缓冲器的大小。大小可以随时间继续调整,例如,基于数据的兴趣持续时间。
元数据服务器和供应服务器采用所述删除API。所述删除API删除与网络存储实体相关联的元数据和由形成网络存储实体的逻辑存储单元映射的空闲物理存储。
写入器采用所述写入API,如写入器142。所述写入API将数据附加到当前写入位置。当前写入位置对应于逻辑循环缓冲器内的逻辑存储单元,如逻辑存储单元420和720,其中逻辑存储单元映射到物理存储单元,如物理存储单元131、410和710。
读取器采用所述读取API,如读取器152。所述读取API可以在逻辑循环缓冲器内的任何位置读取数据。如果读取请求不在逻辑循环缓冲器的当前有效大小内,读取API可能返回读取失败。数据存储服务还可以提供其它API,如可移植操作***接口标准(portableoperating system interface,简称POSIX)类操作。
图19是一种随时间变化的用户对数据兴趣的示例曲线图1900。在曲线图1900中,在垂直轴中示出用户兴趣的级别,并且在水平轴中描绘数据年龄。对高保真数据(例如视频)和/或细粒度/高密度数据的兴趣随数据老化而迅速下降。对低保真度数据和/或粗/低密度数据的兴趣下降得更慢。如图所示,大多数数据包括兴趣的有限持续时间或良有界生命。本文描述的存储机制适用于存储具有良有界生命的数据。例如,使用逻辑循环缓冲器,如逻辑循环缓冲器650,与只能添加的缓冲器元件,如缓冲器元件620和820,可以允许顺序数据写入和使用最新的数据更换最旧数据。应当注意,逻辑循环缓冲器的存储容量或大小可以基于存储在逻辑循环缓冲器中的数据的感兴趣持续时间来确定。
虽然本发明多个具体实施例,但应当理解,所公开的***和方法也可通过其它多种具体形式体现,而不会脱离本发明的精神或范围。本发明的实例应被视为说明性而非限制性的,且本发明并不限于本文本中所给出的细节。例如,各种元件或组件可以在另一***中组合或整合,或者某些特征可以省略或不实施。
此外,在不脱离本发明的范围的情况下,各种实施例中描述和说明为离散或单独的技术、***和方法可以与其它***、模块、技术或方法进行组合或合并。展示或论述为彼此耦合或直接耦合或通信的其它项也可以采用电方式、机械方式或其它方式经由某一接口、设备或中间组件间接地耦合或通信。其它变更、替换、更替示例对本领域技术人员而言是显而易见的,均不脱离此处公开的精神和范围。
Claims (20)
1.一种数据处理方法,其特征在于,包括:
从租户接收一个或多个数据存储规范,其中,所述数据存储规范包括数据生成规范和数据查询规范,所述数据生成规范包括与数据发布频率、兴趣持续时间、序列化方案和/或索引方案相关联的信息,所述数据查询规范包括与数据查询频率和/或复杂度相关联的信息;
确定物理存储***中的多个物理存储单元包括足够的***容量,以根据所述数据存储规范为所述租户提供数据存储;
发送存储请求消息以根据所述数据存储规范请求为所述租户创建网络存储实体;
根据所述数据存储规范,接收指示分配给所述网络存储实体的多个逻辑存储单元中的第一逻辑存储单元的存储响应消息,其中所述多个逻辑存储单元分布在所述多个物理存储单元中,所述多个逻辑存储单元按顺序排列以形成逻辑循环缓冲器,所述逻辑循环缓冲器提供良有界生命数据的存储,所述网络存储实体被表示为所述逻辑循环缓冲器;
生成用于跟踪与所述网络存储实体相关联的元数据的存储记录,所述存储记录包括所述逻辑存储单元与所述物理存储单元之间的映射,以及形成所述逻辑循环缓冲器的逻辑存储单元之间的顺序关系;
确定当前写入位置或者请求查询的数据记录的物理存储位置;
根据所述存储记录和所述当前写入位置将与所述租户关联的数据记录写入所述网络存储实体或者根据所述存储记录和所述物理存储位置来查询存储的数据记录。
2.根据权利要求1所述的数据处理方法,其特征在于,所述逻辑存储单元是只能添加的存储元件,并且所述逻辑循环缓冲器向所述数据存储提供有界持续时间。
3.根据权利要求1所述的数据处理方法,其特征在于,还包括根据所述数据存储规范确定所述租户的存储容量,其中所述存储请求消息还根据所述存储容量请求创建所述网络存储实体。
4.根据权利要求3所述的数据处理方法,其特征在于,还包括:
根据所述数据存储规范确定写入吞吐量要求;
根据所述数据存储规范,确定所述租户的存储容量成本、入口数据流和入口处理成本;
其中所述存储请求消息还根据所述写入吞吐量要求来请求创建所述网络存储实体。
5.根据权利要求3所述的数据处理方法,其特征在于,还包括:
根据所述数据存储规范,确定读取吞吐量要求;
根据所述数据存储规范,确定所述租户的查询成本、出口数据流和出口处理成本;
其中所述存储请求消息还根据所述读取吞吐量要求来请求创建所述网络存储实体。
6.一种数据处理装置,其特征在于,包括:
接收器,用于接收请求为租户创建网络存储实体的存储请求消息;
处理器,耦合到所述接收器,并用于根据所述存储请求消息通过以下步骤来组成所述网络存储实体:
根据存储度量,分配映射到物理存储***中多个物理存储单元的多个逻辑存储单元;
依次排列所述逻辑存储单元以形成逻辑循环缓冲器;
生成元数据以关联所述网络存储实体、所述逻辑循环缓冲器和所述逻辑存储单元,其中所述元数据包括所述逻辑存储单元和所述物理存储单元之间的映射以及所述逻辑存储单元之间的顺序关系;
其中,所述逻辑循环缓冲器提供良有界生命数据的存储,所述网络存储实体被表示为所述逻辑循环缓冲器;
发射器,耦合到所述处理器,并用于向网元发送包含至少一部分元数据的存储记录消息,以指示所述网元根据所述逻辑存储单元之间的顺序关系以及所述逻辑存储单元和物理存储单元之间的映射将与所述租户关联的数据存储到所述网络存储实体。
7.根据权利要求6所述的数据处理装置,其特征在于,所述存储请求消息还请求所述网络存储实体的第一存储容量,其中所述接收器还用于从所述网元接收指示最后分配的逻辑存储单元被写满的存满消息,其中所述处理器还用于通过以下步骤分配所述多个逻辑存储单元:
确定所述逻辑循环缓冲器包括小于为所述网络存储实体请求的所述第一存储容量的第二存储容量;
通过根据所述存储度量从所述物理存储***中选择目标物理存储单元,将下一逻辑存储单元分配给所述逻辑循环缓冲器;
其中所述处理器还用于通过将所述下一逻辑存储单元排列在所述逻辑循环缓冲器中最后分配的逻辑存储单元之后来排列所述逻辑存储单元;
其中所述发射器还用于向所述网元发送指示在所述逻辑循环缓冲器中添加第二逻辑存储单元的存储记录更新消息。
8.根据权利要求7所述的数据处理装置,其特征在于,所述处理器还用于通过以下步骤来排列所述逻辑存储单元:
在将所述下一逻辑存储单元分配给所述逻辑循环缓冲器之后,确定所述逻辑循环缓冲器包括等于所述第一存储容量的第三存储容量;
通过将所述下一逻辑存储单元排列在所述逻辑循环缓冲器中首先分配的逻辑存储单元之前来完成所述逻辑循环缓冲器。
9.根据权利要求6所述的数据处理装置,其特征在于,所述元数据还包括将逻辑存储单元标识为准备接受数据写入的开放元件的开放元件标识符。
10.根据权利要求9所述的数据处理装置,其特征在于,还包括耦合到所述处理器并用于存储所述元数据的存储器,其中所述开放元件标识符将所述逻辑存储单元中的第一逻辑存储单元标识为开放元件,其中所述接收器还用于从所述网元接收指示所述开放元件被更新为所述逻辑循环缓冲器中所述第一逻辑存储单元之后的逻辑存储单元中的第二逻辑存储单元的开放元件更新消息,并且所述处理器还用于根据所述开放元件更新消息更新所述存储器中存储的所述元数据中的所述开放元件标识符。
11.根据权利要求9所述的数据处理装置,其特征在于,所述接收器还用于从所述网元接收指示所述逻辑存储单元中的第一逻辑存储单元被写满的存满消息,其中所述处理器还用于将所述逻辑存储单元中的第二逻辑存储单元从所述物理存储单元中的第一物理存储单元重定位到所述物理存储单元中的第二物理存储单元,其中所述第二逻辑存储单元在所述逻辑循环缓冲器中的所述第一逻辑存储单元之后,且所述发射器还用于向所述网元发送指示所述第二逻辑存储单元被重定位到所述第二物理存储单元的重定位更新消息。
12.根据权利要求6所述的数据处理装置,其特征在于,还包括耦合到所述处理器并用于存储所述元数据的存储器,其中所述接收器还用于从所述网元接收请求恢复所述元数据的恢复请求消息,并且所述发射器还用于将包含存储在所述存储器中至少一部分元数据的存储记录恢复消息发送到所述网元,以响应所述恢复请求消息。
13.根据权利要求6所述的数据处理装置,其特征在于,所述存储度量指示所述物理存储单元的输入/输出热量测量、所述物理存储单元的可用存储容量或其组合。
14.根据权利要求6所述的数据处理装置,其特征在于,所述存储请求消息还请求所述网络存储实体的第一存储容量,其中所述接收器还用于接收请求所述网络存储实体的第二存储容量的存储调整大小消息,并且所述处理器还用于根据所述存储调整大小消息来修改逻辑循环缓冲器中逻辑存储单元的分配,以提供所述第二存储容量。
15.根据权利要求6所述的数据处理装置,其特征在于,所述接收器还用于接收请求删除所述网络存储实体的存储删除消息,并且所述处理器还用于释放与所述逻辑循环缓冲器中所述逻辑存储单元相关联的物理存储。
16.一种数据处理装置,其特征在于,包括:
接收器,用于从租户接收数据记录;
存储器,用于:
存储分配给所述租户的网络存储实体的存储记录,其中所述存储记录指示由映射到物理存储***中的多个物理存储单元的逻辑存储单元序列形成的逻辑循环缓冲器,其中,所述逻辑循环缓冲器提供良有界生命数据的存储,所述网络存储实体被表示为所述逻辑循环缓冲器;
存储所述逻辑循环缓冲器的当前写入位置,所述当前写入位置对应于所述逻辑存储单元的第一逻辑存储单元的位置;
处理器,与所述接收器及所述存储器耦合,且所述处理器用于:
确定所述当前写入位置对应于由所述第一逻辑存储单元映射的所述物理存储单元的第一物理存储单元的物理位置;
确定与所述第一物理存储单元相关联的网元;
发射器,耦合到所述处理器,并用于向所述网元发送指示所述网元根据所述物理位置将所述数据记录写入所述第一物理存储单元的数据存储消息。
17.根据权利要求16所述的数据处理装置,其特征在于,所述第一逻辑存储单元是所述逻辑循环缓冲器中准备接受数据写入的开放元件。
18.根据权利要求17所述的数据处理装置,其特征在于,所述接收器还用于:
从元数据服务器接收所述存储记录;
从所述网元接收指示所述第一逻辑存储单元已满的存满消息;
其中所述处理器还用于将所述当前写入位置更新到所述逻辑循环缓冲器中所述第一逻辑存储单元之后的所述逻辑存储单元的第二逻辑存储单元的位置;
其中所述发射器还用于向所述元数据服务器发送指示所述开放元件被更新到所述第二逻辑存储单元的更新消息。
19.根据权利要求17所述的数据处理装置,其特征在于,所述接收器还用于:
从元数据服务器接收所述存储记录;
从所述网元接收指示所述第一逻辑存储单元已满的存满消息;
其中所述处理器还用于确定所述逻辑循环缓冲器不完整;
所述发射器还用于向所述元数据服务器发送请求为所述逻辑循环缓冲器分配下一逻辑存储单元的分配请求消息。
20.根据权利要求17所述的数据处理装置,其特征在于,所述发射器还用于向元数据服务器发送指示所述第一逻辑存储单元已满的更新消息,并且所述接收器还用于从所述元数据服务器接收指示所述逻辑循环缓冲器中所述第一逻辑存储单元之后的所述逻辑存储单元中的第二逻辑存储单元重定位到所述物理存储单元中的第二物理存储单元的重定位消息。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/818,925 US9923969B2 (en) | 2015-08-05 | 2015-08-05 | Large-scale storage and retrieval of data with well-bounded life |
US14/818,925 | 2015-08-05 | ||
PCT/CN2016/091774 WO2017020758A1 (en) | 2015-08-05 | 2016-07-26 | Large-scale storage and retrieval of data with well-bounded life |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107851122A CN107851122A (zh) | 2018-03-27 |
CN107851122B true CN107851122B (zh) | 2020-11-03 |
Family
ID=57942424
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680043454.4A Active CN107851122B (zh) | 2015-08-05 | 2016-07-26 | 大规模存储和检索具有良有界生命的数据 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9923969B2 (zh) |
CN (1) | CN107851122B (zh) |
WO (1) | WO2017020758A1 (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10387146B2 (en) * | 2015-11-30 | 2019-08-20 | Visa International Service Association | System and method for common request processing |
US11074018B2 (en) * | 2017-04-06 | 2021-07-27 | International Business Machines Corporation | Network asset management |
CN107065800B (zh) * | 2017-04-27 | 2019-04-09 | 合肥城市云数据中心股份有限公司 | 基于定长数据块的工业信号数据访问方法 |
US9997194B1 (en) | 2017-09-25 | 2018-06-12 | Amazon Technologies, Inc. | Partial updates for shingled magnetic recording devices |
US10834190B2 (en) | 2018-01-18 | 2020-11-10 | Portworx, Inc. | Provisioning of clustered containerized applications |
US11106378B2 (en) | 2018-11-21 | 2021-08-31 | At&T Intellectual Property I, L.P. | Record information management based on self describing attributes |
US11281830B2 (en) * | 2019-03-11 | 2022-03-22 | Intel Corporation | Method and apparatus for performing profile guided optimization for first in first out sizing |
US11435919B2 (en) * | 2020-08-25 | 2022-09-06 | Micron Technology, Inc. | Associating multiple cursors with block family of memory device |
US11675509B2 (en) * | 2020-10-29 | 2023-06-13 | Micron Technology, Inc. | Multiple open block families supporting multiple cursors of a memory device |
US11977738B2 (en) * | 2022-09-06 | 2024-05-07 | Arm Limited | Allocation of store requests |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102571916A (zh) * | 2011-12-02 | 2012-07-11 | 曙光信息产业(北京)有限公司 | 一种云存储空间的租赁软件的架构与操作方法 |
CN102655579A (zh) * | 2012-04-09 | 2012-09-05 | 深圳一电科技有限公司 | 音视频图像存储的方法及装置 |
CN103514177A (zh) * | 2012-06-20 | 2014-01-15 | 盛趣信息技术(上海)有限公司 | 数据存储方法及*** |
CN103608784A (zh) * | 2013-06-26 | 2014-02-26 | 华为技术有限公司 | 网络卷创建方法、数据存储方法、存储设备和存储*** |
EP2767945A1 (en) * | 2013-02-18 | 2014-08-20 | Koninklijke KPN N.V. | Coordinating a development cycle in a cloud |
CN104700037A (zh) * | 2013-12-10 | 2015-06-10 | 杭州海康威视***技术有限公司 | 保护云存储视频数据的方法及其*** |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5438674A (en) * | 1988-04-05 | 1995-08-01 | Data/Ware Development, Inc. | Optical disk system emulating magnetic tape units |
KR100605893B1 (ko) * | 1999-10-08 | 2006-08-01 | 삼성전자주식회사 | 시간지연 시청을 위한 비디오 스트림 처리방법 |
US6389510B1 (en) * | 2000-04-25 | 2002-05-14 | Lucent Technologies Inc. | Method and apparatus for caching web-based information |
US20060153185A1 (en) * | 2004-12-28 | 2006-07-13 | Intel Corporation | Method and apparatus for dynamically changing ring size in network processing |
US7779056B2 (en) | 2006-09-15 | 2010-08-17 | Sandisk Corporation | Managing a pool of update memory blocks based on each block's activity and data order |
CN102567501B (zh) * | 2011-12-22 | 2014-12-31 | 广州中大微电子有限公司 | 小存储空间的文件管理*** |
CN104767745A (zh) | 2015-03-26 | 2015-07-08 | 浪潮集团有限公司 | 一种云端数据安全保护方法 |
-
2015
- 2015-08-05 US US14/818,925 patent/US9923969B2/en active Active
-
2016
- 2016-07-26 WO PCT/CN2016/091774 patent/WO2017020758A1/en active Application Filing
- 2016-07-26 CN CN201680043454.4A patent/CN107851122B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102571916A (zh) * | 2011-12-02 | 2012-07-11 | 曙光信息产业(北京)有限公司 | 一种云存储空间的租赁软件的架构与操作方法 |
CN102655579A (zh) * | 2012-04-09 | 2012-09-05 | 深圳一电科技有限公司 | 音视频图像存储的方法及装置 |
CN103514177A (zh) * | 2012-06-20 | 2014-01-15 | 盛趣信息技术(上海)有限公司 | 数据存储方法及*** |
EP2767945A1 (en) * | 2013-02-18 | 2014-08-20 | Koninklijke KPN N.V. | Coordinating a development cycle in a cloud |
CN103608784A (zh) * | 2013-06-26 | 2014-02-26 | 华为技术有限公司 | 网络卷创建方法、数据存储方法、存储设备和存储*** |
CN104700037A (zh) * | 2013-12-10 | 2015-06-10 | 杭州海康威视***技术有限公司 | 保护云存储视频数据的方法及其*** |
Also Published As
Publication number | Publication date |
---|---|
US20170041394A1 (en) | 2017-02-09 |
WO2017020758A1 (en) | 2017-02-09 |
US9923969B2 (en) | 2018-03-20 |
CN107851122A (zh) | 2018-03-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107851122B (zh) | 大规模存储和检索具有良有界生命的数据 | |
US11153380B2 (en) | Continuous backup of data in a distributed data store | |
US10956601B2 (en) | Fully managed account level blob data encryption in a distributed storage environment | |
US10853274B2 (en) | Primary data storage system with data tiering | |
US20210117083A1 (en) | Primary Data Storage System with Quality of Service | |
US10764045B2 (en) | Encrypting object index in a distributed storage environment | |
US10423493B1 (en) | Scalable log-based continuous data protection for distributed databases | |
US10853182B1 (en) | Scalable log-based secondary indexes for non-relational databases | |
US9830101B2 (en) | Managing data storage in a set of storage systems using usage counters | |
US20200019516A1 (en) | Primary Data Storage System with Staged Deduplication | |
US10659225B2 (en) | Encrypting existing live unencrypted data using age-based garbage collection | |
US9699017B1 (en) | Dynamic utilization of bandwidth for a quorum-based distributed storage system | |
US9015131B2 (en) | Information management method, and computer for providing information | |
US10725666B2 (en) | Memory-based on-demand data page generation | |
CN109271098B (zh) | 一种数据迁移方法及装置 | |
CN106446159B (zh) | 一种存储文件的方法、第一虚拟机及名称节点 | |
US11675499B2 (en) | Synchronous discovery logs in a fabric storage system | |
CN107924334B (zh) | 弹性命名分布式循环缓冲区的重新平衡和弹性存储方案 | |
JP6343952B2 (ja) | ストレージシステム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |