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
announcement
nodes
data
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
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Multi Processors (AREA)
  • Computer And Data Communications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (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 一种分布式存储的数据获取方法 Active 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 Active CN103067471B (zh) 2012-12-24 2012-12-24 一种分布式存储的数据获取方法

Country Status (1)

Country Link
CN (1) CN103067471B (zh)

Cited By (7)

* 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 西藏宁算科技集团有限公司 一种云计算环境下分布式锁的实现方法及系统

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 (12)

* 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
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
US10628399B2 (en) 2016-04-29 2020-04-21 International Business Machines Corporation Storing data in a 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 西藏宁算科技集团有限公司 一种云计算环境下分布式锁的实现方法及系统

Also Published As

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

Similar Documents

Publication Publication Date Title
CN103067471A (zh) 一种分布式存储的数据获取方法
CN103051470B (zh) 一种集群及其磁盘心跳的控制方法
CN103731485A (zh) 一种网络设备、集群存储系统及分布式锁管理方法
WO2016086582A1 (zh) 信号检测方法及装置
CN103152390A (zh) 分布式存储系统的节点配置方法、装置、节点及系统
CN110557416B (zh) 一种多节点协同打块的方法及系统
CN102684923A (zh) 一种半双工异步通信自愈组网方法
CN105245386A (zh) 服务器连接关系的自动定位方法和系统
US8832215B2 (en) Load-balancing in replication engine of directory server
CN113067897B (zh) 跨链交互方法及装置
CN107678923A (zh) 一种分布式文件系统消息处理的优化方法
CN104461705B (zh) 一种业务访问的方法及存储控制器、集群存储系统
CN111629059A (zh) 一种集群通信方法、系统、设备及计算机可读存储介质
CN105704187A (zh) 一种集群脑裂的处理方法及装置
WO2016124044A1 (zh) 无源光网络设备告警信息处理方法及光线路终端
CN113791959A (zh) 服务平台的告警推送方法、系统、终端及存储介质
CN104699527A (zh) 一种云存储系统中的临界资源管理方法和装置
CN110321199B (zh) 一种共用数据变更的通知方法、装置、电子设备及介质
CN105099753B (zh) 网络管理系统及其处理业务的方法
CN106294236B (zh) 一种基于rs485的通信方法、装置以及通信系统
CN113259462B (zh) 区块链消息的分发方法及装置
Balhara et al. Leader election algorithms in distributed systems
CN109614242A (zh) 一种计算能力共享方法、装置、设备及介质
CN114880717A (zh) 数据归档方法及装置
CN109347851B (zh) 一种请求响应方法及装置

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