CN110362426A - 一种面向突发性负载的选择性副本实现方法及系统 - Google Patents
一种面向突发性负载的选择性副本实现方法及系统 Download PDFInfo
- Publication number
- CN110362426A CN110362426A CN201910544859.1A CN201910544859A CN110362426A CN 110362426 A CN110362426 A CN 110362426A CN 201910544859 A CN201910544859 A CN 201910544859A CN 110362426 A CN110362426 A CN 110362426A
- Authority
- CN
- China
- Prior art keywords
- storage
- access
- copy
- additional copies
- target data
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
- G06F11/1451—Management of the data involved in backup or backup restore by selection of backup contents
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种面向突发性负载的选择性副本实现方法及系统,属于云对象存储领域,包括:存储服务器接收到访问请求后,获得目标数据对象副本所在的目标存储设备,并确定是否由目标存储设备服务该访问请求;若由目标存储设备服务该访问请求且其中的副本为基础副本,则预测目标数据对象是否将被突发访问;若预测目标数据对象将被突发访问,则在响应中进行标记;存储客户端接收到含标记的响应后,将响应中的数据缓存在本地后再返回给请求发送方,然后获取一个满足副本创建条件的存储设备,获取成功后将数据迁移至该设备,从而为目标数据对象创建一个新的额外副本。本发明能够提高云存储系统处理突发性负载时的资源利用率及系统性能。
Description
技术领域
本发明属于云对象存储领域,更具体地,涉及一种面向突发性负载的选择性副本实现方法及系统。
背景技术
随着越来越多的应用被部署在云环境中,价格低廉,易于使用的云对象存储系统(例如,Amazon S3、OpenStack Swift、Microsoft Azure)得到了广泛使用。数据密集型应用直接使用云对象存储系统,可以避免在其专用存储系统(例如,HDFS)中存储冗余数据所带来的存储开销,也可以避免相其专用存储系统中导入数据所需要的时间开销,从而能够实现对数据更加及时地处理,而且,专用存储系统相对于云对象存储系统的性能优势逐渐减少,因此,众多数据密集型应用逐渐从使用专用存储系统,转变为使用云对象存储系统。
数据密集型应用产生的数据访问负载通常存在显著的偏斜性和突发性。负载的偏斜性是指相同时间段内,不同数据对象被访问的频次存在着巨大的差异。负载的突发性是指系统中请求在数据对象上的分布,即每个数据对象被访问的频次,在短时间内可能会发生大幅变化。负载的偏斜性会导致系统中存在部分节点被过度使用,同时也存在部分节点时常处于空闲状态,其中,被过度使用的节点会成为系统的性能瓶颈,而时常处于空闲状态的节点会造成系统的资源浪费。针对负载的偏斜性,选择性副本技术被广泛应用于分布式存储系统以提高系统整体的性能(提高吞吐量,降低响应延迟)。选择性副本技术具体通过为不同的数据对象存储不同数量的副本,并将其各个副本分布在不同的节点上,由此可以有效利用系统中的空闲资源,并实现对系统资源的重新分配。
在云对象存储系统中,为了充分利用系统中的空闲资源,同样需要实现选择性副本。然而,为了适应负载的突发性,需要对系统中数据的副本数量及布局进行频繁调整,在此过程中,需要在两个存储服务器之间执行数据迁移,由于突发性负载具有不可预测性,而且执行数据迁移会因存在较大性能开销而导致系统性能下降,因此,针对突发性负载,如何有效地实现选择性副本成为一个亟需解决的问题。
发明内容
针对现有技术的缺陷和改进需求,本发明提供了一种面向突发性负载的选择性副本实现方法及系统,其目的在于,提高云存储系统处理突发性负载时的资源利用率及系统性能。
为实现上述目的,按照本发明的第一方面,提供了一种面向突发性负载的选择性副本实现方法,包括:
(1)存储客户端将访问目标数据对象的访问请求转发至存储服务器;
(2)存储服务器接收到访问请求后,获得存储有目标数据对象副本的目标存储设备,并判断目标数据对象是否存在额外副本,若存在,则转入步骤(3);若不存在,则转入步骤(4);
(3)根据当前的系统状态确定服务访问请求的存储设备,若为目标存储设备,则转入步骤(4);否则,通知存储客户端将访问请求发送至相应的存储设备,以由该存储设备服务访问请求,操作结束;
(4)从目标存储设备获取副本数据以生成访问请求的响应,并判断副本类型,若为基础副本,则转入步骤(5);若为额外副本,则转入步骤(6);
(5)预测目标数据对象是否将被突发访问,若是,则在该响应中进行标记,以显示需要为目标数据对象创建额外副本;若否,则不进行标记;
(6)由存储服务器将访问请求的响应返回至存储客户端;
(7)存储客户端接收到访问请求的响应后对其进行解析,若该响应未进行标记,则将其中的数据返回给请求发送方,操作结束;若该响应进行了标记,则将其中的数据缓存于本地后返回给请求发送方;
(8)由存储客户端获取一个满足预设的副本创建条件的存储设备,若获取成功,则将本地缓存的数据迁移至该存储设备,以创建目标数据对象的一个额外副本,操作结束;若获取不成功,则操作结束;
其中,基础副本为用于保证数据高可靠性的数据对象副本,其数量和存储位置不变;额外副本为基础对象之外的数据对象副本,随着数据对象被的访问而创建或删除;基础副本所在存储设备中维护了额外副本的布局信息。
本发明通过预测数据对象是否将被突发访问,并根据预测结果对该数据对象的副本数量及布局进行调整,在不可预测的突发性负载下,能够使系统对负载的突发变化及时响应,提高了云存储系统处理突发性负载时的资源利用率及系统性能。
为数据对象创建额外副本,涉及两阶段的数据迁移,具体地,第一阶段将数据从存储服务器迁移到存储客户端,第二阶段将数据从存储客户端迁移到另一个存储设备;本发明在服务数据对象访问请求的过程中利用正常的读请求完成第一阶段的数据迁移,避免了在服务器上执行额外的数据读取操作,可以有效降低数据迁移的性能开销。
进一步地,步骤(8)还包括:成功创建目标数据对象的一个额外副本后,根据存储设备当前的负载情况,将访问目标数据对象的负载在目标对象的不同副本之间进项划分;
对于一个存储有目标数据对象额外副本的存储设备,划分给该存储设备的负载比例与其当前的负载反相关。
对于当前负载越小的存储设备,划分给该设备的负载比例越大,由此能够实现负载在不同存储设备之间的均衡,从而能够提高资源利用率。
进一步地,对于目标数据对象的第k个额外副本所在的存储设备,划分给该设备的负载比例为:
其中,R表示目标数据对象的基础副本总数,bi表示第i个基础副本所在的存储设备,Lbi表示存储设备bi的负载,E表示目标数据对象的额外副本总数,ej和ek分别表示第j个第k个额外副本所在的存储设备,Lej和Lek分别表示存储设备ej和ek的负载。
进一步地,步骤(3)中,根据当前的系统状态确定服务访问请求的存储设备,包括:
存储服务器根据划分给各额外副本所在存储设备的负载比例,确定具服务访问请求的存储设备,使得访问请求进入各额外副本所在存储设备的概率与对应的负载比例相同。
存储客户端访问任意一个数据对象时,其都需要向相应数据对象的基础副本发送数据访问请求,通过上述方法,基础副本所在的存储服务器会对该访问请求执行访问控制,根据负载在不同副本之间的划分拒绝一部分请求进入当前存储设备,可以实现负载在不同存储设备之间的均衡,从而能够提高资源利用率。
进一步地,步骤(5)中,预测目标数据对象是否将被突发访问,包括:
若对目标访问对象的连续两次访问的时间间隔低于阈值,则预测目标数据对象将被突发访问;否则,预测目标数据对象不会被突发访问。
本发明基于一个数据对象连续两次访问之间的时间间隔,预测该数据对象是否将被突发访问,在一定程度上能够准确地对负载的突发性进行预测,从而能够及时地调整该数据对象的数量和布局。
进一步地,阈值Tburst的获取方式包括:
预设比例参数p和x,对历史访问记录进行分析;
在历史访问记录中,任意第f次突发性访问中,对相应数据对象的访问总次数计为nf;若第f次突发性访问中,其最初的p次访问中存在时间间隔低于阈值T′burst的两次连续的访问,则将第f次突发性访问标记为对预测友好的突发性访问;
调整阈值T′burst的取值,使得历史访问记录中,对预测友好的突发性访问占所有突发性问的比例不低于x;
将满足条件的阈值T′burst作为阈值Tburst。
本发明基于历史访问记录的分析获得阈值Tburst,并通过比例参数p和x设置了约束条件,其中,p的值越小,意味着可以在更早的时间点判断出突发性访问的发生,从而更加及时地为相关数据对象增加副本;x的值越大,意味着可以预测出更多的突发性访问;因此,本发明通过上述方法获取阈值Tburst,使得根据Tburst进行预测时,能够较为及时、准确地预测出突发性访问。
进一步地,在步骤(7)和步骤(8)之间,还包括:
若目标数据对象存在额外副本,且当前时间与其中任意一个额外副本的创建时间之间的间隔小于预设的迁移阈值,则操作结束。
上述方法在数据迁移频率较高时取消迁移操作,能够避免系统频繁地执行数据迁移,并且能够避免创建过多不必要的副本,由此能够避免带来系统的性能下降和资源浪费。
进一步地,本发明所提供的面向突发性负载的选择性副本实现方法,还包括:若为目标数据对象成功创建一个额外副本,则在该额外副本创建完成后删除存储客户端本地缓存的数据;否则,直接删除存储客户端本地缓存的数据。
无论是否成功创建额外副本,存储客户端都会删除缓存在本地的相关数据,由此能够尽快释放数据缓存占用的资源。
进一步地,本发明所提供的面向突发性负载的选择性副本实现方法,还包括:
每个存储服务器周期性地计算其所管理的额外副本的访问频率,若低于预设的阈值Tclean,则更新目标数据对象的额外副本的布局信息后,删除该额外副本。
通过周期性地计算额外副本的访问频率,能够识别出不常被访问的额外副本,及时清理不常被访问的额外副本,能够保证存储资源有较高的利用率。
按照本发明的第二方面,提供了一种系统,包括:处理器和计算机可读存储介质;计算机可读存储介质存储有可执行代码;
处理器用于调用计算机可读介质中存储的可执行代码,执行本发明第一方面提供的面向突发性负载的选择性副本实现方法。
总体而言,通过本发明所构思的以上技术方案,能够取得以下有益效果:
(1)本发明提供的面向突发性负载的选择性副本实现方法,通过预测数据对象是否将被突发访问,并根据预测结果对该数据对象的副本数量及布局进行调整,在不可预测的突发性负载下,能够使系统对负载的突发变化及时响应,提高了云存储系统处理突发性负载时的资源利用率及系统性能。
(2)本发明所提供的面向突发性负载的选择性副本实现方法,在服务数据对象访问请求的过程中利用正常的读请求将数据从存储服务器迁移到了存储客户端,避免了在服务器上执行额外的数据读取操作,可以有效降低数据迁移的性能开销。
(3)本发明所提供的面向突发性负载的选择性副本实现方法,每成功创建一个额外副本,就根据存储设备当前的负载情况将负载在不同副本之间进行划分,并根据负载划分结果对访问请求进行访问控制,使得当前负载较小的存储设备承担更多的负载,由此能够实现负载在不同存储设备之间的均衡,从而能够提高资源利用率。
(4)本发明所提供的面向突发性负载的选择性副本实现方法,历史访问记录的分析获得用于预测突发性访问的阈值Tburst,并通过比例参数p和x设置了约束条件,其中,p的值越小,意味着可以在更早的时间点判断出突发性访问的发生,从而更加及时地为相关数据对象增加副本;x的值越大,意味着可以预测出更多的突发性访问,因此,能够较为及时、准确地预测出突发性访问。
附图说明
图1为现有的云对象存储系统架构示意图;
图2为本发明实施例提供的面向突发性负载的选择性副本实现方法的实施示意图;
图3为本发明实施例提供的创建额外副本的过程示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
在详细解释本发明的技术方案之前,先对现有的云对象存储系统的架构进行简要介绍。如图1所示,云对象存储系统通常使用多层架构,包括,前端层和后端层。其中,存储客户端为位于前端层的节点,用于请求转发,存储服务器为位于后端层的节点,用于管理数据及存储设备。数据访问请求将首先抵达前端层中的某一个存储客户端,然后,由该存储客户端从后端层中的某一个存储服务器中读取数据并返回给相应的应用。云对象存储系统主要存在以下几个特点。
(1)云对象存储系统是去中心化的。当来自于应用或者用户的数据访问请求到达存储客户端后,存储客户端将根据预先给定的转发规则(例如,一致性哈希)直接将请求发送至相应的存储服务器,而不会先与中心化的元数据服务器进行通信以确定哪些存储服务器可以用于服务该请求。
(2)存储客户端和存储服务器在物理上是分离的。云对象存储系统通常采用分层架构,存储客户端位于前端层,存储服务器位于后端层,且不同层不共享使用节点,即,存储客户端和服务器分别位于不同的节点上。
(3)存储客户端具有独立性。一方面,存储客户端的数量,运行环境等都是不可控的。另一方面,由于不同存储客户端可能属于不同的租户,可以认为各个存储客户端之间都是相互独立的。从存储客户端的角度来说,不同客户端之间是彼此不可知的。
基于图1所示的云对象存储系统,本发明所提供的面向突发性负载的选择性副本实现方法,包括:
为实现上述目的,按照本发明的第一方面,提供了一种面向突发性负载的选择性副本实现方法,包括:
(1)存储客户端将访问目标数据对象的访问请求转发至存储服务器;
(2)存储服务器接收到访问请求后,获得存储有目标数据对象副本的目标存储设备,并判断目标数据对象是否存在额外副本,若存在,则转入步骤(3);若不存在,则转入步骤(4);
基础副本为用于保证数据高可靠性的数据对象副本,其数量和存储位置不变,一般系统中每一个存储对象都有3个基础副本;额外副本为基础对象之外的数据对象副本,随着数据对象被的访问而创建或删除;基础副本所在存储设备中维护了额外副本的布局信息,额外副本的布局信息包括每个额外副本的存储位置,以及划分给该额外副本的负载比例;根据额外副本的布局信息,即可判断数据对象是否存在额外副本;
在本发明中,仅在基础副本所在的存储设备中维护额外副本的布局信息,而在客户端中不需要存储各个数据对象的额外信息;
(3)根据当前的系统状态确定服务访问请求的存储设备,若为目标存储设备,则转入步骤(4);否则,通知存储客户端将访问请求发送至相应的存储设备,以由该存储设备服务访问请求,操作结束;
(4)从目标存储设备获取副本数据以生成访问请求的响应,并判断副本类型,若为基础副本,则转入步骤(5);若为额外副本,则转入步骤(6);
(5)预测目标数据对象是否将被突发访问,若是,则在该响应中进行标记,以显示需要为目标数据对象创建额外副本;若否,则不进行标记;
在一个可选的实施方式中,步骤(5)中,预测目标数据对象是否将被突发访问,包括:
若对目标访问对象的连续两次访问的时间间隔低于阈值,则预测目标数据对象将被突发访问;否则,预测目标数据对象不会被突发访问;
本实施例基于一个数据对象连续两次访问之间的时间间隔,预测该数据对象是否将被突发访问,在一定程度上能够准确地对负载的突发性进行预测,从而能够及时地调整该数据对象的数量和布局;
阈值Tburst可根据实际的负载特性直接设定,也可以基于对历史访问记录的分析获得;在本发明实施例中,阈值Tburst的获取方式具体包括:
预设比例参数p和x,对历史访问记录进行分析;
在历史访问记录中,任意第f次突发性访问中,对相应数据对象的访问总次数计为nf;若第f次突发性访问中,其最初的p次访问中存在时间间隔低于阈值T′burst的两次连续的访问,则将第f次突发性访问标记为对预测友好的突发性访问;
调整阈值T′burst的取值,使得历史访问记录中,对预测友好的突发性访问占所有突发性问的比例不低于x;
将满足条件的阈值T′burst作为阈值Tburst;
本发明基于历史访问记录的分析获得阈值Tburst,并通过比例参数p和x设置了约束条件,其中,p的值越小,意味着可以在更早的时间点判断出突发性访问的发生,从而更加及时地为相关数据对象增加副本;x的值越大,意味着可以预测出更多的突发性访问;因此,本发明通过上述方法获取阈值Tburst,使得根据Tburst进行预测时,能够较为及时、准确地预测出突发性访问;无论减少p或者增加x,都会导致对突发性负载的误判率增加,使系统为更多的不会发生突发性访问的数据对象增加副本,对于p和x的选取需要根据实际的工作负载及系统环境进行权衡;
(6)由存储服务器将访问请求的响应返回至存储客户端;
(7)存储客户端接收到访问请求的响应后对其进行解析,若该响应未进行标记,则将其中的数据返回给请求发送方,操作结束;若该响应进行了标记,则将其中的数据缓存于本地后返回给请求发送方;
(8)由存储客户端获取一个满足预设的副本创建条件的存储设备,若获取成功,则将本地缓存的数据迁移至该存储设备,以创建目标数据对象的一个额外副本,操作结束;若获取不成功,则操作结束;
在本实施例中,满足副本创建条件的存储设备需要同时满足:
该存储设备没有存储所述目标数据对象的其他副本,该存储设备是可访问的且可实时获取其状态信息(包括队列长度和服务时间),以及该存储设备的负载低于m个存储有所述目标数据对象基础副本的存储设备;其中,1≤m≤R,R表示所述目标数据对象的基础副本总数;
可选地,除了上述3个条件,可使得满足副本创建条件的存储设备还需要满足:该存储设备上没有正在执行的其他数据迁移操作和/或该存储设备上没有正在处理中的数据对象访问请求;
若在选择目标存储设备时,要求满足这两个条件,则有利于降低执行数据迁移对系统性能的影响,但是,由于系统中可能经常不存在满足这两个条件的存储设备,可能会导致部分必要的增加副本的操作由于无法找到合适的目标存储设备而无法执行;在实际实施时,需要根据具体的工作负载以及系统特征确定是否要满足上述两个可选的条件;
应当理解的是,除了以上列举的副本创建条件以外,还可根据实际需要灵活设定其他副本创建条件,在此将不作一一列举。
本发明通过预测数据对象是否将被突发访问,并根据预测结果对该数据对象的副本数量及布局进行调整,在不可预测的突发性负载下,能够使系统对负载的突发变化及时响应,提高了云存储系统处理突发性负载时的资源利用率及系统性能。
为数据对象创建额外副本,涉及两阶段的数据迁移,具体地,第一阶段将数据从存储服务器迁移到存储客户端,第二阶段将数据从存储客户端迁移到另一个存储设备;本发明在服务数据对象访问请求的过程中利用正常的读请求完成第一阶段的数据迁移,避免了在服务器上执行额外的数据读取操作,可以有效降低数据迁移的性能开销。
为了实现不同存储设备间的负载均衡,进一步提高系统的资源利用率,本发明所提供的面向突发性负载的选择性副本实现方法中,步骤(8)还可包括:成功创建目标数据对象的一个额外副本后,根据存储设备当前的负载情况,将访问目标数据对象的负载在目标对象的不同副本之间进项划分;
对于一个存储有目标数据对象额外副本的存储设备,划分给该存储设备的负载比例与其当前的负载反相关;
在本实施例中,衡量存储设备的负载的指标为:
L=qlen×srvctime;
其中,qlen和srvctime分别为该存储设备在预设时间段内的平均队列长度和平均服务时间;具体时间段的长度,可根据负载特性和系统特征相应设定;
上述负载划分方法中,对于当前负载越小的存储设备,划分给该设备的负载比例越大,由此能够实现负载在不同存储设备之间的均衡,从而能够提高资源利用率;
在本实施例中,对于目标数据对象的第k个额外副本所在的存储设备,划分给该设备的负载比例为:
其中,R表示目标数据对象的基础副本总数,bi表示第i个基础副本所在的存储设备,Lbi表示存储设备bi的负载,E表示目标数据对象的额外副本总数,ej和ek分别表示第j个第k个额外副本所在的存储设备,Lej和Lek分别表示存储设备ej和ek的负载,负载Lbi、Lej和Lek可参照上述衡量存储设备的负载的指标相应计算;
基于上述负载划分方法,在本发明所提供的面向突发性负载的选择性副本实现方法,其步骤(3)中,根据当前的系统状态确定服务访问请求的存储设备,具体包括:
存储服务器根据划分给各额外副本所在存储设备的负载比例,确定具服务访问请求的存储设备,使得访问请求进入各额外副本所在存储设备的概率与对应的负载比例相同;
存储客户端访问任意一个数据对象时,其都需要向相应数据对象的基础副本发送数据访问请求,通过上述方法,基础副本所在的存储服务器会对该访问请求执行访问控制,根据负载在不同副本之间的划分拒绝一部分请求进入当前存储设备,可以实现负载在不同存储设备之间的均衡,从而能够提高资源利用率。
为了能够避免频繁地执行数据迁移,并避免创建过多不必要的额外副本,本发明所提供的面向突发性负载的选择性副本实现方法,在步骤(7)和步骤(8)之间,还可包括:
若目标数据对象存在额外副本,且当前时间与其中任意一个额外副本的创建时间之间的间隔小于预设的迁移阈值,则操作结束;
上述方法在数据迁移频率较高时取消迁移操作,能够避免系统频繁地执行数据迁移,并且能够避免创建过多不必要的副本,由此能够避免带来系统的性能下降和资源浪费。
为了尽快释放数据缓存占用的资源,本发明所提供的面向突发性负载的选择性副本实现方法,还可包括:若为目标数据对象成功创建一个额外副本,则在该额外副本创建完成后删除存储客户端本地缓存的数据;否则,直接删除存储客户端本地缓存的数据;
无论是否成功创建额外副本,存储客户端都会删除缓存在本地的相关数据,由此能够尽快释放数据缓存占用的资源。
进一步地,本发明所提供的面向突发性负载的选择性副本实现方法,还包括:
每个存储服务器周期性地计算其所管理的额外副本的访问频率,若低于预设的阈值Tclean,则更新所述目标数据对象的额外副本的布局信息后,删除该额外副本。
通过周期性地计算额外副本的访问频率,能够识别出不常被访问的额外副本,及时清理不常被访问的额外副本,能够保证存储资源有较高的利用率;计算额外副本访问频率的周期和用于识别不常被访问的额外副本的阈值Tclean可根据实际需求相应设定,周期越长、Tclean越低,则系统清理不常被访问的额外副本的频率越低,额外副本占用的存储开销越高;反之,系统清理不常被访问的额外副本的频率越高,额外副本占用的存储开销越低。
按照本发明还提供了一种系统,包括:处理器和计算机可读存储介质;计算机可读存储介质存储有可执行代码;
处理器用于调用计算机可读介质中存储的可执行代码,执行上述面向突发性负载的选择性副本实现方法。
应用实例:
基于本发明所提供的面向突发性负载的选择性副本实现方法,在云对象存储系统中实现相应的功能组件,具体如图2所示,包括在存储客户端中实现的前端层组件:数据暂存器和数据迁移器,以及在存储服务器中实现的后端层组件:副本控制器、迁移控制器、准入控制器、副本清理器和状态监视器。对于一个存储服务器所管理的每一个存储设备,都相应有一套独立运行的后端层组件。这7种组件相互配合,一方面,可以完成正常的请求处理,另一方面,可以在云对象存储系统中实现数据的选择性副本。
在图2所示的系统中,当来自于应用或者用户的数据对象访问请求Request经由客户端转发给存储服务器后,存储服务器将按照以下流程处理访问请求Request。首先,该存储服务器上相应存储设备的准入控制器需要查看访问请求Request所访问的数据对象是否存在额外副本,若不存在,则由当前存储设备服务该请求;否则,准入控制器需要根据当前系统状态决定是否需要拒绝该请求进入系统,从而将该请求交由相应的额外副本处理。若准入控制器决定该请求由当前存储设备服务,且该存储设备上的副本不是目标数据对象的额外副本,则副本控制器需要决定是否需要为该请求所访问的数据对象增加新的额外副本。若不需要为相应数据对象增加新的额外副本,则正常返回请求,否则,副本控制器需要在该请求的响应中进行标记,用于显示需要为相应的数据对象增加新的额外副本,即,为其执行数据迁移。
存储客户端将按照以下流程处理来自存储服务器的响应。一个存储客户端接收到一个包含数据迁移标记的响应时,数据暂存器会在把该响应中包含的数据返回给应用或用户的同时,在存储客户端当前状态允许的情况下,将相应数据以及必要的信息暂存在本地,完成第一阶段的数据迁移,并为之启动一个独立的数据迁移器。数据迁移器通过分别与各个存储设备对应的迁移控制器沟通,检测相应的存储设备是否可用于存储该数据对象的额外副本,从而为该数据确定合适的存储设备作为目标节点,并在其选中的目标节点上创建该数据对象的副本,完成第二阶段的数据迁移。在执行数据迁移的过程中,目标存储设备对应的迁移控制器还需要根据该数据对象相关数据迁移的频率决定是否需要取消此次数据迁移,从而避免系统过度频繁地执行数据迁移,以及创建过多不必要的额外副本。
副本清理器负责删除其相应存储设备中包含的对系统性能优化没有帮助的额外副本,即不常被访问的额外副本。对于一个存储设备,其相应的副本清理器会周期性地检查位于该存储设备上的每一个额外副本被访问的频率(指定时间段内的访问次数)。若一个额外副本的被访问频率低于一个预先规定的阈值时,则副本清理器认为该额外副本为不常被访问的额外副本,将把该副本从该存储设备上清除。副本清理器执行副本删除主要需要执行两步操作,第一,更新该数据对象基础副本所处的存储设备对应的准入控制器中关于该数据对象的副本分布信息,第二,删除当前存储设备上该数据对象的额外副本。
状态监视器用于采集与相应存储设备相关的状态信息。准入控制器,副本控制器,数据迁移器,迁移控制器,以及副本清理器都需要根据状态监视器提供的信息进行各自的决策。
图3为执行两阶段数据迁移将“数据A”从“存储服务器1”迁移到“存储服务器2”的执行过程示意图。执行两阶段数据迁移具体需要执行以下操作。
(S1)添加两阶段数据迁移标记。当访问一个数据对象的请求到达存储设备时,该存储设备的副本控制器执行选择性副本策略决定是否需要为该数据对象增加副本。若副本控制器决定为该数据对象增加副本,则副本控制器需要在该请求的响应中添加一个标记,标明需要为响应中的数据对象执行两阶段数据迁移。对于使用基于HTTP进行数据传输的云对象存储系统,可以直接在响应的HTTP包头中添加执行两阶段数据迁移的标记。
(S2)存储客户端缓存相关数据。当一个存储客户端接收到一个响应,且该响应中包含执行两阶段数据迁移的标记时,该存储客户端的数据暂存器会根据该节点的运行状态决定是否将该响应中的数据存储在本地。若数据暂存器决定在本地存储该响应中的数据对象,则数据暂存器需要在存储客户端将响应中的数据返回给应用之前,将这些数据及其相关信息写入其本地的存储介质。为了避免执行两阶段数据迁移对相应的数据访问的延迟造成显著影响,数据暂存器需要使用高性能的存储设备,例如,DRAM(内存),保存相关数据。然而,考虑到与存储客户端位于同一节点的应用服务器在执行时同样需要使用节点的内存资源,为了避免两阶段数据迁移对同一节点上的其他任务的执行造成影响,数据暂存器只有在其所在节点当前的空闲内存空间超出需要存储的数据对象的大小一定程度时,才会决定将响应中的数据保存在本地。需要存储的数据对象的大小一般可以从响应的HTTP包头中得到。
(S3)迁移数据至目标节点。数据暂存器会将存储在本地的数据交给数据迁移器,然后由数据迁移器选择合适的目标存储设备,并将数据迁移至该目标存储设备。数据暂存器直接将数据及其相关信息写在其本地的内存文件系统中,数据迁移器可以直接从内存文件系统中读取数据,以此实现运行数据暂存器和运行数据迁移器的不同进程之间的数据传输。无论是数据迁移器成功完成数据迁移,还是数据迁移失败,其都需要立即删除存储在本地的相关数据,以尽快释放占用的存储客户端的内存空间。
(S4)更新相关数据布局信息。当成功执行对一个数据对象的迁移后,相应的数据迁移器还需要将该数据对象新的额外副本的位置告知该数据对象基础副本所在的存储设备,即,更新相关准入控制器中的副本布局信息。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种面向突发性负载的选择性副本实现方法,其特征在于,包括:
(1)存储客户端将访问目标数据对象的访问请求转发至存储服务器;
(2)存储服务器接收到所述访问请求后,获得存储有所述目标数据对象副本的目标存储设备,并判断所述目标数据对象是否存在额外副本,若存在,则转入步骤(3);若不存在,则转入步骤(4);
(3)根据当前的系统状态确定服务所述访问请求的存储设备,若为所述目标存储设备,则转入步骤(4);否则,通知所述存储客户端将所述访问请求发送至相应的存储设备,以由该存储设备服务所述访问请求,操作结束;
(4)从所述目标存储设备获取副本数据以生成所述访问请求的响应,并判断副本类型,若为基础副本,则转入步骤(5);若为额外副本,则转入步骤(6);
(5)预测所述目标数据对象是否将被突发访问,若是,则在该响应中进行标记,以显示需要为所述目标数据对象创建额外副本;若否,则不进行标记;
(6)由所述存储服务器将所述访问请求的响应返回至所述存储客户端;
(7)所述存储客户端接收到所述访问请求的响应后对其进行解析,若该响应未进行标记,则将其中的数据返回给请求发送方,操作结束;若该响应进行了标记,则将其中的数据缓存于本地后返回给请求发送方;
(8)由所述存储客户端获取一个满足预设的副本创建条件的存储设备,若获取成功,则将本地缓存的数据迁移至该存储设备,以创建所述目标数据对象的一个额外副本,操作结束;若获取不成功,则操作结束;
其中,基础副本为用于保证数据高可靠性的数据对象副本,其数量和存储位置不变;额外副本为基础对象之外的数据对象副本,随着数据对象被的访问而创建或删除;基础副本所在存储设备中维护了额外副本的布局信息。
2.如权利要求1所述的面向突发性负载的选择性副本实现方法,其特征在于,所述步骤(8)还包括:成功创建所述目标数据对象的一个额外副本后,根据存储设备当前的负载情况,将访问所述目标数据对象的负载在所述目标对象的不同副本之间进项划分;
对于一个存储有所述目标数据对象额外副本的存储设备,划分给该存储设备的负载比例与其当前的负载反相关。
3.如权利要求2所述的面向突发性负载的选择性副本实现方法,其特征在于,对于所述目标数据对象的第k个额外副本所在的存储设备,划分给该设备的负载比例为:
其中,R表示所述目标数据对象的基础副本总数,bi表示第i个基础副本所在的存储设备,Lbi表示存储设备bi的负载,E表示所述目标数据对象的额外副本总数,ej和ek分别表示第j个第k个额外副本所在的存储设备,Lej和Lek分别表示存储设备ej和ek的负载。
4.如权利要求2或3所述的面向突发性负载的选择性副本实现方法,其特征在于,所述步骤(3)中,根据当前的系统状态确定服务所述访问请求的存储设备,包括:
所述存储服务器根据划分给各额外副本所在存储设备的负载比例,确定服务所述访问请求的存储设备,使得所述访问请求进入各额外副本所在存储设备的概率与对应的负载比例相同。
5.如权利要求1所述的面向突发性负载的选择性副本实现方法,其特征在于,所述步骤(5)中,预测所述目标数据对象是否将被突发访问,包括:
若对所述目标访问对象的连续两次访问的时间间隔低于阈值Tburst,则预测所述目标数据对象将被突发访问;否则,预测所述目标数据对象不会被突发访问。
6.如权利要求5所述的面向突发性负载的选择性副本实现方法,其特征在于,阈值Tburst的获取方式包括:
预设比例参数p和x,对历史访问记录进行分析;
在所述历史访问记录中,任意第f次突发性访问中,对相应数据对象的访问总次数计为nf;若第f次突发性访问中,其最初的p次访问中存在时间间隔低于阈值Tb′urst的两次连续的访问,则将第f次突发性访问标记为对预测友好的突发性访问;
调整阈值Tb′urst的取值,使得所述历史访问记录中,对预测友好的突发性访问占所有突发性问的比例不低于x;
将满足条件的阈值Tb′urst作为所述阈值Tburst。
7.如权利要求1所述的面向突发性负载的选择性副本实现方法,其特征在于,在所述步骤(7)和所述步骤(8)之间,还包括:
若所述目标数据对象存在额外副本,且当前时间与其中任意一个额外副本的创建时间之间的间隔小于预设的迁移阈值,则操作结束。
8.如权利要求7所述的面向突发性负载的选择性副本实现方法,其特征在于,还包括:若为所述目标数据对象成功创建一个额外副本,则在该额外副本创建完成后删除所述存储客户端本地缓存的数据;否则,直接删除所述存储客户端本地缓存的数据。
9.如权利要求1所述的面向突发性负载的选择性副本实现方法,其特征在于,还包括:
每个存储服务器周期性地计算其所管理的额外副本的访问频率,若低于预设的阈值Tclean,则更新所述目标数据对象的额外副本的布局信息后,删除该额外副本。
10.一种系统,包括:处理器和计算机可读存储介质;其特征在于,所述计算机可读存储介质存储有可执行代码;
所述处理器用于调用所述计算机可读介质中存储的所述可执行代码,执行权利要求1-9任一项所述的面向突发性负载的选择性副本实现方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910544859.1A CN110362426B (zh) | 2019-06-21 | 2019-06-21 | 一种面向突发性负载的选择性副本实现方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910544859.1A CN110362426B (zh) | 2019-06-21 | 2019-06-21 | 一种面向突发性负载的选择性副本实现方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110362426A true CN110362426A (zh) | 2019-10-22 |
CN110362426B CN110362426B (zh) | 2021-07-27 |
Family
ID=68216501
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910544859.1A Active CN110362426B (zh) | 2019-06-21 | 2019-06-21 | 一种面向突发性负载的选择性副本实现方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110362426B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115190135A (zh) * | 2022-06-30 | 2022-10-14 | 华中科技大学 | 一种分布式存储系统及其副本选择方法 |
CN115297122A (zh) * | 2022-09-29 | 2022-11-04 | 数字江西科技有限公司 | 基于负载自动监测的政务运维方法和系统 |
CN117149097A (zh) * | 2023-10-31 | 2023-12-01 | 苏州元脑智能科技有限公司 | 一种分布式存储系统数据访问控制方法及装置 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101187931A (zh) * | 2007-12-12 | 2008-05-28 | 浙江大学 | 分布式文件系统多文件副本的管理方法 |
CN102137157A (zh) * | 2011-02-28 | 2011-07-27 | 浪潮(北京)电子信息产业有限公司 | 一种云存储系统及其实现方法 |
US8650159B1 (en) * | 2010-08-26 | 2014-02-11 | Symantec Corporation | Systems and methods for managing data in cloud storage using deduplication techniques |
CN103631894A (zh) * | 2013-11-19 | 2014-03-12 | 浪潮电子信息产业股份有限公司 | 一种基于hdfs的动态副本管理方法 |
CN106648456A (zh) * | 2016-09-18 | 2017-05-10 | 重庆邮电大学 | 基于用户访问量以及预测机制的动态副本文件访问方法 |
CN107231395A (zh) * | 2016-03-25 | 2017-10-03 | 阿里巴巴集团控股有限公司 | 数据存储方法、装置和系统 |
CN107302561A (zh) * | 2017-05-23 | 2017-10-27 | 南京邮电大学 | 一种云存储系统中热点数据副本放置方法 |
CN107807793A (zh) * | 2017-10-27 | 2018-03-16 | 清华大学 | 分布式计算机存储系统中数据副本异构存储与访问方法 |
CN108924203A (zh) * | 2018-06-25 | 2018-11-30 | 深圳市金蝶天燕中间件股份有限公司 | 数据副本自适应分布方法、分布式计算系统及相关设备 |
-
2019
- 2019-06-21 CN CN201910544859.1A patent/CN110362426B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101187931A (zh) * | 2007-12-12 | 2008-05-28 | 浙江大学 | 分布式文件系统多文件副本的管理方法 |
US8650159B1 (en) * | 2010-08-26 | 2014-02-11 | Symantec Corporation | Systems and methods for managing data in cloud storage using deduplication techniques |
CN102137157A (zh) * | 2011-02-28 | 2011-07-27 | 浪潮(北京)电子信息产业有限公司 | 一种云存储系统及其实现方法 |
CN103631894A (zh) * | 2013-11-19 | 2014-03-12 | 浪潮电子信息产业股份有限公司 | 一种基于hdfs的动态副本管理方法 |
CN107231395A (zh) * | 2016-03-25 | 2017-10-03 | 阿里巴巴集团控股有限公司 | 数据存储方法、装置和系统 |
CN106648456A (zh) * | 2016-09-18 | 2017-05-10 | 重庆邮电大学 | 基于用户访问量以及预测机制的动态副本文件访问方法 |
CN107302561A (zh) * | 2017-05-23 | 2017-10-27 | 南京邮电大学 | 一种云存储系统中热点数据副本放置方法 |
CN107807793A (zh) * | 2017-10-27 | 2018-03-16 | 清华大学 | 分布式计算机存储系统中数据副本异构存储与访问方法 |
CN108924203A (zh) * | 2018-06-25 | 2018-11-30 | 深圳市金蝶天燕中间件股份有限公司 | 数据副本自适应分布方法、分布式计算系统及相关设备 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115190135A (zh) * | 2022-06-30 | 2022-10-14 | 华中科技大学 | 一种分布式存储系统及其副本选择方法 |
CN115190135B (zh) * | 2022-06-30 | 2024-05-14 | 华中科技大学 | 一种分布式存储系统及其副本选择方法 |
CN115297122A (zh) * | 2022-09-29 | 2022-11-04 | 数字江西科技有限公司 | 基于负载自动监测的政务运维方法和系统 |
CN115297122B (zh) * | 2022-09-29 | 2023-01-20 | 数字江西科技有限公司 | 基于负载自动监测的政务运维方法和系统 |
CN117149097A (zh) * | 2023-10-31 | 2023-12-01 | 苏州元脑智能科技有限公司 | 一种分布式存储系统数据访问控制方法及装置 |
CN117149097B (zh) * | 2023-10-31 | 2024-02-06 | 苏州元脑智能科技有限公司 | 一种分布式存储系统数据访问控制方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110362426B (zh) | 2021-07-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11558270B2 (en) | Monitoring a stale data queue for deletion events | |
US9503518B2 (en) | Method and apparatus for buffering and obtaining resources, resource buffering system | |
CN102369688B (zh) | 资源动态调整方法和调度设备 | |
US5687372A (en) | Customer information control system and method in a loosely coupled parallel processing environment | |
CN110362426A (zh) | 一种面向突发性负载的选择性副本实现方法及系统 | |
US10419528B2 (en) | Dynamically instantiating and terminating data queues | |
US10599529B2 (en) | Instantiating data queues for management of remote data stores | |
CN109804354A (zh) | 用于消息队列的消息高速缓存管理 | |
CN103294548B (zh) | 一种基于分布式文件系统的io请求调度方法和系统 | |
CN107451853B (zh) | 一种红包实时派发的方法、装置、系统及存储介质 | |
CN103312624A (zh) | 一种消息队列服务系统和方法 | |
US10901648B2 (en) | Distributed data storage system with automatic snapshots, user snapshots and soft delete | |
US10812322B2 (en) | Systems and methods for real time streaming | |
CN109271106A (zh) | 消息存储、读取方法及装置、服务器、存储介质 | |
CN110109868A (zh) | 用于索引文件的方法、装置和计算机程序产品 | |
CN107430582A (zh) | 瘦客户端系统、连接管理装置、虚拟机操作装置、方法和存储介质 | |
CN109165096A (zh) | web集群的缓存利用系统及方法 | |
US20190227859A1 (en) | Data store device and data management method | |
JP4500090B2 (ja) | 情報管理システムと情報管理方法 | |
CN107453948A (zh) | 一种网络测量数据的存储方法及系统 | |
CN110245129A (zh) | 一种分布式全局数据去重方法和装置 | |
WO2012124295A1 (ja) | コンピュータシステム、制御システム、制御方法および制御プログラム | |
JP2004046372A (ja) | 分散処理システム、リソース割当方法およびプログラムならびにリソース割当プログラムが記録された記録媒体 | |
US6178464B1 (en) | System and method for canceling a computer request | |
KR101771178B1 (ko) | 인메모리 캐시를 관리하는 방법 |
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 |