本发明涉及分布式数据系统,特别涉及一种伸缩一致性及极致高可用分布式数据系统。
背景技术:
1、数据系统将数据分为不同一致性等级:强一致性等级、高可用等级、强一致性优先、极致高可用,从而导致数据设计者需精确识别数据类型,在合适的时候存入合适的cp或ap系统,现有对系统改进设计,如可调节读写一致性,即允许用户在读写时指定当前操作的一致性等级,相当于将cp/ap融入同一系统,但仍存在用户在操作时,必须选定固定一致性等级,从而存在无法自动降级的问题。
技术实现思路
1、本发明的目的在于提供一种伸缩一致性及极致高可用分布式数据系统,以解决上述背景技术中提出的问题。
2、为实现上述目的,本发明提供如下技术方案:一种伸缩一致性及极致高可用分布式数据系统,所述分布式数据系统包括客户端、存储单元、支节点和主节点;
3、所述客户端用于客户写数据,将数据标记上一致性等级,并在数据上附带数据的信息,其中等级分为强一致性等级、高可用等级、强一致性优先、极致高可用;
4、所述存储单元用于当客户端与集群通信异常上,将极致高可用数据写本地缓存;
5、所述支节点用于将一致性等级进行识别,并当数据为高可用等级,使其在节点上执行gossip算法传播,向客户端返回数据写入成功;当数据为高可用等级和强一致性优先时,支节点将请求转发至主节点处理;
6、所述主节点是通过raft算法,将强一致优先等级的数据进行降级。
7、优选的,所述客户端包括一致性等级标记模块、打包模块和极致高可用判别模块。
8、优选的,所述一致性等级标记模块用于区分数据的一致性等级,并在数据做上等级表示,所述打包模块用于将数据携带上ip地址和本地时间戳,所述极致高可用判别模块用于将标记等级的数据进行识别,并将值极高可用数据进行提取。
9、优选的,所述存储单元包括接收模块、本地缓存模块和备份模块。
10、优选的,所述接收模块用于接收客户端所发送的数据信息,所述本地缓存模块用于将极致高可用数据进行本地缓存,所述备份模块用于将保存在本体的数据进行备份。
11、优选的,所述支节点包括识别一致性等级模块、数据区分模块、传播模块、结果回复模块和请求模块。
12、优选的,所述识别一致性等级模块用于将客户端出入支节点的数据通过标记来识别数据一致性等级,所述数据区分模块包括高可用等级部、强一致性等级部和强一致性优先部,所述数据区分模块用于将识别的不同等级的数据按照结果进行区分。
13、优选的,所述传播模块用于将一致性等级为高可用等级的数据在节点上执行gossip算法传播,所述结果回复模块用于将数据写入完成的信息,所述请求模块用于将一致性等级为强一致性等级和强一致性优先的数据转发至主节点处理。
14、优选的,所述主节点包括强一致性优先处理模块、回传模块、强一致性数据处理模块和回复模块。
15、优选的,所述强一致性优先处理模块用于支节点优先向主节点请求raft共识,超时后降级为高可用写,所述回传模块用于将降为高可用等级的强一致性优选的数据回传至支节点,所述强一致性数据处理模块通过raft算法执行数据一致性共识,过半数一致为数据写入成功,所述回复模块用于向客户端恢复数据写入完成的信息。
16、本发明的技术效果和优点:
17、该伸缩一致性及极致高可用分布式数据系统,在主节点添加raft算法,支节点向当前的主点节点发出写入请求后,数据在预定的时间内未收到回复时,即降级为高可用写,从而使得强一致性优先模式在无法维持强一致性的情况下自动降级为高可用读写,减少上层应用干预,自动降级。
1.一种伸缩一致性及极致高可用分布式数据系统,其特征在于,所述分布式数据系统包括客户端、存储单元、支节点和主节点;
2.根据权利要求1所述的一种伸缩一致性及极致高可用分布式数据系统,其特征在于,所述客户端包括一致性等级标记模块、打包模块和极致高可用判别模块。
3.根据权利要求2所述的一种伸缩一致性及极致高可用分布式数据系统,其特征在于,所述一致性等级标记模块用于区分数据的一致性等级,并在数据做上等级表示,所述打包模块用于将数据携带上ip地址和本地时间戳,所述极致高可用判别模块用于将标记等级的数据进行识别,并将值极高可用数据进行提取。
4.根据权利要求1所述的一种伸缩一致性及极致高可用分布式数据系统,其特征在于,所述存储单元包括接收模块、本地缓存模块和备份模块。
5.根据权利要求4所述的一种伸缩一致性及极致高可用分布式数据系统,其特征在于,所述接收模块用于接收客户端所发送的数据信息,所述本地缓存模块用于将极致高可用数据进行本地缓存,所述备份模块用于将保存在本体的数据进行备份。
6.根据权利要求1所述的一种伸缩一致性及极致高可用分布式数据系统,其特征在于,所述支节点包括识别一致性等级模块、数据区分模块、传播模块、结果回复模块和请求模块。
7.根据权利要求6所述的一种伸缩一致性及极致高可用分布式数据系统,其特征在于,所述识别一致性等级模块用于将客户端出入支节点的数据通过标记来识别数据一致性等级,所述数据区分模块包括高可用等级部、强一致性等级部和强一致性优先部,所述数据区分模块用于将识别的不同等级的数据按照结果进行区分。
8.根据权利要求7所述的一种伸缩一致性及极致高可用分布式数据系统,其特征在于,所述传播模块用于将一致性等级为高可用等级的数据在节点上执行gossip算法传播,所述结果回复模块用于将数据写入完成的信息,所述请求模块用于将一致性等级为强一致性等级和强一致性优先的数据转发至主节点处理。
9.根据权利要求1所述的一种伸缩一致性及极致高可用分布式数据系统,其特征在于,所述主节点包括强一致性优先处理模块、回传模块、强一致性数据处理模块和回复模块。
10.根据权利要求9所述的一种伸缩一致性及极致高可用分布式数据系统,其特征在于,所述强一致性优先处理模块用于支节点优先向主节点请求raft共识,超时后降级为高可用写,所述回传模块用于将降为高可用等级的强一致性优选的数据回传至支节点,所述强一致性数据处理模块通过raft算法执行数据一致性共识,过半数一致为数据写入成功,所述回复模块用于向客户端恢复数据写入完成的信息。
