CN102867037A - 一种基于位管理的分布式文件系统节点编号分配方法 - Google Patents

一种基于位管理的分布式文件系统节点编号分配方法 Download PDF

Info

Publication number
CN102867037A
CN102867037A CN201210316061XA CN201210316061A CN102867037A CN 102867037 A CN102867037 A CN 102867037A CN 201210316061X A CN201210316061X A CN 201210316061XA CN 201210316061 A CN201210316061 A CN 201210316061A CN 102867037 A CN102867037 A CN 102867037A
Authority
CN
China
Prior art keywords
array
index
variable
searchpos
freebitmask
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
CN201210316061XA
Other languages
English (en)
Other versions
CN102867037B (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.)
Chongqing Inspur Government Cloud Management and Operation Co Ltd
Original Assignee
Inspur Electronic Information Industry 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 Inspur Electronic Information Industry Co Ltd filed Critical Inspur Electronic Information Industry Co Ltd
Priority to CN201210316061.XA priority Critical patent/CN102867037B/zh
Publication of CN102867037A publication Critical patent/CN102867037A/zh
Application granted granted Critical
Publication of CN102867037B publication Critical patent/CN102867037B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供一种基于位管理的分布式文件系统节点编号分配方法,其方法内容包括:在分布式文件系统中将每一个节点编号的空闲或使用情况转换为数组元素变量中的某一位来表示(0表示空闲,1表示被占用);当需要分配一个节点编号时,从数组的搜索索引开始遍历每个元素变量中的每个位,找到第一个为0的位,根据元素变量在数组中的索引和该位在元素变量中的索引计算出节点编号值进行返回,将该位设置为1;当需要释放一个节点编号时,根据节点编号值计算出数组索引和元素变量内的索引来确定对应的位将其清零,并根据数组索引来确定是否修改搜索索引。该方法简化了节点编号分配与回收的过程,降低了维护空闲节点编号的系统开销,提高了节点编号分配效率。

Description

一种基于位管理的分布式文件系统节点编号分配方法
技术领域
本发明涉及云计算云存储领域,具体为一种基于位管理的分布式文件系统节点编号分配方法。
技术背景
云存储是在云计算(cloud computing)基础上延伸和发展出来的一个新概念,是指通过集群应用、网络技术和分布式文件系统等技术,将网络中大量不同类型的存储设备进行整合利用,形成统一的存储池对外提供存储服务。
分布式文件系统作为云存储的核心组成部分在近几年中有了长足的发展。在分布式文件系统中对节点编号的分配与管理是一个很重要的问题。节点编号作为节点的标识必须是唯一的,它的分配与回收需要有一定的机制维护与管理。当前比较常见的分布式文件系统对节点编号的管理是基于某个全局变量线性增长的,每当需要分配一个新的节点编号时,就对这个全局变量加1然后返回该值,每当需要回收一个节点编号时则使用一个变量加以记录,然后再有节点编号的分配需求时则首先查找这些变量记录的编号进行返回。这种方式虽然效率很高,但需要额外的系统开销来维护那些回收的节点编号。一般每一个节点编号会用4字节来表示,当删除的节点很多时,会因此占用大量的内存资源。
发明内容
为了降低额外的内存消耗并兼顾执行效率,本发明提出了一种基于位管理的分布式文件系统节点编号分配方法。
本发明解决所述技术问题采用的方法内容包括:内容包括:将分布式文件系统中每一个节点编号的空闲或使用情况转换为数组元素变量中的某一位来表示,用位值1或0来分别表示该节点编号占用或空闲状态;当需要分配一个节点编号时,会从数组的搜索索引开始遍历每个元素变量中的每个位,找到第一个为0的位,根据元素变量在数组中的索引和该位在元素变量中的索引计算出节点编号值进行返回,然后将该位设置为1;当需要释放一个节点编号时,会根据节点编号值计算出数组索引和元素变量内的索引来确定对应的位将其清零,并根据数组索引来确定是否修改搜索索引,数组的长度在没有空闲位时,允许动态扩充,当数组的搜索索引在分配节点编号时,作为数组的起始位置查找空闲位,并根据查找情况进行调整;在回收节点编号时,若对应的数组索引小于搜索索引,则重新设置搜索索引使其指向含有最小空闲节点编号的元素变量;
具体实现过程如下:
1)初始化阶段:
(1)bitmasksize变量初始化为0x100,用以表示freebitmask数组的长度;
(2)freebitmask是一个含有bitmasksize个元素的数组,它的每一个元素都是一个4字节的变量,该数组中每个元素会被初始化为0;
(3)searchpos变量初始化为0,表示freebitmask数组的搜索索引;
2)分配节点编号过程:
(1)若searchpos小于bitmasksize并且freebitmask[searchpos]元素变量值等于0xFFFFFFFF,则searchpos自加1并返回步骤1),本步骤的作用是从searchpos位置开始在freebitmask数组中找到一个至少含有一个空闲位bit=0的元素变量;
(2)如果searchpos等于bitmasksize,则bitmasksize加上0x80,并根据新的bitmasksize值调整freebitmask数组长度,新申请的元素变量被初始化为0,本步骤的作用是若freebitmask数组中所有的元素变量的每一位都是占用位bit=1,则为freebitmask数组扩展新的元素变量并初始化为0表示所有位都是空闲位;
(3)根据freebitmask[searchpos]元素变量从低位到高位计算第一个空闲位的索引位置bitpos,将该位置1表示占用位;
(4)计算节点编号nodeid= (searchpos<<5)+bitpos,并返回该值;
3)回收节点编号过程:
(1)根据节点编号nodeid计算出数组索引pos=nodeid>>5和位索引bitpos=nodeid&0x1F;
(2)根据数组索引pos和位索引bitpos将freebitmask数组中的对应元素的对应位清零,即设为空闲位;
(3)若pos<searchpos则searchpos=pos,本步骤的作用是重新设置searchpos变量,使它始终指向第一含有空闲位的freebitmask数组元素变量。
本发明的有益效果是:简化了分布式文件系统中节点编号分配与回收的过程,降低了维护空闲节点编号的系统开销,提高了节点编号分配效率。
附图说明
图1节点编号分配方法示意图。
具体实施方式
结合附图对本发明的方法作进一步详细说明。本发明的方法是将分布式文件系统中每一个节点编号的空闲或使用情况转换为数组元素变量中的某一位来表示(0表示空闲,1表示被占用)。当需要分配一个节点编号时,会从数组的搜索索引开始遍历每个元素变量中的每个位,找到第一个为0的位,根据元素变量在数组中的索引和该位在元素变量中的索引计算出节点编号值进行返回,然后将该位设置为1;当需要释放一个节点编号时,会根据节点编号值计算出数组索引和元素变量内的索引来确定对应的位将其清零,并根据数组索引来确定是否修改搜索索引。
在该方法中,每个节点编号将转换为数组中元素变量中对应位来进行管理,用位值1或0来表示该节点编号占用或空闲状态。数组的长度在没有空闲位时是可以动态扩充的。数组的搜索索引在分配节点编号时作为数组的起始位置查找空闲位,并根据查找情况进行调整;在回收节点编号时若对应的数组索引小于搜索索引则重新设置搜索索引使其指向含有最小空闲节点编号的元素变量。
具体实现过程如下:
1.初始化阶段:
(1)bitmasksize变量初始化为0x100,用以表示freebitmask数组的长度;
(2)freebitmask是一个含有bitmasksize个元素的数组,它的每一个元素都是一个4字节的变量,该数组中每个元素会被初始化为0;
(3)searchpos变量初始化为0表示freebitmask数组的搜索索引;
2.分配节点编号过程:
(1)若searchpos小于bitmasksize并且freebitmask[searchpos]元素变量值等于0xFFFFFFFF则searchpos自加1并返回(1)。该步骤的作用是从searchpos位置开始在freebitmask数组中找到一个至少含有一个空闲位(bit=0)的元素变量;
(2)如果searchpos等于bitmasksize,则bitmasksize加上0x80,并根据新的bitmasksize值调整freebitmask数组长度,新申请的元素变量被初始化为0。该步骤的作用是若freebitmask数组中所有的元素变量的每一位都是占用位(bit=1),则为freebitmask数组扩展新的元素变量并初始化为0表示所有位都是空闲位;
(3)根据freebitmask[searchpos]元素变量从低位到高位计算第一个空闲位的索引位置bitpos,将该位置1表示占用位;
(4)计算节点编号nodeid= (searchpos<<5)+bitpos,并返回该值;
3.回收节点编号过程:
(1)根据节点编号nodeid计算出数组索引pos=nodeid>>5和位索引bitpos=nodeid&0x1F;
(2)根据数组索引pos和位索引bitpos将freebitmask数组中的对应元素的对应位清零,即设为空闲位;
(3)若pos<searchpos则searchpos=pos。该步骤的作用是重新设置searchpos变量,使它始终指向第一含有空闲位的freebitmask数组元素变量。

Claims (1)

1.一种基于位管理的分布式文件系统节点编号分配方法,其特征在于内容包括:将分布式文件系统中每一个节点编号的空闲或使用情况转换为数组元素变量中的某一位来表示,用位值1或0来分别表示该节点编号占用或空闲状态;当需要分配一个节点编号时,会从数组的搜索索引开始遍历每个元素变量中的每个位,找到第一个为0的位,根据元素变量在数组中的索引和该位在元素变量中的索引计算出节点编号值进行返回,然后将该位设置为1;当需要释放一个节点编号时,会根据节点编号值计算出数组索引和元素变量内的索引来确定对应的位将其清零,并根据数组索引来确定是否修改搜索索引,数组的长度在没有空闲位时,允许动态扩充,当数组的搜索索引在分配节点编号时,作为数组的起始位置查找空闲位,并根据查找情况进行调整;在回收节点编号时,若对应的数组索引小于搜索索引,则重新设置搜索索引使其指向含有最小空闲节点编号的元素变量;
具体实现过程如下:
1)初始化阶段:
(1)bitmasksize变量初始化为0x100,用以表示freebitmask数组的长度;
(2)freebitmask是一个含有bitmasksize个元素的数组,它的每一个元素都是一个4字节的变量,该数组中每个元素会被初始化为0;
(3)searchpos变量初始化为0,表示freebitmask数组的搜索索引;
2)分配节点编号过程:
(1)若searchpos小于bitmasksize并且freebitmask[searchpos]元素变量值等于0xFFFFFFFF,则searchpos自加1并返回步骤1),本步骤的作用是从searchpos位置开始在freebitmask数组中找到一个至少含有一个空闲位bit=0的元素变量;
(2)如果searchpos等于bitmasksize,则bitmasksize加上0x80,并根据新的bitmasksize值调整freebitmask数组长度,新申请的元素变量被初始化为0,本步骤的作用是若freebitmask数组中所有的元素变量的每一位都是占用位bit=1,则为freebitmask数组扩展新的元素变量并初始化为0表示所有位都是空闲位;
(3)根据freebitmask[searchpos]元素变量从低位到高位计算第一个空闲位的索引位置bitpos,将该位置1表示占用位;
(4)计算节点编号nodeid= (searchpos<<5)+bitpos,并返回该值;
3)回收节点编号过程:
(1)根据节点编号nodeid计算出数组索引pos=nodeid>>5和位索引bitpos=nodeid&0x1F;
(2)根据数组索引pos和位索引bitpos将freebitmask数组中的对应元素的对应位清零,即设为空闲位;
(3)若pos<searchpos则searchpos=pos,本步骤的作用是重新设置searchpos变量,使它始终指向第一含有空闲位的freebitmask数组元素变量。
CN201210316061.XA 2012-08-31 2012-08-31 一种基于位管理的分布式文件系统节点编号分配方法 Active CN102867037B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210316061.XA CN102867037B (zh) 2012-08-31 2012-08-31 一种基于位管理的分布式文件系统节点编号分配方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210316061.XA CN102867037B (zh) 2012-08-31 2012-08-31 一种基于位管理的分布式文件系统节点编号分配方法

Publications (2)

Publication Number Publication Date
CN102867037A true CN102867037A (zh) 2013-01-09
CN102867037B CN102867037B (zh) 2016-09-28

Family

ID=47445906

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210316061.XA Active CN102867037B (zh) 2012-08-31 2012-08-31 一种基于位管理的分布式文件系统节点编号分配方法

Country Status (1)

Country Link
CN (1) CN102867037B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103873302A (zh) * 2014-03-21 2014-06-18 杭州华三通信技术有限公司 一种虚拟机槽位的分配方法和装置
CN106850282A (zh) * 2017-01-19 2017-06-13 郑州云海信息技术有限公司 一种集群文件系统中主机管理方法及系统
CN112732188A (zh) * 2021-01-06 2021-04-30 北京同有飞骥科技股份有限公司 基于分布式存储逻辑卷id分配效率的优化方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030055629A (ko) * 2001-12-27 2003-07-04 한국전자통신연구원 평면 트리 구조의 이중 상태관리를 통한 확산 코드 관리방법 및 그를 이용한 확산 코드 할당 및 해제 방법
CN1464436A (zh) * 2002-06-26 2003-12-31 联想(北京)有限公司 嵌入式系统的数据存放及其查找组合方法
US7370054B1 (en) * 2003-09-29 2008-05-06 Sun Microsystems, Inc Method and apparatus for indexing a hash table which is organized as a linked list
CN102117278A (zh) * 2009-12-31 2011-07-06 联想(北京)有限公司 链表的创建方法及系统、数据的查找方法及系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030055629A (ko) * 2001-12-27 2003-07-04 한국전자통신연구원 평면 트리 구조의 이중 상태관리를 통한 확산 코드 관리방법 및 그를 이용한 확산 코드 할당 및 해제 방법
CN1464436A (zh) * 2002-06-26 2003-12-31 联想(北京)有限公司 嵌入式系统的数据存放及其查找组合方法
US7370054B1 (en) * 2003-09-29 2008-05-06 Sun Microsystems, Inc Method and apparatus for indexing a hash table which is organized as a linked list
CN102117278A (zh) * 2009-12-31 2011-07-06 联想(北京)有限公司 链表的创建方法及系统、数据的查找方法及系统

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103873302A (zh) * 2014-03-21 2014-06-18 杭州华三通信技术有限公司 一种虚拟机槽位的分配方法和装置
CN106850282A (zh) * 2017-01-19 2017-06-13 郑州云海信息技术有限公司 一种集群文件系统中主机管理方法及系统
CN112732188A (zh) * 2021-01-06 2021-04-30 北京同有飞骥科技股份有限公司 基于分布式存储逻辑卷id分配效率的优化方法及系统

Also Published As

Publication number Publication date
CN102867037B (zh) 2016-09-28

Similar Documents

Publication Publication Date Title
CN102419752B (zh) 一种工业数据库报文存储方法
CN102411616B (zh) 一种数据存储方法和系统及数据管理方法
CN107844372B (zh) 一种内存分配的方法、系统
CN104378447A (zh) 一种基于哈希环的非迁移分布式存储方法及系统
CN104317742A (zh) 一种优化空间管理的自动精简配置方法
CN104301425A (zh) 基于对象类型和哈希环的对象注册中心服务集群实现方法
CN105512229A (zh) 一种ip地址的地域信息的存储、查询方法及装置
CN103379160A (zh) 一种超大文件的差异同步方法
CN104182508A (zh) 一种数据处理方法和数据处理装置
CN104539750A (zh) 一种ip定位方法和装置
CN105975398A (zh) 一种内存碎片管理方法
CN106202236A (zh) 一种用户位置预测方法及装置
CN105447112A (zh) 一种实现关系数据库Hash分区高效扩展的方法
CN102867037A (zh) 一种基于位管理的分布式文件系统节点编号分配方法
CN100395712C (zh) 软件系统的资源管理方法
CN102902742A (zh) 一种云环境下的空间数据划分方法
US20180239791A1 (en) Bitmap-based storage space management system and methods thereof
CN106156049A (zh) 一种数据读取的方法和系统
KR20170016168A (ko) 타일 기반의 지도 데이터 갱신 시스템 및 그 방법
CN105468541A (zh) 一种面向透明计算智能终端的缓存管理方法
CN104426774A (zh) 一种同时支持IPv4和IPv6的高速路由查找方法及装置
CN107273443A (zh) 一种基于大数据模型元数据的混合索引方法
CN103092767A (zh) 一种对云计算内部物理机信息内存池的管理方法
CN104331336B (zh) 匹配于高性能计算机结构的多层嵌套负载平衡方法
CN107342944B (zh) 一种id标识分配与持久化方法及系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20180813

Address after: 250101 S06 tower, 1036, Chao Lu Road, hi tech Zone, Ji'nan, Shandong.

Patentee after: SHANDONG LANGCHAO YUNTOU INFORMATION TECHNOLOGY Co.,Ltd.

Address before: 250014 1036 Shun Ya Road, hi tech Zone, Ji'nan, Shandong.

Patentee before: INSPUR ELECTRONIC INFORMATION INDUSTRY Co.,Ltd.

TR01 Transfer of patent right
CP03 Change of name, title or address

Address after: 250100 No. 1036 Tidal Road, Jinan High-tech Zone, Shandong Province, S01 Building, Tidal Science Park

Patentee after: Inspur cloud Information Technology Co.,Ltd.

Address before: 250101 S06 tower, 1036, Chao Lu Road, hi tech Zone, Ji'nan, Shandong.

Patentee before: SHANDONG LANGCHAO YUNTOU INFORMATION TECHNOLOGY Co.,Ltd.

CP03 Change of name, title or address
TR01 Transfer of patent right

Effective date of registration: 20221021

Address after: No. 5-398, Yunhan Avenue, Shuitu Hi tech Industrial Park, Beibei District, Chongqing 400722

Patentee after: Chongqing Inspur Government Cloud Management and Operation Co.,Ltd.

Address before: 250100 No. 1036 Tidal Road, Jinan High-tech Zone, Shandong Province, S01 Building, Tidal Science Park

Patentee before: Inspur cloud Information Technology Co.,Ltd.

TR01 Transfer of patent right