![深入淺出實(shí)時(shí)數(shù)據(jù)庫(kù)_第1頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-10/16/5c0f783c-4bbc-44cc-be7a-76f86a20430d/5c0f783c-4bbc-44cc-be7a-76f86a20430d1.gif)
![深入淺出實(shí)時(shí)數(shù)據(jù)庫(kù)_第2頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-10/16/5c0f783c-4bbc-44cc-be7a-76f86a20430d/5c0f783c-4bbc-44cc-be7a-76f86a20430d2.gif)
![深入淺出實(shí)時(shí)數(shù)據(jù)庫(kù)_第3頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-10/16/5c0f783c-4bbc-44cc-be7a-76f86a20430d/5c0f783c-4bbc-44cc-be7a-76f86a20430d3.gif)
![深入淺出實(shí)時(shí)數(shù)據(jù)庫(kù)_第4頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-10/16/5c0f783c-4bbc-44cc-be7a-76f86a20430d/5c0f783c-4bbc-44cc-be7a-76f86a20430d4.gif)
![深入淺出實(shí)時(shí)數(shù)據(jù)庫(kù)_第5頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-10/16/5c0f783c-4bbc-44cc-be7a-76f86a20430d/5c0f783c-4bbc-44cc-be7a-76f86a20430d5.gif)
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、深入淺出實(shí)時(shí)數(shù)據(jù)庫(kù)12.8日版主要介紹如下主題:談到實(shí)時(shí)數(shù)據(jù)庫(kù),暫時(shí)大家還頗感神秘,后面我們將逐漸解開(kāi)面紗,給大家展示一個(gè)真實(shí)的實(shí)時(shí)數(shù)據(jù)庫(kù)世界。先了解概念,再深入原理。說(shuō)道實(shí)時(shí)數(shù)據(jù)庫(kù),當(dāng)時(shí)誕生于美國(guó),隨著流程工業(yè)和航天工業(yè)的發(fā)展,大量的測(cè)量數(shù)據(jù)需要集成和存儲(chǔ),采用關(guān)系數(shù)據(jù)庫(kù)難以滿(mǎn)足速度和容量的要求,而且接口訪問(wèn)復(fù)雜,不適合科研和監(jiān)控的需要,因此80年代中期,開(kāi)始誕生了以工業(yè)監(jiān)控為目的的實(shí)時(shí)數(shù)據(jù)庫(kù)。今天大家看到的一些實(shí)時(shí)數(shù)據(jù)庫(kù),如PI、Uniformance、Infoplus、InSql等工業(yè)監(jiān)控類(lèi)實(shí)時(shí)數(shù)據(jù)庫(kù)均先后誕生于此階段。而當(dāng)時(shí)還有另外一個(gè)分支,即所謂硬實(shí)時(shí)數(shù)據(jù)庫(kù),它的采集速度和響應(yīng)速度均
2、是毫秒級(jí)的,而大家知道,今天大量應(yīng)用實(shí)時(shí)數(shù)據(jù)庫(kù),主動(dòng)采集速度均是秒級(jí)的,響應(yīng)速度也不嚴(yán)格,在Windows平臺(tái)下,小于40ms的響應(yīng)均不準(zhǔn)確,但當(dāng)時(shí)卻有這類(lèi)產(chǎn)品,目前多用于軍事和科研了。到了上世紀(jì)90年代,實(shí)時(shí)數(shù)據(jù)庫(kù)在流程工業(yè)全世界范圍內(nèi)大行其道,源于以太網(wǎng)的逐步普及;主要應(yīng)用于工業(yè)監(jiān)控、控制和公用工程。國(guó)內(nèi)的實(shí)時(shí)數(shù)據(jù)庫(kù)發(fā)展較為緩慢,這和技術(shù)封鎖和政治風(fēng)氣都有關(guān)系,到了2000年之后,國(guó)內(nèi)的實(shí)時(shí)數(shù)據(jù)庫(kù)逐漸展露頭角,如ESP-iSYS、Agilor等與國(guó)外的PI、InfoPlus均屬于大型分布式網(wǎng)絡(luò)實(shí)時(shí)數(shù)據(jù)庫(kù)。規(guī)模相對(duì)較小的,如PHD、ConRTDB、SuperInfo,在國(guó)內(nèi)開(kāi)始應(yīng)用。由于應(yīng)用
3、場(chǎng)景的不同,好多企業(yè)開(kāi)始還只是解決現(xiàn)場(chǎng)監(jiān)控的問(wèn)題,分不清RTDB與SCADA的概念,結(jié)果InSql獲得了一個(gè)發(fā)展的機(jī)會(huì)。那么,什么是實(shí)時(shí)數(shù)據(jù)庫(kù)呢,過(guò)去國(guó)人老將其與SCADA搞混,倒也給SCADA一個(gè)發(fā)展的機(jī)會(huì)。實(shí)際上實(shí)時(shí)數(shù)據(jù)庫(kù)是“對(duì)實(shí)時(shí)性要求高的時(shí)標(biāo)型信息的數(shù)據(jù)庫(kù)管理系統(tǒng)”,在這里特別提醒,是管理系統(tǒng),而非單獨(dú)一個(gè)數(shù)據(jù)庫(kù)。實(shí)時(shí)數(shù)據(jù)庫(kù)雖是系統(tǒng)軟件,但更多是一個(gè)應(yīng)用平臺(tái)軟件,原因是實(shí)時(shí)數(shù)據(jù)庫(kù)還沒(méi)有一個(gè)像SQL一樣的標(biāo)準(zhǔn),而且其功能太過(guò)綜合,各廠商推出的產(chǎn)品功能各有側(cè)重。但以上的膜片中至少總結(jié)了實(shí)時(shí)數(shù)據(jù)庫(kù)的主要功能。目前實(shí)時(shí)數(shù)據(jù)庫(kù)已經(jīng)應(yīng)用到眾多領(lǐng)域,它的應(yīng)用范圍還在不斷擴(kuò)展,業(yè)界的工程師在不斷創(chuàng)造出
4、實(shí)時(shí)數(shù)據(jù)庫(kù)的應(yīng)用模式。只要有時(shí)標(biāo)型數(shù)據(jù)(時(shí)標(biāo)表示每隔幾個(gè)記錄間隔顯示一點(diǎn)),實(shí)時(shí)數(shù)據(jù)庫(kù)就可以在一定程度上發(fā)揮威力。說(shuō)到這里,漸漸要講原理了。與一般認(rèn)識(shí)不同,時(shí)標(biāo)型數(shù)據(jù)并非僅僅指時(shí)間戳、值和質(zhì)量碼,還有一個(gè)很重要的屬性,那就是及時(shí)性,及時(shí)性有兩重含義,采樣間隔和數(shù)據(jù)的新鮮度。時(shí)標(biāo)型數(shù)據(jù)的價(jià)值隨新鮮度降低而遞減。1秒鐘內(nèi)的數(shù)據(jù)可以用來(lái)流程工業(yè)中的控制,5秒鐘之內(nèi)可以用來(lái)監(jiān)視,半小時(shí)內(nèi)的數(shù)據(jù)可以用來(lái)分析和優(yōu)化,一天內(nèi)的數(shù)據(jù)可以用來(lái)日?qǐng)?bào)表,如果是半年前的數(shù)據(jù),則只能做對(duì)比和追溯了。而得到數(shù)據(jù)的新鮮程度往往取決于采樣頻率,這就是為什么如此重視實(shí)時(shí)數(shù)據(jù)庫(kù)的采樣快速性。同時(shí)采樣的頻率還進(jìn)一步?jīng)Q定了實(shí)時(shí)數(shù)據(jù)庫(kù)
5、保存信息的豐富程度。請(qǐng)看下一張膜片:大家都知道采樣定理,根據(jù)拉普拉斯變換,任何信號(hào)都可以被分解為頻率不同、幅值不同的正弦波疊加,而如果要讓采到的數(shù)據(jù)中包含一個(gè)頻率的信息,則采樣頻率至少為此頻率的2倍。所以大家不要過(guò)分關(guān)心實(shí)時(shí)數(shù)據(jù)庫(kù)宣稱(chēng)的無(wú)損壓縮,更重要的是要明白,信息的最大損失就在于采樣。更簡(jiǎn)單的例子,當(dāng)你以10秒鐘的周期去采樣,可能裝置運(yùn)行過(guò)程中出現(xiàn)了異常的超調(diào),在5秒內(nèi)又恢復(fù)了,而你的實(shí)時(shí)數(shù)據(jù)庫(kù)中卻根本不存在這些信息。從另一個(gè)方面講,實(shí)時(shí)數(shù)據(jù)庫(kù)中存儲(chǔ)的數(shù)據(jù)永遠(yuǎn)是濾波后數(shù)據(jù),實(shí)時(shí)數(shù)據(jù)庫(kù)就像一個(gè)低通濾波器。接下去,要講到實(shí)時(shí)數(shù)據(jù)庫(kù)的核心技術(shù)原理了,理解了這些原理,在設(shè)定實(shí)時(shí)數(shù)據(jù)庫(kù)運(yùn)行參數(shù)的時(shí)候
6、,才能得到更好的效果。也就會(huì)明白,一個(gè)RTDBA(RTDB Administrator 實(shí)時(shí)數(shù)據(jù)庫(kù) 管理)的存在價(jià)值??纯催@些標(biāo)題,就知道,下面將會(huì)講很多關(guān)鍵的東西。首先看看,任何復(fù)雜的大型實(shí)時(shí)數(shù)據(jù)庫(kù),其基本體系架構(gòu),也不外乎如圖所示,通過(guò)現(xiàn)場(chǎng)適配層適配現(xiàn)場(chǎng)的各種接口,在工業(yè)控制中這是一個(gè)復(fù)雜的工作。然后通過(guò)實(shí)時(shí)核心,完成數(shù)據(jù)的采集、實(shí)時(shí)計(jì)算、報(bào)警計(jì)算、其它處理,實(shí)時(shí)數(shù)據(jù)被不斷泵入磁盤(pán)歷時(shí)存儲(chǔ),形成可追溯的歷時(shí)信息,同時(shí)通過(guò)向應(yīng)用層提供各種適配接口,支持各種開(kāi)發(fā)語(yǔ)言和各種應(yīng)用需求的訪問(wèn)。認(rèn)識(shí)好這個(gè)基礎(chǔ)架構(gòu),下面看核心原理,就思路清晰了??偟膩?lái)說(shuō),目前工業(yè)通訊、傳輸?shù)膮f(xié)議種類(lèi)繁多,主要有兩方面原
7、因:1、歷史遺留;2、人為壟斷;二者的合力就是上邊這張膜片的內(nèi)容,很多時(shí)候,為了不付出廠商提出的巨額接口或接口板卡費(fèi)用,廣大的業(yè)界工程師采取編程口、打印口等極端方式,以獲得可以接受的性?xún)r(jià)比。在協(xié)議載體上,主要是串行和以太兩種,當(dāng)然在串行通訊中又有很多專(zhuān)用總線分支,例如Profibus等。未來(lái)在載體上是相當(dāng)?shù)那逦?,以太網(wǎng)通訊技術(shù)已經(jīng)勢(shì)如破竹,所以,前途光明,但另一個(gè)困擾更大,就是封閉的協(xié)議,目前大部分廠商都宣稱(chēng)自己開(kāi)放了,但開(kāi)放的是上層,而非底層。雖然,至少可以做到采用OPC訪問(wèn)實(shí)時(shí)數(shù)據(jù)庫(kù),但要想簡(jiǎn)單地將For InSql的接口用于Agilor,則很難,這就是底層沒(méi)有協(xié)議的問(wèn)題。有些工程師提出,
8、如果底層協(xié)議不統(tǒng)一,實(shí)時(shí)數(shù)據(jù)庫(kù)的市場(chǎng)將繼續(xù)存在混亂和低速發(fā)展。談到接口,小型實(shí)時(shí)數(shù)據(jù)庫(kù)(許多是號(hào)稱(chēng)自己是實(shí)時(shí)數(shù)據(jù)庫(kù)的組態(tài)軟件)均采用了以上的架構(gòu),即將核心和接口做在一起,用戶(hù)使用起來(lái)較為簡(jiǎn)單,但如果出現(xiàn)任何一個(gè)不穩(wěn)定的接口或局部異常,那整個(gè)實(shí)時(shí)數(shù)據(jù)庫(kù)就崩潰了。另外對(duì)于大型應(yīng)用,這種結(jié)構(gòu)也較難擴(kuò)展。對(duì)于大型分布式實(shí)時(shí)數(shù)據(jù)庫(kù),基本按照如下的配置:接口軟件被獨(dú)立出來(lái),即可以與實(shí)時(shí)數(shù)據(jù)庫(kù)核心集中部署在1臺(tái)計(jì)算機(jī)上,也可以與部署在接口機(jī)上,在大規(guī)模應(yīng)用的時(shí)候,接口的負(fù)載不會(huì)影響核心的穩(wěn)定,同時(shí)任意一個(gè)接口出現(xiàn)Crash,都不會(huì)導(dǎo)致實(shí)時(shí)數(shù)據(jù)庫(kù)整體宕機(jī)。從而提供了更好的可擴(kuò)展性和穩(wěn)定性。談到影響接口效率的因
9、素,主要如下:首先協(xié)議如果慢,那沒(méi)什么好的方法,這主要可以看看DDE協(xié)議,在OPC出現(xiàn)前,也曾經(jīng)紅火了一段時(shí)間,DDE使計(jì)算機(jī)上跨進(jìn)程數(shù)據(jù)可以方便通訊,但這種通訊協(xié)議本身效率很低。計(jì)算機(jī)再快,容量不能大幅度上升,幾百個(gè)位號(hào)就很不錯(cuò)了。就這一點(diǎn),就決定了其退出了歷史舞臺(tái)。第二在于網(wǎng)絡(luò)狀況。沒(méi)有有效地組網(wǎng),以太網(wǎng)也會(huì)十分緩慢。有效的帶寬變低,使得快速協(xié)議也變得緩慢而不穩(wěn)定。網(wǎng)絡(luò)狀況有兩方面:1、物理結(jié)構(gòu)合理性,多少次經(jīng)驗(yàn)告訴我們,沒(méi)有合理組織的以太網(wǎng),往往導(dǎo)致數(shù)據(jù)的阻塞,梳理以太網(wǎng)就像控制交通流量,任何地方出現(xiàn)瓶頸,都會(huì)導(dǎo)致數(shù)據(jù)緩慢;2、病毒,尤其是占用大量帶寬的蠕蟲(chóng),一旦感染了這個(gè),接口中斷就很
10、有可能了。設(shè)備效率也一樣關(guān)鍵,經(jīng)常出現(xiàn)DCS工作壓力很大了,這時(shí)再看其通訊,就很難了。針對(duì)這種情況往往應(yīng)該增加通訊卡件來(lái)提高效率;工作站負(fù)載也是影響大型系統(tǒng)接口效率的關(guān)鍵,很多大型系統(tǒng)的OPC都在工作站上,這時(shí),如果工作站負(fù)載很重,OPC能分到的運(yùn)行時(shí)間不足,又會(huì)影響效率,最終數(shù)據(jù)傳輸還是很緩慢,而且不穩(wěn)定。OPC并非什么好協(xié)議,只不過(guò)因?yàn)槭侵辛?guó)出的協(xié)議而如此廣泛被使用。如果這些都沒(méi)有問(wèn)題,那么最終協(xié)議總歸協(xié)議,實(shí)現(xiàn)協(xié)議交互的軟件質(zhì)量還十分關(guān)鍵,在實(shí)施中,我們也經(jīng)常會(huì)碰到因?yàn)橘|(zhì)量不好的OPC,效率低、穩(wěn)定性差導(dǎo)致整個(gè)系統(tǒng)不穩(wěn)定的。知道了以上內(nèi)容,現(xiàn)場(chǎng)遇到問(wèn)題,應(yīng)逐個(gè)排除,不要一開(kāi)始就責(zé)怪實(shí)時(shí)
11、數(shù)據(jù)庫(kù)不好,只有對(duì)癥下藥地解決問(wèn)題,才能獲得高效的系統(tǒng)。接下去將探尋接口內(nèi)部的奧秘,先給大家一張預(yù)覽圖:談到這里,就要談到實(shí)時(shí)數(shù)據(jù)庫(kù)為做到實(shí)時(shí)的考慮了。為了做到實(shí)時(shí),實(shí)時(shí)數(shù)據(jù)庫(kù)采取了“實(shí)時(shí)”的反面-“緩存”,緩存是為了提高交互效率,從而使整體更加實(shí)時(shí),這點(diǎn)后面將詳細(xì)介紹。那么一個(gè)接口程序內(nèi)部有什么呢?主要有兩部分:現(xiàn)場(chǎng)接口協(xié)議棧和位號(hào)分組。當(dāng)然,對(duì)于小型的接口,位號(hào)分組被省略了。位號(hào)分組是按照實(shí)時(shí)數(shù)據(jù)庫(kù)組態(tài)的要求,按不同的頻率采集實(shí)時(shí)數(shù)據(jù)。分組的優(yōu)勢(shì)在于降低了位號(hào)采集的工作量。要知道很多協(xié)議是慢速的(如串口協(xié)議)。如果實(shí)時(shí)數(shù)據(jù)庫(kù)中僅要求5秒鐘的采樣頻率,而下端卻不作區(qū)分,按最快的頻率采集,則往
12、往效率就會(huì)降低,甚至影響到配置為高速采集的其它位號(hào)。因此,分組往往是必須的。協(xié)議棧則不用解釋?zhuān)蠹叶贾辣仨殞?shí)現(xiàn)的。實(shí)現(xiàn)的好,則效率高、穩(wěn)定性好。實(shí)時(shí)數(shù)據(jù)庫(kù)接口中有定時(shí)器,在Windows平臺(tái)上能獲得的最高定時(shí)精度為40ms,因此采樣周期高于40ms,沒(méi)有意義。一般主動(dòng)采集的頻率都是1赫茲以下的(也就是慢于1秒/次),更加快速的時(shí)候,均采用主動(dòng)通知的方法,即當(dāng)數(shù)據(jù)變化的時(shí)候,主動(dòng)向?qū)崟r(shí)數(shù)據(jù)庫(kù)內(nèi)核發(fā)送變化的數(shù)據(jù),以達(dá)到更高效率。接口就簡(jiǎn)單介紹到這里,要明確的是,對(duì)于主動(dòng)采集方式下,接口相當(dāng)于多了一層緩存,在今后的講解中,大家會(huì)發(fā)現(xiàn),實(shí)時(shí)數(shù)據(jù)庫(kù)的效率和緩存的層次多少很有關(guān)系。簡(jiǎn)單談?wù)劮植际郊夹g(shù),大
13、型分布式實(shí)時(shí)數(shù)據(jù)庫(kù)都采用了一定的分布式技術(shù),采用的技術(shù)不同,局限性也不同。COM/DCOM被熟知,被業(yè)界認(rèn)同,是微軟主要分布式技術(shù),因此被廣泛應(yīng)用。但逃不出DCOM安全性的魔障,與Windows權(quán)限捆綁緊密。而且對(duì)于連接效率低的時(shí)候容易出錯(cuò)??缙脚_(tái)能力則更是徹底不具備了。J2EE很好,但效率有些低,最近JAVA6出現(xiàn)后,效率已經(jīng)有了顯著提升。甚至比.Net快,但作為底層研發(fā)來(lái)說(shuō),采用J2EE很不合適,原因是其對(duì)硬件的訪問(wèn)能力較弱。隨著以太網(wǎng)和工業(yè)通訊標(biāo)準(zhǔn)的提升,J2EE平臺(tái)也許在工業(yè)應(yīng)用上有后勁。目前多數(shù)實(shí)時(shí)數(shù)據(jù)庫(kù)廠商采用了專(zhuān)用TCP/IP協(xié)議,優(yōu)勢(shì)是易跨平臺(tái),部署方便,穩(wěn)定性容易掌控。但增加
14、了掌控能力的同時(shí)也降低了對(duì)已有框架的集成,開(kāi)發(fā)工作量大。從實(shí)時(shí)數(shù)據(jù)庫(kù)所面向的應(yīng)用場(chǎng)景來(lái)說(shuō),專(zhuān)用TCP/IP協(xié)議更加適合一些。下面給出實(shí)時(shí)數(shù)據(jù)庫(kù)的簡(jiǎn)化模型,后面的原理將結(jié)合這張圖來(lái)講解。實(shí)時(shí)數(shù)據(jù)庫(kù)被簡(jiǎn)化成由多個(gè)接口、一個(gè)接口管理模塊、一個(gè)組態(tài)模塊、一個(gè)實(shí)時(shí)模塊、一個(gè)高速緩存和一個(gè)歷史模塊組成,上面覆以應(yīng)用接口。這個(gè)結(jié)構(gòu)基本適合大部分實(shí)時(shí)數(shù)據(jù)庫(kù),各模塊運(yùn)行需要的組態(tài)信息往往從組態(tài)模塊中獲取,高速緩存往往和歷史模塊、實(shí)時(shí)模塊都發(fā)生關(guān)系。接下去將講解實(shí)時(shí)數(shù)據(jù)庫(kù)的核心IO策略。前面已經(jīng)講過(guò)了,實(shí)時(shí)數(shù)據(jù)庫(kù)一般采用緩存來(lái)增加讀實(shí)時(shí)數(shù)據(jù)的及時(shí)性,因此實(shí)時(shí)數(shù)據(jù)庫(kù)核心中都有高速緩存,如上圖所示,通過(guò)接口的采集,高
15、速緩存的數(shù)據(jù)得到不斷的更新,而當(dāng)上層讀位號(hào)的時(shí)候,實(shí)時(shí)數(shù)據(jù)庫(kù)通過(guò)返回緩存的值來(lái)快速響應(yīng)。因此,讀一般是異步的。但寫(xiě)則一般是同步的,寫(xiě)意味著控制,控制意味著嚴(yán)格的時(shí)序性,同時(shí),寫(xiě)也可能失敗的,如果寫(xiě)是異步的,則可能以為成功了,但實(shí)際失敗了,后果不堪設(shè)想。寫(xiě)的效率嚴(yán)重依賴(lài)于接口通訊效率和執(zhí)行機(jī)構(gòu)。如果只是修改設(shè)定值,則可以較快返回,如果直接寫(xiě)閥位等需要機(jī)械執(zhí)行的值,那就慢了。由于緩存,則必然會(huì)產(chǎn)生時(shí)滯。實(shí)時(shí)數(shù)據(jù)庫(kù)的采集手段使時(shí)滯不止存在于一處。假設(shè)實(shí)時(shí)數(shù)據(jù)庫(kù)從OPC中采集數(shù)據(jù),而OPC從設(shè)備上采集數(shù)據(jù),如果OPC 1秒采集一次,實(shí)時(shí)數(shù)據(jù)庫(kù)5秒采集一次,實(shí)時(shí)數(shù)據(jù)庫(kù)上有一個(gè)應(yīng)用軟件,也5秒采集一次,則
16、此應(yīng)用軟件讀到的數(shù)據(jù)的最大時(shí)滯為11秒(各時(shí)滯的相加和),最小時(shí)滯為5秒(幾個(gè)時(shí)滯中最大的一個(gè)),在一般的情況下,時(shí)滯符合正態(tài)分布。時(shí)滯頻域的角度上來(lái)分析,實(shí)際上是波的相變?;蚍Q(chēng)之為相移。相移在低速變化數(shù)據(jù)上顯現(xiàn)的問(wèn)題不是很明顯,比如溫度最快每分鐘上升2度,影響并不明顯,但對(duì)于快速開(kāi)關(guān)量,則十分致命,這個(gè)很容易理解,如果時(shí)滯1秒,而開(kāi)關(guān)的變化周期也接近1秒,則會(huì)出現(xiàn)一個(gè)現(xiàn)象,數(shù)據(jù)采集上來(lái)是關(guān),實(shí)際現(xiàn)場(chǎng)則是開(kāi)的,現(xiàn)場(chǎng)與采集值總是相反,如果這時(shí)進(jìn)行控制,就會(huì)發(fā)現(xiàn)控制失效,關(guān)閉已經(jīng)關(guān)閉的開(kāi)關(guān)或打開(kāi)已經(jīng)打開(kāi)的開(kāi)關(guān),沒(méi)有意義。因此,實(shí)時(shí)數(shù)據(jù)庫(kù)不適宜對(duì)快速開(kāi)關(guān)量的控制。這是一種極端的情況,另一種則是波動(dòng)較
17、快的窄帶控制,意味著必須將被控量控制在一個(gè)較窄的區(qū)域內(nèi),這時(shí)必須考慮時(shí)滯問(wèn)題,如果時(shí)滯穩(wěn)定,則可以按照控制理論采用抵消時(shí)滯或者前饋的方式獲得較好的控制效果。而如果時(shí)滯變化很大,則通過(guò)實(shí)時(shí)數(shù)據(jù)庫(kù)之上進(jìn)行的控制則效果不明顯了,很容易失控。講這些不是說(shuō)實(shí)時(shí)數(shù)據(jù)庫(kù)不能用于有控制的場(chǎng)合,知道哪些不適合,才能更加正確地使用實(shí)時(shí)數(shù)據(jù)庫(kù),應(yīng)用好各種適合的場(chǎng)景。談到核心調(diào)度策略,就得講講多線程的核心,很少有實(shí)時(shí)數(shù)據(jù)庫(kù)是單線程的,大型實(shí)時(shí)數(shù)據(jù)庫(kù)中往往都有線程池,對(duì)于需要實(shí)時(shí)處理讀、寫(xiě)、采集等任務(wù)的實(shí)時(shí)數(shù)據(jù)庫(kù)核心,其調(diào)度策略必須慎重考慮。首先,為難的是往往很難判斷那些任務(wù)的優(yōu)先級(jí)更高。所以實(shí)時(shí)數(shù)據(jù)庫(kù)內(nèi)部往往通過(guò)判斷
18、位號(hào)的更新周期來(lái)間接揣測(cè)任務(wù)的優(yōu)先級(jí)。雖然往往可以讓多個(gè)線程自己競(jìng)爭(zhēng),但如果某個(gè)位號(hào)的更新周期位1秒,而另一個(gè)的更新周期為10秒,那么,可想而知,應(yīng)用對(duì)1秒更新的實(shí)時(shí)數(shù)據(jù)的實(shí)時(shí)性要求高于10秒的。因此,如果有1秒的為好讀任務(wù)沒(méi)有完成,則不執(zhí)行10秒的,對(duì)于CPU數(shù)量小于等待線程數(shù)量的時(shí)候,特別適用。另外,讀即時(shí)值的任務(wù)優(yōu)先級(jí)應(yīng)該高于讀歷時(shí)值的任務(wù),這個(gè)也可想而知的,讀一段歷時(shí)數(shù)據(jù),往往不在乎晚響應(yīng)幾十微秒,而讀實(shí)時(shí)值,則是越實(shí)時(shí)越好。這樣,在實(shí)時(shí)數(shù)據(jù)庫(kù)中就形成了一個(gè)內(nèi)核級(jí)的讀隊(duì)列,任務(wù)可以被線程順序執(zhí)行,而如果低優(yōu)先級(jí)的現(xiàn)成得以執(zhí)行的時(shí)候,會(huì)檢查一下是否還有更高優(yōu)先級(jí)的隊(duì)列中需要執(zhí)行,如果有,
19、則讓出時(shí)間片??兹谧尷妫WC更需要實(shí)時(shí)的任務(wù)先完成。對(duì)于寫(xiě)任務(wù),往往可以和讀任務(wù)并行,但CPU是昂貴資源,如果當(dāng)前CPU被讀占用而耽誤了寫(xiě),則不應(yīng)該,因此,寫(xiě)更重要,排在更高的優(yōu)先級(jí)。那么采集的優(yōu)先級(jí)和讀的優(yōu)先級(jí)誰(shuí)高呢?如果采集被滯后,那么多個(gè)可能讀同一個(gè)位號(hào)的任務(wù)都將讀到老的數(shù)據(jù),因此,采集往往是一個(gè)與讀優(yōu)先級(jí)的最高優(yōu)先級(jí)相當(dāng)?shù)娜蝿?wù)。具體到不同的實(shí)現(xiàn)者,以上的理論未必被完全的實(shí)現(xiàn),有的小型和中型實(shí)時(shí)數(shù)據(jù)庫(kù)甚至根本沒(méi)有這些策略的實(shí)現(xiàn),因?yàn)檫\(yùn)行在其上的應(yīng)用也不嚴(yán)格,因此也可以避繁就簡(jiǎn)。接下去,將講到很多人想研究的實(shí)時(shí)數(shù)據(jù)庫(kù)壓縮算法,這個(gè)好像挺神秘的,我將結(jié)合PI的專(zhuān)利技術(shù),旋轉(zhuǎn)門(mén)壓縮算法給予詳細(xì)
20、的講解。說(shuō)到數(shù)據(jù)壓縮,無(wú)非有損和無(wú)損。無(wú)損的一般通過(guò)各類(lèi)近似霍夫曼編碼的方法壓縮數(shù)據(jù),有損則是采用線性擬合的方法。實(shí)時(shí)數(shù)據(jù)是如此海量,所以無(wú)損壓縮不是要講的重點(diǎn),這里講的是實(shí)時(shí)數(shù)據(jù)庫(kù)中最常用的有損線性擬合算法。擬合方式很多,最著名的無(wú)過(guò)于OSI 的“旋轉(zhuǎn)門(mén)”:首先講當(dāng)前采集的一個(gè)數(shù)據(jù)位門(mén)軸,看著PPT上面的圖,最左下角的就是門(mén)軸,然后每新采一個(gè)點(diǎn),就將這個(gè)點(diǎn)和門(mén)軸畫(huà)一條線,就是所謂的門(mén),當(dāng)再采下一個(gè)點(diǎn)的時(shí)候,就從門(mén)軸向新點(diǎn)畫(huà)一條線,作為新的門(mén)位置,看看,門(mén)就“旋轉(zhuǎn)”了一定角度,然后看看從門(mén)軸到門(mén)邊中所有的點(diǎn)是否都距離門(mén)在一個(gè)閾值內(nèi),如果是,也就是說(shuō)可以用兩點(diǎn)一線的門(mén)擬合中間若干點(diǎn),顯然壓縮掉了
21、大量數(shù)據(jù)。如果不行了,則將原來(lái)與門(mén)軸組成門(mén)的那個(gè)點(diǎn)記錄下來(lái)(此點(diǎn)將寫(xiě)入歷時(shí)數(shù)據(jù)庫(kù)),然后將此點(diǎn)作為新的門(mén)軸,以此門(mén)軸與最新的點(diǎn)構(gòu)成新的門(mén)。這顯然是一個(gè)迭代算法,而且好處是明顯的,這樣計(jì)算,涉及到的乘除法很少,效率應(yīng)該較高。所以PI一直用這個(gè)算法作為其核心壓縮算法。SUPCON采取了最小二次擬合的方法,原因是現(xiàn)在的計(jì)算機(jī)浮點(diǎn)能力大大增強(qiáng),同時(shí)發(fā)現(xiàn)最小二次線性擬合的方法的迭代算法運(yùn)算量也很小。效果和效率都很好。因此申請(qǐng)了專(zhuān)利。所有的有損壓縮算法基本類(lèi)似,有的數(shù)據(jù)庫(kù)還將無(wú)損和有損兩種結(jié)合起來(lái),即先有損壓縮,然后再無(wú)損壓縮,最終保存壓縮結(jié)果,這樣查詢(xún)歷時(shí)數(shù)據(jù)的時(shí)候多了解壓過(guò)程,速度會(huì)進(jìn)一步降低,但空間
22、也進(jìn)一步節(jié)省。壓縮是雙刃劍。特別告訴大家,千萬(wàn)不要相信某些產(chǎn)品宣揚(yáng)自己的壓縮比如何高,通過(guò)以上原理知道,壓縮比高的原因就是因?yàn)殚撝荡?,閾值大,損失就多,得到的趨勢(shì)反應(yīng)的細(xì)節(jié)就少。一般實(shí)際應(yīng)用,流程工業(yè)采用10:1的壓縮很合適,超過(guò)此數(shù)據(jù),會(huì)發(fā)現(xiàn)大量有用的細(xì)節(jié)都不見(jiàn)了。這樣方法也是一種低通濾波,低通濾波伴隨著時(shí)滯增大。掌握原理,合理設(shè)定壓縮閾值,才是最好的方法。實(shí)際上,實(shí)時(shí)數(shù)據(jù)庫(kù)中也使用了大量的索引技術(shù),絕對(duì)不是關(guān)系數(shù)據(jù)庫(kù)的專(zhuān)利,因此,接下去將講講索引技術(shù):談到索引,這個(gè)技術(shù)在所有的檢索系統(tǒng)中不可或缺的。而對(duì)于數(shù)據(jù)結(jié)構(gòu),最重要的部分之一就是索引技術(shù)。各種技術(shù)速度和面向的場(chǎng)景差異很大。有哈希樹(shù)、哈希桶、其他散列表、二叉樹(shù)等等,不勝枚舉。所以本文僅僅拿出幾種經(jīng)典的情況出來(lái)討論一下。實(shí)時(shí)數(shù)據(jù)庫(kù)中,用來(lái)定位一個(gè)位號(hào),可以通過(guò)ID和名稱(chēng),ID和名稱(chēng)都是唯一
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 人教版九年級(jí)數(shù)學(xué)上冊(cè)21.3.1《一元二次方程的根與系數(shù)的關(guān)系》聽(tīng)評(píng)課記錄
- 2025年便攜式X?zé)晒夤庾V分析儀合作協(xié)議書(shū)
- 七年級(jí)第二學(xué)期工作總結(jié)
- 蘇科版數(shù)學(xué)七年級(jí)下冊(cè)8.1.1《同底數(shù)冪的乘法》聽(tīng)評(píng)課記錄
- 公司職工食堂承包協(xié)議書(shū)范本
- 裝飾裝修勞務(wù)分包合同范本
- 2025年度新能源電站租賃誠(chéng)意金合同
- 2025年度裝修施工現(xiàn)場(chǎng)安全監(jiān)督合同
- 二零二五年度航空航天設(shè)備采購(gòu)合同知識(shí)產(chǎn)權(quán)保護(hù)及實(shí)施約定
- 2025年度航空航天零部件購(gòu)買(mǎi)協(xié)議范文匯編
- GB/T 7251.5-2017低壓成套開(kāi)關(guān)設(shè)備和控制設(shè)備第5部分:公用電網(wǎng)電力配電成套設(shè)備
- 2023年湖南高速鐵路職業(yè)技術(shù)學(xué)院高職單招(數(shù)學(xué))試題庫(kù)含答案解析
- 中考語(yǔ)文非連續(xù)性文本閱讀10篇專(zhuān)項(xiàng)練習(xí)及答案
- 勇者斗惡龍9(DQ9)全任務(wù)攻略
- 經(jīng)顱磁刺激的基礎(chǔ)知識(shí)及臨床應(yīng)用參考教學(xué)課件
- 小學(xué)語(yǔ)文人教四年級(jí)上冊(cè)第四單元群文閱讀“神話故事之人物形象”P(pán)PT
- 鄉(xiāng)村振興匯報(bào)課件
- 紅色記憶模板課件
- ISO 31000-2018 風(fēng)險(xiǎn)管理標(biāo)準(zhǔn)-中文版
- 油氣藏類(lèi)型、典型的相圖特征和識(shí)別實(shí)例
- 麗聲三葉草分級(jí)讀物第四級(jí)A Friend for Little White Rabbit課件
評(píng)論
0/150
提交評(píng)論