国产睡熟迷奷白丝护士系列精品,中文色字幕网站,免费h网站在线观看的,亚洲开心激情在线

      <sup id="hb9fh"></sup>
          1. 千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

            手機(jī)站
            千鋒教育

            千鋒學(xué)習(xí)站 | 隨時(shí)隨地免費(fèi)學(xué)

            千鋒教育

            掃一掃進(jìn)入千鋒手機(jī)站

            領(lǐng)取全套視頻
            千鋒教育

            關(guān)注千鋒學(xué)習(xí)站小程序
            隨時(shí)隨地免費(fèi)學(xué)習(xí)課程

            當(dāng)前位置:首頁  >  技術(shù)干貨  > ToplingDB的分布式Compact和RocksDB的RemoteCompaction有什么不同?

            ToplingDB的分布式Compact和RocksDB的RemoteCompaction有什么不同?

            來源:千鋒教育
            發(fā)布人:xqq
            時(shí)間: 2023-10-13 10:47:39 1697165259

            一、ToplingDB的分布式Compact和RocksDB的RemoteCompaction不同之處

            1、可靠性不同

            RocksDB 的 RemoteCompaction:還處在 Experimental 狀態(tài)。ToplingDB 的分布式 Compact:已在托管 Todis 中使用多時(shí),得到了充分的驗(yàn)證。

            2、可觀測(cè)性不同

            RocksDB 的 RemoteCompaction:只能查看 LOG。ToplingDB:通過引擎內(nèi)嵌 Web,支持分布式 Compact 在線觀測(cè)(長(zhǎng)時(shí)間運(yùn)行的演示實(shí)例)。

            3、分布式 Compact 實(shí)現(xiàn)方式不同

            ToplingDB 的分布式 Compact:是通過將整個(gè)數(shù)據(jù)集分為多個(gè)分片,每個(gè)節(jié)點(diǎn)上都進(jìn)行 Partial Compaction 操作來實(shí)現(xiàn)的。Partial Compaction 僅對(duì)每個(gè)分片進(jìn)行壓縮,壓縮完成后,將新的分片發(fā)送給其他節(jié)點(diǎn)進(jìn)行合并,最終形成整體的壓縮結(jié)果。RocksDB 的 Remote Compaction:是將需要壓縮的 SST 文件從源節(jié)點(diǎn)傳輸?shù)侥繕?biāo)節(jié)點(diǎn),并在目標(biāo)節(jié)點(diǎn)上執(zhí)行 Compaction 操作。這種方式允許在遠(yuǎn)程節(jié)點(diǎn)上執(zhí)行 Compaction 操作,在網(wǎng)絡(luò)傳輸和數(shù)據(jù)合并方面也更加有效率。

            4、數(shù)據(jù)傳輸方式不同

            ToplingDB 的分布式 Compact:采用點(diǎn)對(duì)點(diǎn)的方式進(jìn)行數(shù)據(jù)傳輸,即將數(shù)據(jù)塊直接從一個(gè)節(jié)點(diǎn)傳輸?shù)搅硪粋€(gè)節(jié)點(diǎn)進(jìn)行合并。在大規(guī)模分布式集群中,數(shù)據(jù)傳輸復(fù)雜度較高,可能會(huì)影響整個(gè)系統(tǒng)的性能。RocksDB 的 Remote Compaction:通過使用基于 TCP 的流式傳輸協(xié)議來實(shí)現(xiàn)數(shù)據(jù)傳輸。該協(xié)議允許數(shù)據(jù)在網(wǎng)絡(luò)上傳輸時(shí)進(jìn)行壓縮和流式處理,同時(shí)減少了數(shù)據(jù)復(fù)制和存儲(chǔ)所需的空間。

            5、自適應(yīng)壓縮策略不同

            ToplingDB 的分布式 Compact:通過使用自適應(yīng)壓縮策略來調(diào)整 Compaction 操作的執(zhí)行時(shí)間和頻率。該策略根據(jù)定期測(cè)量的讀寫負(fù)載動(dòng)態(tài)調(diào)整 Compaction 的執(zhí)行時(shí)間和頻率,以最大化的優(yōu)化數(shù)據(jù)庫的性能。RocksDB 的 Remote Compaction:則采用了類似的自適應(yīng)壓縮策略,但該策略還考慮了目標(biāo)節(jié)點(diǎn)的 CPU 和磁盤 I/O 負(fù)載等因素,以最小化對(duì)目標(biāo)節(jié)點(diǎn)的負(fù)載影響。

            二、RocksDB介紹

            1、簡(jiǎn)介

            Rocksdb 是基于Google LevelDB研發(fā)的高性能kv持久化存儲(chǔ)引擎,以庫組件形式嵌入程序中,為大規(guī)模分布式應(yīng)用在ssd上運(yùn)行提供優(yōu)化。RocksDB不提供高層級(jí)的操作,例如備份、負(fù)載均衡、快照等,而是選擇提供工具支持將實(shí)現(xiàn)交給上層應(yīng)用。正是這種高度可定制化能力,允許RocksDB對(duì)廣泛的需求和工作負(fù)載場(chǎng)景進(jìn)行定制。

            2、架構(gòu)

            RocksDB 是一個(gè)基于鍵值對(duì)存儲(chǔ)接口的存儲(chǔ)引擎庫,其中鍵和值是任意字節(jié)流。RocksDB 將所有數(shù)據(jù)按排序順序組織起來,常用的操作有Get(key), NewIterator(), Put(key, val), Delete(key), 和SingleDelete(key)。

            RocksDB 的三個(gè)基本結(jié)構(gòu)是memtable、sstfile和logfile。memtable是一種內(nèi)存數(shù)據(jù)結(jié)構(gòu) – 新的寫入被插入到memtable中,并且可以選擇寫入日志文件(又名。Write Ahead Log(WAL))。日志文件是存儲(chǔ)上按順序?qū)懭氲奈募?。?dāng) memtable 填滿時(shí),它會(huì)被刷新到存儲(chǔ)上的sstfile,并且可以安全地刪除相應(yīng)的日志文件。對(duì) sstfile 中的數(shù)據(jù)進(jìn)行排序以方便查找鍵。

            RocksDB使用布隆過濾器來判定鍵在哪個(gè)sst文件中。為了避免隨機(jī)寫,它將數(shù)據(jù)積累到內(nèi)存中的memtable中,然后一次性刷寫到硬盤中。RocksDB的文件是不可變的,一旦生成就不會(huì)繼續(xù)寫該文件。記錄不會(huì)被更新或者刪除,會(huì)生成一個(gè)新文件。這會(huì)在硬盤生成一些多余的數(shù)據(jù),會(huì)需要數(shù)據(jù)庫Compaction(壓縮),Compaction文件會(huì)移除冗余的鍵值對(duì)并騰出空間。

            3、RocskDB和LevelDB的區(qū)別

            RocskDB結(jié)構(gòu)和levelDB大同小異,只是多了一些改進(jìn):

            增加了column family,有了列簇的概念,可把一些相關(guān)的key存儲(chǔ)在一起內(nèi)存中有多個(gè)immute memtalbe,可防止Leveldb中的 write stall(寫停頓)可支持多線程同時(shí)compaction,理論上多線程同時(shí)compction會(huì)比一個(gè)線程compaction要快支持TTL過期淘汰機(jī)制flush與compation分開不同的線程池來調(diào)度,并具有不同的優(yōu)先級(jí),flush要優(yōu)于compation,這樣可以加快flush,防止stall對(duì)SSD存儲(chǔ)做了優(yōu)化,可以以in-memory方式運(yùn)行增加了對(duì) write ahead log(WAL)的管理機(jī)制,更方便管理WAL,WAL是binlog文件支持多種不同的compaction策略

            三、ToplingDB介紹

            1、簡(jiǎn)介

            ToplingDB 是 較好ling 開發(fā)的 KV 存儲(chǔ)引擎,fork 自 RocksDB,進(jìn)行了很多改造,其中一個(gè)最重要的功能是分布式 Compact,將 Compact 從 DB 結(jié)點(diǎn)轉(zhuǎn)移到由多個(gè) DB 共享的計(jì)算集群中執(zhí)行,實(shí)現(xiàn)了降本增效的目的。

            2、Compact 中反查 DB

            在一些應(yīng)用中(例如 pika、kvrocks 等等),CompactionFilter 需要反查 DB(使用 DB::Get) 獲取元數(shù)據(jù),而在 Compact 服務(wù)中,只有 SST,沒有 DB 對(duì)象,這就使得 CompactionFilter 無法在 Compact 服務(wù)中工作。

            在 Todis 中,我們通過事先把 CompactionFilter 反查會(huì)用到的元數(shù)據(jù)撈出來,然后在 Compact 服務(wù)中訪問,代替原本的 DB::Get,為此我們還對(duì) Todis 的數(shù)據(jù)進(jìn)行了針對(duì)性的編碼。

            在 kvrocks 中,因?yàn)閿?shù)據(jù)的組織方式,無法通過編碼在 Compact 服務(wù)中有效地代替原本的 DB::Get,所以,只有 metadata 才能支持分布式 Compact。kvrocks 中各種數(shù)據(jù)類型的 metadata 保存在一起,如果照搬 todis 的方案,事先撈數(shù)據(jù),撈到的元數(shù)據(jù)很可能 99.9% 都是無用的元數(shù)據(jù),例如 compact hash 數(shù)據(jù)時(shí),事先撈出來的元數(shù)據(jù)可能大都是 string 數(shù)據(jù)。

            延伸閱讀1:數(shù)據(jù)庫存儲(chǔ)引擎是什么

            存儲(chǔ)引擎說白了就是如何存儲(chǔ)數(shù)據(jù)、如何為存儲(chǔ)的數(shù)據(jù)建立索引和如何更新、查詢數(shù)據(jù)等技術(shù)的實(shí)現(xiàn)方法。因?yàn)樵陉P(guān)系數(shù)據(jù)庫中數(shù)據(jù)的存儲(chǔ)是以表的形式存儲(chǔ)的,所以存儲(chǔ)引擎也可以稱為表類型(即存儲(chǔ)和操作此表的類型)。在Oracle 和SQL Server等數(shù)據(jù)庫中只有一種存儲(chǔ)引擎,所有數(shù)據(jù)存儲(chǔ)管理機(jī)制都是一樣的。而MySql數(shù)據(jù)庫提供了多種存儲(chǔ)引擎。用戶可以根據(jù)不同的需求為數(shù)據(jù)表選擇不同的存儲(chǔ)引擎,用戶也可以根據(jù)自己的需要編寫自己的存儲(chǔ)引擎。

            聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
            10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
            請(qǐng)您保持通訊暢通,專屬學(xué)習(xí)老師24小時(shí)內(nèi)將與您1V1溝通
            免費(fèi)領(lǐng)取
            今日已有369人領(lǐng)取成功
            劉同學(xué) 138****2860 剛剛成功領(lǐng)取
            王同學(xué) 131****2015 剛剛成功領(lǐng)取
            張同學(xué) 133****4652 剛剛成功領(lǐng)取
            李同學(xué) 135****8607 剛剛成功領(lǐng)取
            楊同學(xué) 132****5667 剛剛成功領(lǐng)取
            岳同學(xué) 134****6652 剛剛成功領(lǐng)取
            梁同學(xué) 157****2950 剛剛成功領(lǐng)取
            劉同學(xué) 189****1015 剛剛成功領(lǐng)取
            張同學(xué) 155****4678 剛剛成功領(lǐng)取
            鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
            董同學(xué) 138****2867 剛剛成功領(lǐng)取
            周同學(xué) 136****3602 剛剛成功領(lǐng)取
            相關(guān)推薦HOT
            Python爬蟲是什么?

            一、爬蟲的基本原理Python爬蟲的基本原理是通過發(fā)送HTTP請(qǐng)求獲取網(wǎng)頁的內(nèi)容,然后解析網(wǎng)頁的結(jié)構(gòu),提取出所需的數(shù)據(jù)。它使用HTTP庫向目標(biāo)網(wǎng)站發(fā)...詳情>>

            2023-10-13 12:34:56
            關(guān)系型數(shù)據(jù)庫的本質(zhì)是什么,mongodb為什么不是關(guān)系型數(shù)據(jù)庫?

            一、關(guān)系型數(shù)據(jù)庫的本質(zhì)是什么,mongodb不是關(guān)系型數(shù)據(jù)庫的原因關(guān)系型數(shù)據(jù)庫的本質(zhì)是“relation”。這里中文翻譯成“關(guān)系”有點(diǎn)籠統(tǒng),因?yàn)檫€有...詳情>>

            2023-10-13 12:28:32
            ORACLE里面LOBINDEX,LOBSEGMENT類型的是什么對(duì)象?

            一、ORACLE里面LOBINDEX,LOBSEGMENT類型的是什么對(duì)象建立含有l(wèi)ob字段的表時(shí),oracle會(huì)自動(dòng)為lob字段建立兩個(gè)單獨(dú)的segment,一個(gè)用來存放數(shù)據(jù),...詳情>>

            2023-10-13 12:19:56
            Lucene/ ElasticSearch這類的搜索引擎和SQL數(shù)據(jù)庫里的查詢/全文檢索有什么區(qū)別?

            一、Lucene/ ElasticSearch這類的搜索引擎和SQL數(shù)據(jù)庫里的查詢/全文檢索的區(qū)別es也可以理解成是一種數(shù)據(jù)庫,不僅能提供全文檢索功能,還可以支...詳情>>

            2023-10-13 12:17:32
            mysql的innodb通過nextkey lock解決了幻讀,為什么還說默認(rèn)隔離級(jí)別是可重復(fù)讀?

            一、解決了幻讀,為什么還說默認(rèn)隔離級(jí)別是可重復(fù)讀MySQL的可重復(fù)讀隔離級(jí)別下是有“bug”的Snapshot Isolation,可以避免非write skew style的...詳情>>

            2023-10-13 12:09:00
            快速通道