chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

磁盤中RocketMQ構(gòu)建的索引結(jié)構(gòu)

OSC開源社區(qū) ? 來(lái)源: 阿里云云原生 ? 2023-12-22 10:43 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

消息系統(tǒng)中隨機(jī)索引的特點(diǎn)

Cloud Native

RocketMQ 廣泛使用于各類業(yè)務(wù)場(chǎng)景中,在實(shí)際生產(chǎn)場(chǎng)景中,用戶通常會(huì)選擇消息 ID 或者特定的業(yè)務(wù) Key(例如學(xué)號(hào),訂單號(hào))來(lái)查詢和定位特定的一批消息,進(jìn)而定位分布式系統(tǒng)中的復(fù)雜問(wèn)題。傳統(tǒng)方案下,消息索引的存儲(chǔ)是基于數(shù)據(jù)庫(kù)系統(tǒng)或者基于本地文件系統(tǒng)實(shí)現(xiàn)的,受限于磁盤容量,很難滿足海量數(shù)據(jù)的寫入訴求。 在云原生場(chǎng)景下,對(duì)象存儲(chǔ)能夠?yàn)橛脩籼峁椥院桶戳扛顿M(fèi)的能力,有效降低存儲(chǔ)成本,但對(duì)隨機(jī)讀寫的支持不夠友好。RocketMQ 的隊(duì)列模型中寫入的數(shù)據(jù)是按時(shí)間近似有序的,對(duì)于隨機(jī)索引熱數(shù)據(jù)實(shí)現(xiàn)了 non-stop write 的特性,同時(shí)支持冷熱分離,使用異步歸整的方式冷數(shù)據(jù)轉(zhuǎn)移到更廉價(jià)存儲(chǔ)系統(tǒng)中。

磁盤中 RocketMQ 構(gòu)建的索引結(jié)構(gòu)

Cloud Native

索引是一種以空間換時(shí)間的支持快速存儲(chǔ)和查找的高效數(shù)據(jù)結(jié)構(gòu)。我們來(lái)看看 RocketMQ 的索引文件的結(jié)構(gòu)設(shè)計(jì)。RocketMQ 的索引文件文件結(jié)構(gòu)采用三段式結(jié)構(gòu)基于頭插法的 HashTable 設(shè)計(jì)的。該索引文件存儲(chǔ)結(jié)構(gòu)具有查詢速度快、占用空間小、易于維護(hù)等特點(diǎn),但是隨著數(shù)據(jù)量的增加,本地索引文件數(shù)量也會(huì)不斷增加。

分別為:索引頭部(IndexHeader),索引槽(Slots),索引條目(IndexItems)。

fb42d4c8-9ff8-11ee-8b88-92fbcf53809c.png

索引文件結(jié)構(gòu)

Hash 沖突的索引通過(guò)單向鏈表進(jìn)行連接,索引條目采取文件末尾追加寫入的方式提升寫入性能: 1. 索引頭部(IndexHeader)包含了該索引文件的元數(shù)據(jù)信息,其中包括了 MagicCode 用來(lái)判斷文件的起始位置。開始時(shí)間戳(startTimeStamp)和結(jié)束時(shí)間戳(endTimeStamp)表示了索引存儲(chǔ)的時(shí)間區(qū)間范圍。然后還包括了該文件已經(jīng)使用的索引槽數(shù)量(hashSlotCount)和已經(jīng)存儲(chǔ)的索引數(shù)量(indexCount)。 2. 索引槽(Slots)為固定數(shù)量,其中存儲(chǔ)了產(chǎn)生哈希沖突的索引索引的頭節(jié)點(diǎn)所在的位置,通過(guò)哈希映射得到哈希值,然后哈希值對(duì)索引槽(Slots)數(shù)量進(jìn)行取余得到索引具體的槽的位置,可以看作鏈表的頭節(jié)點(diǎn)。 3. 索引條目(IndexItems)存儲(chǔ)了每個(gè)索引具體存儲(chǔ)的數(shù)據(jù),消息隊(duì)列發(fā)送的消息最后都存儲(chǔ)在一個(gè)特定topic的一個(gè)隊(duì)列的一個(gè)叫做 CommitLog 的文件中,因此每個(gè)索引條目都包含了 topicId,QueueId,Offset,Size 等信息來(lái)定位到實(shí)際消息在 CommitLog 中的存儲(chǔ)位置。

fb8e20cc-9ff8-11ee-8b88-92fbcf53809c.png

IndexItem

索引文件數(shù)據(jù)格式轉(zhuǎn)換 Compact

Cloud Native

在 RocketMQ 中,由于索引模塊是一個(gè)寫多讀極少零更新的結(jié)構(gòu),因此為了降低系統(tǒng)整體的平均操作代價(jià),單次讀有一些讀放大的開銷是可以接受的。假設(shè)消息索引寫入時(shí)間開銷需要 t1,平均每條消息索引在經(jīng)過(guò) t2 之后被查詢,格式轉(zhuǎn)換時(shí)間開銷為 t_compact,通常 t_compact 遠(yuǎn)遠(yuǎn)小于 t2,因此 t_compact 可以在 t2 時(shí)間內(nèi)異步完成,格式轉(zhuǎn)換前消息索引查詢時(shí)間為 t_before,格式轉(zhuǎn)換后的消息索引平均查詢時(shí)間開銷為 t_after,格式轉(zhuǎn)換后消息索引平均查詢時(shí)間開銷小于格式轉(zhuǎn)換后查詢時(shí)間開銷 t_before < t_after,那么不進(jìn)行格式轉(zhuǎn)換數(shù)據(jù)存儲(chǔ)查詢時(shí)間開銷大于進(jìn)行了格式轉(zhuǎn)換后存儲(chǔ)查詢時(shí)間開銷 。

t1 + t2 + t_before > t1 + t2 + t_after。

fbd55a78-9ff8-11ee-8b88-92fbcf53809c.png

時(shí)間軸 RocketMQ 索引文件使用基于頭插法實(shí)現(xiàn)的開鏈的 HashTable,在索引寫入時(shí)可以順序?qū)懭搿H欢?,在進(jìn)行指定 key 查詢時(shí),由于使用的是單向鏈表,對(duì) key 進(jìn)行 hash 到指定 slot 并獲取到鏈表頭節(jié)點(diǎn),然后根據(jù)鏈表頭節(jié)點(diǎn)遍歷單向鏈表屬于隨機(jī) IO 查詢,對(duì)象存儲(chǔ)類似于機(jī)械硬盤的特性,讀取 20 Bytes 和讀取數(shù) KB 時(shí)間幾乎相同,多次隨機(jī) IO 會(huì)造成較大的時(shí)間開銷,因此在較多 Hash 沖突時(shí)可能存在嚴(yán)重的數(shù)據(jù)讀放大問(wèn)題。 為了減少對(duì)象存儲(chǔ)文件的隨機(jī)查詢?cè)L問(wèn)次數(shù),多級(jí)存儲(chǔ)異步對(duì)索引文件數(shù)據(jù)格式轉(zhuǎn)換,格式轉(zhuǎn)換后的索引文件可以一次性取回大塊數(shù)據(jù),可以極大的減少對(duì)對(duì)象存儲(chǔ)文件的 IO 訪問(wèn)次數(shù)。 具體地,隨機(jī)索引異步重排機(jī)制包括以下步驟:

1. 將本地索引文件按照映射后的 slot 槽為單位進(jìn)行分組,每組包含一定數(shù)量的索引項(xiàng)。

2. 對(duì)相同的組按照順序?qū)懭胄碌乃饕募?,同一個(gè)槽對(duì)應(yīng)的組的索引項(xiàng)在物理地址空間上是連續(xù)的數(shù)組。

3. 在需要查詢時(shí),根據(jù)要查詢的 key 的 hash 值,映射到指定的槽,然后槽的位置存儲(chǔ)了數(shù)組的首地址,通過(guò)遍歷數(shù)組,確定需要查詢索引。 通過(guò)這種方式,可以大大減少在對(duì)象存儲(chǔ)中進(jìn)行的隨機(jī)查詢操作,從而提高查詢效率,降低時(shí)間開銷。同時(shí),由于本地索引文件需要進(jìn)行格式轉(zhuǎn)換和分組,因此也需要一定的計(jì)算和存儲(chǔ)資源。

fc17469a-9ff8-11ee-8b88-92fbcf53809c.png

格式轉(zhuǎn)換前

fc6b8eb2-9ff8-11ee-8b88-92fbcf53809c.png

格式轉(zhuǎn)換后 重排后的索引文件,將物理地址不連續(xù)的鏈表重新排列成了物理地址連續(xù)的數(shù)組,每個(gè) SlotItem 的 8 個(gè)字節(jié),前 4 個(gè)字節(jié)用來(lái)記錄數(shù)組的首地址,后 4 個(gè)字節(jié)用于記錄數(shù)組的長(zhǎng)度。這樣的格式轉(zhuǎn)換有以下幾個(gè)好處。

這樣后續(xù)對(duì)索引的讀取從鏈表的隨機(jī) IO 變成了數(shù)組順序 IO。降低了隨機(jī) IO 帶來(lái)的時(shí)間開銷。

可以利用空間局部性,增加內(nèi)存 pageCache 的緩存命中率。

單個(gè)索引文件的狀態(tài)變化

Cloud Native

fcbdb5b6-9ff8-11ee-8b88-92fbcf53809c.png

單個(gè)索引文件生命周期

單個(gè)索引文件的容量是有限的。當(dāng)有許多索引進(jìn)行寫入時(shí),一個(gè)索引文件達(dá)到了能夠存儲(chǔ)的最大索引數(shù)量后,需要新建一個(gè)索引文件,繼續(xù)寫入。因此一個(gè)文件從創(chuàng)建到銷毀都會(huì)經(jīng)歷新建文件,Compact 文件,上傳成為對(duì)象存儲(chǔ)文件,過(guò)期銷毀等階段。

當(dāng)一個(gè)“正在寫入文件”狀態(tài)的索引文件完全寫滿后,需要將其標(biāo)記為“Compact文件”狀態(tài)。Compact 文件狀態(tài)意味著該文件已經(jīng)不再需要被寫入并且已經(jīng) Compact 完成,但是仍然需要被保留以便后續(xù)上傳到對(duì)象存儲(chǔ)。此時(shí),可以通過(guò)將該文件上傳到對(duì)象存儲(chǔ)系統(tǒng)進(jìn)行存儲(chǔ),并將其標(biāo)記為“對(duì)象存儲(chǔ)文件”狀態(tài)。因此也對(duì)應(yīng)了文件的三種狀態(tài),unsealed, compacted, upload。

多個(gè)索引文件存儲(chǔ)模型

Cloud Native

fd0580f8-9ff8-11ee-8b88-92fbcf53809c.png

為了實(shí)現(xiàn) Non-Stop Write 的特性,提高索引的寫入性能,設(shè)計(jì)劃分了三種不同的線程進(jìn)行相互協(xié)作。他們分別為寫入線程,索引查詢線程和后臺(tái)定時(shí)任務(wù)線程。他們各自負(fù)責(zé)不同的任務(wù),并且通過(guò)讀寫鎖來(lái)保證并發(fā)條件下正確性。消息隊(duì)列是一個(gè)按時(shí)間近似有序的存儲(chǔ)系統(tǒng),不同的索引文件存儲(chǔ)了不同時(shí)間段的索引,因此可以按照時(shí)間的近似有序性來(lái)管理多個(gè)文件。采用跳表數(shù)據(jù)結(jié)構(gòu)進(jìn)行管理,可以很方便的支持快速的定位查找和區(qū)間查詢。

1. 寫入線程

是非阻塞的,它的職責(zé)是將索引寫入到隊(duì)列尾部的處于正在寫入狀態(tài)的文件。當(dāng)一個(gè)文件寫滿后,該線程會(huì)自動(dòng)在隊(duì)列尾部新建一個(gè)文件,并切換到下一個(gè)文件進(jìn)行寫入。為了提高寫入效率,該線程在將索引寫入文件時(shí)還負(fù)責(zé)將索引緩存在內(nèi)存中,當(dāng)緩存達(dá)到一定數(shù)量后再將其批量寫入到文件中,以減少磁盤 IO 次數(shù)。

2. 索引查詢線程

可以查詢處于不同狀態(tài)的索引文件具體查詢策略如下:

fd6e7658-9ff8-11ee-8b88-92fbcf53809c.png

對(duì)于處于正在寫入狀態(tài)的文件,查詢線程需要等待寫入線程將索引寫入完成后才能進(jìn)行查詢;對(duì)于已經(jīng)寫滿的文件,查詢線程可以直接對(duì)其進(jìn)行查詢;對(duì)于已經(jīng) Compact 的文件,查詢線程也直接從本地文件進(jìn)行查詢。

對(duì)于上傳到對(duì)象存儲(chǔ)的文件,可以直接從對(duì)象存儲(chǔ)中讀取其數(shù)據(jù),對(duì) Compact 后格式的索引文件進(jìn)行查詢。

3. 后臺(tái)定時(shí)任務(wù)線程

主要負(fù)責(zé)對(duì)正在處于寫入狀態(tài)的文件并且已經(jīng)寫滿的文件進(jìn)行 Compact 操作。在進(jìn)行 Compact 操作時(shí),該線程需要先獲取對(duì)應(yīng)文件的讀寫鎖,以避免其他線程對(duì)該文件的并發(fā)訪問(wèn)。Compact 完成后切換該文件的狀態(tài)為 Compact 完成,然后需要將 Compact 過(guò)的文件上傳到對(duì)象存儲(chǔ)成為對(duì)象存儲(chǔ)文件,上傳完將文件狀態(tài)切換成已上傳狀態(tài)。在上傳過(guò)程中,該線程需要釋放對(duì)該文件的讀寫鎖。

系統(tǒng)層次設(shè)計(jì)

Cloud Native

fdc10436-9ff8-11ee-8b88-92fbcf53809c.png

為了提高系統(tǒng)的可擴(kuò)展性和方便編寫單元測(cè)試,整個(gè)索引服務(wù)采用了層次設(shè)計(jì)的思想,自頂向下,分別設(shè)計(jì)了索引服務(wù)層、索引文件解析層和數(shù)據(jù)存儲(chǔ)層。不同的層負(fù)責(zé)處理不同的任務(wù),層與層之間解耦合,上層只依賴下層提供的服務(wù)。

索引服務(wù)層:該層為 RocketMQ 提供消息索引服務(wù),它的職責(zé)是負(fù)責(zé)消息索引的存儲(chǔ)和查詢,同時(shí)負(fù)責(zé)索引文件的生命周期管理,包括創(chuàng)建索引文件、Compact 文件、上傳文件,銷毀文件等。

索引文件解析層:該層主要針對(duì)單個(gè)處于不同狀態(tài)的索引文件進(jìn)行格式解析,同時(shí)提供單個(gè)文件的 KV 查詢和存儲(chǔ)服務(wù)。具體而言,該層負(fù)責(zé)讀取索引文件中的數(shù)據(jù),并將其解析為可讀格式,以供上層調(diào)用。

數(shù)據(jù)存儲(chǔ)層:該層負(fù)責(zé)二進(jìn)制流數(shù)據(jù)的寫入和讀取,支持不同類型的存儲(chǔ)方式,包括對(duì)象存儲(chǔ)、本地磁盤文件、或者數(shù)據(jù)庫(kù)文件等。具體而言,該層將數(shù)據(jù)存儲(chǔ)在本地磁盤或?qū)ο蟠鎯?chǔ)中或數(shù)據(jù)庫(kù)文件。在讀取數(shù)據(jù)時(shí),該層負(fù)責(zé)從本地磁盤或?qū)ο蟠鎯?chǔ)中獲取數(shù)據(jù),并將其轉(zhuǎn)換為二進(jìn)制流數(shù)據(jù)返回給調(diào)用方。

通過(guò)采用層次設(shè)計(jì)的思想,將整個(gè)索引服務(wù)劃分為三個(gè)不同的層次,使得系統(tǒng)具有良好的可擴(kuò)展性和可維護(hù)性,方便后續(xù)升級(jí)和維護(hù)。同時(shí),各層次之間解耦合,職責(zé)明確,方便進(jìn)行單元測(cè)試和維護(hù)。

高可用的系統(tǒng)宕機(jī)恢復(fù)流程設(shè)計(jì)

Cloud Native

由于索引文件有不同的狀態(tài),通過(guò)跳表的數(shù)據(jù)結(jié)構(gòu)進(jìn)行管理和維護(hù),在系統(tǒng)宕機(jī)狀態(tài)下,需要對(duì)處于不同狀態(tài)的索引文件進(jìn)行恢復(fù)。為此,我們采用了分類分文件夾進(jìn)行管理,通過(guò)文件夾名稱來(lái)對(duì)不同狀態(tài)的索引文件進(jìn)行管理和記錄。

在進(jìn)行宕機(jī)恢復(fù)時(shí),我們采用了以下流程設(shè)計(jì):

1. 在系統(tǒng)重新啟動(dòng)后,讀取存儲(chǔ)在系統(tǒng)中的文件夾名稱列表,該列表中包含了所有處于不同狀態(tài)的索引文件所對(duì)應(yīng)的文件夾名稱。

2. 通過(guò)文件夾名稱列表,依次讀取每個(gè)文件夾下的索引文件,并將這些索引文件加載到內(nèi)存中,重新構(gòu)建跳表。

3. 根據(jù)文件夾名稱以及其對(duì)應(yīng)的索引文件,恢復(fù)當(dāng)前文件所處的狀態(tài)。例如,如果文件夾名稱為 “writing”,則表示該文件夾下的索引文件正處于寫入狀態(tài),需要根據(jù)寫入狀態(tài)進(jìn)行相應(yīng)的處理。

與其他系統(tǒng)的對(duì)比

Cloud Native

Rocksdb 是基于 Google LevelDB 研發(fā)的高性能 kv 持久化存儲(chǔ)引擎。RocksDB 使用 Log-Structured Merge(LSM)trees 作為基本的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)。當(dāng)數(shù)據(jù)寫入 RocksDB 的時(shí)候,首先會(huì)寫入到內(nèi)存中的 MemTable 并持久化道磁盤上的 Write-Ahead-Log (WAL) 文件上。

每當(dāng) MemTable 緩存數(shù)據(jù)量達(dá)到預(yù)設(shè)值,MemTable 與 WAL 將會(huì)轉(zhuǎn)為不可變狀態(tài),同時(shí)分配新的 MemTable 與 WAL 用于后續(xù)寫入,接著對(duì)不可變 MemTable 中相同 key 進(jìn)行 (merge),LSM tree 有多個(gè)層級(jí) (Level),每個(gè)層級(jí)由多個(gè) SSTable 組成,最新的 SSTable 都會(huì)放置在最底層,下層的 SSTable 通過(guò)異步壓縮(Compaction)操作創(chuàng)建。

每層的 SSTable 總大小由配置參數(shù)決定,當(dāng) L 層數(shù)據(jù)大小超出預(yù)設(shè)值,會(huì)選擇 L 層的 SSTable 與 L+1 層的SSTable 重疊部分合并,通過(guò)重復(fù)這一過(guò)程優(yōu)化數(shù)據(jù)的讀性能,但 Compaction 這個(gè)動(dòng)作會(huì)帶來(lái)較大的讀寫放大。

MySQL InnoDB 是一種事務(wù)型存儲(chǔ)引擎。它提供了高性能、高可靠性和高并發(fā)性的特性,底層采用 B+ 樹進(jìn)行實(shí)現(xiàn),數(shù)據(jù)文件本身就是索引文件。為了解決宕機(jī)時(shí)數(shù)據(jù)丟失的問(wèn)題,InnoDB 采用了 RedoLog 同步記錄寫行為。因?yàn)?RedoLog 是順序?qū)懭?,因此寫入的效率很高,?shù)據(jù)將會(huì)先寫入緩存和 RedoLog 中。 最后數(shù)據(jù)會(huì)異步再?gòu)?RedoLog 寫入 B+ 樹中。由于 B+ 樹的層次結(jié)構(gòu)導(dǎo)致能夠支持的索引數(shù)量是有上限的,例如單表超過(guò)數(shù)億級(jí)別的記錄時(shí)就會(huì)產(chǎn)生顯著的性能下降。同時(shí) B+ 樹葉子結(jié)點(diǎn)的分裂與合并也會(huì)帶來(lái)較多的讀寫開銷。

RocketMQ 本身是一個(gè)寫多讀少零更新并且按時(shí)間近似有序的存儲(chǔ)系統(tǒng)。因此 RocketMQ 可以按照時(shí)間簡(jiǎn)單高效地進(jìn)行冷熱分離存儲(chǔ)。也支持異步的文件格式轉(zhuǎn)換來(lái)降低系統(tǒng)整體時(shí)間開銷。

還有待改進(jìn)的地方

Cloud Native

當(dāng)前的索引設(shè)計(jì)簡(jiǎn)單可靠,但還有一些設(shè)計(jì)上的不足之處。例如:當(dāng)前通常消息隊(duì)列通過(guò) key 查詢消息時(shí),還會(huì)有一個(gè) maxCount 參數(shù),由于對(duì)不同的索引文件查詢時(shí)并發(fā)的,當(dāng)前系統(tǒng)的實(shí)現(xiàn)存在缺陷,可能需要查詢完所有的索引文件,然后對(duì)結(jié)果進(jìn)行匯總,判斷是否達(dá)到 maxCount 參數(shù)指定的索引數(shù)量。

當(dāng)存在較多的索引文件時(shí),這樣可能存在潛在的大量查詢帶來(lái)多余的時(shí)間開銷。因此一個(gè)合理的解決方式是我們需要一個(gè)多線程全局的計(jì)數(shù)器,當(dāng)滿足 maxCount 時(shí),可以停止對(duì)后續(xù)多余的索引文件進(jìn)行查詢。這里涉及到多線程訪問(wèn)時(shí)可能出現(xiàn)的線程安全問(wèn)題。

本消息隊(duì)列多級(jí)存儲(chǔ)索引模塊提供 kv 數(shù)據(jù)查詢和存儲(chǔ),可以對(duì)索引條目(indexItem)進(jìn)行重新設(shè)計(jì),可以使本系統(tǒng)遷移到其他系統(tǒng),為其他系統(tǒng)提供索引服務(wù)。只需要新增一個(gè)類將 indexItem 作為父類繼承,重寫相關(guān)函數(shù),添加自定義字段,就可以實(shí)現(xiàn)對(duì)其他系統(tǒng)提供索引服務(wù)。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 模塊
    +關(guān)注

    關(guān)注

    7

    文章

    2822

    瀏覽量

    52798
  • 磁盤
    +關(guān)注

    關(guān)注

    1

    文章

    394

    瀏覽量

    26292
  • 文件
    +關(guān)注

    關(guān)注

    1

    文章

    587

    瀏覽量

    25917
  • 分布式系統(tǒng)
    +關(guān)注

    關(guān)注

    0

    文章

    150

    瀏覽量

    19824

原文標(biāo)題:RocketMQ中冷熱分離的隨機(jī)索引模塊詳解

文章出處:【微信號(hào):OSC開源社區(qū),微信公眾號(hào):OSC開源社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    RocketMQ入門手冊(cè)

    RocketMQ入門篇
    發(fā)表于 10-09 14:13

    Rocketmq怎么安裝

    Rocketmq 安裝步驟
    發(fā)表于 10-24 07:47

    基于R*-tree的時(shí)空數(shù)據(jù)庫(kù)索引VC-tree

    時(shí)空數(shù)據(jù)的索引結(jié)構(gòu),HR-tree可以高效處理時(shí)間片查詢,但對(duì)時(shí)間段查詢效率低下,同時(shí)存在存儲(chǔ)冗余。3D-tree索引的效率較低,雙樹結(jié)構(gòu)
    發(fā)表于 04-06 08:57 ?11次下載

    磁盤存儲(chǔ)器的結(jié)構(gòu)及原理

    磁盤存儲(chǔ)器的結(jié)構(gòu)及原理        磁盤存儲(chǔ)器磁盤
    發(fā)表于 12-18 11:09 ?4031次閱讀

    基于分段哈希碼的倒排索引結(jié)構(gòu)

    處理,對(duì)每段哈希碼維護(hù)一個(gè)倒排索引結(jié)構(gòu),并結(jié)合高效的布隆過(guò)濾器構(gòu)建哈希索引結(jié)構(gòu)。為了進(jìn)一步提高檢索準(zhǔn)確性,設(shè)計(jì)了一種準(zhǔn)確的排序融合算法,對(duì)
    發(fā)表于 11-28 17:40 ?0次下載
    基于分段哈希碼的倒排<b class='flag-5'>索引</b>樹<b class='flag-5'>結(jié)構(gòu)</b>

    基于圖形數(shù)據(jù)庫(kù)構(gòu)建可持久化索引的方法

    可搜索加密技術(shù)提供了對(duì)加密文件的關(guān)鍵詞搜索能力,但是無(wú)法有效對(duì)云環(huán)境中海量文件形成的巨大索引進(jìn)行操作。在樹形索引的基礎(chǔ)上,提出基于圖形數(shù)據(jù)庫(kù)構(gòu)建可持久化索引的方法。設(shè)計(jì)了新型
    發(fā)表于 12-04 16:00 ?0次下載
    基于圖形數(shù)據(jù)庫(kù)<b class='flag-5'>構(gòu)建</b>可持久化<b class='flag-5'>索引</b>的方法

    基于KD樹和R樹的多維索引結(jié)構(gòu)

    針對(duì)云存儲(chǔ)系統(tǒng)大多基于鍵值對(duì) key,value模型存儲(chǔ)數(shù)據(jù),多維查詢需要對(duì)整個(gè)數(shù)據(jù)集進(jìn)行完全掃描,查詢效率較低的問(wèn)題,提出了一種基于KD樹和R樹的多維索引結(jié)構(gòu)(簡(jiǎn)稱KD-R索引)。KD-R
    發(fā)表于 01-25 15:13 ?0次下載
    基于KD樹和R樹的多維<b class='flag-5'>索引</b><b class='flag-5'>結(jié)構(gòu)</b>

    展望Apache RocketMQ5.0 | 談RocketMQ的過(guò)去、現(xiàn)在和未來(lái)

    RocketMQ 創(chuàng)始人,阿里巴巴中間件高級(jí)技術(shù)專家 馮嘉 向開發(fā)者們分享了Apache RocketMQ 的過(guò)去、現(xiàn)在和未來(lái),以及對(duì)RocketMQ5.0的展望。本文是根據(jù)馮嘉的現(xiàn)場(chǎng)分享所整理,為大家回顧分享
    發(fā)表于 08-14 16:37 ?337次閱讀

    基于POI分布的空間索引結(jié)構(gòu)TDG

    基于POI分布的空間索引結(jié)構(gòu)TDG
    發(fā)表于 06-25 15:56 ?10次下載

    開源軟件-RocketMQ Externals Apache RocketMQ的擴(kuò)展項(xiàng)目

    ./oschina_soft/rocketmq-externals.zip
    發(fā)表于 06-23 15:03 ?0次下載
    開源軟件-<b class='flag-5'>RocketMQ</b> Externals Apache <b class='flag-5'>RocketMQ</b>的擴(kuò)展項(xiàng)目

    聊聊RocketMQ的主從復(fù)制

    RocketMQ 主從復(fù)制是 RocketMQ 高可用機(jī)制之一,數(shù)據(jù)可以從主節(jié)點(diǎn)復(fù)制到一個(gè)或多個(gè)從節(jié)點(diǎn)。
    的頭像 發(fā)表于 07-04 09:42 ?1455次閱讀
    聊聊<b class='flag-5'>RocketMQ</b>的主從復(fù)制

    MySQL為什么選擇B+樹作為索引結(jié)構(gòu)?

    在MySQL,無(wú)論是Innodb還是MyIsam,都使用了B+樹作索引結(jié)構(gòu)(這里不考慮hash等其他索引)。本文將從最普通的二叉查找樹開始,逐步說(shuō)明各種樹解決的問(wèn)題以及面臨的新問(wèn)題,
    的頭像 發(fā)表于 07-20 11:28 ?1517次閱讀
    MySQL為什么選擇B+樹作為<b class='flag-5'>索引</b><b class='flag-5'>結(jié)構(gòu)</b>?

    RocketMQ和RabbitMQ的區(qū)別

    化:RocketMQ將消息存儲(chǔ)在磁盤上,保證消息的可靠性;RabbitMQ默認(rèn)將消息保存在內(nèi)存,可以通過(guò)插件進(jìn)行持久化。 可用性:RocketMQ具備分布
    的頭像 發(fā)表于 07-24 13:39 ?1.5w次閱讀

    磁盤I/O是怎么工作的

    1. 索引節(jié)點(diǎn)和目錄項(xiàng) Linux的一切都由統(tǒng)一的文件系統(tǒng)來(lái)管理,包括普通的文件和目錄,以及塊設(shè)備、套接字、管道等。Linux文件系統(tǒng)為每個(gè)文件都分配了兩個(gè)數(shù)據(jù)結(jié)構(gòu)索引節(jié)點(diǎn)(in
    的頭像 發(fā)表于 11-13 11:20 ?1669次閱讀
    <b class='flag-5'>磁盤</b>I/O是怎么工作的

    RocketMQ協(xié)議是什么?RocketMQ協(xié)議特點(diǎn)

    RocketMQ是由阿里巴巴開發(fā)的開源分布式消息和流處理平臺(tái)。它提供可靠、可擴(kuò)展和高性能的消息傳輸和實(shí)時(shí)處理解決方案。 RocketMQ使用一種名為RocketMQ協(xié)議的通信協(xié)議。該協(xié)議旨在促進(jìn)
    的頭像 發(fā)表于 01-03 16:11 ?1451次閱讀