保证分布式对象存储中的数据、流量、容量一致性的方案的制作方法

文档序号:16465906发布日期:2019-01-02 22:47阅读:327来源:国知局

本发明涉及分布式对象存储中的数据,流量统计,容量统计的一致性问题,具体是一种保证分布式对象存储中的数据、流量、容量一致性的方案。



背景技术:

本方案是一种分布式的对象存储中的数据,流量统计,容量统计的一致性保证方案。在分布式对象存储中,需要保证数据,流量统计和容量统计的一致性,由于在数据写入/修改的过程中,会面临多种异常,任何一种异常都可能导致数据,流量,容量的不一致问题,在常用的解决方案中(如使用mysql事务),在分布式,大规模的数据请求场景下,这样的方式非常容易成为存储系统的性能瓶颈所在,所以需要一种全新的办法来解决数据,流量,容量的一致性问题,同时又能保证不会成为性能瓶颈。

适用于大规模的分布式对象存储,并不支持随机写入,追加写入的场景。



技术实现要素:

本发明的目的在于提供一种保证分布式对象存储中的数据、流量、容量一致性的方案,以解决上述背景技术中提出的问题。

为实现上述目的,本发明提供如下技术方案:

一种保证分布式对象存储中的数据、流量、容量一致性的方案,其具体方法步骤如下:

(1)对于所有的对象数据写入请求,都先记录操作日志,并带状态;

(2)对于数据已经落入存储完成后,改变操作日志的状态,直接响应数据写入;

(3)同时另一个异步线程不断的查询操作的日志的状态,根据不同的日志状态做不同的处理。

作为本发明进一步的方案:所述步骤(1)中的操作日志为分布式,能够包装扩展性,状态为初始状态。

作为本发明进一步的方案:所述步骤(2)中的操作日志状态为数据写入状态,响应数据写入为告知数据写入请求完成。

作为本发明进一步的方案:所述步骤(3)中的操作日志的状态为初始状态,如果没超时,则认为数据还在写入,不做任何处理,如果超时,则认为数据写入失败,将会根据操作日志的内容,做数据回滚。

作为本发明进一步的方案:所述步骤(3)中的操作日志的状态为写入状态,这个状态表明数据已经成功写入磁盘,那么就会分析这次的操作对容量的影响,如删除操作,容量减少,增加操作,容量增加,并根据容量的变化下,修改容量值,同时在容量值中记录修改日。

作为本发明进一步的方案:所述修改操作日志的状态为容量已统计,清除容量至中的修改日志,修改操作日志的状态为容量统计完成。

作为本发明进一步的方案:所述步骤(3)中的操作日志的状态为容量统计完成,那么就会开始分析操作对流量统计的影响,并修改流量的统计值,同时在容量值中记录流量修改日志。

作为本发明进一步的方案:所述修改操作日志的状态为流量已统计,清除流量值中的修改日志,修改操作日志的状态为流量统计完成。

作为本发明进一步的方案:所述记录修改日志中记录容量值被谁修改。

作为本发明进一步的方案:所述记录流量修改日志中记录流量值被谁修改。

与现有技术相比,本发明的有益效果是:提供了一种新的高性能数据一致性方案,不但能保证数据写入过程中的数据,流量统计,容量统计的一致性,还能保证可扩展性,同时对性能的影响也不高。

具体实施方式

下面将结合本发明实施例,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例中,一种保证分布式对象存储中的数据、流量、容量一致性的方案,其具体方法步骤如下:

(1)对于所有的对象数据写入请求,都先记录操作日志,并带状态,操作日志为分布式,能够包装扩展性,状态为初始状态。

(2)对于数据已经落入存储完成后,改变操作日志的状态,直接响应数据写入,操作日志状态为数据写入状态,响应数据写入为告知数据写入请求完成。

(3)同时另一个异步线程不断的查询操作的日志的状态,根据不同的日志状态做不同的处理:

s1操作日志的状态为初始状态,如果没超时,则认为数据还在写入,不做任何处理,如果超时,则认为数据写入失败,将会根据操作日志的内容,做数据回滚;

s2操作日志的状态为写入状态,这个状态表明数据已经成功写入磁盘,那么就会分析这次的操作对容量的影响,如删除操作,容量减少,增加操作,容量增加,并根据容量的变化下,修改容量值,同时在容量值中记录修改日;

s3修改操作日志的状态为容量已统计;

s4清除容量至中的修改日志;

s5修改操作日志的状态为容量统计完成;

s6操作日志的状态为容量统计完成,那么就会开始分析操作对流量统计的影响,并修改流量的统计值,同时在容量值中记录流量修改日志;

s7修改操作日志的状态为流量已统计;

s8清除流量值中的修改日志;

s9修改操作日志的状态为流量统计完成;

s10清理备份,标记操作完成。

一致性分析:

1、当具体实施方式中的(1)、(2)中数据异常,那么(3)中的s1内异步线程会根据操作日志,超时时间,就认为数据写入失败,清理数据。

2、如果在具体实施的s2、s3异常,操作日志的状态仍为写入状态,那么需要分析容量值修改记录中是否有被本次操作日志修改的记录,有的话,说明容量已统计,做具体实施的s3,如果没有,则重做具体实施的s2。

3、如果在具体实施的s4、s5异常,重做具体实施的s4、s5。

4、如果在具体实施的s6、s7异常,操作日志的状态仍为容量统计完成,那么需要分析流量值修改记录中是否有被本次操作日志修改的记录,有的话,说明流量已统计,做具体实施的s7,如果没有,则重做具体实施的s6。

5、如果在具体实施的s8、s9、s10异常,重做具体实施的s8、s9、s10。

对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。

此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。



技术特征:

技术总结
本发明公开了一种保证分布式对象存储中的数据、流量、容量一致性的方案,在分布式对象存储中,需要保证数据,流量统计和容量统计的一致性,不但能保证数据写入过程中的数据,流量统计,容量统计的一致性,还能保证可扩展性,同时对性能的影响也不高。

技术研发人员:傅金地;黄键明
受保护的技术使用者:赛凡信息科技(厦门)有限公司
技术研发日:2018.08.20
技术公布日:2019.01.01
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1