GFS 元数据(metadata)中包含三部分:

GFS元数据的管理方式:

1.文件的命名空间和块的命名空间:

  采用持久化的方式.

  对于文件和块的命名空间以及从文件到块的映射:通过向操作日志登记修改而保持不变,操作日志存储在master的本地磁盘并在几个远程机器上留有副本,使用日志使得我们可以简单地,可靠地更新master状态.即使在master崩溃的情况下也不会有不一致的问题

2.块位置信息:

  采用不持久化,定期查询的方式.

  对于块和副本位置:master在每次启动以及当有chunkserver加入的时候询问每个chunkserver的所拥有的块的情况,master并不为chunkserver所拥有的块的副本保存一个不变的记录.它在启动时通过简单的查询来获取这些信息.master可以保持这些信息的更新,因为它控制所有块的位置.

  不持久化的原因和好处:

    1.因为chunkserver可能加入或者离开集群,改变路径名,崩溃,重启等.一个集群中有几百个server,这些情况可能经常发生,所以这样做就排除了master和chunkserver之间的同步问题.

    2.只有chunkserver才能确定它自己到底有哪些块,可能由于各种错误,chunkserver中的一些块会自然消失,这样master就没必要为此保存一个不变的记录.

    因为chunkserver才能确定它自己到底有哪些块,

操作日志的处理方式:

  操作日志记录对metadata的所有修改,它作为逻辑时间线定义了并发操作的执行顺序.文件,块以及它们的版本号都是由它们被创建时的逻辑时间而唯一地,永久的被标示.

  为了恢复时间短,日志必须小,每当日志增长到一定规模后,master就要检查它的状态,可以从本地磁盘装入最近的检查点来恢复状态.

GFS中元数据的管理的更多相关文章

  1. NameNode元数据的管理机制(三)

    元数据的管理: 第一步:客户端通过DistributedFilesystem 对象中的creat()方法来创建文件,此时,RPC会 通过一个RPC链接协议来调用namenode,并在命名空间中创建一个 ...

  2. Spring中的事物管理----HelloWorld

    在学习Spring的事物管理之前明白先明白几个概念1什么是事物:事务就是一系列的动作, 它们被当做一个单独的工作单元. 这些动作要么全部完成, 要么全部不起作用例子说明:例如银行转账,A账户转账(转2 ...

  3. .NET Core中的认证管理解析

    .NET Core中的认证管理解析 0x00 问题来源 在新建.NET Core的Web项目时选择“使用个人用户账户”就可以创建一个带有用户和权限管理的项目,已经准备好了用户注册.登录等很多页面,也可 ...

  4. [转].NET Core中的认证管理解析

    本文转自:http://www.cnblogs.com/durow/p/5783089.html 0x00 问题来源 在新建.NET Core的Web项目时选择“使用个人用户账户”就可以创建一个带有用 ...

  5. Unity游戏开发中的内存管理_资料

    内存是手游的硬伤——Unity游戏Mono内存管理及泄漏http://wetest.qq.com/lab/view/135.html 深入浅出再谈Unity内存泄漏http://wetest.qq.c ...

  6. 深入理解javascript中的焦点管理

    × 目录 [1]焦点元素 [2]获得焦点 [3]失去焦点[4]焦点事件 前面的话 焦点作为javascript中的一个重要功能,基本上和页面交互都离不开焦点.但却少有人对焦点管理系统地做总结归纳.本文 ...

  7. C++中的内存管理

    在C++中也是少不了对内存的管理,在C++中只要有new的地方,在写代码的时候都要想着delete. new分配的时堆内存,在函数结束的时候不会自动释放,如果不delete我分配的堆内存,则会造成内存 ...

  8. iOS 如何在一个已经存在多个project的workspace中引入cocoapods管理第三方类库

    一种新的第三方库管理工具:Carthage 如何使用Carthage管理iOS依赖库 Podfile Syntax Reference v1.1.0.rc.3 https://guides.cocoa ...

  9. Spring中的事物管理,用 @Transactional 注解声明式地管理事务

    事物: 事务管理是企业级应用程序开发中必不可少的技术,  用来确保数据的 完整性和 一致性. 事务就是一系列的动作, 它们被当做一个单独的工作单元. 这些动作要么全部完成, 要么全部不起作用 事务的四 ...

随机推荐

  1. js基本用法

    1. 在HTML里面加入JavaScript 方法非常简单,就是通过一对<script></script>标签,然后在标签里面书写代码即可 2. 标签位置 按照以前传统的方法, ...

  2. flask/app.py-add_url_rule源码分析

    之前分析route方法的时候,可以看到中间会调用add_url_rule方法,add_url_rule方法和route方法一样属于Flask这个类的. add_url_rule方法主要用来连接url规 ...

  3. element-ui default-checked-keys 会把节点下所有子节点全部勾选解决方法

    <el-tree class="filter-tree" :data="permissionData" :props="props" ...

  4. js几种数组排序及sort的实现

    给出以下数组,并进行排序处理 var arr = new Array('1','3','8','2','3','5'); 1. 插入法排序 Array.prototype.csSort = funct ...

  5. Python_字符串相关操作

    1.字符串切片操作: str1='hello word' startIndex=0 #开始索引位置 endIndex=5 #结束索引位置+1 step=2 #步长 print(str1[startIn ...

  6. 在Linux命令行中操作PDF

    pdftk 命令提供了许多处理 PDF 的命令行操作,包括合并页面.加密文件.添加水印.压缩文件,甚至还有修复 PDF. 虽然 PDF 通常被认为是相当稳定的文件,但在 Linux 和其他系统上你可以 ...

  7. 匿名函数、sorted()、filter()、map()、递归

    一.匿名函数 1.lambda 匿名函数 方法 lambda 参数:返回值 (函数名统一叫lambda) def func(n): return n**2 print(func(3)) #这是一个普通 ...

  8. 【loj-1055-Going Together-三个棋子推箱子走到目的地--讲预判的bfs】

    light oj 1055-Going Together 题目大致意思: 简单的三个棋子,每次可以下达一个命令,robots全部按照指令进行前进:若下一步不为空地则停留在原地. 特殊考虑: 1.例如A ...

  9. 云计算(2)-Cloud是什么

    Cloud是什么 compute cycles应建立在data center的附近而不是data center围绕着compute cycles Two kinds of clouds Example ...

  10. jQuery实现点击复制效果

    <!DOCTYPE html><html lang="en"> <head> <meta charset="UTF-8" ...