CN104158897B - 一种分布式文件系统中文件布局的更新方法 - Google Patents
一种分布式文件系统中文件布局的更新方法 Download PDFInfo
- Publication number
- CN104158897B CN104158897B CN201410421651.8A CN201410421651A CN104158897B CN 104158897 B CN104158897 B CN 104158897B CN 201410421651 A CN201410421651 A CN 201410421651A CN 104158897 B CN104158897 B CN 104158897B
- Authority
- CN
- China
- Prior art keywords
- file layout
- version number
- client
- meta data
- data server
- 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
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明提供一种分布式文件系统中文件布局的更新方法,在没有分布式锁的分布式文件系统中,对每个文件布局增加版本号字段,当文件布局有更新时,元数据服务器增加该文件布局的版本号,并且通知文件布局中的各个存储节点,通知完成后记录文件布局的更新记录。当客户端去访问存储服务器时,存储服务器比较客户端的文件布局的版本号和自身文件布局的版本号,若自身的大,则拒绝该请求,让其从元数据服务器更新最新的文件布局后再访问,从而可以保证文件布局更新的一致性。本发明在不需要分布式锁的情况下,完成了文件布局的一致性更新,保证了数据在多客户端间的一致性访问,并且减少了申请分布式锁的开销。
Description
技术领域
本发明涉及一种更新方法,具体涉及一种分布式文件系统中文件布局的更新方法。
背景技术
分布式文件系统一般包含客户端,元数据服务器和数据服务器,客户端负责文件数据的访问接口制定,元数据服务器处理文件的布局及属性,数据服务器存储文件的数据内容。
对于分布式文件系统,多个客户端同时访问一个文件时,为了保证其访问数据的一致性,该文件的元数据更新时必须有一种方法使得访问该元数据的客户端都感知到,传统的做法是通过元数据的分布式锁来实现,大致过程为,客户端访问文件时必须先申请该文件的分布式锁,更新元数据时也需要在锁的保护内进行,而该方法的缺点有二,一是分布式锁实现难度很大,且维护起来很不方便,部分分布式文件系统没有分布式锁,二是每次访问元数据时都需要加锁,降低了元数据访问的效率,增加了访问元数据的时延和开销。
发明内容
为了克服上述现有技术的不足,本发明提供一种分布式文件系统中文件布局的更新方法,在文件布局有更新时,只需通知和该布局相关的存储节点,通过存储节点反向反馈给访问其数据的客户端,该发明减少了元数据访问频繁加锁的开销,并且可以保证文件布局的一致性更新。
为了实现上述发明目的,本发明采取如下技术方案:
本发明提供一种分布式文件系统中文件布局的更新方法,所述方法包括以下步骤:
步骤1:元数据服务器记录文件布局的更新记录;
步骤2:元数据据服务器判断客户端的文件布局版本号和自身的文件布局版本号是否一致;
步骤3:客户端向元数据服务器更新文件布局,并重新访问存储节点。
所述步骤1包括以下步骤:
步骤1:文件布局有更新时,元数据服务器重新修改文件布局,对每个文件布局增加版本号;
步骤2:元数据服务器修改文件布局完成后,更新对应的版本号,并通知相关存储节点;
步骤3:通知完成后,元数据服务记录文件布局的更新记录。
所述步骤1包括以下步骤:
步骤2-1:客户端向元数据据服务器发送读写请求;
步骤2-2:元数据据服务器收到客户端发送的读写请求,判断客户端的文件布局版本号和自身的文件布局版本号是否一致;若元数据据服务器自身的文件布局版本号大于客户端的文件布局版本号,则执行步骤2-3;若客户端的文件布局版本号大于自身的文件布局版本号,则执行步骤2-4;
步骤2-3:元数据据服务器拒绝该读写请求,通知发起读写请求的客户端更新文件布局;
步骤2-4:元数据据服务器接受收到的客户端的文件布局版本号,更新自身的文件布局版本号。
所述步骤3中,客户端收到元数据服务器的拒绝访问的反馈后,向元数据服务器更新文件布局,并重新访问存储节点。
与现有技术相比,本发明的有益效果在于:
本发明提供一种分布式文件系统中文件布局的更新方法,在没有分布式锁的分布式文件系统中,对每个文件布局增加版本号字段,当文件布局有更新时,元数据服务器增加该文件布局的版本号,并且通知文件布局中的各个存储节点,通知完成后记录文件布局的更新记录。当客户端去访问存储服务器时,存储服务器比较客户端的文件布局的版本号和自身文件布局的版本号,若自身的大,则拒绝该请求,让其从元数据服务器更新最新的文件布局后再访问,从而可以保证文件布局更新的一致性。本发明在不需要分布式锁的情况下,完成了文件布局的一致性更新,保证了数据在多客户端间的一致性访问,并且减少了申请分布式锁的开销。
附图说明
图1是分布式文件系统中文件布局的更新方法的流程图。
具体实施方式
下面结合附图对本发明作进一步详细说明。
如图1,本发明提供一种分布式文件系统中文件布局的更新方法,所述方法包括以下步骤:
步骤1:元数据服务器记录文件布局的更新记录;
步骤2:元数据据服务器判断客户端的文件布局版本号和自身的文件布局版本号是否一致;
步骤3:客户端向元数据服务器更新文件布局,并重新访问存储节点。
所述步骤1包括以下步骤:
步骤1:文件布局有更新时,元数据服务器重新修改文件布局,对每个文件布局增加版本号;
步骤2:元数据服务器修改文件布局完成后,更新对应的版本号,并通知相关存储节点;
步骤3:通知完成后,元数据服务记录文件布局的更新记录。
所述步骤1包括以下步骤:
步骤2-1:客户端向元数据据服务器发送读写请求;
步骤2-2:元数据据服务器收到客户端发送的读写请求,判断客户端的文件布局版本号和自身的文件布局版本号是否一致;若元数据据服务器自身的文件布局版本号大于客户端的文件布局版本号,则执行步骤2-3;若客户端的文件布局版本号大于自身的文件布局版本号,则执行步骤2-4;
步骤2-3:元数据据服务器拒绝该读写请求,通知发起读写请求的客户端更新文件布局;
步骤2-4:元数据据服务器接受收到的客户端的文件布局版本号,更新自身的文件布局版本号。
所述步骤3中,客户端收到元数据服务器的拒绝访问的反馈后,向元数据服务器更新文件布局,并重新访问存储节点。
实施例
A.版本号的内存中的记录方法:
Version Cache以Try Tree的方式组织,以文件Inode Id作为索引的关键字。
Cache的回收采用定时的方式进行,每两分钟将其中存在时间超过24小时的Version变化信息回收。
B.存储节点掉电重启后version cache的重建;
当存储节点掉电重启后,向元数据服务器获取24小时内有过变化的元数据布局,获取后重新构建出version cache。
本发明提供一种分布式文件系统中文件布局的更新方法,在没有分布式锁的分布式文件系统中,对每个文件布局增加版本号字段,当文件布局有更新时,元数据服务器增加该文件布局的版本号,并且通知文件布局中的各个存储节点,通知完成后记录文件布局的更新记录。当客户端去访问存储服务器时,存储服务器比较客户端的文件布局的版本号和自身文件布局的版本号,若自身的大,则拒绝该请求,让其从元数据服务器更新最新的文件布局后再访问,从而可以保证文件布局更新的一致性。本发明在不需要分布式锁的情况下,完成了文件布局的一致性更新,保证了数据在多客户端间的一致性访问,并且减少了申请分布式锁的开销。
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,所属领域的普通技术人员参照上述实施例依然可以对本发明的具体实施方式进行修改或者等同替换,这些未脱离本发明精神和范围的任何修改或者等同替换,均在申请待批的本发明的权利要求保护范围之内。
Claims (1)
1.一种分布式文件系统中文件布局的更新方法,其特征在于:所述方法包括以下步骤:
步骤1:元数据服务器记录文件布局的更新记录;
步骤2:元数据服务器判断客户端的文件布局版本号和自身的文件布局版本号是否一致;
步骤3:客户端向元数据服务器更新文件布局,并重新访问存储节点;
所述步骤1包括以下步骤:
步骤1-1:文件布局有更新时,元数据服务器重新修改文件布局,对每个文件布局增加版本号;
步骤1-2:元数据服务器修改文件布局完成后,更新对应的版本号,并通知相关存储节点;
步骤1-3:通知完成后,元数据服务记录文件布局的更新记录;
所述步骤2包括以下步骤:
步骤2-1:客户端向元数据服务器发送读写请求;
步骤2-2:元数据服务器收到客户端发送的读写请求,判断客户端的文件布局版本号和自身的文件布局版本号是否一致;若元数据服务器自身的文件布局版本号大于客户端的文件布局版本号,则执行步骤2-3;若客户端的文件布局版本号大于自身的文件布局版本号,则执行步骤2-4;
步骤2-3:元数据服务器拒绝该读写请求,通知发起读写请求的客户端更新文件布局;
步骤2-4:元数据服务器接受收到的客户端的文件布局版本号,更新自身的文件布局版本号;
所述步骤3中,客户端收到元数据服务器的拒绝访问的反馈后,向元数据服务器更新文件布局,并重新访问存储节点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410421651.8A CN104158897B (zh) | 2014-08-25 | 2014-08-25 | 一种分布式文件系统中文件布局的更新方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410421651.8A CN104158897B (zh) | 2014-08-25 | 2014-08-25 | 一种分布式文件系统中文件布局的更新方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104158897A CN104158897A (zh) | 2014-11-19 |
CN104158897B true CN104158897B (zh) | 2017-06-23 |
Family
ID=51884302
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410421651.8A Active CN104158897B (zh) | 2014-08-25 | 2014-08-25 | 一种分布式文件系统中文件布局的更新方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104158897B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106708911A (zh) * | 2015-11-18 | 2017-05-24 | 阿里巴巴集团控股有限公司 | 一种云环境下数据文件同步的方法和装置 |
CN106708651B (zh) | 2016-11-16 | 2020-09-11 | 北京三快在线科技有限公司 | 基于纠删码的部分写入方法及装置、存储介质、设备 |
CN108234465B (zh) * | 2017-12-26 | 2021-09-10 | 创新科技术有限公司 | 一种分布式文件系统中应对异常的冗余方法和装置 |
CN109558457B (zh) * | 2018-12-11 | 2022-04-22 | 浪潮(北京)电子信息产业有限公司 | 一种数据写入方法、装置、设备及存储介质 |
CN110399341B (zh) * | 2019-07-06 | 2022-12-06 | 深圳市山水原创动漫文化有限公司 | 一种动画参考文件存储和调用的方法及其系统 |
CN111159786B (zh) * | 2019-12-29 | 2022-04-22 | 浪潮电子信息产业股份有限公司 | 一种元数据保护方法、装置及电子设备和存储介质 |
CN113485639B (zh) * | 2021-06-18 | 2024-02-20 | 济南浪潮数据技术有限公司 | 分布式存储的io速度优化方法、系统、终端及存储介质 |
CN117112525A (zh) * | 2023-08-21 | 2023-11-24 | 北京志凌海纳科技有限公司 | 分布式文件系统及分布式文件系统中维护文件一致性方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101064630A (zh) * | 2006-04-24 | 2007-10-31 | 华为技术有限公司 | 一种数据同步方法及系统 |
CN102843403A (zh) * | 2011-06-23 | 2012-12-26 | 盛大计算机(上海)有限公司 | 基于分布式文件系统的文件处理方法、系统及客户端 |
CN103294675A (zh) * | 2012-02-23 | 2013-09-11 | 上海盛霄云计算技术有限公司 | 一种分布式存储系统中的数据更新方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101964820B (zh) * | 2010-10-08 | 2014-04-09 | 中兴通讯股份有限公司 | 一种保持数据一致性的方法及系统 |
-
2014
- 2014-08-25 CN CN201410421651.8A patent/CN104158897B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101064630A (zh) * | 2006-04-24 | 2007-10-31 | 华为技术有限公司 | 一种数据同步方法及系统 |
CN102843403A (zh) * | 2011-06-23 | 2012-12-26 | 盛大计算机(上海)有限公司 | 基于分布式文件系统的文件处理方法、系统及客户端 |
CN103294675A (zh) * | 2012-02-23 | 2013-09-11 | 上海盛霄云计算技术有限公司 | 一种分布式存储系统中的数据更新方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN104158897A (zh) | 2014-11-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104158897B (zh) | 一种分布式文件系统中文件布局的更新方法 | |
US11226948B2 (en) | Index maintenance based on a comparison of rebuild vs. update | |
CA3042254C (en) | Multiversion concurrency control of database records with uncommitted transactions | |
Huang et al. | Research on architecture and query performance based on distributed graph database Neo4j | |
CN106462592B (zh) | 优化对索引的多版本支持的系统和方法 | |
US20140081911A1 (en) | Optimizing automatic deletion of backup files | |
CN105677250B (zh) | 对象存储系统中的对象数据的更新方法和更新装置 | |
US20170286100A1 (en) | User-configurable database artifacts | |
US20170147311A1 (en) | Database level containers | |
US20130275468A1 (en) | Client-side caching of database transaction token | |
EP2863310B1 (en) | Data processing method and apparatus, and shared storage device | |
JP7507142B2 (ja) | データベースにおいてレコードを一括削除するためのシステムおよび方法 | |
US9996330B2 (en) | Deployment process plugin architecture | |
US20180145983A1 (en) | Distributed data storage system using a common manifest for storing and accessing versions of an object | |
CN103678715B (zh) | 一种分布式文件系统中支持快照的元数据信息管理方法 | |
EP3401807B1 (en) | Synopsis based advanced partition elimination | |
CN103179185A (zh) | 一种分布式文件系统客户端缓存中文件创建方法及其系统 | |
US9411526B1 (en) | Filesystem management | |
CN110799961B (zh) | 在数据库中创建和删除租户的系统和方法 | |
DE102014104971A1 (de) | Verfahren für den Umgang mit Dateien in einer hierarchischen Speicherumgebung und eine entsprechende hierarchische Speicherumgebung | |
US20200117729A1 (en) | Technique for generating a change cache database utilized to inspect changes made to a repository | |
US11347687B2 (en) | Incremental inline journaling in a journaled file system | |
CN104021137A (zh) | 一种基于目录授权的客户端本地开闭文件的方法及系统 | |
CN102819570B (zh) | 一种数据访问方法、装置及系统 | |
CN103365987A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |