CN104008100A - 集群环境并发处理方法 - Google Patents

集群环境并发处理方法 Download PDF

Info

Publication number
CN104008100A
CN104008100A CN201310055918.1A CN201310055918A CN104008100A CN 104008100 A CN104008100 A CN 104008100A CN 201310055918 A CN201310055918 A CN 201310055918A CN 104008100 A CN104008100 A CN 104008100A
Authority
CN
China
Prior art keywords
service node
database
processing method
field
cluster environment
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
Application number
CN201310055918.1A
Other languages
English (en)
Other versions
CN104008100B (zh
Inventor
刘益
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xiamen Jianfu Chain Management Co.,Ltd.
Original Assignee
Niuhai Information Technology (Shanghai) Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Niuhai Information Technology (Shanghai) Co Ltd filed Critical Niuhai Information Technology (Shanghai) Co Ltd
Priority to CN201310055918.1A priority Critical patent/CN104008100B/zh
Publication of CN104008100A publication Critical patent/CN104008100A/zh
Application granted granted Critical
Publication of CN104008100B publication Critical patent/CN104008100B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2308Concurrency control
    • G06F16/2315Optimistic concurrency control

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明揭示了一种集群环境并发处理方法,包括:对一个数据库设定多个服务节点;对每个数据库字段设定乐观锁;每个服务节点在访问数据库字段时,数据库根据分发策略仅开放一个权限供一个服务节点使用。采用了本发明的技术方案,保证了在服务器集群的环境下,数据库开放给有且仅有一个服务节点来处理数据库字段,成功防止多节点并发处理同一条数据库字段,导致数据不一致。

Description

集群环境并发处理方法
技术领域
本发明涉及一种数据库竞争访问机制,更具体地说,涉及一种集群环境并发处理方法。
背景技术
随着电子商务的发展,人们已经可以很方便地利用B2C(Business-to-Customer,商家对顾客)网站来购买各种商品。伴随而来的是网站的浏览量及订单量的不断增长,对网站运营系统的并发处理能力要求越来越高。单个服务器无论性能如何强劲,总有瓶颈,且存在单点故障问题。服务器集群可以利用多个计算机进行并行计算从而获得很高的计算速度,也可以用多个计算机做备份,从而使得任何一个机器发生故障时整个系统还是能正常运行。
然而,服务器集群也随之带来了访问竞争的问题,如果不做特殊设计,集群中的各个服务节点无区别的竞争数据库乐观锁,这将带来极大的锁竞争,降低了整个集群的吞吐量。
发明内容
本发明的目的旨在提供一种集群环境并发处理方法,为了解决在集群环境下,如何对计算任务在集群的各个节点间进行分发,以及如何防止单点故障和并发带来的不一致。
根据本发明,提供一种集群环境并发处理方法,包括:对一个数据库设定多个服务节点;对每个数据库字段设定乐观锁;每个服务节点在访问数据库字段时,数据库根据分发策略仅开放一个权限供一个服务节点使用。
根据本发明的一实施例,乐观锁设定为对数据库字段设定一个乐观锁字段,乐观锁字段包括一个初始值,每次多个服务节点形成并发访问,要对数据库字段处理时,先更新乐观锁字段到某个标志。
根据本发明的一实施例,初始值为update订单set status=?whereid=?and status=初始值。若初始值为1,则继续操作,若否,则直接返回。
根据本发明的一实施例,分发策略为给每个服务节点编号,对某个服务节点,计算访问ID对N取模,若余数+1与服务节点编号相等则由服务节点处理,否则放弃访问。
根据本发明的一实施例,分发策略为给每个服务节点编号,编号为N的服务节点不仅处理访问ID对N取模余数为N-1的,还处理余数为0的。
根据本发明的一实施例,数据库字段为订单表,订单表格式为首字段+数据字段,乐观锁为订单表的一个首字段。
采用了本发明的技术方案,保证了在服务器集群的环境下,数据库开放给有且仅有一个服务节点来处理数据库字段,成功防止多节点并发处理同一条数据库字段,导致数据不一致。
附图说明
在本发明中,相同的附图标记始终表示相同的特征,其中:
图1是本发明集群环境并发处理方法的示意图。
具体实施方式
下面结合附图和实施例进一步说明本发明的技术方案。
如图1所示,服务器群集中每个服务结点运行一个所需服务器程序的独立拷贝,同时访问数据库,对资源进行并发处理。这意味着java程序运行在不同的虚拟机中,从而不能使用java自身的锁机制来防止对某个资源的并发访问。但有一点我们可以加以利用,这些java程序访问的数据库是同一个,我们可以利用数据库的锁来防止并发。
譬如这些java程序都是用来处理订单的,我们可以利用订单表的一个字段来做乐观锁,该字段有个初始值。具体来说,数据库字段为订单表,所述订单表格式为首字段+数据字段,所述乐观锁为所述订单表的一个首字段。
每次java程序要对某条订单做处理时,必须先更新这个字段到某个标志,表明该订单正在处理中,如下:
update订单set status=?where id=?and status=初始值
该SQL在数据库层面保证了是个原子操作,也即并发时,仅有一个请求会成功更新该订单记录。Java程序里可以判断该SQL的返回值是否等于1,从而知道是否是本程序成功更新该条记录,若是,则继续操作,若否,说明集群里别的节点竞争数据库乐观锁成功,则本节点直接返回。通过这个机制,我们保证了有且仅有一个节点会处理该订单,成功防止多节点并发处理一条订单,导致数据不一致。
另外,我们必须设计一种分发策略。因为如果不做特殊设计,集群中的各个服务节点无区别的竞争数据库乐观锁,这将带来极大的锁竞争,降低了整个集群的吞吐量。
初始方案:若不考虑单点故障,假设有N个节点(N>=2),最简单有效的方案就是为节点编号(从1到N)。对某个节点,算订单ID对N取模,若余数+1与节点编号相等则由该节点处理,否则放弃该订单。此方案的缺点是若一个节点发生突发性故障,如down机,所有应由该节点处理的订单将永远得不到机会处理。
改进方案:在容错性和处理效率间做权衡,做容错备份。
假设有N个节点(N>=2):
编号为1的节点不仅处理订单ID对N取模余数为0的,还处理余数为1的。
编号为2的节点不仅处理订单ID对N取模余数为1的,还处理余数为2的。
以此类推……
编号为N的节点不仅处理订单ID对N取模余数为N-1的,还处理余数为0的。
这样每个订单都可能由2个节点处理,起到节点备份的作用。
改进方案的优点在于:
1)可应付节点集群出现单点故障
2)最多同时只有两个节点的争用某个订单的乐观锁。
3)因为每个订单都会有容错节点做备份处理,可实现集群的优雅上线,停一个节点,上一个节点,整个集群不会暂停服务。
本技术领域中的普通技术人员应当认识到,以上的说明书仅是本发明众多实施例中的一种或几种实施方式,而并非用对本发明的限定。任何对于以上所述实施例的均等变化、变型以及等同替代等技术方案,只要符合本发明的实质精神范围,都将落在本发明的权利要求书所保护的范围内。

Claims (6)

1.一种集群环境并发处理方法,其特征在于,包括:
对一个数据库设定多个服务节点;
对每个数据库字段设定乐观锁;
每个所述服务节点在访问所述数据库字段时,所述数据库根据分发策略仅开放一个权限供一个服务节点使用。
2.如权利要求1所述的集群环境并发处理方法,其特征在于:
所述乐观锁设定为对数据库字段设定一个乐观锁字段,所述乐观锁字段包括一个初始值,每次多个服务节点形成并发访问,要对所述数据库字段处理时,先更新所述乐观锁字段到某个标志。
3.如权利要求2所述的集群环境并发处理方法,其特征在于:
所述初始值为update订单set status=?where id=?and status=初始值;
若所述初始值为1,则继续操作,若否,则直接返回。
4.如权利要求3所述的集群环境并发处理方法,其特征在于:
所述分发策略为给每个所述服务节点编号,对某个服务节点,计算访问ID对N取模,若余数+1与服务节点编号相等则由所述服务节点处理,否则放弃所述访问。
5.如权利要求3所述的集群环境并发处理方法,其特征在于:
所述分发策略为给每个所述服务节点编号,编号为N的服务节点不仅处理访问ID对N取模余数为N-1的,还处理余数为0的。
6.如权利要求1所述的集群环境并发处理方法,其特征在于:
所述数据库字段为订单表,所述订单表格式为首字段+数据字段,所述乐观锁为所述订单表的一个首字段。
CN201310055918.1A 2013-02-21 2013-02-21 集群环境并发处理方法 Active CN104008100B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310055918.1A CN104008100B (zh) 2013-02-21 2013-02-21 集群环境并发处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310055918.1A CN104008100B (zh) 2013-02-21 2013-02-21 集群环境并发处理方法

Publications (2)

Publication Number Publication Date
CN104008100A true CN104008100A (zh) 2014-08-27
CN104008100B CN104008100B (zh) 2019-03-12

Family

ID=51368759

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310055918.1A Active CN104008100B (zh) 2013-02-21 2013-02-21 集群环境并发处理方法

Country Status (1)

Country Link
CN (1) CN104008100B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105260163A (zh) * 2015-09-18 2016-01-20 浪潮软件股份有限公司 一种烟草云平台下高并发逻辑控制的方法
CN106293946A (zh) * 2016-08-16 2017-01-04 东软集团股份有限公司 资源获取的方法及服务器
CN107818170A (zh) * 2017-11-14 2018-03-20 北京思特奇信息技术股份有限公司 一种访问数据库记录的方法和系统
CN110928887A (zh) * 2018-09-19 2020-03-27 北京国双科技有限公司 一种数据处理方法及装置
CN111880956A (zh) * 2020-07-24 2020-11-03 北京达佳互联信息技术有限公司 一种数据同步方法和装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101771537A (zh) * 2008-12-26 2010-07-07 中国移动通信集团公司 分布式认证系统及其认证证书的处理方法、认证方法
CN101853160A (zh) * 2010-05-18 2010-10-06 上海动量软件技术有限公司 计算机软件系统中云构件实现框架配置的平台系统及方法
CN102006330A (zh) * 2010-12-01 2011-04-06 北京瑞信在线系统技术有限公司 分布式缓存系统、数据的缓存方法及缓存数据的查询方法
US8166009B2 (en) * 2006-01-27 2012-04-24 International Business Machines Corporation Method and apparatus for optimistic locking using SQL select, update, delete, and insert statements
CN102710763A (zh) * 2012-05-29 2012-10-03 新华网股份有限公司 一种分布式缓存池化、分片及故障转移的方法及系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8166009B2 (en) * 2006-01-27 2012-04-24 International Business Machines Corporation Method and apparatus for optimistic locking using SQL select, update, delete, and insert statements
CN101771537A (zh) * 2008-12-26 2010-07-07 中国移动通信集团公司 分布式认证系统及其认证证书的处理方法、认证方法
CN101853160A (zh) * 2010-05-18 2010-10-06 上海动量软件技术有限公司 计算机软件系统中云构件实现框架配置的平台系统及方法
CN102006330A (zh) * 2010-12-01 2011-04-06 北京瑞信在线系统技术有限公司 分布式缓存系统、数据的缓存方法及缓存数据的查询方法
CN102710763A (zh) * 2012-05-29 2012-10-03 新华网股份有限公司 一种分布式缓存池化、分片及故障转移的方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
窦文华,等: "《计算机网络前沿技术》", 30 April 2007 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105260163A (zh) * 2015-09-18 2016-01-20 浪潮软件股份有限公司 一种烟草云平台下高并发逻辑控制的方法
CN106293946A (zh) * 2016-08-16 2017-01-04 东软集团股份有限公司 资源获取的方法及服务器
CN106293946B (zh) * 2016-08-16 2019-11-08 东软集团股份有限公司 资源获取的方法及服务器
CN107818170A (zh) * 2017-11-14 2018-03-20 北京思特奇信息技术股份有限公司 一种访问数据库记录的方法和系统
CN107818170B (zh) * 2017-11-14 2021-09-28 北京思特奇信息技术股份有限公司 一种访问数据库记录的方法和系统
CN110928887A (zh) * 2018-09-19 2020-03-27 北京国双科技有限公司 一种数据处理方法及装置
CN111880956A (zh) * 2020-07-24 2020-11-03 北京达佳互联信息技术有限公司 一种数据同步方法和装置
CN111880956B (zh) * 2020-07-24 2023-12-05 北京达佳互联信息技术有限公司 一种数据同步方法和装置

Also Published As

Publication number Publication date
CN104008100B (zh) 2019-03-12

Similar Documents

Publication Publication Date Title
US10942812B2 (en) System and method for building a point-in-time snapshot of an eventually-consistent data store
Distler et al. Resource-efficient byzantine fault tolerance
US9201742B2 (en) Method and system of self-managing nodes of a distributed database cluster with a consensus algorithm
US10102086B2 (en) Replicated database distribution for workload balancing after cluster reconfiguration
EP3588322B1 (en) System-wide checkpoint avoidance for distributed database systems
US9002805B1 (en) Conditional storage object deletion
CA2913036C (en) Index update pipeline
US9589041B2 (en) Client and server integration for replicating data
CN102521063B (zh) 一种适用于虚拟机迁移和容错的共享存储方法
CN104008100A (zh) 集群环境并发处理方法
CN102938001A (zh) 数据加载装置和数据加载方法
US20130254590A1 (en) Real time database system
US11003550B2 (en) Methods and systems of operating a database management system DBMS in a strong consistency mode
TWI686703B (zh) 資料儲存與業務處理的方法及裝置
Srinivasan et al. Citrusleaf: A real-time nosql db which preserves acid
CN105279029A (zh) 一种基于作业计算资源的局部存储动态分配方法
KR20130038517A (ko) 분산된 컨테이너들을 사용하여 데이터를 관리하는 시스템 및 방법
US10970177B2 (en) Methods and systems of managing consistency and availability tradeoffs in a real-time operational DBMS
Vardoulakis et al. Tebis: index shipping for efficient replication in LSM key-value stores
US20190121792A1 (en) Ejournal transcoding
CN104360915A (zh) 一种基于分布式存储的数据恢复方法及装置
US10331627B2 (en) Method and system for unified technological stack management for relational databases
Yao et al. MEMoMR: Accelerate MapReduce via reuse of intermediate results
US9794326B1 (en) Log information transmission integrity
Cai et al. Fast raft replication for transactional database systems over unreliable networks

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20160914

Address after: East Building 11, 100195 Beijing city Haidian District xingshikou Road No. 65 west Shan creative garden district 1-4 four layer of 1-4 layer

Applicant after: Beijing Jingdong Shangke Information Technology Co., Ltd.

Address before: 201203 Shanghai city Zuchongzhi road Pudong New Area Zhangjiang hi tech Park No. 295 Room 102

Applicant before: Niuhai Information Technology (Shanghai) Co., Ltd.

GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20201112

Address after: No.8-6, Putou South Road, Haicang District, Xiamen City, Fujian Province

Patentee after: Xiamen xinjianfu e-commerce Co., Ltd

Address before: East Building 11, 100195 Beijing city Haidian District xingshikou Road No. 65 west Shan creative garden district 1-4 four layer of 1-4 layer

Patentee before: BEIJING JINGDONG SHANGKE INFORMATION TECHNOLOGY Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20210514

Address after: 361000 No.8, Putou South Road, Haicang District, Xiamen City, Fujian Province

Patentee after: Xiamen Jianfu Chain Management Co.,Ltd.

Address before: No.8-6, Putou South Road, Haicang District, Xiamen City, Fujian Province 361022

Patentee before: Xiamen xinjianfu e-commerce Co., Ltd