六月婷婷AV,国产偷窥猎奇福利二区,日韩三级片。,好吊色网站,日韩成人中文在线视频,国产亚洲午夜啪啪,亚洲欧美另类国产精品,国产成人av1,任你艹在线观看

與 TDengine 性能直接相關(guān)——3.0 的落盤機(jī)制優(yōu)化及使用原則

許多用戶會有一個疑問,“落盤”倆字聽起來就很底層,似乎無法和手頭的性能問題聯(lián)系到一起,本篇文章的目的就是讓大家對它們倆建立起直觀的認(rèn)識。

寫到數(shù)據(jù)庫的數(shù)據(jù)總要保存起來——所以時序數(shù)據(jù)庫(Time Series Database) TDengine 中經(jīng)常提到的“落盤”,其實(shí)指的是內(nèi)存中的數(shù)據(jù)持久化到存儲的過程。在 TDengine 中,對 vnode 的寫入流程如下。(不了解vnode的用戶,建議先移步?https://docs.taosdata.com/tdinternal/arch/

根據(jù)圖中所示:內(nèi)存和硬盤發(fā)生持久化的操作有兩部分,本文的“落盤”指的是右側(cè)標(biāo)紅部分,即是時序數(shù)據(jù)持久化到 $DataDir/vnode/vnodeX/tsdb/ 下數(shù)據(jù)文件的過程。

與 TDengine 性能直接相關(guān)——3.0 的落盤機(jī)制優(yōu)化及使用原則 - TDengine Database 時序數(shù)據(jù)庫

一 . 觸發(fā)邏輯變化:

熟悉 2.0 版本的朋友們都知道,觸發(fā)落盤的機(jī)制有二:

  1. 寫滿該 vnode 三分之一的緩沖池(建庫時指定,2.0 為建庫參數(shù) cache * blocks 的值, 3.0 替換為建庫參數(shù) buffer);
  2. 數(shù)據(jù)庫服務(wù)進(jìn)程停止的時候;

在 3.0 版本,觸發(fā)落盤的機(jī)制變?yōu)椋?/p>

  1. 寫滿該 vnode 三分之一的緩沖池之后,超過“落盤最小間隔”即可自動落盤。出于安全考慮,該參數(shù)沒有提供可配置選項;
  2. 數(shù)據(jù)庫服務(wù)進(jìn)程停止的時候;(3.0.4.0 版本數(shù)據(jù)庫單副本情況下提供)
  3. 提供手動落盤的命令,flush database dbname。

二.架構(gòu)優(yōu)化:

那么它具體都達(dá)成了哪些優(yōu)化呢?

首先,在設(shè)計上 3.0 對落盤功能和過期數(shù)據(jù)檢測做了解耦。

在 2.0 的時候,只有數(shù)據(jù)庫在落盤之后,才會觸發(fā)比對數(shù)據(jù)文件的時間范圍清理過期的文件數(shù)據(jù)的機(jī)制,從而釋放硬盤空間,詳情可參考:《五分鐘掌握TDengine時序數(shù)據(jù)的保留策略》。

自 3.0 版本開始,數(shù)據(jù)庫的過期文件清理依靠 trim database dbname 的命令來完成。到 3.0.3.0 版本,又增加了定時檢測來自動執(zhí)行 trim database。這讓 3.0 的磁盤空間回收變得更加高效及時。

其次,提供手動落盤的命令。令落盤控制更加靈活。此外,由于時序數(shù)據(jù)的壓縮是發(fā)生在落盤階段的,因此對于我們統(tǒng)計數(shù)據(jù)的磁盤實(shí)際占用,計算壓縮率都有很大的幫助。

三.配置優(yōu)化:

1. 落盤時,內(nèi)存中的行式存儲的時序數(shù)據(jù)會被轉(zhuǎn)為列式存儲的數(shù)據(jù)塊,然后執(zhí)行壓縮。因此,形成數(shù)據(jù)塊的過程直接影響著后續(xù)的磁盤占用和查詢效率,這也是 TDengine 性能優(yōu)化最核心的部分之一,它是由數(shù)據(jù)庫的一系列參數(shù)決定的,具體可參考文章《關(guān)于 3.0 和 2.0 的數(shù)據(jù)文件差異以及性能優(yōu)化思路》。

2. TDengine 執(zhí)行落盤的任務(wù)是異步的,這樣當(dāng)寫滿 1 塊緩沖池后,就可以無延遲地利用起來剩余的 2 塊緩沖池。但是如果 buffer 設(shè)置太小,就會導(dǎo)致落盤仍未結(jié)束時,但是已經(jīng)用光了所有三塊緩沖池。這個時候數(shù)據(jù)庫就只能進(jìn)入等待階段,寫入查詢都會受到影響,直到可用的緩沖池返回。

可以看出,在這個環(huán)節(jié)中,緩沖池的大小是十分重要的,這個值由建庫時的 buffer 參數(shù)指定,建庫后可修改(具體可參考:https://docs.taosdata.com/taos-sql/database/)。

3. 另外,如果是落盤線程這一側(cè)到達(dá)瓶頸導(dǎo)致沒有可用的緩沖池返回,則可以選擇增加 numOfCommitThreads 參數(shù)值,這個參數(shù)代表每個節(jié)點(diǎn)上的落盤線程數(shù)量,默認(rèn)等于二分之一的cpu核數(shù)。

具體優(yōu)化方式需要結(jié)合自己的實(shí)際情況決定,如寫入頻率、表寬、性能需求等等。并沒有一項固定參數(shù)的單獨(dú)調(diào)試就可以調(diào)試到最優(yōu)狀態(tài),大家可以結(jié)合歷史多期文章自行調(diào)試,也可以直接聯(lián)系企業(yè)版團(tuán)隊做定制化的優(yōu)化方案。