CN103067471A - 一种分布式存储的数据获取方法 - Google Patents

一种分布式存储的数据获取方法 Download PDF

Info

Publication number
CN103067471A
CN103067471A CN2012105638255A CN201210563825A CN103067471A CN 103067471 A CN103067471 A CN 103067471A CN 2012105638255 A CN2012105638255 A CN 2012105638255A CN 201210563825 A CN201210563825 A CN 201210563825A CN 103067471 A CN103067471 A CN 103067471A
Authority
CN
China
Prior art keywords
lock
node
nodes
announcement
occupied
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
CN2012105638255A
Other languages
English (en)
Other versions
CN103067471B (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.)
BEIJING DYNA TECHNOLOGY Co Ltd
Original Assignee
BEIJING DYNA TECHNOLOGY 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 BEIJING DYNA TECHNOLOGY Co Ltd filed Critical BEIJING DYNA TECHNOLOGY Co Ltd
Priority to CN201210563825.5A priority Critical patent/CN103067471B/zh
Publication of CN103067471A publication Critical patent/CN103067471A/zh
Application granted granted Critical
Publication of CN103067471B publication Critical patent/CN103067471B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Multi Processors (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明提供了一种不需中心服务器参与的,完全分散式的分布式存储的数据获取方法,包括如下步骤:(1)先检查A锁在本地的状态,如果A锁已经被占用,则执行退避策略,等待随机时延后,再重新获取;(2)若本地A锁状态处于空闲,则将本地A锁置为被占用状态,但此时本节点暂不能使用该锁操作数据A,而是先向网络中发送A锁即将被占用的通告;(3)在发出通告后建立冲突检测定时器,检测互斥锁占用的冲突现象。本发明的分布式存储的数据获取方法,将P2P网络中各节点之间动作协调,有序的操作同一数据,不产生冲突,也不需要增加额外的服务器。

Description

一种分布式存储的数据获取方法
技术领域
本发明涉及一种数据获取方法,尤其是一种分布式存储的数据获取方法。
背景技术
Google公司设计实现了Chubby分布式锁服务系统,并已经在其内部系统中广泛使用。Chubby向程序设计者提供锁服务的接口,来保证数据操作的一致性。Chubby系统本质上是一个分布式的文件系统。系统为每项数据分配一个文件来代表其锁,用户通过打开、关闭和读取文件,获取操作此项数据的锁。通过通信机制,向用户发送更新信息。例如,当一群机器选举mater时,这些机器同时申请打开某个文件,并请求锁住这个文件。成功获取锁的服务器当选主服务器,并且在文件中写入自己的地址。其他服务器通过读取文件中的数据,获得主服务器的地址信息。
以chubby为典型代表的分布式锁服务系统,是针对服务器端的设计,由服务器向外提供服务。鉴于此类集中式锁服务都是基于中心服务器,在运行过程中存在很多不足,最典型的就是单点失效和性能瓶颈问题。一旦中心服务器出现故障不能够正常提供锁服务,整个网络的运行必将受到影响,严重时导致网络瘫痪。集中式锁服务的单点瓶颈问题比较严重。并且对于纯P2P网络来说,各节点同时作为客户端和服务器端,不存在中心服务器,这就要求能够有一套机制,能够提供完全分散式的锁服务,来保证分布存储在各节点上的数据能够保证一致性。
发明内容
本发明提供了一种不需中心服务器参与的,完全分散式的分布式存储的数据获取方法。
实现本发明目的的分布式存储的数据获取方法,包括如下步骤:
(1)先检查A锁在本地的状态,如果A锁已经被占用,则执行退避策略,等待随机时延后,再重新获取;
(2)若本地A锁状态处于空闲,则将本地A锁置为被占用状态,但此时本节点暂不能使用该锁操作数据A,而是先向网络中发送A锁即将被占用的通告;
(3)在发出通告后建立冲突检测定时器,检测互斥锁占用的冲突现象;
(4)若在定时器超时之前,收到了其他节点回送的冲突报告,或者收到其他节点发来的获取A锁的通告,则对于本节点来说获取A锁失败,清除本地A锁被占用的标识,向网络中发送释放A锁的通告;并执行退避策略,等待随机时延后再重新获取;
在定时器超时之前收到其他节点发来的获取A锁通告,此节点应向通告源发送冲突报告,冲突双方均采用退避策略。
(5)若定时器超时之前未收到冲突报告,或其他节点的占用通告,则定时器超时后,此次获取A锁的操作成功,本节点即真正开始持有该锁,并可以对数据A进行操作;待针对数据A的操作完成后,再用步骤(4)的方式释放A锁;为了防止持有A锁的节点在进行数据操作期间意外宕机或掉线,导致锁不能正常被释放而影响其他节点的操作,因此本发明还设计了锁的超时机制,即持有锁的节点在获取到锁后一段时间内必须发出释放该锁的通告,否则在超时后网络中其他节点自动将其本地的锁置为空闲,其他节点即可申请持有该锁。
本发明的分布式存储的数据获取方法的有益效果如下:
本发明的分布式存储的数据获取方法,是针对分布式网络中分布式存储的数据的锁,对于所有节点来说,只有获取到锁才有权操作此项数据。因此该锁是一个网络范围的全局的概念,由于不考虑使用服务器来提供锁服务,所以采用的替代方案是在每个节点处维护此锁的状态。每次有节点获取到该锁后,更改各节点上锁的状态,禁止多个节点同时操作同一项数据。只要所有节点都遵守这一机制,就能够保证在同一时间操作同一数据的节点只有一个。通过这种简单的方法,P2P网络中各节点之间动作协调,有序的操作统一数据,不产生冲突,也不需要增加额外的服务器。
附图说明
图1为本发明的分布式存储的数据获取方法的流程图。
具体实施方式
如图1所示,本发明的分布式存储的数据获取方法,包括如下步骤:
(1)先检查A锁在本地的状态,如果A锁已经被占用,则执行退避策略,等待随机时延后,再重新获取;
(2)若本地A锁状态处于空闲,则将本地A锁置为被占用状态,但此时本节点暂不能使用该锁操作数据A,而是先向网络中发送A锁即将被占用的通告;
(3)在发出通告后建立冲突检测定时器,检测互斥锁占用的冲突现象;
(4)若在定时器超时之前,收到了其他节点回送的冲突报告,或者收到其他节点发来的获取A锁的通告,则对于本节点来说获取A锁失败,清除本地A锁被占用的标识,向网络中发送释放A锁的通告;并执行退避策略,等待随机时延后再重新获取;
(5)若定时器超时之前未收到冲突报文,则定时器超时后,此次获取A锁的操作成功,本节点即真正开始持有该锁,并可以对数据A进行操作;待针对数据A的操作完成后,再用步骤(4)的方式释放A锁;为了防止持有A锁的节点在进行数据操作期间意外宕机或掉线,导致锁不能正常被释放而影响其他节点的操作,因此本发明还设计了锁的超时机制,即持有锁的节点在获取到锁后一段时间内必须发出释放该锁的通告,否则在超时后网络中其他节点自动将其本地的锁置为空闲,其他节点即可申请持有该锁。
本发明的分布式存储的数据获取方法,提供了一种完全分散式的锁机制,各节点维护同一锁的状态信息。通过检测本地锁状态并与网络中其他节点进行协商获取锁的持有权。当冲突发生时,冲突双方均采用退避策略,分别等待随机时延后再进行锁的获取。并且设计了超时机制,来避免某一节点因故障而过长时间持有锁,不能正常释放的情况。通过这种简单的完全分散式的锁机制,实现了不同节点对同一数据操作的串行化,保证了分布式数据的一致性。
以Chubby系统为代表的分布式锁服务系统,在提供锁服务时由中心服务器来进行多节点的动作的协调。而本发明所述的分布式锁,秉承完全去中心化的思想,取缔了中心服务器的角色,只需各节点都遵守相同的协调机制,通过简单的信息交互即可协调各节点的动作达到同步的目的。并且此完全分布式锁实现简单,尤其适用于没有中心服务器的完全分布式网络。
上面所述的实施例仅仅是对本发明的优选实施方式进行描述,并非对本发明的范围进行限定,在不脱离本发明设计精神前提下,本领域普通工程技术人员对本发明技术方案做出的各种变形和改进,均应落入本发明的权利要求书确定的保护范围内。

Claims (1)

1.一种分布式存储的数据获取方法,包括如下步骤:
(1)先检查A锁在本地的状态,如果A锁已经被占用,则执行退避策略,等待随机时延后,再重新获取;
(2)若本地A锁状态处于空闲,则将本地A锁置为被占用状态,但此时本节点暂不能使用该锁操作数据A,而是先向网络中发送A锁即将被占用的通告;
(3)在发出通告后建立冲突检测定时器,检测互斥锁占用的冲突现象;
(4)若在定时器超时之前,收到了其他节点回送的冲突报告,或者收到其他节点发来的获取A锁的通告,则对于本节点来说获取A锁失败,清除本地A锁被占用的标识,向网络中发送释放A锁的通告;并执行退避策略,等待随机时延后再重新获取;
在定时器超时之前收到其他节点发来的获取A锁通告,此节点应向通告源发送冲突报告,冲突双方均采用退避策略。
(5)若定时器超时之前未收到冲突报告,或其他节点的占用通告,则定时器超时后,此次获取A锁的操作成功,本节点即真正开始持有该锁,并可以对数据A进行操作;待针对数据A的操作完成后,再用步骤(4)的方式释放A锁;为了防止持有A锁的节点在进行数据操作期间意外宕机或掉线,导致锁不能正常被释放而影响其他节点的操作,因此本发明还设计了锁的超时机制,即持有锁的节点在获取到锁后一段时间内必须发出释放该锁的通告,否则在超时后网络中其他节点自动将其本地的锁置为空闲,其他节点即可申请持有该锁。
CN201210563825.5A 2012-12-24 2012-12-24 一种分布式存储的数据获取方法 Expired - Fee Related CN103067471B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210563825.5A CN103067471B (zh) 2012-12-24 2012-12-24 一种分布式存储的数据获取方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210563825.5A CN103067471B (zh) 2012-12-24 2012-12-24 一种分布式存储的数据获取方法

Publications (2)

Publication Number Publication Date
CN103067471A true CN103067471A (zh) 2013-04-24
CN103067471B CN103067471B (zh) 2019-01-11

Family

ID=48109925

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210563825.5A Expired - Fee Related CN103067471B (zh) 2012-12-24 2012-12-24 一种分布式存储的数据获取方法

Country Status (1)

Country Link
CN (1) CN103067471B (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103701770A (zh) * 2013-11-22 2014-04-02 汉柏科技有限公司 一种基于租约机制的异常解锁方法
WO2017187280A1 (en) * 2016-04-29 2017-11-02 International Business Machines Corporation Storing data in dispersed storage network with consistency
CN107517277A (zh) * 2017-10-09 2017-12-26 郑州云海信息技术有限公司 一种sanlock锁实现方法和装置
CN108038004A (zh) * 2017-09-30 2018-05-15 用友金融信息技术股份有限公司 分布式锁生成方法、装置、计算机设备和可读存储介质
US10091298B2 (en) 2016-05-27 2018-10-02 International Business Machines Corporation Enhancing performance of data storage in a dispersed storage network
CN109033364A (zh) * 2018-07-26 2018-12-18 郑州云海信息技术有限公司 一种处理分布式事务的方法、配置中心及节点
CN110445864A (zh) * 2019-08-11 2019-11-12 西藏宁算科技集团有限公司 一种云计算环境下分布式锁的实现方法及系统
CN113961639A (zh) * 2020-06-22 2022-01-21 金篆信科有限责任公司 一种分布式事务处理方法、终端及计算机可读存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1786918A (zh) * 2004-12-10 2006-06-14 惠普开发有限公司 分布式锁
CN1980236A (zh) * 2005-12-09 2007-06-13 英业达股份有限公司 分布式数据动态程序代理方法
CN101013381A (zh) * 2007-01-26 2007-08-08 华中科技大学 基于对象存储系统的分布式锁

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1786918A (zh) * 2004-12-10 2006-06-14 惠普开发有限公司 分布式锁
CN1980236A (zh) * 2005-12-09 2007-06-13 英业达股份有限公司 分布式数据动态程序代理方法
CN101013381A (zh) * 2007-01-26 2007-08-08 华中科技大学 基于对象存储系统的分布式锁

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
周梅: "分布式锁的设计与实现", 《计算机工程》 *

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103701770A (zh) * 2013-11-22 2014-04-02 汉柏科技有限公司 一种基于租约机制的异常解锁方法
US10628399B2 (en) 2016-04-29 2020-04-21 International Business Machines Corporation Storing data in a dispersed storage network with consistency
GB2565932A (en) * 2016-04-29 2019-02-27 Ibm Storing data in dispersed storage network with consistency
GB2565932B (en) * 2016-04-29 2019-08-28 Ibm Storing data in dispersed storage network with consistency
WO2017187280A1 (en) * 2016-04-29 2017-11-02 International Business Machines Corporation Storing data in dispersed storage network with consistency
US10091298B2 (en) 2016-05-27 2018-10-02 International Business Machines Corporation Enhancing performance of data storage in a dispersed storage network
CN108038004A (zh) * 2017-09-30 2018-05-15 用友金融信息技术股份有限公司 分布式锁生成方法、装置、计算机设备和可读存储介质
CN107517277A (zh) * 2017-10-09 2017-12-26 郑州云海信息技术有限公司 一种sanlock锁实现方法和装置
CN107517277B (zh) * 2017-10-09 2020-05-19 苏州浪潮智能科技有限公司 一种sanlock锁实现方法和装置
CN109033364A (zh) * 2018-07-26 2018-12-18 郑州云海信息技术有限公司 一种处理分布式事务的方法、配置中心及节点
CN110445864A (zh) * 2019-08-11 2019-11-12 西藏宁算科技集团有限公司 一种云计算环境下分布式锁的实现方法及系统
CN110445864B (zh) * 2019-08-11 2022-04-08 西藏宁算科技集团有限公司 一种云计算环境下分布式锁的实现方法及系统
CN113961639A (zh) * 2020-06-22 2022-01-21 金篆信科有限责任公司 一种分布式事务处理方法、终端及计算机可读存储介质

Also Published As

Publication number Publication date
CN103067471B (zh) 2019-01-11

Similar Documents

Publication Publication Date Title
CN103067471A (zh) 一种分布式存储的数据获取方法
CN103297268B (zh) 基于p2p技术的分布式数据一致性维护系统和方法
CN103036717B (zh) 分布式数据的一致性维护系统和方法
US7694312B2 (en) Methods and apparatus for enabling bus connectivity over a data network
CN105426271B (zh) 对分布式存储系统的锁管理的方法和装置
CN101383690B (zh) 一种基于socket的容错计算机系统的网络同步方法
JP6282284B2 (ja) 分散型コンピューターシステム内のメンバーシップを開始し、形成し、及びメンバーシップに参加する方法、装置、及びシステム
CN111897666B (zh) 用于多进程之间通信的方法、设备及系统
CN105119986B (zh) 一种基于预连接的Web反向代理方法
CN104239418A (zh) 支持分布式数据库的分布锁方法以及分布式数据库系统
CN101207517B (zh) 一种分布式企业服务总线节点可靠性维护方法
CN103051470B (zh) 一种集群及其磁盘心跳的控制方法
TWI761330B (zh) 通訊通道處理方法和系統
ES2768325T3 (es) Inducción de un nodo en un grupo
CN103995868A (zh) 面向分布式系统的全局事务管理器及事务处理方法
CN101771600A (zh) 多核下连接并发处理的方法
CN107992368A (zh) 一种多进程间的数据交换方法和系统
CN104866528B (zh) 多平台数据采集方法及系统
CN112929225B (zh) 会话异常处理方法、装置、计算机设备和存储介质
CN104618152A (zh) 一种会话表老化方法及系统
WO2013000135A1 (zh) 一种分布式消息的加锁方法和系统
CN104699527A (zh) 一种云存储系统中的临界资源管理方法和装置
WO2021254466A1 (zh) 一种配置边缘侧设备的方法、装置及系统
CN113259119B (zh) 区块链消息的分发方法及装置
CN104780178B (zh) 一种用于防止tcp攻击的连接管理方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
DD01 Delivery of document by public notice
DD01 Delivery of document by public notice

Addressee: BEIJING DYNA TECHNOLOGY Co.,Ltd.

Document name: Notification of Passing Examination on Formalities

GR01 Patent grant
GR01 Patent grant
DD01 Delivery of document by public notice
DD01 Delivery of document by public notice

Addressee: Guo Ling

Document name: Notification of Qualified Procedures

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20190111