CN105550319A - 一种集群一致性服务高并发下持久化的优化方法 - Google Patents
一种集群一致性服务高并发下持久化的优化方法 Download PDFInfo
- Publication number
- CN105550319A CN105550319A CN201510931307.8A CN201510931307A CN105550319A CN 105550319 A CN105550319 A CN 105550319A CN 201510931307 A CN201510931307 A CN 201510931307A CN 105550319 A CN105550319 A CN 105550319A
- Authority
- CN
- China
- Prior art keywords
- persistence
- thread
- cluster
- client
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2379—Updates performed during online database operations; commit processing
- G06F16/2386—Bulk updating operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2308—Concurrency control
- G06F16/2315—Optimistic concurrency control
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种集群一致性服务高并发下持久化的优化方法,主要涉及分布式计算领域。包括:在节点处采用单独的持久化线程,用于实现持久化并回复客户端;持久化线程的辅助队列,辅助队列中包含了所有要持久化的数据和回应客户端所需要的链接及返回结果;在节点处采用一致性协议实现线程,用于将更新后的一致性信息和回应客户端的函数指针放入持久化线程的辅助队列的尾部,并向持久化线程发送持久化消息。本发明的有益效果在于:它能够及时实现持久化,能够保证集群一致性服务程序的响应速度,能够避免并发性下降及集群分裂,能够保证集群运行效率。
Description
技术领域
本发明涉及分布式计算领域,具体是一种集群一致性服务高并发下持久化的优化方法。
背景技术
在集群一致性服务的实现中,为应对集群整体失效,如机房断电,所有节点瘫痪的极端情况,需要对集群一致性信息进行持久化,以便恢复集群一致性状态。但持久化涉及IO操作,代价高昂,对集群一致性服务的实现产生了一系列的影响。
若在节点的一致性协议实现线程中进行持久化,一方面,由于各任务间对集群一致性信息的修改最终是串行的,持久化会使这个串行阶段的运行时间增加,在高并发下,并行度增加时,将导致集群运行时的并发性下降;另一方面,由于在集群一致性服务的实现中,往往以响应超时作为节点离线的判据,而持久化会降低节点上集群一致性服务程序的响应速度,可能使其它节点误认为该节点已离线,导致集群分裂。
发明内容
本发明的目的在于提供一种集群一致性服务高并发下持久化的优化方法,它能够及时实现持久化,能够保证集群一致性服务程序的响应速度,能够避免并发性下降及集群分裂,能够保证集群运行效率。
本发明为实现上述目的,通过以下技术方案实现:
一种集群一致性服务高并发下持久化的优化方法,包括:
在节点处采用单独的持久化线程,用于实现持久化并回复客户端;
持久化线程的辅助队列,辅助队列中包含了所有要持久化的数据和回应客户端所需要的链接及返回结果;
在节点处采用一致性协议实现线程,用于将更新后的一致性信息和回应客户端的函数指针放入持久化线程的辅助队列的尾部,并向持久化线程发送持久化消息。
所述持久化线程批量完成持久化任务,将辅助队列中的所有要持久化的数据合并为一个批量数据,一次性持久化。
所述持久化线程的实现步骤为:
步骤1,等待一致性协议实现线程的消息,如果有消息,进入步骤2;
步骤2,获取辅助队列中的所有持久化任务;
步骤3,将所有持久化任务中的数据写入一个buffer中;
步骤4,持久化buffer;
步骤5,反馈所有持久化任务涉及的客户端;
步骤6,返回步骤1。
所述一致性协议实现线程的实现步骤为:
步骤1,处理更新一致性信息的请求;
步骤2,更新内存中的一致性信息;
步骤3,将更新的一致性信息和回应客户端的函数指针放入持久化线程的辅助队列的尾部;
步骤4,通知持久化线程;
步骤5,继续处理其它请求。
对比现有技术,本发明的有益效果在于:
1、本发明在节点处采用单独的持久化线程,用于实现持久化并回复客户端,能够保证客户端得到回应,能够保证回复前持久化已完成,能够及时实现持久化,并且持久化的损耗仅影响发起写的客户端本身,不影响其他客户端,能够保证集群一致性服务程序的响应速度。
2、本发明采用一致性协议实现线程,用于将更新后的一致性信息和回应客户端的函数指针放入持久化线程的辅助队列的尾部,并向持久化线程发送持久化消息,一致性协议实现线程处理的都是内存操作,速度很快,能够保证在并发度增加后,集群性能不出现衰减,能够避免并发性下降及集群分裂,能够保证集群运行效率。
3、所述持久化线程批量完成持久化任务,将辅助队列中的所有要持久化的数据合并为一个批量数据,一次性持久化。持久化线程将持久化请求批量完成,持久化完成后批量回复客户端,批量持久化的时间与单个持久化的时间相同,在高并发下的等待时间与并发度无关,能够降低持久化压力。
4、所述持久化线程的实现步骤为:
步骤1,等待一致性协议实现线程的消息,如果有消息,进入步骤2;
步骤2,获取辅助队列中的所有持久化任务;
步骤3,将所有持久化任务中的数据写入一个buffer中;
步骤4,持久化buffer;
步骤5,反馈所有持久化任务涉及的客户端;
步骤6,返回步骤1。
采用单独的持久化线程批量完成持久化任务,能够提高持久化效率,能够保证客户端得到回应,能够保证回复前持久化已完成。
5、所述一致性协议实现线程的实现步骤为:
步骤1,处理更新一致性信息的请求;
步骤2,更新内存中的一致性信息;
步骤3,将更新的一致性信息和回应客户端的函数指针放入持久化线程的辅助队列的尾部;
步骤4,通知持久化线程;
步骤5,继续处理其它请求。
一次性协议实现线程不进行持久化处理,仅为持久化线程传递相关数据,一致性协议实现线程处理的都是内存操作,速度很快,能够保证在并发度增加后,集群性能不出现衰减,能够避免并发性下降及集群分裂。
附图说明
附图1是本发明的时序图。
具体实施方式
下面结合具体实施例,进一步阐述本发明。应理解,这些实施例仅用于说明本发明而不用于限制本发明的范围。此外应理解,在阅读了本发明讲授的内容之后,本领域技术人员可以对本发明作各种改动或修改,这些等价形式同样落于本申请所附权利要求书所限定的范围。
本发明所述是一种集群一致性服务高并发下持久化的优化方法,包括:
在节点处采用单独的持久化线程,用于实现持久化并回复客户端。
持久化线程的操作序列为:
1)从辅助队列头部获取等待持久化数据;
2)持久化数据;
3)将结果返回给客户端。
采用单独的持久化线程,能够保证客户端得到回应,能够保证回复前持久化已完成,能够及时实现持久化,并且持久化的损耗仅影响持久化线程本身,能够保证集群一致性服务程序的响应速度。
持久化线程的辅助队列,辅助队列中包含了所有要持久化的数据和回应客户端所需要的链接及返回结果。
在节点处采用一致性协议实现线程,用于将更新后的一致性信息和回应客户端的函数指针放入持久化线程的辅助队列的尾部,并向持久化线程发送持久化消息。
一致性协议实现线程的操作序列为:
1)更新内存中的一致性信息;
2)将更新后的一致性信息发送给持久化线程。
有专门的持久化线程实现持久化并返回客户端,持久化的损耗仅影响持久化线程本身,而一致性协议实现线程处理的仍然都是内存操作,速度很快,能够避免并发性下降及集群分列。
为了降低持久化压力,所述持久化线程批量完成持久化任务,将辅助队列中的所有要持久化的数据合并为一个批量数据,一次性持久化。
持久化线程的操作序列变为:
1)从辅助队列获取所有持久化任务;
2)将所有持久化数据持久化为一个文件;
3)反馈所有相关客户端。
集群一致性服务一次持久化请求的相关数据量不大,远远达不到影响磁盘性能的程度,合并后的批量数据也不会大到影响磁盘性能的程度,而影响性能最大的因素是持久化的次数。持久化线程将持久化请求批量完成,持久化完成后批量回复客户端,批量持久化的时间与单个持久化的时间相同,在高并发下的等待时间与并发度无关,能够降低持久化压力。
本发明采用持久化线程和一致性协议实现线程来实现。
所述持久化线程的实现步骤为:
步骤1,等待一致性协议实现线程的消息,如果有消息,进入步骤2;
步骤2,获取辅助队列中的所有持久化任务;
步骤3,将所有持久化任务中的数据写入一个buffer中;
步骤4,持久化buffer;
步骤5,反馈所有持久化任务涉及的客户端;
步骤6,返回步骤1。
所述一致性协议实现线程的实现步骤为:
步骤1,处理更新一致性信息的请求;
步骤2,更新内存中的一致性信息;
步骤3,将更新的一致性信息和回应客户端的函数指针放入持久化线程的辅助队列的尾部;
步骤4,通知持久化线程;
步骤5,继续处理其它请求。
显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。而这些属于本发明的实质精神所引伸出的显而易见的变化或变动仍属于本发明的保护范围。
Claims (4)
1.一种集群一致性服务高并发下持久化的优化方法,其特征是:包括:在节点处采用单独的持久化线程,用于实现持久化并回复客户端;
持久化线程的辅助队列,辅助队列中包含了所有要持久化的数据和回应客户端所需要的链接及返回结果;
在节点处采用一致性协议实现线程,用于将更新后的一致性信息和回应客户端的函数指针放入持久化线程的辅助队列的尾部,并向持久化线程发送持久化消息。
2.根据权利要求1所述的一种集群一致性服务高并发下持久化的优化方法,其特征是:所述持久化线程批量完成持久化任务,将辅助队列中的所有要持久化的数据合并为一个批量数据,一次性持久化。
3.根据权利要求2所述的一种集群一致性服务高并发下持久化的优化方法,其特征是:所述持久化线程的实现步骤为:
步骤1,等待一致性协议实现线程的消息,如果有消息,进入步骤2;
步骤2,获取辅助队列中的所有持久化任务;
步骤3,将所有持久化任务中的数据写入一个buffer中;
步骤4,持久化buffer;
步骤5,反馈所有持久化任务涉及的客户端;
步骤6,返回步骤1。
4.根据权利要求1所述的一种集群一致性服务高并发下持久化的优化方法,其特征是:所述一致性协议实现线程的实现步骤为:
步骤1,处理更新一致性信息的请求;
步骤2,更新内存中的一致性信息;
步骤3,将更新的一致性信息和回应客户端的函数指针放入持久化线程的辅助队列的尾部;
步骤4,通知持久化线程;
步骤5,继续处理其它请求。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510931307.8A CN105550319B (zh) | 2015-12-12 | 2015-12-12 | 一种集群一致性服务高并发下持久化的优化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510931307.8A CN105550319B (zh) | 2015-12-12 | 2015-12-12 | 一种集群一致性服务高并发下持久化的优化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105550319A true CN105550319A (zh) | 2016-05-04 |
CN105550319B CN105550319B (zh) | 2019-06-25 |
Family
ID=55829508
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510931307.8A Active CN105550319B (zh) | 2015-12-12 | 2015-12-12 | 一种集群一致性服务高并发下持久化的优化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105550319B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111625332A (zh) * | 2020-05-21 | 2020-09-04 | 杭州安恒信息技术股份有限公司 | Java线程池拒绝策略执行方法、装置和计算机设备 |
CN112347107A (zh) * | 2020-11-11 | 2021-02-09 | Oppo(重庆)智能科技有限公司 | 数据持久化方法、移动终端及计算机可读存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1680923A (zh) * | 2004-04-09 | 2005-10-12 | 东软集团有限公司 | 一种工作流引擎高效处理的方法 |
CN101470623A (zh) * | 2007-12-26 | 2009-07-01 | 无锡江南计算技术研究所 | 队列管理方法和队列管理器、队列消息的处理方法和系统 |
CN101882165A (zh) * | 2010-08-02 | 2010-11-10 | 山东中创软件工程股份有限公司 | 基于etl的多线程数据处理方法 |
CN102024032A (zh) * | 2010-11-29 | 2011-04-20 | 广州明朝网络科技有限公司 | 一种基于Erlang的分布式数据缓存和持久化的方法和系统 |
CN102272756A (zh) * | 2008-11-06 | 2011-12-07 | 阿玛得斯两合公司 | 实时整合数据库中大量更新的方法 |
CN102667728A (zh) * | 2009-10-09 | 2012-09-12 | 阿玛得斯两合公司 | 具有客户机端一致性的传递 |
CN103036717A (zh) * | 2012-12-12 | 2013-04-10 | 北京邮电大学 | 分布式数据的一致性维护系统和方法 |
CN104866339A (zh) * | 2015-04-27 | 2015-08-26 | 努比亚技术有限公司 | Fota数据的分布式持久化管理方法、系统和装置 |
-
2015
- 2015-12-12 CN CN201510931307.8A patent/CN105550319B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1680923A (zh) * | 2004-04-09 | 2005-10-12 | 东软集团有限公司 | 一种工作流引擎高效处理的方法 |
CN101470623A (zh) * | 2007-12-26 | 2009-07-01 | 无锡江南计算技术研究所 | 队列管理方法和队列管理器、队列消息的处理方法和系统 |
CN102272756A (zh) * | 2008-11-06 | 2011-12-07 | 阿玛得斯两合公司 | 实时整合数据库中大量更新的方法 |
CN102667728A (zh) * | 2009-10-09 | 2012-09-12 | 阿玛得斯两合公司 | 具有客户机端一致性的传递 |
CN101882165A (zh) * | 2010-08-02 | 2010-11-10 | 山东中创软件工程股份有限公司 | 基于etl的多线程数据处理方法 |
CN102024032A (zh) * | 2010-11-29 | 2011-04-20 | 广州明朝网络科技有限公司 | 一种基于Erlang的分布式数据缓存和持久化的方法和系统 |
CN103036717A (zh) * | 2012-12-12 | 2013-04-10 | 北京邮电大学 | 分布式数据的一致性维护系统和方法 |
CN104866339A (zh) * | 2015-04-27 | 2015-08-26 | 努比亚技术有限公司 | Fota数据的分布式持久化管理方法、系统和装置 |
Non-Patent Citations (1)
Title |
---|
杨健: ""基于J2EE平台的对象持久性研究"", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111625332A (zh) * | 2020-05-21 | 2020-09-04 | 杭州安恒信息技术股份有限公司 | Java线程池拒绝策略执行方法、装置和计算机设备 |
CN112347107A (zh) * | 2020-11-11 | 2021-02-09 | Oppo(重庆)智能科技有限公司 | 数据持久化方法、移动终端及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN105550319B (zh) | 2019-06-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10884799B2 (en) | Multi-core processor in storage system executing dynamic thread for increased core availability | |
US10871991B2 (en) | Multi-core processor in storage system executing dedicated polling thread for increased core availability | |
CN106953901B (zh) | 一种提高消息传递性能的集群通信系统及其方法 | |
US10922135B2 (en) | Dynamic multitasking for distributed storage systems by detecting events for triggering a context switch | |
US20120102355A1 (en) | Consistent messaging with replication | |
JP2012221004A (ja) | 並列計算機システム、およびプログラム | |
CN103412786A (zh) | 一种高性能服务器架构系统及数据处理方法 | |
US20150095468A1 (en) | Synchronizing configurations amongst multiple devices | |
CN113364877B (zh) | 数据处理方法、装置、电子设备和介质 | |
WO2015150978A1 (en) | Scanning memory for de-duplication using rdma | |
CN110138867A (zh) | 文件传输和接收方法、计算机设备及存储介质 | |
US20170018050A1 (en) | Communication between integrated graphics processing units | |
CN114936173B (zh) | 一种eMMC器件的读写方法、装置、设备和存储介质 | |
CN105550319A (zh) | 一种集群一致性服务高并发下持久化的优化方法 | |
WO2020252763A1 (en) | Adaptive pipeline selection for accelerating memory copy operations | |
US10061725B2 (en) | Scanning memory for de-duplication using RDMA | |
CN112804003A (zh) | 一种基于光模块通信的存储方法、系统及终端 | |
CN104965749B (zh) | 一种kvm虚拟机快照恢复优化方法及系统 | |
US11048555B2 (en) | Method, apparatus, and computer program product for optimizing execution of commands in a distributed system | |
CN113760638A (zh) | 一种基于kubernetes集群的日志服务方法和装置 | |
US11573755B2 (en) | Cache management in a printing system in a virtualized computing environment | |
WO2021057759A1 (zh) | 内存迁移方法、装置及计算设备 | |
CN115484233A (zh) | 数通芯片中链路聚合报文的转发方法、装置、设备及介质 | |
US20200125649A1 (en) | Sand timer algorithm for tracking in-flight data storage requests for data replication | |
US10678455B2 (en) | System and method for increased efficiency thin provisioning with respect to garbage collection |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |