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 有窮性 演算法執行的步驟 或規則 是有限的...