CN103780426A - 云存储数据的一致性维护方法及云存储系统 - Google Patents
云存储数据的一致性维护方法及云存储系统 Download PDFInfo
- Publication number
- CN103780426A CN103780426A CN201410014710.XA CN201410014710A CN103780426A CN 103780426 A CN103780426 A CN 103780426A CN 201410014710 A CN201410014710 A CN 201410014710A CN 103780426 A CN103780426 A CN 103780426A
- Authority
- CN
- China
- Prior art keywords
- data
- write
- read
- cloud storage
- consistency
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种云存储数据的一致性维护方法,属于云计算和云存储技术领域。本发明方法根据数据的历史读写频率,将数据分为四类:读稀疏型、写稀疏型、读写稀疏型和读写密集型;对于读稀疏型和读写稀疏型数据,使用基于pull的数据一致性维护方法;对于写稀疏型数据,使用基于push的数据一致性维护方法;对于读写密集型数据,如当前时刻距该数据下一次更新时刻之间的时间段大于或等于预设的时间阈值,使用基于pull的数据一致性维护方法,否则,使用基于push的数据一致性维护方法。本发明还公开了一种使用上述一致性维护方法的云存储系统。本发明在保证数据一致性的前提下降低了系统资源消耗,降低了网络阻塞的可能。
Description
技术领域
本发明公开了一种云存储数据的一致性维护方法及云存储系统,属于云计算和云存储技术领域。
背景技术
随着Internet网络技术的发展和计算机技术的不断提高,网络中传输和处理的数据的能力直线增长。人们希望获得一种直接、便捷的计算处理方式,不需要安装应用软件,只要连接互联网,就可以利用连接在网络中的空闲的计算机资源进行任务处理。
在此背景之下,云计算应运而生,所谓云计算,就是通过计算机网络去连接由大量服务器、存储设备集群构成的云计算平台,来获取远程客户端所需要的服务。而云计算服务商则是将一项复杂的运算任务分成若干个部分,通过分布在计算机网络中的计算机协同合作,最终将运算结果传输到客户端,从而实现个人数据在远程的计算资源集群的运算。
云存储的概念与云计算类似,它是指通过集群应用、网格技术或分布式文件系统等功能,将网络中大量各种不同类型的存储设备通过应用软件集合起来协同工作,共同对外提供按用户需求的数据存储和业务访问功能的一个系统。
云存储对用户来讲,不是指某一个具体的设备,而是指一个由许许多多个存储设备和服务器所构成的集合体。使用者使用云存储,并不是使用某一个存储设备,而是使用整个云存储系统带来的一种数据访问服务。所以严格来讲,云存储不是存储,而是一种服务。总之,云存储的核心是应用软件与存储设备相结合,通过应用软件来实现存储设备向存储服务的转变。
在现有的云存储系统中,为了保证数据的可靠性和可用性多采用多节点多副本的放置策略,只有这样才能很好地保证数据的可靠性和安全性,但这也带来了一个比较严重的问题,那就是如何保障各个副本之间数据的一致性。因此,如何高效地保障多个副本之间的一致性,已然成为当今云计算和云存储领域比较热门的一个话题,同时,也吸引了很多技术人员来进行进一步的探索。
目前云存储系统中出现的一致性维护策略,如强一致性维护策略、最终一致性维护策略、洪泛式一致性维护策略等,均不能根据数据的特征动态地调整一致性维护策略,采用这种刻板单一的一致性维护策略,不仅不利于数据的可用性和一致性,而且还会影响存储系统地性能,对网络造成很大的拥塞。
发明内容
本发明所要解决的技术问题在于克服现有技术的不足,提供一种云存储数据的一致性维护方法以及使用该方法的云存储系统,可以根据数据的读写特征来动态地调整数据的一致性维护策略,兼顾数据的可用性和一致性。
本发明具体采用以下技术方案:
一种云存储数据的一致性维护方法,根据数据的历史读写频率,将数据分为四类:读稀疏型、写稀疏型、读写稀疏型和读写密集型;对于读稀疏型和读写稀疏型数据,使用基于pull的数据一致性维护方法;对于写稀疏型数据,使用基于push的数据一致性维护方法;对于读写密集型数据,如当前时刻距该数据下一次更新时刻之间的时间段大于或等于预设的时间阈值,使用基于pull的数据一致性维护方法,否则,使用基于push的数据一致性维护方法。
优选地,所述根据数据的历史读写频率,将数据分为四类:读稀疏型、写稀疏型、读写稀疏型和读写密集型,具体按照以下方法:
步骤1、统计M个连续周期中每个数据各副本的读频率和写频率,M为大于1的整数;步骤2、按照以下公式计算每个数据各副本的读流行程度和写流行程度:
步骤3、按照下式得到每个数据的读流行程度和写流行程度:
其中,Prk和Pwk分别表示数据k的读流行程度和写流行程度;n为数据k的副本总数;步骤4、按照下式确定每个数据的读标示和写标示:
其中,Srk和Swk分别表示数据k的读标示和写标示;Rk和Wk分别表示预设的读阈值和写阈值;
步骤5、根据数据的读标示和写标示将数据分为四类:读稀疏型、写稀疏型、读写稀
型和读写密集型,具体方法如下:
S1={k|Srk=0,Swk=0},
S2={k|Srk=0,Swk=1},
S3={k|Srk=1,Swk=0},
S4={k|Srk=1,Swk=1},
其中,S1~S4依次表示读写稀疏型、读稀疏型、写稀疏型、读写密集型。
进一步地,在每个周期中对各数据的所属类型进行更新,并根据更新后的类型动态调整各数据的数据一致性维护方法。
一种云存储系统,使用上述任一一致性维护方法。
相比现有技术,本发明技术方案及其优选方案具有以下有益效果:
本发明根据数据的读写特征将数据分为不同的类别,对不同类别的数据采用不同的一致性维护策略,在保证数据一致性的前提下降低了系统资源消耗,降低了网络阻塞的可能;本发明还可进一步地进行动态调整,当数据的读写频率发生变化时可以及时地改变一致性维护策略,以免造成不必要的资源浪费。
附图说明
图1为本发明一个优选实施例的流程示意图;
图2为基于pull的一致性维护方法流程;
图3为基于push的一致性维护方法流程。
具体实施方式
下面结合附图对本发明的技术方案进行详细说明:
云存储系统中为了提高数据的可靠性和可用性,往往会采用面向多副本的容灾机制,即一份数据在不同的节点放置多份。采用多副本放置机制确实可以提高数据的可靠性和可用性,但也随之带来了一个问题:即如何保障多副本之间数据的一致性。在云存储系统中,当用户对上传到云存储系统中的数据进行了更新后,为了保持各个副本之间的统一,需要对这个副本进行一致性维护。现有的一致性维护策略,如强一致性维护策略、最终一致性维护策略和洪泛式一致性维护策略,均不能很好地保障数据的可用性和一致性,采用现有维护策略,不仅影响云存储系统地性能,而且会对网络造成很大的拥塞。
为了解决该问题,本发明提出了一种云存储数据的一致性维护方法,首先根据数据的历史读写特征将所有数据进行分类,然后对不同类的数据采用不同的一致性维护策略;同时为了能够及时反映数据的读写特征的变化并对一致性维护策略进行动态调整,本发明进一步地对数据进行动态分类,并根据分类结果动态调整相应的一致性维护策略。这样,既可以很好地保证云存储数据各个副本之间的一致性又可以降低系统的维护成本,同时还不会对网络造成很大的压力。
为了便于公众理解本发明的技术方案,下面对本发明的一个优选实施例进行详细说明。
首先需要根据数据的历史读写频率对数据进行分类,本发明将数据分为四类:读稀疏型、写稀疏型、读写稀疏型和读写密集型;其中,读写稀疏型表示数据读写访问量都比较低,数据处于不活跃状态;读稀疏型表示数据写的访问量较高,读的访问量较低,数据处于较活跃状态;写稀疏型表示数据读的访问量较高,写的访问量较低,数据处于较活跃状态;读写密集型表示数据读写的访问量都比较高,数据处于活跃状态。
对数据类别划分的准确与否直接影响着后面一致性维护策略的选择和实施,如果划分不准确不合理,就会造成系统资源的浪费和网络的拥塞。最简单的数据分类方法是统计数据在一个统计周期中的读访问的频次和写访问的频次,设定一个读访问频次阈值和一个写访问频次阈值,读访问的频次和写访问的频次分别低于相应阈值,则该数据为读写稀疏型;读访问的频次和写访问的频次分别高于相应阈值,则该数据为读写密集型;读访问的频次低于读访问频次阈值,而写访问的频次高于写访问频次阈值,则该数据为读稀疏型;读访问的频次高于读访问频次阈值,而写访问的频次低于写访问频次阈值,则该数据为写稀疏型。该方法虽然简单易行,但对于数据类型的划分过于草率,因为仅仅根据一个统计周期内的读写频率就改变数据的类型,这样当数据的读写频率发生“过山车”一样的起伏变化后,数据的类型以及一致性维护策略也会随之发生“过山车”似的改变,这样会造成系统计算资源和网络资源的极大浪费,严重影响系统性能。为此,本实施例综合考虑数据在历史统计周期内的读写频率,并按“折半衰减法”对不同统计周期内的读写频率赋予不同的权值,以对当前数据进行科学的划分,进而选择出恰当的一致性策略。本实施例中的一致性维护方法流程如图1所示,包括以下步骤:
步骤1、统计M个连续周期中每个数据各副本的读频率和写频率,M为大于1的整数。
管理节点每过一个时间段T就记录下该时间段中各个服务器上各个数据不同副本的读、写频率,分别表示为和,即数据k的第i个副本在第j个周期(即时间段T)中的读频率(被读访问的频率)和写频率(被写访问的频率)。其中k是不同数据的唯一标示,i是数据k的存储于不同服务器上的副本的唯一标示,j是M个连续周期中的第j个。本实施例中管理节点只保留最近的10个时间段内副本的读、写频率,新的周期内的读写频率记录完毕的同时将最早的周期的读写频率去除,即M=10。
步骤2、按照以下公式计算每个数据各副本的读流行程度和写流行程度:
其中,和分别表示数据k的第i个副本的读流行程度和写流行程度;和分别表示数据k的第i个副本在第j个周期中的读频率和写频率。本实施例中采用折半衰减原理来计算,主要是为了区别副本各个时间段读写频率对副本读写流行程度的影响,即每过一个时间段,影响系数衰减为之前的一半。
步骤3、按照下式得到每个数据的读流行程度和写流行程度:
其中,Prk和Pwk分别表示数据k的读流行程度和写流行程度;n为数据k的副本总数。步骤4、按照下式确定每个数据的读标示和写标示:
其中,Srk和Swk分别表示数据k的读标示和写标示;Rk和Wk分别表示预设的读阈值和写阈值,可由用户根据实际需要自定义。
步骤5、根据数据的读标示和写标示将数据分为四类:读稀疏型、写稀疏型、读写稀疏型和读写密集型,具体方法如下:
S1={k|Srk=0,Swk=0},
S2={k|Srk=0,Swk=1},
S3={k|Srk=1,Swk=0},
S4={k|Srk=1,Swk=1},
其中,S1~S4依次表示读写稀疏型、读稀疏型、写稀疏型、读写密集型。
步骤6、根据数据所属的类型,确定其一致性维护方法,具体如下:
(1)当数据k被划分到S1和S2中,说明数据k读的访问量比较低,此时采用基于pull的一致性维护方法对数据k进行一致性维护,即通过存储节点向一致性维护节点拉取更新内容的方式来获得更新数据的一致性的维护。
基于pull的一致性维护方法为现有技术,其具体流程如图2所示,包括以下主要内容:在云存储集群中,主要包括数据的管理节点、存储节点和一致性维护节点,其中管理节点主要用来管理文件系统的命名空间和记录存储数据的元数据,存储数据的元数据主要有:数据所属的文件目录信息,以及数据存储节点的位置信息等;存储节点除了要完成数据的存储之外,还需要处理客户端、管理节点和一致性维护节点的读写请求,与此同时,还必须周期性地向管理节点回报其存储的数据信息;一致性维护节点主要负责记录数据的版本号和各存储节点上传的副本更新内容,并与管理节点和存储节点交互完成数据的一致性维护。而基于pull的一致性维护方法的主要思想是,当用户对存储节点上的数据进行更新后,存储节点会将更新的内容发送给一致性维护节点,而一致性维护节点在接收到更新内容并修改了该数据的版本号后,并不向其它存储节点传播更新内容。只有当某个副本节点接收到用户的访问请求时,才会检查存储节点本地副本的版本号是否比一致性维护节点的版本号低。如果是,就向一致性维护节点发出更新请求,以“拉”(pull)的方式获得最新副本,此后才返回副本数据给发起访问请求的终端用户或应用程序。它的优点是比较适合于动态的网络环境,但副本的一致性较差,在数据读取频率比较高时,会引起大量的信息传播。常作为新加入的存储节点向管理节点和一致性维护节点获取最新副本状态使用。
(2)当数据k被划分到S3中时,说明数据k读的访问量比较高而写的访问量较低,此时采用基于push的一致性维护方法,即按照一定的更新周期地将一致性维护节点收到的副本更新内容推送到各副本所在的存储节点,以便及时地更新各副本内容。基于push的一致性维护方法为现有技术,其流程如图3所示。基于push的一致性维护方法与基于pull的一致性维护方法恰恰相反,不是存储节点向一致性维护“拉”(pull)更新内容,而是一致性维护节点主动地以“推”(push)的方式将更新内容推送到各个存储节点。即:当存储节点将副本的更新内容提交给一致性维护节点,在一致性维护节点修改了本地的版本号后,就会用类似广播的方式向其他拥有该数据副本的存储节点发送更新请求,各存储节点在收到更新请求后就会更新自己本地的副本数据。这种类似广播的数据一致性维护方式的优点是总能快速地保持副本数据的一致性,但在数据写的频率比较高时,会引起大量的信息传播,进而造成网络拥塞,影响系统性能。本实施例中管理节点根据数据的读流行程度动态确定该数据的更新周期,即根据下式确定当前时刻至下一次更新时刻之间的时间段tm:
其中,Prk表示数据k的读流行程度;γ为预设的常量,其大小可根据实施需要或实际情况确定;e为自然常数。
(3)当数据k被划分到S4中时,说明数据k读写访问量都比较高,为了减轻系统的压力和网络的拥塞,需要在一致性维护节点向存储节点推送(push方式)和存储节点从一致性维护节点拉取(pull方式)之间寻找平衡点。本实施例中与S3类似,先根据下式确定当前时刻至下一次更新时刻之间的时间段tm:
其中,Prk表示数据k的读流行程度;γ为预设的常量,其大小可根据实施需要或实际情况确定;e为自然常数。然后用计算得到的tm与一个预设的时间阈值ω比较,如果大于或等于ω,则采用基于pull的数据一致性维护方法,否则,使用基于push的数据一致性维护方法。时间阈值ω可以根据具体情况选择。
每经过一个时间段T,则重复执行上述步骤1~步骤6,即可实现根据实时的数据读写频率动态地进行数据一致性维护。当然,也可以以一个较长的周期来重复执行步骤1~步骤6,在实现动态的数据一致性维护的同时,还可减少资源的消耗。
Claims (7)
1. 一种云存储数据的一致性维护方法,其特征在于,根据数据的历史读写频率,将数据分为四类:读稀疏型、写稀疏型、读写稀疏型和读写密集型;对于读稀疏型和读写稀疏型数据,使用基于pull的数据一致性维护方法;对于写稀疏型数据,使用基于push的数据一致性维护方法;对于读写密集型数据,如当前时刻距该数据下一次更新时刻之间的时间段大于或等于预设的时间阈值,使用基于pull的数据一致性维护方法,否则,使用基于push的数据一致性维护方法。
2.如权利要求1所述云存储数据的一致性维护方法,其特征在于,所述根据数据的历史读写频率,将数据分为四类:读稀疏型、写稀疏型、读写稀疏型和读写密集型,具体按照以下方法:
步骤1、统计M个连续周期中每个数据各副本的读频率和写频率,M为大于1的整数;
步骤2、按照以下公式计算每个数据各副本的读流行程度和写流行程度:
步骤3、按照下式得到每个数据的读流行程度和写流行程度:
,
步骤4、按照下式确定每个数据的读标示和写标示:
步骤5、根据数据的读标示和写标示将数据分为四类:读稀疏型、写稀疏型、读写稀疏型和读写密集型,具体方法如下:
3.如权利要求2所述云存储数据的一致性维护方法,其特征在于,所述M的值不大于10。
4.如权利要求2或3所述云存储数据的一致性维护方法,其特征在于,在每个周期中对各数据的所属类型进行更新,并根据更新后的类型动态调整各数据的数据一致性维护方法。
7.一种云存储系统,其特征在于,使用权利要求1~6任一项所述云存储数据的一致性维护方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410014710.XA CN103780426A (zh) | 2014-01-13 | 2014-01-13 | 云存储数据的一致性维护方法及云存储系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410014710.XA CN103780426A (zh) | 2014-01-13 | 2014-01-13 | 云存储数据的一致性维护方法及云存储系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103780426A true CN103780426A (zh) | 2014-05-07 |
Family
ID=50572293
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410014710.XA Pending CN103780426A (zh) | 2014-01-13 | 2014-01-13 | 云存储数据的一致性维护方法及云存储系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103780426A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109389213A (zh) * | 2017-08-02 | 2019-02-26 | 上海寒武纪信息科技有限公司 | 存储装置及方法、数据处理装置及方法、电子装置 |
CN110457392A (zh) * | 2019-07-24 | 2019-11-15 | 腾讯科技(深圳)有限公司 | 副本读写方法及装置 |
WO2019232926A1 (zh) * | 2018-06-04 | 2019-12-12 | 平安科技(深圳)有限公司 | 数据一致性校验流控方法、装置、电子设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102609508A (zh) * | 2012-02-05 | 2012-07-25 | 四川大学 | 一种面向网络存储的文件高速访问方法 |
CN103440182A (zh) * | 2013-09-12 | 2013-12-11 | 重庆大学 | 自适应分配方法及装置、自适应副本一致性方法 |
-
2014
- 2014-01-13 CN CN201410014710.XA patent/CN103780426A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102609508A (zh) * | 2012-02-05 | 2012-07-25 | 四川大学 | 一种面向网络存储的文件高速访问方法 |
CN103440182A (zh) * | 2013-09-12 | 2013-12-11 | 重庆大学 | 自适应分配方法及装置、自适应副本一致性方法 |
Non-Patent Citations (2)
Title |
---|
RUAY-SHIUNG CHANG,JIH-SHENG CHANG: "Adaptable Replica Consistency Service for Data Grids", 《PROCEEDINGS OF THE THIRD INTERNATIONAL CONFERENCE ON INFORMATION TECHNOLOGY:NEW GENERATIONS(ITNG"06)》 * |
XIMEI WANG,SHOUBAO YANG,SHULING WANG,XIANLONG NIU,JING XU: "An Application-Based Adaptive Replica Consistency for Cloud Storage", 《2010 NINTH INTERNATIONAL CONFERENCE ON GRID AND CLOUD COMPUTING》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109389213A (zh) * | 2017-08-02 | 2019-02-26 | 上海寒武纪信息科技有限公司 | 存储装置及方法、数据处理装置及方法、电子装置 |
WO2019232926A1 (zh) * | 2018-06-04 | 2019-12-12 | 平安科技(深圳)有限公司 | 数据一致性校验流控方法、装置、电子设备及存储介质 |
CN110457392A (zh) * | 2019-07-24 | 2019-11-15 | 腾讯科技(深圳)有限公司 | 副本读写方法及装置 |
CN110457392B (zh) * | 2019-07-24 | 2023-10-31 | 腾讯科技(深圳)有限公司 | 副本读写方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11734125B2 (en) | Tiered cloud storage for different availability and performance requirements | |
US10121169B2 (en) | Table level distributed database system for big data storage and query | |
US7899763B2 (en) | System, method and computer program product for evaluating a storage policy based on simulation | |
CN102984280B (zh) | 针对社交类云存储网络应用的数据备份系统和方法 | |
US20180260114A1 (en) | Predictive models of file access patterns by application and file type | |
US9740435B2 (en) | Methods for managing content stored in cloud-based storages | |
US10310748B2 (en) | Determining data locality in a distributed system using aggregation of locality summaries | |
US8914466B2 (en) | Multi-level adaptive caching within asset-based web systems | |
CN103067297B (zh) | 一种基于资源消耗预测的动态负载均衡方法及装置 | |
US10992587B2 (en) | Automated data flows using flow-based data processor blocks | |
CN103793425A (zh) | 用于分布式系统的数据处理方法及装置 | |
CN105144121A (zh) | 高速缓存内容可寻址数据块以供存储虚拟化 | |
CN103064637A (zh) | 一种网盘的缓存同步方法及系统 | |
CN110347651A (zh) | 基于云存储的数据同步方法、装置、设备及存储介质 | |
US20220179585A1 (en) | Management of Idle Time Compute Tasks in Storage Systems | |
CN103368867A (zh) | 高速缓存经网络与辅助站点通信的对象的方法和系统 | |
CN102185926A (zh) | 一种云计算资源管理系统及方法 | |
US20120224482A1 (en) | Credit feedback system for parallel data flow control | |
CN109324874A (zh) | 一种虚拟机内存快照导入块设备的方法、系统及装置 | |
CN109767274B (zh) | 一种对海量发票数据进行关联存储的方法及系统 | |
CN103440182A (zh) | 自适应分配方法及装置、自适应副本一致性方法 | |
CN109150608A (zh) | 用于语音对话平台的接口服务升级方法及系统 | |
CN108347459A (zh) | 一种云端数据快速存储方法及装置 | |
CN103780426A (zh) | 云存储数据的一致性维护方法及云存储系统 | |
US20190188643A1 (en) | Method and system of sharing product data in a collaborative environment |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20140507 |