亚洲精品国偷拍自产在线,亚洲国产欧美一区,亚洲综合色区无码一区爱av,国产曰批全过程免费视频好爽,国产成人无码精品久免费

RollingLevelDBTimelineStore 詳解

功能簡(jiǎn)介

作業(yè)timeline store的一種基于leveldb的實(shí)現。主要保存下面信息:

  • start time信息,保存在starttime-ldb里面,是一個(gè)單獨的LevelDB。
  • entity信息,保存在entity-ldb里面,是一個(gè)單獨的LevelDB,支持按照時(shí)間進(jìn)行歸檔以及清理。
  • indexed entity信息,保存在indexes-ldb里面,是一個(gè)單獨的LevelDB。支持按照時(shí)間進(jìn)行歸檔以及清理。
  • domain信息,保存domain信息,保存在domain-ldb里面,是一個(gè)單獨的LevelDB。
  • owner信息,保存owner信息,保存在owner-ldb里面,是一個(gè)單獨的LevelDB。

數據庫詳解

starttime-ldb

starttime-ldb主要保存的是app的啟動(dòng)時(shí)間,保存的信息主要如下:

  • 保存的key是EntityIdentifier,value是作業(yè)啟動(dòng)時(shí)間。
  • 當前版本信息,key是timeline-store-version,value是版本信息。

entity-ldb

entity-ldb數據庫的類(lèi)型是RollingLevelDB,支持按照時(shí)間創(chuàng )建單獨的數據庫。實(shí)際上是多個(gè)LevelDB數據庫,只是LevelDB數據庫的名稱(chēng)上面帶了時(shí)間。方便按照時(shí)間獲取對應的數據庫。

在保存數據到entity-ldb里面,首先需要獲取以及保存starttime。

核心代碼參考:

Long startTime = getAndSetStartTime(entity.getEntityId(),
          entity.getEntityType(), entity.getStartTime(), events);

entity-ldb里面保存和如下信息:

  • ENTITY_ENTRY_PREFIX + entity type + revstarttime + entity id
  • ENTITY_ENTRY_PREFIX + entity type + revstarttime + entity id + DOMAIN_ID_COLUMN
  • ENTITY_ENTRY_PREFIX + entity type + revstarttime + entity id + EVENTS_COLUMN + reveventtimestamp + eventtype
  • ENTITY_ENTRY_PREFIX + entity type + revstarttime + entity id + PRIMARY_FILTERS_COLUMN + name + value
  • ENTITY_ENTRY_PREFIX + entity type + revstarttime + entity id + OTHER_INFO_COLUMN + name
  • ENTITY_ENTRY_PREFIX + entity type + revstarttime + entity id + RELATED_ENTITIES_COLUMN + relatedentity type + relatedentity id

關(guān)鍵字段含義

字段 含義 類(lèi)型
DOMAIN_ID_COLUMN "d".getBytes(UTF_8) byte[]
EVENTS_COLUMN "e".getBytes(UTF_8) byte[]
PRIMARY_FILTERS_COLUMN "f".getBytes(UTF_8) byte[]
OTHER_INFO_COLUMN "i".getBytes(UTF_8) byte[]
RELATED_ENTITIES_COLUMN "r".getBytes(UTF_8) byte[]
ENTITY_ENTRY_PREFIX 3個(gè)空字符 ---
revstarttime 啟動(dòng)時(shí)間,由低八位存儲 byte[]

indexes-ldb

主要是entity的索引信息,key的格式如下:INDEXED_ENTRY_PREFIX + primaryfilter name + primaryfilter value + key

domain-ldb

主要保存domain信息,根據作業(yè)類(lèi)型的不同而不同,主要是Tez任務(wù)保存的比較多,帶了作業(yè)的ID,當前數據庫沒(méi)有清理,可能會(huì )造成數據殘留,詳見(jiàn):YARN-11911

保存的信息如下:

信息 key 備注
描述信息 domainId + DESCRIPTION_COLUMN DESCRIPTION_COLUMN ="d".getBytes(UTF_8)
owner 信息 domainId + OWNER_COLUMN OWNER_COLUMN = "o".getBytes(UTF_8)
reader信息 domainId + READER_COLUMN READER_COLUMN = "r".getBytes(UTF_8)
writer信息 domainId + WRITER_COLUMN "w".getBytes(UTF_8)
時(shí)間信息 domainId + TIMESTAMP_COLUMN TIMESTAMP_COLUMN = "t".getBytes(UTF_8),低八位為創(chuàng )建時(shí)間,高八位為修改時(shí)間

owner-ldb

主要保存owner信息,根據作業(yè)類(lèi)型的不同而不同,主要是Tez任務(wù)保存的比較多,帶了作業(yè)的ID,當前數據庫沒(méi)有清理,可能會(huì )造成數據殘留,詳見(jiàn):YARN-11911

保存的信息如下:

信息 key 備注
描述信息 owner + domainId + DESCRIPTION_COLUMN DESCRIPTION_COLUMN ="d".getBytes(UTF_8)
owner 信息 owner + domainId + OWNER_COLUMN OWNER_COLUMN = "o".getBytes(UTF_8)
reader信息 owner + domainId + READER_COLUMN READER_COLUMN = "r".getBytes(UTF_8)
writer信息 owner + domainId + WRITER_COLUMN "w".getBytes(UTF_8)
時(shí)間信息 owner + domainId + TIMESTAMP_COLUMN TIMESTAMP_COLUMN = "t".getBytes(UTF_8),低八位為創(chuàng )建時(shí)間,高八位為修改時(shí)間



標 題:《RollingLevelDBTimelineStore 詳解
作 者:zeekling
提 示:轉載請注明文章轉載自個(gè)人博客:浪浪山旁那個(gè)村

評論

  1. 沒(méi)有看懂。

取消
亚洲精品国偷拍自产在线,亚洲国产欧美一区,亚洲综合色区无码一区爱av,国产曰批全过程免费视频好爽,国产成人无码精品久免费