朱廣宇
摘 要:介紹了內(nèi)存實(shí)時(shí)數(shù)據(jù)庫在工業(yè)控制DCS組態(tài)軟件中的應(yīng)用及其在數(shù)據(jù)采集過程中的重要性;針對(duì)組態(tài)軟件內(nèi)存實(shí)時(shí)數(shù)據(jù)庫的特點(diǎn),測(cè)試了在不同的數(shù)據(jù)組織形式、內(nèi)存置換頁面大小以及緩存大小下數(shù)據(jù)庫的性能,通過測(cè)試,得出了不同的配置組合對(duì)內(nèi)存實(shí)時(shí)數(shù)據(jù)庫性能的影響,從而為下一步的研究工作打下了基礎(chǔ)。
關(guān)鍵詞:組態(tài)軟件;內(nèi)存;實(shí)時(shí)數(shù)據(jù)庫;Berkeley DB
中圖分類號(hào):TP392 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):2095-1302(2014)03-0070-03
0 引 言
伴隨著分布式控制系統(tǒng)DCS(Distributed Control System)的出現(xiàn),以及其在工控領(lǐng)域的廣泛應(yīng)用,組態(tài)軟件開始逐漸被廣大技術(shù)人員所熟悉?!敖M態(tài)”的概念最早來自英文Configuration,其含義是使用軟件工具對(duì)計(jì)算機(jī)及軟件的各種資源進(jìn)行配置(包括進(jìn)行對(duì)象的定義、制作和編輯,并設(shè)定其狀態(tài)特征屬性參數(shù)),達(dá)到使計(jì)算機(jī)或軟件按照預(yù)先設(shè)置,自動(dòng)執(zhí)行特定任務(wù),滿足使用者要求的目的[1]。
組態(tài)軟件是應(yīng)用在數(shù)據(jù)采集和過程控制層面的一種專用軟件,應(yīng)用在分布式控制系統(tǒng)數(shù)據(jù)監(jiān)控層一級(jí)。通過使用組態(tài)軟件,可以為DCS工控系統(tǒng)提供良好的用戶開發(fā)界面以及簡(jiǎn)潔的使用方法,可以非常容易地實(shí)現(xiàn)和完成對(duì)分布式工業(yè)控制系統(tǒng)各個(gè)模塊的模擬和監(jiān)控功能,使計(jì)算機(jī)圖形界面與工控系統(tǒng)真實(shí)設(shè)備聯(lián)系起來;通過集成各個(gè)硬件廠家的I/O接口以及設(shè)備接口,組態(tài)軟件能夠采集到工控設(shè)備的現(xiàn)場(chǎng)數(shù)據(jù),通過實(shí)時(shí)數(shù)據(jù)庫進(jìn)行處理,并存儲(chǔ)到歷史數(shù)據(jù)庫供查詢使用;通過設(shè)置,可以對(duì)采集數(shù)據(jù)提供報(bào)警和報(bào)表功能;同時(shí),組態(tài)軟件應(yīng)該能支持各種工控設(shè)備和常見的通信協(xié)議,并且通常應(yīng)提供分布式數(shù)據(jù)管理和網(wǎng)絡(luò)功能[2]。
組態(tài)軟件產(chǎn)品于上世紀(jì)80年代初出現(xiàn),并且得到了良好的發(fā)展,目前世界上的組態(tài)軟件有幾十種之多,其中主要包括美國(guó)Wonderware的Intouch、美國(guó)Intellution公司的 Fix、澳大利亞Cit公司的Citech、德國(guó)Simens的Wincc、北京亞控自動(dòng)化軟件有限公司開發(fā)的組態(tài)王(Kingview)、大慶三維公司的ForceControl以及北京昆侖通態(tài)自動(dòng)化軟件科技有限公司開發(fā)研制的MCGS等。伴隨著國(guó)家對(duì)工控領(lǐng)域的支持不斷加大,組態(tài)軟件將在工控信息化中扮演越來越重要的角色,未來發(fā)展的空間也會(huì)不斷擴(kuò)大。
1 內(nèi)存實(shí)時(shí)數(shù)據(jù)庫
大批量生產(chǎn)、連續(xù)加工過程、高度自動(dòng)化程度是流程工業(yè)的特點(diǎn),這需要在過程監(jiān)控時(shí)提供高速的數(shù)據(jù)處理、長(zhǎng)期的數(shù)據(jù)存儲(chǔ)。工業(yè)控制系統(tǒng)是一個(gè)實(shí)時(shí)系統(tǒng),它實(shí)時(shí)地從外界采集數(shù)據(jù)進(jìn)行運(yùn)算、判斷后輸出控制量,因此對(duì)數(shù)據(jù)的管理呈現(xiàn)出實(shí)時(shí)特點(diǎn)[3]。因此,實(shí)時(shí)數(shù)據(jù)庫是組態(tài)軟件處理數(shù)據(jù)、組織數(shù)據(jù)和管理數(shù)據(jù)的核心,它能夠高效地處理和存儲(chǔ)工控系統(tǒng)生產(chǎn)過程中的實(shí)時(shí)數(shù)據(jù),為優(yōu)化過程控制和企業(yè)的經(jīng)營(yíng)決策提供完整的實(shí)時(shí)數(shù)據(jù)和完備的歷史信息[4]。
根據(jù)工控系統(tǒng)的特點(diǎn),在工業(yè)組態(tài)軟件中需要應(yīng)用內(nèi)存實(shí)時(shí)數(shù)據(jù)庫,分以下幾種情況:內(nèi)存實(shí)時(shí)數(shù)據(jù)庫整個(gè)數(shù)據(jù)庫常駐內(nèi)存,對(duì)數(shù)據(jù)的存取不需要 I/O 操作;整個(gè)數(shù)據(jù)庫不用常駐內(nèi)存,但存取數(shù)據(jù)時(shí),應(yīng)先進(jìn)入內(nèi)存,即數(shù)據(jù)庫的存取在內(nèi)存中進(jìn)行;數(shù)據(jù)庫常駐磁盤,增大緩沖區(qū),在一個(gè)事務(wù)執(zhí)行之前,所有的數(shù)據(jù)都已經(jīng)取到內(nèi)存,經(jīng)適當(dāng)?shù)木彌_區(qū)管理減少甚至消除 I/O[5],這些特點(diǎn)決定了內(nèi)存實(shí)時(shí)數(shù)據(jù)庫能夠及時(shí)有效地處理和維護(hù)大量的共享數(shù)據(jù)和控制數(shù)據(jù),滿足工業(yè)組態(tài)軟件對(duì)于事務(wù)時(shí)間性方面的要求。
對(duì)于內(nèi)存實(shí)時(shí)數(shù)據(jù)庫來說,由于已不再涉及 I/O,所以在時(shí)間和空間矛盾的處理上,空間是第一位,系統(tǒng)的算法設(shè)計(jì)目標(biāo)應(yīng)該是內(nèi)存空間和 CPU的高效使用。為了達(dá)到這一目標(biāo),應(yīng)該對(duì)內(nèi)存實(shí)時(shí)數(shù)據(jù)庫的數(shù)據(jù)組織結(jié)構(gòu)、事務(wù)處理和數(shù)據(jù)管理、并發(fā)控制及恢復(fù)技術(shù)、內(nèi)存置換頁面以及緩存大小等方面進(jìn)行研究與測(cè)試[5],使其能夠提供更好的性能,滿足工業(yè)控制組態(tài)軟件的需求。
2 內(nèi)存實(shí)時(shí)數(shù)據(jù)庫性能測(cè)試
2.1 測(cè)試目的
針對(duì)內(nèi)存實(shí)時(shí)數(shù)據(jù)庫的特點(diǎn)和研究與測(cè)試方面的要求,設(shè)置內(nèi)存實(shí)時(shí)數(shù)據(jù)庫的數(shù)據(jù)組織形式、內(nèi)存置換頁面大小以及緩存大小,通過測(cè)試數(shù)據(jù),得出不同的配置組合對(duì)內(nèi)存實(shí)時(shí)數(shù)據(jù)庫性能上的影響,為下一步的研究工作打下基礎(chǔ)。
2.2 測(cè)試環(huán)境
測(cè)試對(duì)象采用Berkeley DB內(nèi)存實(shí)時(shí)數(shù)據(jù)庫系統(tǒng)。Berkeley DB歷史悠久,主要應(yīng)用在Unix/Linux操作系統(tǒng)上,其設(shè)計(jì)思想是簡(jiǎn)單、小巧、可靠、高性能。它可為應(yīng)用程序提供可伸縮的、高性能的、有事務(wù)保護(hù)功能的數(shù)據(jù)管理服務(wù)。同時(shí)Berkeley DB為數(shù)據(jù)的存取和管理提供了一組簡(jiǎn)潔的函數(shù)調(diào)用API接口。Berkeley DB對(duì)接收到的實(shí)時(shí)數(shù)據(jù)采用關(guān)鍵詞(Key)和數(shù)據(jù)(Value)的存儲(chǔ)結(jié)構(gòu),這兩者構(gòu)成的Key/Value對(duì)組成了數(shù)據(jù)庫中的一個(gè)基本結(jié)構(gòu)單元,而整個(gè)數(shù)據(jù)庫實(shí)際上就是由許多這樣的結(jié)構(gòu)單元所構(gòu)成的。通過使用這種方式,簡(jiǎn)化了實(shí)時(shí)數(shù)據(jù)的存儲(chǔ)邏輯關(guān)系,同時(shí),簡(jiǎn)便的數(shù)據(jù)庫查詢和訪問方式也能夠滿足工業(yè)組態(tài)軟件的需求。所以,在此測(cè)試中,所有的數(shù)據(jù)插入的都是Key=int,Value=int,在循環(huán)中遞增的。
本機(jī)配置如下:
OS為Windows 7旗艦版;RAM=8 GB;CPU=Intel Core i7-3770 CPU 3.4 GHz;Disk=500 GB;NTFS的默認(rèn)簇大小為4 KB。
測(cè)試的實(shí)際數(shù)據(jù)量為:
300*10 000*2*sizeof(int)/1 024/1 024≌22.89 MB;編譯器:Visual C++ 6.0;Berkeley DB內(nèi)存實(shí)時(shí)數(shù)據(jù)庫版本為db-5.3.21.NC
2.3 測(cè)試方法
循環(huán)插入int類型的數(shù)據(jù),同時(shí)設(shè)置Berkeley DB的參數(shù),測(cè)試在不同存儲(chǔ)方循環(huán)插入int類型的數(shù)據(jù),同時(shí)設(shè)置Berkeley DB的參數(shù),測(cè)試在不同數(shù)據(jù)組織形式、內(nèi)存置換頁面大小以及Cache緩存大小的設(shè)置下,數(shù)據(jù)庫讀寫的性能,以確定組態(tài)軟件實(shí)時(shí)數(shù)據(jù)庫部分的存儲(chǔ)方式。
2.4 測(cè)試代碼
內(nèi)存實(shí)時(shí)數(shù)據(jù)庫性能的測(cè)試代碼如下:
#include “stdafx.h”
#include “db.h”
#include “db_cxx.h”
#include “windows.h”
#include “winbase.h”
int main(intargc, char* argv[])
{
size_tpsize = 1;//設(shè)置頁面大小,單位為KB
size_tcsize = 10;//設(shè)置cache大小,單位為MB
inttcount = 300;//設(shè)置數(shù)據(jù)插入數(shù)量,單位為萬次
Dbdb(NULL, 0);
db.set_pagesize(1024*psize);
db.set_cachesize(0, 1024*1024*csize, 0);
u_int32_toFlags = DB_CREATE;
try
{
db.open(NULL,"test.db",NULL,DB_BTREE,oFlags,0);
}
catch(DbException&e)
{
}
catch(std::exception &e)
{
}
//實(shí)時(shí)數(shù)據(jù)插入
Dbtkey,data;
inti,ret,count=10000*tcount;
long t1 = GetTickCount();//開始時(shí)間
for(i=0;i { Dbtkey(&i,sizeof(int)); Dbtdata(&i,sizeof(int)); db.put(0, &key, &data, DB_NOOVERWRITE); } long t2 = GetTickCount();//結(jié)束時(shí)間 printf("插入結(jié)束%d萬記錄,全部用時(shí):%.2f秒\r\n",tcount,(t2-t1)/(float)1000); long tick1=GetTickCount(); try { Dbc *dbcp; db.cursor(NULL, &dbcp, 0); Dbt key; Dbt data; while (dbcp->get(&key, &data, DB_NEXT) == 0) { key.get_data(); data.get_data(); } dbcp->close(); printf("遍歷結(jié)束 %d 萬記錄,全部用時(shí):%.2f秒\r\n",tcount,(GetTickCount()-tick1)/(float)1000); db.sync(0); } catch (DbException&dbe) {} db.close(0); return 0; } 2.5 測(cè)試結(jié)果 代碼運(yùn)行界面如圖1所示。 圖1 代碼運(yùn)行界面 代碼運(yùn)行后所得到的結(jié)果如表1——表3所列。 表1 頁尺寸列表 (記錄數(shù)量:300萬,緩存尺寸:0 MB 單位:s)讀寫 1 KB 2 KB 4 KB 8 KB 16 KB 32 KB B+寫 33.71 30.28 26.85 28.30 34.09 50.59 HASH寫 50.92 46.32 48.64 54.10 67.44 91.39 B+讀 2.03 2.00 2.03 2.11 2.20 2.34 HASH讀 4.24 4.51 3.85 3.70 3.67 3.32 表2 Cache緩存大小列表(1) (記錄數(shù)量:300萬;頁尺寸:4 KB;數(shù)據(jù)庫文件大?。?0.2 MB;單位:s) 讀寫 0 MB 10 MB 20 MB 40 MB 80 MB 160 MB 320 MB B+寫 31.78 17.04 16.04 15.12 11.50 11.37 11.33 HASH寫 46.85 30.39 22.2 16.49 12.65 12.92 13.39 B+讀 2.46 2.65 2.61 2.65 2.59 2.54 2.56 HASH讀 3.73 3.54 3.2 3.21 3.12 3.18 3.25 表3 Cache緩存大小列表(2) Cache緩存大?。ㄓ涗洈?shù)量:600萬;頁尺寸:4 KB;數(shù)據(jù)庫文件大?。?60 MB;單位:s) 讀寫 0 MB 10 MB 20 MB 40 MB 80 MB 160 MB 320 MB B+寫 71.07 44.60 43.41 41.95 36.13 24.77 24.49 HASH寫 102.21 85.82 67.00 52.56 43.51 28.24 27.75
B+讀 5.21 5.48 5.51 5.49 5.41 5.30 5.24
HASH讀 8.24 8.22 7.91 7.52 7.11 6.74 6.75
4 結(jié) 語
根據(jù)以上運(yùn)行結(jié)果,可以看出組態(tài)軟件內(nèi)存實(shí)時(shí)數(shù)據(jù)庫Berkeley DB在采用B+樹存儲(chǔ)方式的時(shí)候,其寫入和讀取性能明顯高于HASH存儲(chǔ)方式;當(dāng)頁面尺寸為4 KB時(shí),Berkeley DB的存儲(chǔ)效率最高,隨著頁面尺寸的不斷增大,效率反而逐漸降低;當(dāng)確定了頁面尺寸為4 KB后,逐漸改變Cache緩存大小,比較300萬與600萬兩種記錄數(shù)量,發(fā)現(xiàn)無論是B+樹的存儲(chǔ)方式還是HASH的存儲(chǔ)方式,當(dāng)緩存很小的時(shí)候,效率都很差,而當(dāng)緩存大小大于等于數(shù)據(jù)庫文件大小時(shí),效率最高,之后隨著緩存逐漸增大,對(duì)效率的影響很小。
通過該測(cè)試可以得出,不同的數(shù)據(jù)組織形式、內(nèi)存置換頁面大小以及Cache緩存大小對(duì)內(nèi)存實(shí)時(shí)數(shù)據(jù)庫的效率性能影響很大,本文只針對(duì)B+樹和HASH存儲(chǔ)方式進(jìn)行了測(cè)試,測(cè)試的內(nèi)容并不完善,下一步應(yīng)該對(duì)數(shù)據(jù)的組織形式進(jìn)行深入的研究,挖掘更適合鍵值對(duì)形式的工業(yè)組態(tài)軟件內(nèi)存實(shí)時(shí)數(shù)據(jù)組織結(jié)構(gòu)。
參 考 文 獻(xiàn)
[1]王亞民, 陳青, 劉暢生. 組態(tài)軟件設(shè)計(jì)與開發(fā)[M]. 西安: 西安電子科技大學(xué)出版社, 2003.
[2]馬國(guó)華.監(jiān)控組態(tài)軟件的發(fā)展趨勢(shì)與現(xiàn)狀[J].世界儀表與自動(dòng)化,2002,6(5):10-11.
[3]韓玫瑰,史明華,馬濤,等.DCS組態(tài)軟件實(shí)時(shí)數(shù)據(jù)庫系統(tǒng)的設(shè)計(jì)[J].自動(dòng)化儀表,2006,27(1):18-21.
[4]姚晴怡,張曦煌.組件軟件系統(tǒng)中實(shí)時(shí)數(shù)據(jù)庫設(shè)計(jì)[J].福建電腦,2007,(10):145-146.
[5]梁巧玉.內(nèi)存實(shí)時(shí)數(shù)據(jù)庫數(shù)據(jù)組織結(jié)構(gòu)優(yōu)化策略研究[D].太原:太原科技大學(xué),2010.
Performance test of memory real-time database of configuration software
ZHHU Guang-yu
(National Computer System Engineering Research Institute of China, Beijing 100083, China)
Abstract: The importance of the application of memory real-time database in industrial control DCS configuration software and in the data collection process is introduced. Aiming at the features of memory real-time database of the configuration software, the database performance data in different forms of organization, memory replacement page size and cache size is tested. Test result shows the effects of combinations of different configurations on the memory real-time database performance, which can lay the foundation for further research.
Keyword: configuration software; memory; real-time database; Berkeley DB
B+讀 5.21 5.48 5.51 5.49 5.41 5.30 5.24
HASH讀 8.24 8.22 7.91 7.52 7.11 6.74 6.75
4 結(jié) 語
根據(jù)以上運(yùn)行結(jié)果,可以看出組態(tài)軟件內(nèi)存實(shí)時(shí)數(shù)據(jù)庫Berkeley DB在采用B+樹存儲(chǔ)方式的時(shí)候,其寫入和讀取性能明顯高于HASH存儲(chǔ)方式;當(dāng)頁面尺寸為4 KB時(shí),Berkeley DB的存儲(chǔ)效率最高,隨著頁面尺寸的不斷增大,效率反而逐漸降低;當(dāng)確定了頁面尺寸為4 KB后,逐漸改變Cache緩存大小,比較300萬與600萬兩種記錄數(shù)量,發(fā)現(xiàn)無論是B+樹的存儲(chǔ)方式還是HASH的存儲(chǔ)方式,當(dāng)緩存很小的時(shí)候,效率都很差,而當(dāng)緩存大小大于等于數(shù)據(jù)庫文件大小時(shí),效率最高,之后隨著緩存逐漸增大,對(duì)效率的影響很小。
通過該測(cè)試可以得出,不同的數(shù)據(jù)組織形式、內(nèi)存置換頁面大小以及Cache緩存大小對(duì)內(nèi)存實(shí)時(shí)數(shù)據(jù)庫的效率性能影響很大,本文只針對(duì)B+樹和HASH存儲(chǔ)方式進(jìn)行了測(cè)試,測(cè)試的內(nèi)容并不完善,下一步應(yīng)該對(duì)數(shù)據(jù)的組織形式進(jìn)行深入的研究,挖掘更適合鍵值對(duì)形式的工業(yè)組態(tài)軟件內(nèi)存實(shí)時(shí)數(shù)據(jù)組織結(jié)構(gòu)。
參 考 文 獻(xiàn)
[1]王亞民, 陳青, 劉暢生. 組態(tài)軟件設(shè)計(jì)與開發(fā)[M]. 西安: 西安電子科技大學(xué)出版社, 2003.
[2]馬國(guó)華.監(jiān)控組態(tài)軟件的發(fā)展趨勢(shì)與現(xiàn)狀[J].世界儀表與自動(dòng)化,2002,6(5):10-11.
[3]韓玫瑰,史明華,馬濤,等.DCS組態(tài)軟件實(shí)時(shí)數(shù)據(jù)庫系統(tǒng)的設(shè)計(jì)[J].自動(dòng)化儀表,2006,27(1):18-21.
[4]姚晴怡,張曦煌.組件軟件系統(tǒng)中實(shí)時(shí)數(shù)據(jù)庫設(shè)計(jì)[J].福建電腦,2007,(10):145-146.
[5]梁巧玉.內(nèi)存實(shí)時(shí)數(shù)據(jù)庫數(shù)據(jù)組織結(jié)構(gòu)優(yōu)化策略研究[D].太原:太原科技大學(xué),2010.
Performance test of memory real-time database of configuration software
ZHHU Guang-yu
(National Computer System Engineering Research Institute of China, Beijing 100083, China)
Abstract: The importance of the application of memory real-time database in industrial control DCS configuration software and in the data collection process is introduced. Aiming at the features of memory real-time database of the configuration software, the database performance data in different forms of organization, memory replacement page size and cache size is tested. Test result shows the effects of combinations of different configurations on the memory real-time database performance, which can lay the foundation for further research.
Keyword: configuration software; memory; real-time database; Berkeley DB
B+讀 5.21 5.48 5.51 5.49 5.41 5.30 5.24
HASH讀 8.24 8.22 7.91 7.52 7.11 6.74 6.75
4 結(jié) 語
根據(jù)以上運(yùn)行結(jié)果,可以看出組態(tài)軟件內(nèi)存實(shí)時(shí)數(shù)據(jù)庫Berkeley DB在采用B+樹存儲(chǔ)方式的時(shí)候,其寫入和讀取性能明顯高于HASH存儲(chǔ)方式;當(dāng)頁面尺寸為4 KB時(shí),Berkeley DB的存儲(chǔ)效率最高,隨著頁面尺寸的不斷增大,效率反而逐漸降低;當(dāng)確定了頁面尺寸為4 KB后,逐漸改變Cache緩存大小,比較300萬與600萬兩種記錄數(shù)量,發(fā)現(xiàn)無論是B+樹的存儲(chǔ)方式還是HASH的存儲(chǔ)方式,當(dāng)緩存很小的時(shí)候,效率都很差,而當(dāng)緩存大小大于等于數(shù)據(jù)庫文件大小時(shí),效率最高,之后隨著緩存逐漸增大,對(duì)效率的影響很小。
通過該測(cè)試可以得出,不同的數(shù)據(jù)組織形式、內(nèi)存置換頁面大小以及Cache緩存大小對(duì)內(nèi)存實(shí)時(shí)數(shù)據(jù)庫的效率性能影響很大,本文只針對(duì)B+樹和HASH存儲(chǔ)方式進(jìn)行了測(cè)試,測(cè)試的內(nèi)容并不完善,下一步應(yīng)該對(duì)數(shù)據(jù)的組織形式進(jìn)行深入的研究,挖掘更適合鍵值對(duì)形式的工業(yè)組態(tài)軟件內(nèi)存實(shí)時(shí)數(shù)據(jù)組織結(jié)構(gòu)。
參 考 文 獻(xiàn)
[1]王亞民, 陳青, 劉暢生. 組態(tài)軟件設(shè)計(jì)與開發(fā)[M]. 西安: 西安電子科技大學(xué)出版社, 2003.
[2]馬國(guó)華.監(jiān)控組態(tài)軟件的發(fā)展趨勢(shì)與現(xiàn)狀[J].世界儀表與自動(dòng)化,2002,6(5):10-11.
[3]韓玫瑰,史明華,馬濤,等.DCS組態(tài)軟件實(shí)時(shí)數(shù)據(jù)庫系統(tǒng)的設(shè)計(jì)[J].自動(dòng)化儀表,2006,27(1):18-21.
[4]姚晴怡,張曦煌.組件軟件系統(tǒng)中實(shí)時(shí)數(shù)據(jù)庫設(shè)計(jì)[J].福建電腦,2007,(10):145-146.
[5]梁巧玉.內(nèi)存實(shí)時(shí)數(shù)據(jù)庫數(shù)據(jù)組織結(jié)構(gòu)優(yōu)化策略研究[D].太原:太原科技大學(xué),2010.
Performance test of memory real-time database of configuration software
ZHHU Guang-yu
(National Computer System Engineering Research Institute of China, Beijing 100083, China)
Abstract: The importance of the application of memory real-time database in industrial control DCS configuration software and in the data collection process is introduced. Aiming at the features of memory real-time database of the configuration software, the database performance data in different forms of organization, memory replacement page size and cache size is tested. Test result shows the effects of combinations of different configurations on the memory real-time database performance, which can lay the foundation for further research.
Keyword: configuration software; memory; real-time database; Berkeley DB