Metalog 源码解读

Metalog 框架包含了定义Metalog子系统的类集。

基本组织结构

namespace Hypertable {

  namespace MetaLog {

    clsss XXX{

    }

  }

}

以下说明,都基于上述组织结构

MetaLog.h

Metalog文件具体内容:

每个日志文件保存服务器的执行完整状态和状态转换。

class Header ---编解码Metalog 文件头部

Encode a 16-bit integer in little-endian order

MetaLogDefinition.h

class Definition ---抽象基类,

派生类为特定的服务器定义有效MetaLog 实体

class Entity ---MetaLog 实体的单例基类

MetaLog entity 是被持久化到MetaLog文件中的。使用MetaLog API的方法可以对Entity对象进行读,写。

A meta log is a server state log and is currently used by both the RangeServer and the Master servers.

class Reader && class Writer ---Meta log 读写辅助类

class EntityHeader ---编解码序列化实体头(序列化在MetaLog文件中的实体状态)

entity 有多版本,读取时获取最新版本的返回

MetaLog 主要分为两类 ---Master && RangeServer

class DefinitionMaster

class DefinitionRangeServer

Metalog包含了一组数字命名的目录文件,每个文件包含一个服务器运行从开始到结束的状态和状态转换。 

两种类型metalog文件保存分别为mml,rsml

保存在hdfs上的路径类似如下

/hypertable/servers/master/log/mml/0

/hypertable/servers/rs1/log/rsml/0 (rs1: 相应的rangeserver)

保存在本地的备份路径为:

hypetable安装路径下

/run/log_backup/mml/master_38050/0  (Master 机器上)

/run/log_backup/rsml/rs1/0(Rangeserver 机器上)

class MetaLogEntityRange --- MetaLog entity for range state persisted in RSML

读写metalog

namespace Hypertable {

  /**

   * Abstract base class for a filesystem.  All commands have synchronous and

   * asynchronous versions.  Commands that operate on the same file descriptor

   * are serialized by the underlying filesy

相关推荐

  1. Metalog 解读

    2024-07-20 06:34:03       14 阅读
  2. ffmplay 解读

    2024-07-20 06:34:03       18 阅读
  3. MetaGPT部分解读

    2024-07-20 06:34:03       37 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-20 06:34:03       52 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-20 06:34:03       54 阅读
  3. 在Django里面运行非项目文件

    2024-07-20 06:34:03       45 阅读
  4. Python语言-面向对象

    2024-07-20 06:34:03       55 阅读

热门阅读

  1. 452. 用最少数量的箭引爆气球

    2024-07-20 06:34:03       15 阅读
  2. Python爬虫——1爬虫基础(一步一步慢慢来)

    2024-07-20 06:34:03       11 阅读
  3. 2024.7.19 Ai大模型问答 - 底特律和长春

    2024-07-20 06:34:03       17 阅读
  4. 【python】python面向对象之——继承

    2024-07-20 06:34:03       18 阅读