日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

ATS写文件

發(fā)布時(shí)間:2025/5/22 编程问答 66 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ATS写文件 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

與讀緩存類似,寫緩存也有大文件小文件的區(qū)分,這里先討論寫小文件。大致的思想就是將CacheVC::blocks中的數(shù)據(jù)拷貝到agg_buf中,整個(gè)流程如下:

Cache::open_write: 根據(jù)key生成一個(gè)新key作為earliest_key,不過(guò)小文件的話貌似earlist_key沒(méi)用。根據(jù)CacheV->first_key計(jì)算的到vol。執(zhí)行Vol::open_write,在Vol::open_write中進(jìn)行了簡(jiǎn)單的aggregation buf的錯(cuò)誤檢查就執(zhí)行了OpenDir::open_write。最后將CacheVC::openWriteMain設(shè)置為回調(diào)函數(shù),流程結(jié)束。

OpenDir::open_write: 根據(jù)first_key計(jì)算bucket,原理就是最低32位處以bucket數(shù)量然后取余。遍歷這個(gè)bucket所有的位置看是否已經(jīng)有寫操作了,如果沒(méi)有的話,新建一個(gè)OpenDirEntry對(duì)象并且放倒bucket中

CacheVC::openWriteMain: 設(shè)置讀寫相關(guān)的字節(jié)數(shù),將資源在reader中consume掉,向continuation發(fā)送VC_EVENT_WRITE_COMPLETE信號(hào)

CacheVC::die: 設(shè)置回調(diào)函數(shù)為CacheVC::openWriteClose并執(zhí)行

CacheVC::openWriteClose: 執(zhí)行openWriteCloseHead

CacheVC::openWriteCloseHead: 設(shè)置回調(diào)函數(shù)為CacheVC::updateVector,并執(zhí)行

CacheVC::updateVector: 設(shè)置了回調(diào)函數(shù)為CacheVC::openWriteCloseHeadDone,執(zhí)行CacheVC::do_write_call。

CacheVC::do_write_call函數(shù)對(duì)回調(diào)函數(shù)執(zhí)行了push操作,CacheVC::handleWrite函數(shù)又執(zhí)行了pop操作。CacheVC::do_write_call最終返回了EVENT_RETURN,CacheVC::updateVector函數(shù)最后會(huì)執(zhí)行回調(diào)函數(shù)CacheVC::openWriteCloseHeadDone。

CacheVC::handleWrite: 將回調(diào)函數(shù)POP出。計(jì)算大概大小,將CacheVC對(duì)象加入到vol->agg中,vol->agg是一個(gè)隊(duì)列,每個(gè)元素就是一個(gè)寫緩存的CacheVC。判斷是否已經(jīng)有io操作正在進(jìn)行了,如果沒(méi)有,直接執(zhí)行Vol::aggWrite

Vol::aggWrite: 循環(huán)遍歷vol->agg隊(duì)列,判斷agg_buf是否還能裝下當(dāng)前的資源,如果可以裝下,執(zhí)行agg_copy,將CacheVC從vol->agg中刪除。

agg_copy: 設(shè)置dir的各個(gè)bit,初始化vc->dir各個(gè)bit。一開(kāi)始將一個(gè)Doc類型指針指向agg_buf,并對(duì)這個(gè)Doc進(jìn)行初始化。執(zhí)行iobufferblock_memcpy,將vc中的內(nèi)從拷貝到doc->data()。

CacheVC::openWriteCloseHeadDone: 執(zhí)行了dir_insert函數(shù),dir_insert函數(shù)中在特定的segment的特定的bucket中找一個(gè)位置放置這個(gè)資源的dir。最后執(zhí)行CacheVC::openWriteCloseDir

dir_insert: 通過(guò)key找到對(duì)應(yīng)的bucket,在freelist中找到一個(gè)位置,將dir放進(jìn)去。

CacheVC::openWriteCloseDir: 做一些善后工作,釋放CacheVC的資源。


對(duì)于寫大文件,CacheVC::openWriteMain處理的邏輯有一些不同,具體如下:


CacheVC::openWriteMain: 會(huì)執(zhí)行若干次,每次會(huì)對(duì)vio中的數(shù)據(jù)做一些處理,主要是初始化CacheVC::blocks,標(biāo)記一些已經(jīng)處理過(guò)的數(shù)據(jù)長(zhǎng)度,本次處理的數(shù)據(jù)長(zhǎng)度。如果攢夠了一個(gè)fragment的長(zhǎng)度,就寫到agg_buf中,并且開(kāi)始處理下一個(gè)fragment的數(shù)據(jù)。CacheVC::openWriteMain函數(shù)中并沒(méi)有實(shí)現(xiàn)數(shù)據(jù)的拷貝。


CacheVC::openWriteWriteDone:每個(gè)fragment數(shù)據(jù)處理完了會(huì)執(zhí)行這個(gè)函數(shù)。函數(shù)執(zhí)行了iobufferblock_skip,因?yàn)槊看位叵騛gg_buf中寫一個(gè)fragment那么多數(shù)據(jù),但是執(zhí)行CacheVC::openWriteWriteDone時(shí)已經(jīng)處理過(guò)的數(shù)據(jù)可能大于一個(gè)fragment的長(zhǎng)度,所以需要重新計(jì)算CacheVC::length。獲取了下一個(gè)key,將回調(diào)函數(shù)設(shè)置為CacheVC::openWriteMain并執(zhí)行。



轉(zhuǎn)載于:https://blog.51cto.com/11490450/1876682

總結(jié)

以上是生活随笔為你收集整理的ATS写文件的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日本大尺度做爰呻吟舌吻 | 91视频社区| 国产男女猛烈无遮挡a片漫画 | 国产欧美一区二区三区视频 | 亚洲欧美日韩色 | 亚洲国产va | 欧美老肥熟 | 成年人网站黄色 | 69精品人人人人 | 97夜色| 人妻换人妻a片爽麻豆 | 69视频网| 国产夫妻露脸 | 国产电影一区二区三区爱妃记 | 草草国产 | 99re免费视频 | 青草福利视频 | 国产成人a人亚洲精品无码 在线aa | 撸啊撸在线视频 | 国产91小视频 | 日韩av图片 | 亚洲精品一 | av综合导航 | 思思久久久 | 免费看国产一级片 | 亚洲av永久无码精品一区二区国产 | 在线看h网站| 欧美午夜理伦三级在线观看 | 亚洲色图五月天 | 久久老熟女一区二区三区 | 亚洲www视频 | 中文字幕日韩精品在线 | 麻豆视频在线免费看 | 久久久久久久999 | www.色偷偷| 玖玖在线视频 | 国产精品高清在线 | 欧美激情网 | 国产精品国产三级国产传播 | 青青久久久 | 国产一区二区小视频 | www.av小说| 桃色av | 国产嫩草av | 自偷自拍亚洲 | 日本少妇作爱视频 | 无码精品一区二区三区AV | 欧美精品18videosex性欧美 | 国产xxxx做受性欧美88 | 美女视频91| 99精品人妻国产毛片 | 日本丰满少妇一区二区三区 | 成年人小视频在线观看 | 欧美人与动物xxx | 午夜黄色网 | 黄色免费网站在线 | 国产精品国语自产拍在线观看 | 91精品国产91 | 永久免费未满 | 91精品国产综合久久久久 | 天天久久综合 | 国产在线伊人 | 日韩中文字幕综合 | a级片免费观看 | 性视频免费 | 96国产在线 | 欧美黄网站 | 亚洲最大成人综合网 | 天堂一区二区三区四区 | 国产精品美女在线 | 亚洲成年人免费观看 | 国产午夜久久久 | 黄色日批 | 亲子伦视频一区二区三区 | 香蕉综合视频 | av导航大全| 午夜免费播放观看在线视频 | 国产综合在线观看 | 伊人啪啪 | 91爱爱.com | 国产精品一区三区 | 天天操夜夜操 | 久av在线| 国产精品1000部啪视频 | 亚洲av综合一区二区 | 一本无码aⅴ久久久国产 | 亚洲AV乱码国产精品观看麻豆 | 熟女高潮一区二区三区 | 国产亚洲精品久久久久久打不开 | 人人爱人人草 | 91丝袜| 夫妻毛片 | 136fldh导航福利微拍 | 久久久精品免费 | 成人福利在线播放 | 欧美精品一区二区免费看 | 不卡中文一二三区 | 少妇29p| 亚洲天堂五月天 |