GFS中元数据的管理
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中元数据的管理的更多相关文章
- NameNode元数据的管理机制(三)
元数据的管理: 第一步:客户端通过DistributedFilesystem 对象中的creat()方法来创建文件,此时,RPC会 通过一个RPC链接协议来调用namenode,并在命名空间中创建一个 ...
- Spring中的事物管理----HelloWorld
在学习Spring的事物管理之前明白先明白几个概念1什么是事物:事务就是一系列的动作, 它们被当做一个单独的工作单元. 这些动作要么全部完成, 要么全部不起作用例子说明:例如银行转账,A账户转账(转2 ...
- .NET Core中的认证管理解析
.NET Core中的认证管理解析 0x00 问题来源 在新建.NET Core的Web项目时选择“使用个人用户账户”就可以创建一个带有用户和权限管理的项目,已经准备好了用户注册.登录等很多页面,也可 ...
- [转].NET Core中的认证管理解析
本文转自:http://www.cnblogs.com/durow/p/5783089.html 0x00 问题来源 在新建.NET Core的Web项目时选择“使用个人用户账户”就可以创建一个带有用 ...
- Unity游戏开发中的内存管理_资料
内存是手游的硬伤——Unity游戏Mono内存管理及泄漏http://wetest.qq.com/lab/view/135.html 深入浅出再谈Unity内存泄漏http://wetest.qq.c ...
- 深入理解javascript中的焦点管理
× 目录 [1]焦点元素 [2]获得焦点 [3]失去焦点[4]焦点事件 前面的话 焦点作为javascript中的一个重要功能,基本上和页面交互都离不开焦点.但却少有人对焦点管理系统地做总结归纳.本文 ...
- C++中的内存管理
在C++中也是少不了对内存的管理,在C++中只要有new的地方,在写代码的时候都要想着delete. new分配的时堆内存,在函数结束的时候不会自动释放,如果不delete我分配的堆内存,则会造成内存 ...
- iOS 如何在一个已经存在多个project的workspace中引入cocoapods管理第三方类库
一种新的第三方库管理工具:Carthage 如何使用Carthage管理iOS依赖库 Podfile Syntax Reference v1.1.0.rc.3 https://guides.cocoa ...
- Spring中的事物管理,用 @Transactional 注解声明式地管理事务
事物: 事务管理是企业级应用程序开发中必不可少的技术, 用来确保数据的 完整性和 一致性. 事务就是一系列的动作, 它们被当做一个单独的工作单元. 这些动作要么全部完成, 要么全部不起作用 事务的四 ...
随机推荐
- js基本用法
1. 在HTML里面加入JavaScript 方法非常简单,就是通过一对<script></script>标签,然后在标签里面书写代码即可 2. 标签位置 按照以前传统的方法, ...
- flask/app.py-add_url_rule源码分析
之前分析route方法的时候,可以看到中间会调用add_url_rule方法,add_url_rule方法和route方法一样属于Flask这个类的. add_url_rule方法主要用来连接url规 ...
- element-ui default-checked-keys 会把节点下所有子节点全部勾选解决方法
<el-tree class="filter-tree" :data="permissionData" :props="props" ...
- js几种数组排序及sort的实现
给出以下数组,并进行排序处理 var arr = new Array('1','3','8','2','3','5'); 1. 插入法排序 Array.prototype.csSort = funct ...
- Python_字符串相关操作
1.字符串切片操作: str1='hello word' startIndex=0 #开始索引位置 endIndex=5 #结束索引位置+1 step=2 #步长 print(str1[startIn ...
- 在Linux命令行中操作PDF
pdftk 命令提供了许多处理 PDF 的命令行操作,包括合并页面.加密文件.添加水印.压缩文件,甚至还有修复 PDF. 虽然 PDF 通常被认为是相当稳定的文件,但在 Linux 和其他系统上你可以 ...
- 匿名函数、sorted()、filter()、map()、递归
一.匿名函数 1.lambda 匿名函数 方法 lambda 参数:返回值 (函数名统一叫lambda) def func(n): return n**2 print(func(3)) #这是一个普通 ...
- 【loj-1055-Going Together-三个棋子推箱子走到目的地--讲预判的bfs】
light oj 1055-Going Together 题目大致意思: 简单的三个棋子,每次可以下达一个命令,robots全部按照指令进行前进:若下一步不为空地则停留在原地. 特殊考虑: 1.例如A ...
- 云计算(2)-Cloud是什么
Cloud是什么 compute cycles应建立在data center的附近而不是data center围绕着compute cycles Two kinds of clouds Example ...
- jQuery实现点击复制效果
<!DOCTYPE html><html lang="en"> <head> <meta charset="UTF-8" ...