倒排表在磁碟上的布局

2021-06-03 08:50:16 字數 510 閱讀 5636

由於倒排表的大小一般都很大,所以大部分搜尋引擎都將倒排表儲存在磁碟上。

下圖是乙個倒排表的總體結構布局:

磁碟是由乙個個資料塊(block,大小固定,例如64kb)組成的。倒排表中的乙個列表(乙個單詞對應的列表)可能跨越多個block,開始於某個block中的某處,結束於另外乙個block的某處。block是從磁碟訪問資料的最小單元,也是在記憶體中快取倒排表的單位。

如圖可見,每個block中包含很多個來自於乙個或多個列表中的posting(posting是乙個列表中的元素)。這些postings會繼續被分成chunk。例如,我們可能將每個列表分割成chunk,其中每個chunk中有128個元素。每個block的開始包含了一些元資料(metadata),元資料記錄了本block包含多少個倒排列表,它們的起始位置。大部分情況下每個chunk中分開儲存128個文件id、128個單詞頻率和位置資訊。chunk是我們進行壓縮和解壓縮的單位。(這樣的組織,可以讓我們首先解碼文件id,進而決定是否需要解壓頻率和位置資訊)

下圖是搜尋引擎的兩層快取結構

資料在磁碟上的布局

dos分割槽是目前常用的一種分割槽方式,其磁碟資料分布描述如下 第乙個扇區是主引導分割槽mbr,mbr描述了磁碟分割槽的結構,mbr的內容包括引導 和分割槽表資訊,最後以標誌0xaa55結尾。mbr中的引導 是在bios啟動之後首先得到執行的 通常引導 會檢查磁碟分割槽表,並且判斷哪個分割槽是啟動分...

多個MUST的倒排表合併

skiplist本質上是在有序的鍊錶上實現實現二分查詢,它能有效的提公升鍊錶的查詢效率,其時間複雜度為o logn 其中n為鍊錶長度 簡單說skiplist優化了postings的隨機查詢的效能問題。skiplist的節點儲存了三部分資料,分別是當前節點指向block的資訊,是關於block本身的資...

磁碟分割槽,檔案在磁碟上的儲存

一 磁碟物理結構 碟片 機械手臂 磁頭 主軸馬達 磁碟構成描述 磁軌 扇區 柱面 主引導扇區 0磁軌0柱面1扇區,分為 1 主引導記錄mbr 2 分割槽表dpt共64位元組 每個分割槽資訊佔16位元組,故最多四個分割槽 想要實現更多分割槽,可利用擴充套件分割槽 指向乙個更大空間存更多分割槽資訊 建立...