這篇文章給大家分享的是有關(guān)DamageTable相關(guān)內(nèi)容有哪些的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過來(lái)看看吧。
成都創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比拉孜網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式拉孜網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋拉孜地區(qū)。費(fèi)用合理售后完善,10多年實(shí)體公司更值得信賴。
DamageTable主要包含DIRFRAG/DENTRY/BACKTRACE的Damage信息
DamageEntry類是DamageTable的基類,在該基類中包含兩個(gè)成員(damage_entry_id_t/utime_t)分別對(duì)應(yīng)damage_entry的ID值以及記錄Damage時(shí)的時(shí)間
class DamageEntry {
damage_entry_id_t id;
utime_t reported_at;
};
DirFragDamage類繼承DamageEntry,主要包含DirFrag的信息(inodeno_t/frag_t)分別對(duì)應(yīng)inode和frag id,通過這兩個(gè)id值可以唯一對(duì)應(yīng)一個(gè)DirFrag
class DirFragDamage: public DamageEntry {
inodeno_t ino;
frag_t frag;
};
class DentryDamage: public DamageEntry {
inodeno_t ino;
frag_t frag;
std::string dname;
snapid_t snap_id;
};
class BacktraceDamage: public DamageEntry {
inodeno_t ino;
};
class DirFragIdent { 唯一標(biāo)識(shí)一個(gè)DirFrag
inodeno_t ino;
frag_t frag;
};
class DentryIdent { 唯一標(biāo)識(shí)一個(gè)Dentry
std::string dname;
snapid_t snap_id;
};
class DamageTable {
std::map<DirFragIdent, DamageEntryRef> dirfrags; 記錄damaged dirfrages信息
std::map<DirFragIdent, std::map<DentryIdent, DamageEntryRef> > dentries; 記錄damaged dentries信息
std::map<inodeno_t, DamageEntryRef> remotes; 記錄remote damaged信息
std::map<damage_entry_id_t, DamageEntryRef> by_id; 記錄所有damged信息,通過id進(jìn)行索引
const mds_rank_t rank;
};
DamgeTable::notify_dentry()
|__創(chuàng)建DamageEntry類對(duì)象
|__將DamageEntry類對(duì)象插入到dentries數(shù)組中
|__將DamageEntry類對(duì)象插入到by_id數(shù)組中
DamageTable::notify_dirfrag()
|__創(chuàng)建DamageEntry類對(duì)象
|__將DamageEntry類對(duì)象插入到dirfrags數(shù)組中
|__將DamageEntry類對(duì)象插入到by_id數(shù)組中
DamageTable::notify_remote_damaged()
|__創(chuàng)建BackTraceDamage類對(duì)象
|__將BackTraceDamage類對(duì)象插入到remotes數(shù)組中
|__將BackTraceDamage類對(duì)象插入到by_id數(shù)組中
DamageTable::is_*_damaged()
|__從對(duì)應(yīng)的dmaged數(shù)組(dirfrags/dentries/remotes)中查找對(duì)應(yīng)的項(xiàng)
DamageTable::erase()
|__根據(jù)待刪除的Damage項(xiàng)的類型分別調(diào)用dirfrags.erase()/dentries.erase()/remotes.erase()進(jìn)行刪除操作
|__從by_id數(shù)組中刪除指定項(xiàng)
DamageTable及其子類的對(duì)應(yīng)關(guān)系如下圖所示:
感謝各位的閱讀!關(guān)于“DamageTable相關(guān)內(nèi)容有哪些”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!
文章名稱:DamageTable相關(guān)內(nèi)容有哪些
本文URL:http://aaarwkj.com/article6/gooeog.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站、網(wǎng)站維護(hù)、搜索引擎優(yōu)化、動(dòng)態(tài)網(wǎng)站、網(wǎng)站策劃、手機(jī)網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)