一种集群一致性服务高并发下持久化的优化方法

文档序号:9787526阅读:215来源:国知局
一种集群一致性服务高并发下持久化的优化方法
【技术领域】
[0001]本发明涉及分布式计算领域,具体是一种集群一致性服务高并发下持久化的优化方法。
【背景技术】
[0002]在集群一致性服务的实现中,为应对集群整体失效,如机房断电,所有节点瘫痪的极端情况,需要对集群一致性信息进行持久化,以便恢复集群一致性状态。但持久化涉及1操作,代价高昂,对集群一致性服务的实现产生了一系列的影响。
[0003]若在节点的一致性协议实现线程中进行持久化,一方面,由于各任务间对集群一致性信息的修改最终是串行的,持久化会使这个串行阶段的运行时间增加,在高并发下,并行度增加时,将导致集群运行时的并发性下降;另一方面,由于在集群一致性服务的实现中,往往以响应超时作为节点离线的判据,而持久化会降低节点上集群一致性服务程序的响应速度,可能使其它节点误认为该节点已离线,导致集群分裂。

【发明内容】

[0004]本发明的目的在于提供一种集群一致性服务高并发下持久化的优化方法,它能够及时实现持久化,能够保证集群一致性服务程序的响应速度,能够避免并发性下降及集群分裂,能够保证集群运行效率。
[0005]本发明为实现上述目的,通过以下技术方案实现:
[0006]—种集群一致性服务高并发下持久化的优化方法,包括:
[0007]在节点处采用单独的持久化线程,用于实现持久化并回复客户端;
[0008]持久化线程的辅助队列,辅助队列中包含了所有要持久化的数据和回应客户端所需要的链接及返回结果;
[0009]在节点处采用一致性协议实现线程,用于将更新后的一致性信息和回应客户端的函数指针放入持久化线程的辅助队列的尾部,并向持久化线程发送持久化消息。
[0010]所述持久化线程批量完成持久化任务,将辅助队列中的所有要持久化的数据合并为一个批量数据,一次性持久化。
[0011 ]所述持久化线程的实现步骤为:
[0012]步骤I,等待一致性协议实现线程的消息,如果有消息,进入步骤2;
[0013]步骤2,获取辅助队列中的所有持久化任务;
[0014]步骤3,将所有持久化任务中的数据写入一个buffer中;
[0015]步骤4,持久化buffer;
[0016]步骤5,反馈所有持久化任务涉及的客户端;
[0017]步骤6,返回步骤I。
[0018]所述一致性协议实现线程的实现步骤为:
[0019]步骤I,处理更新一致性信息的请求;
[0020]步骤2,更新内存中的一致性信息;
[0021]步骤3,将更新的一致性信息和回应客户端的函数指针放入持久化线程的辅助队列的尾部;
[0022]步骤4,通知持久化线程;
[0023]步骤5,继续处理其它请求。
[0024]对比现有技术,本发明的有益效果在于:
[0025]1、本发明在节点处采用单独的持久化线程,用于实现持久化并回复客户端,能够保证客户端得到回应,能够保证回复前持久化已完成,能够及时实现持久化,并且持久化的损耗仅影响发起写的客户端本身,不影响其他客户端,能够保证集群一致性服务程序的响应速度。
[0026]2、本发明采用一致性协议实现线程,用于将更新后的一致性信息和回应客户端的函数指针放入持久化线程的辅助队列的尾部,并向持久化线程发送持久化消息,一致性协议实现线程处理的都是内存操作,速度很快,能够保证在并发度增加后,集群性能不出现衰减,能够避免并发性下降及集群分裂,能够保证集群运行效率。
[0027]3、所述持久化线程批量完成持久化任务,将辅助队列中的所有要持久化的数据合并为一个批量数据,一次性持久化。持久化线程将持久化请求批量完成,持久化完成后批量回复客户端,批量持久化的时间与单个持久化的时间相同,在高并发下的等待时间与并发度无关,能够降低持久化压力。
[0028]4、所述持久化线程的实现步骤为:
[0029]步骤I,等待一致性协议实现线程的消息,如果有消息,进入步骤2;
[0030]步骤2,获取辅助队列中的所有持久化任务;
[0031 ]步骤3,将所有持久化任务中的数据写入一个buffer中;
[0032]步骤4,持久化buffer;
[0033]步骤5,反馈所有持久化任务涉及的客户端;
[0034]步骤6,返回步骤I。
[0035]采用单独的持久化线程批量完成持久化任务,能够提高持久化效率,能够保证客户端得到回应,能够保证回复前持久化已完成。
[0036]5、所述一致性协议实现线程的实现步骤为:
[0037]步骤I,处理更新一致性信息的请求;
[0038]步骤2,更新内存中的一致性信息;
[0039]步骤3,将更新的一致性信息和回应客户端的函数指针放入持久化线程的辅助队列的尾部;
[0040]步骤4,通知持久化线程;
[0041 ] 步骤5,继续处理其它请求。
[0042]一次性协议实现线程不进行持久化处理,仅为持久化线程传递相关数据,一致性协议实现线程处理的都是内存操作,速度很快,能够保证在并发度增加后,集群性能不出现衰减,能够避免并发性下降及集群分裂。
【附图说明】
[0043]附图1是本发明的时序图。
【具体实施方式】
[0044]下面结合具体实施例,进一步阐述本发明。应理解,这些实施例仅用于说明本发明而不用于限制本发明的范围。此外应理解,在阅读了本发明讲授的内容之后,本领域技术人员可以对本发明作各种改动或修改,这些等价形式同样落于本申请所附权利要求书所限定的范围。
[0045]本发明所述是一种集群一致性服务高并发下持久化的优化方法,包括:
[0046]在节点处采用单独的持久化线程,用于实现持久化并回复客户端。
[0047]持久化线程的操作序列为:
[0048]I)从辅助队列头部获取等待持久化数据;
[0049]2)持久化数据;
[0050]3)将结果返回给客户端。
[0051]采用单独的持久化线程,能够保证客户端得到回应,能够保证回复前持久化已完成,能够及时实现持久化,并且持久化的损耗仅影响持久化线程本身,能够保证集群一致性服务程序的响应速度。
[0052]持久化线程的辅助队列,辅助队列中包含了所有要持久化的数据和回应客户端所需要的链接及返回结果。
[0053]在节点处采用一致性协议实现线程,用于将更新后的一致性信息和回应客户端的函数指针放入持久化线程的辅助队列的尾部,并向持久化线程发送持久化消息。
[0054]一致性协议实现线程的操作序列为:
[0055]I)更新内存中的一致性信息;
[0056]2)将更新后的一致性信息发送给持久化线程。
[0057]有专门的持久化线程实现持久化并返回客户端,持久化的损耗仅影响持久化线程本身,而一致性协议实现线程处理的仍然都是内存操作,速度很快,能够避免并发性下降及集群分列。
[0058]为了降低持久化压力,所述持久化线程批量完成持久化任务,将辅助队列中的所有要持久化的数据合并为一个批量数据,一次性持久化。
[0059]持久化线程的操作序列变为:
[0060]I)从辅助队列获取所有持久化任务;
[0061 ] 2)将所有持久化数据持久化为一个文件;
[0062]3)反馈所有相关客户端。
[0063]集群一致性服务一次持久化请求的相关数据量不大,远远达不到影响磁盘性能的程度,合并后的批量数据也不会大到影响磁盘性能的程度,而影响性能最大的因素是持久化的次数。持久化线程将持久化请求批量完成,持久化完成后批量回复客户端,批量持久化的时间与单个持久化的时间相同,在高并发下的等待时间与并发度无关,能够降低持久化压力。
[0064]本发明采用持久化线程和一致性协议实现线程来实现。
[0065]所述持久化线程的实现步骤为:
[0066]步骤I,等待一致性协议实现线程的消息,如果有消息,进入步骤2;
[0067]步骤2,获取辅助队列中的所有持久化任务;
[0068]步骤3,将所有持久化任务中的数据写入一个buffer中;
[0069]步骤4,持久化buffer;
[0070]步骤5,反馈所有持久化任务涉及的客户端;
[0071]步骤6,返回步骤I。
[0072]所述一致性协议实现线程的实现步骤为:
[0073]步骤I,处理更新一致性信息的请求;
[0074]步骤2,更新内存中的一致性信息;
[0075]步骤3,将更新的一致性信息和回应客户端的函数指针放入持久化线程的辅助队列的尾部;
[0076]步骤4,通知持久化线程;
[0077]步骤5,继续处理其它请求。
[0078]显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。而这些属于本发明的实质精神所引伸出的显而易见的变化或变动仍属于本发明的保护范围。
【主权项】
1.一种集群一致性服务高并发下持久化的优化方法,其特征是:包括:在节点处采用单独的持久化线程,用于实现持久化并回复客户端; 持久化线程的辅助队列,辅助队列中包含了所有要持久化的数据和回应客户端所需要的链接及返回结果; 在节点处采用一致性协议实现线程,用于将更新后的一致性信息和回应客户端的函数指针放入持久化线程的辅助队列的尾部,并向持久化线程发送持久化消息。2.根据权利要求1所述的一种集群一致性服务高并发下持久化的优化方法,其特征是:所述持久化线程批量完成持久化任务,将辅助队列中的所有要持久化的数据合并为一个批量数据,一次性持久化。3.根据权利要求2所述的一种集群一致性服务高并发下持久化的优化方法,其特征是:所述持久化线程的实现步骤为: 步骤I,等待一致性协议实现线程的消息,如果有消息,进入步骤2; 步骤2,获取辅助队列中的所有持久化任务; 步骤3,将所有持久化任务中的数据写入一个buffer中; 步骤4,持久化buf f er ; 步骤5,反馈所有持久化任务涉及的客户端; 步骤6,返回步骤I。4.根据权利要求1所述的一种集群一致性服务高并发下持久化的优化方法,其特征是:所述一致性协议实现线程的实现步骤为: 步骤I,处理更新一致性信息的请求; 步骤2,更新内存中的一致性信息; 步骤3,将更新的一致性信息和回应客户端的函数指针放入持久化线程的辅助队列的尾部; 步骤4,通知持久化线程; 步骤5,继续处理其它请求。
【专利摘要】本发明公开了一种集群一致性服务高并发下持久化的优化方法,主要涉及分布式计算领域。包括:在节点处采用单独的持久化线程,用于实现持久化并回复客户端;持久化线程的辅助队列,辅助队列中包含了所有要持久化的数据和回应客户端所需要的链接及返回结果;在节点处采用一致性协议实现线程,用于将更新后的一致性信息和回应客户端的函数指针放入持久化线程的辅助队列的尾部,并向持久化线程发送持久化消息。本发明的有益效果在于:它能够及时实现持久化,能够保证集群一致性服务程序的响应速度,能够避免并发性下降及集群分裂,能够保证集群运行效率。
【IPC分类】G06F17/30
【公开号】CN105550319
【申请号】CN201510931307
【发明人】崔维力, 武新, 何新敏
【申请人】天津南大通用数据技术股份有限公司
【公开日】2016年5月4日
【申请日】2015年12月12日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1