日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

工作日志管理 系統(tǒng)開發(fā)工作日志( 二 )


出于效率的原因,JBD 層對日志的處理采用分組的方法,即把屬于幾個原子操作處理的日志記錄分組放在一個單獨的事務中 。此外,與一個處理相關(guān)的所有日志記錄都必須包含在同一個事務中 。一個事務的所有日志記錄都存放在日志的連續(xù)塊中 。JBD層把每個事務作為整體來處理 。例如,只有當包含在一個事務的日志記錄中的所有數(shù)據(jù)提交給文件系統(tǒng)時才回收該事務所使用的塊 。
ReiserFSReiserFS是一個非常優(yōu)秀的文件系統(tǒng),其開發(fā)者非常有魄力,整個文件系統(tǒng)完全是從頭設計的 。目前,ReiserFS可輕松管理上百G的文件系統(tǒng),這在企業(yè)級應用中非常重要 。ReiserFS 是根據(jù)面向?qū)ο蟮乃枷朐O計的,由語義層(semantic layer)和存儲層(storage layer)組成 。語義層主要是對對象命名空間的管理及對象接口的定義,以確定對象的功能 。存儲層主要是對磁盤空間的管理 。語義層與存儲層是通過鍵(key)聯(lián)系的 。語義層通過對對象名進行解析生成鍵,存儲層通過鍵找到對象在磁盤上存儲空間,鍵值是全局唯一的 。
3.1 語義層主要接口
1)文件接口 每個文件擁有一個接口ID,此ID標識一個方法集,此方法集包含訪問ReiserFS 文件的所有接口 。
2)屬性接口 ReiserFS實現(xiàn)了一種新接口,把文件的每一種屬性當做一個文件,屬性的值就是此文件的內(nèi)容,以實現(xiàn)對文件屬性的目錄式訪問 。
3)hash接口 目錄是文件名到文件的映射表,ReiserFS是通過B+樹來實現(xiàn)這張映射表 。由于文件名是變長的,而且有時文件名會很長,所以文件名不適合作為鍵值,故引入了Hash函數(shù)來產(chǎn)生鍵值 。
4)安全接口 安全接口處理所有的安全性檢查,通常是由文件接口觸發(fā)的 。下面以讀文件為例:文件接口的read 方法在讀入文件數(shù)據(jù)之前會調(diào)用安全接口的read chech 方法來來進行安全性檢查,而后者又會調(diào)用屬性文件的read方法把文件屬性讀入以便檢查 。
5)項(Item)接口 項接口主要是一些對項進行平衡處理的方法,包括:項的拆分,項的評估,項的覆寫,項的追加,項的刪除,插入及查找 。
6)鍵分配(key Assignment)接口 當把一個鍵分配給一個項時,鍵分配接口就會被觸發(fā) 。每一種項都有一個與其對應的鍵分配方法 。
3.2 存儲層
ReiserFS是以B+樹來存儲數(shù)據(jù)的,其結(jié)構(gòu)如圖:

工作日志管理 系統(tǒng)開發(fā)工作日志


圖1:ReiserFS B+ 樹
在B+樹中的各個結(jié)點中有一個稱為項(Item)的數(shù)據(jù)結(jié)構(gòu) 。項是一個數(shù)據(jù)容器,一個項只屬于一個結(jié)點,是結(jié)點管理空間的基本單位 。如圖所示,一個項包括以下內(nèi)容:
1)Item_body:項的數(shù)據(jù)域
2)Item_key: 項的鍵值
3)Item_offset:數(shù)據(jù)域的起點在結(jié)點中的偏移量
4)Item_length: 數(shù)據(jù)域的長度
5)Item_Plugin_id:項接口ID 。
工作日志管理 系統(tǒng)開發(fā)工作日志


圖2: ReiserFS 項結(jié)構(gòu)
ReiserFS設計了多種不同的項以存儲不同的數(shù)據(jù),主要有以下幾種:
1)static_stat_data: 靜態(tài)統(tǒng)計數(shù)據(jù),包括文件的所有者,訪問權(quán)限,創(chuàng)建時間,最近修改時間,鏈接數(shù)等
2)cmpnd_dir_item: 包含各個目錄項
3)extend_pointers: 指向一個盤區(qū)(extend)
4)node_pointers: 指向一個結(jié)點
5)bodies: 包含的是文件的小部分數(shù)據(jù)
3.3 ReiserFS日志
與ext3一樣,ReiserFS也有三種日志模式,即journal,ordered,writeback 。同時,ReiserFS引入了兩種日志優(yōu)化方法:copy-on-capture和steal-on-capture 。copy-on-capture:當一個事務要修改的塊在另一個未提交的事務中時,就把這個塊復制一份,這樣這兩個事務就可以并發(fā)進行了 。steal-on-capture:當一個塊被多個事務修改時,只有最晚提交的那個事務才把這個塊實際寫入文件系統(tǒng),其他事務都不寫這個塊 。

推薦閱讀