fqueue初步分析

2021-09-23 16:43:53 字數 735 閱讀 9593

fqueue是國產的乙個類似memcacheq,kestrel這樣的支援memcached協議的輕量級開源mq。它的專案主頁:

介紹和特點都可以看主頁,我就不廢話了。

今天老大提到, co了原始碼看了下,寫個初步分析報告。

首先是它的儲存層,主要是乙個fqueue這麼乙個抽象佇列,內部實現是fsqueue,也就是基於檔案的fifo佇列。這個佇列是多個檔案組成的。每個檔案預設大小在150m,超過即切換乙個新檔案來寫。讀的時候如果讀到尾部,則查詢下乙個檔案進行讀取。資料檔名以idb為字尾,並且從編號1開始遞增,除了資料檔案外,每個佇列還有個db為字尾的索引檔案,記錄當前寫和讀的資料檔案編號和偏移量。目錄結構大概是這樣:

--fqueue

--fqueuedata_1.idb

--fqueuedata_2.idb

--……

--icqueue.db

檔案的儲存比較有特色,採用

/*** 關閉索引檔案

*/public

void

close()  

catch

(exception e) 

return

null

=null

;fc 

=null

;dbrandfile 

=null;} 

catch

(ioexception e) }

文章**莊周夢蝶  ,原文發布時間 2011-09-16

android平台初步分析

來自 裡面的目錄結構和unyaffs比較有用。from dexdump latencytop librank nc netperf netserver opcontrol oprofiled pppd procmem procrank scp showmap showslab sqlite3 ssh...

cgroup初步分析(1)

cgroup的功能和作用不廢話,直說一下cgroup的幾條設計準則,有了幾條設計準則的約束,就比較容易理解其中的資料結構和函式,至於源 cgroup.c,無非是兩個內容,一是task struct cgroup css set三個資料結構互相關聯,而是cgroup檔案系統的實現。先看設計準則 問題1...

Linux C 演算法分析初步

提到演算法,必須提到資料結構,我們要知道乙個著名公式 資料結構 演算法 程式 我們先看看下面這張圖 演算法是什麼?演算法是乙個有窮規則 或語句 指令 的有續集和。他確定了解決某一問題的乙個運算序列,簡單的說,就是解決某一問題的步驟描述。一 演算法的特性 1 有窮性 演算法執行的步驟 或規則 是有限的...