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

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

Info

Publication number
CN102867037B
CN102867037B CN201210316061.XA CN201210316061A CN102867037B CN 102867037 B CN102867037 B CN 102867037B CN 201210316061 A CN201210316061 A CN 201210316061A CN 102867037 B CN102867037 B CN 102867037B
Authority
CN
China
Prior art keywords
array
serial number
node serial
variable
index
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.)
Active
Application number
CN201210316061.XA
Other languages
English (en)
Other versions
CN102867037A (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

  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (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 CN102867037A (zh) 2013-01-09
CN102867037B true 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)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103873302B (zh) * 2014-03-21 2017-10-17 新华三技术有限公司 一种虚拟机槽位的分配方法和装置
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 联想(北京)有限公司 链表的创建方法及系统、数据的查找方法及系统

Also Published As

Publication number Publication date
CN102867037A (zh) 2013-01-09

Similar Documents

Publication Publication Date Title
CN102880705B (zh) 数据库主键生成装置和数据库主键生成方法
CN103218398B (zh) 智能变电站scl文件差异性比较方法
CN102867037B (zh) 一种基于位管理的分布式文件系统节点编号分配方法
CN102609446B (zh) 一种分布式Bloom过滤系统及其使用方法
CN104301425A (zh) 基于对象类型和哈希环的对象注册中心服务集群实现方法
CN103810244A (zh) 一种基于数据分布的分布式数据存储系统的扩容方法
JP2015512551A (ja) ネットワーク・インフラストラクチャにおけるデータ記憶及び編成を容易にするコンシステント・リング名前空間
CN104077423A (zh) 一种基于一致性散列的结构化数据存储、查询和迁移方法
CN108984744B (zh) 一种非主链区块自增长方法
CN103559032B (zh) 嵌入式系统对象管理的装置及方法
CN107844372B (zh) 一种内存分配的方法、系统
CN104636084A (zh) 一种对电力大数据进行合理高效分布存储的装置和方法
CN104572862A (zh) 一种海量数据存储访问方法及系统
CN104809182A (zh) 基于动态可分裂Bloom Filter的网络爬虫URL去重方法
WO2014000578A1 (en) Method and apparatus for processing database data in distributed database system
CN104731794A (zh) 一种冷热数据分片挖掘存储方法
CN104317795A (zh) 一种二维过滤器的生成方法、查询方法及装置
CN102479189A (zh) 一种内存中海量时间戳型数据高速均匀访问的索引方法
CN109492052B (zh) 一种scada分布式历史数据存储方法及系统
CN110908590A (zh) 一种变电站数据的分布式存储方法及系统
CN102999571A (zh) 一种集群中单机多节点的实现方法
CN109189783B (zh) 一种时序数据库表结构改变处理方法
WO2018232089A1 (en) Extent-based data location table management
CN100395712C (zh) 软件系统的资源管理方法
CN110247397A (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
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right
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.

CP03 Change of name, title or address
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.

TR01 Transfer of patent right
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.