log 檔案位於core\src\main\scala\kafka\log\log.scala 目錄下。
改檔案定義了10個類和物件:
loglog伴生物件定義一些常量輔助方法。
log 類是log檔案最核心部分。
rollparams
定義控制日誌段是否切分的資料結構,對應的伴生物件也是對應的工廠方法。
logmetricnames
對應log物件的監測指標。
logoffsetsnapshot
封裝分割槽所有位移元資料的容器類。
logreadinfo
封裝讀取日誌資料和返回的元資料。
completedtxn
記錄已完成的事務的元資料,主要用於構建事務索引。
object log
class log(
@volatile
var dir: file,
@volatile
var config: logconfig,
@volatile
var logstartoffset:
long
,@volatile
var recoverypoint:
long
, scheduler: scheduler,
brokertopicstats: brokertopicstats,
val time: time,
val maxproduceridexpirationms:
int,
val produceridexpirationcheckintervalms:
int,
val topicpartition: topicpartition,
val producerstatemanager: producerstatemanager,
logdi***ilurechannel: logdi***ilurechannel)
extends logging with kafkametricsgroup
dir 是日誌所在資料夾路徑,logstartoffset是日誌當前對外可見的最早一條訊息的位移值,這兩個變數都是var 的,可以多執行緒更新。還有一種位移log end offset(leo) ,它是表示日誌下一條待插入訊息的位移值,如下圖所示:
Linux scheduler 排程原始碼初步閱讀
schedule 流程 可排程實體的vruntime load計算 為什麼要先看fork的源 呢?因為在schedule函式裡面一開始我就有點看不懂 cpu smp processor id 按理來說很好理解呀,不就是獲取當前的cpu的id嗎?但是什麼叫做當前?在多處理器的機器上面,當前的定義是什麼...
iscroll原始碼初涉
專案裡面用的是iscroll probe這個版本,具體原因是需要使用定位功能,但是今天學習,還是選軟柿子 iscroll lite 來捏吧。進門第一段 請求動畫幀 var raf window.requestanimationframe window.webkitrequestanimationfr...
wifidog 原始碼初分析(3)
之後 接入裝置 的瀏覽器接收到 wifidog 返回的 302 重定向請求後,會將頁面重定向至 auth server 的 login 頁面,並且在此 url 中會攜帶一些 路由器 閘道器 引數,以及 接入裝置的 mac 位址 和 客戶端訪問的源url 如示例中的 baidu.com 下面幾個步驟就...