1. 程式人生 > >記憶體資料庫fastdb的使用研究報告

記憶體資料庫fastdb的使用研究報告

原文連結

相對於傳統磁碟資料庫,記憶體資料庫通過將資料完全載入到記憶體,在記憶體中實現對資料的管理,在資料同步、資料傳送、事務處理、並行操作等方面進行了相應的改進設計,使得記憶體資料庫在處理資料上能夠比磁碟資料庫快得多,可以有效地解決計費系統中信控、實時累賬等部分對系統響應要求高的問題。

專案決定在信控模組使用記憶體資料庫機制取代賬單中心模式進行實時累賬優惠觸發信控。

以下是對FastDB進行的幾點說明:

1、 功能歸納

1記憶體資料庫具備傳統資料庫的一些基本功能:

A資料的管理,記憶體資料庫機制是支援永久資料的管理的,包括資料庫的的定義、儲存、維護等功能。

B資料的操作,記憶體資料庫支援對資料進行增,刪,改,查,資料完整性校驗等一些基本功能。

C事務管理,記憶體資料庫支援排程,程序間、執行緒間的一些併發等操作。

d.資料恢復備份機制,記憶體資料庫支援線上備份和系統崩潰後的自動恢復。

2FastDB在功能上特有的一些特點

A查詢優化,與傳統資料庫管理系統咋紅執行查詢相比,當所有的資料存在於記憶體當中時,查詢的數度是非常快的,但是FastDB還是進一步使用了索引(hash,T-tree)、反向指標和查詢並行化進行了查詢優化。

B提供了一個靈活方便的應用程式語言介面,能夠方便寫出查詢等語句。

2、工作原理

FastDB是一個高效率的記憶體資料庫系統,在磁碟上的資料庫檔案和使用該資料庫的每一個應用程式佔用的虛擬記憶體空間相對映,這樣取消了資料檔案和緩衝池中的資料傳輸。再將整個檔案資料讀入記憶體,並且使用了高效能的鎖工具實現了只讀模式執行緒間、單個更改模式執行緒和多個只讀模式執行緒間的併發執行。FastDB

通過點陣圖實現對記憶體進行分配,最小單位塊是分配量子(16位元組)。如此大大提高了資料引用的區域性性(物件資料儘可能分配在連續的記憶體區域),最小化了修改頁的數目和減少了事務提交時間。事務提交協議基於一個影子根頁演算法,對資料庫執行原子更新操作,恢復效率很高,在儲存資料結構上可以採用T-tree結構(T-treeAVL-tree相似,只是T-tree中每個節點中順序儲存了多個值),對於大量相似重複性資料的查詢效能相當高;也可以採用Hash儲存,這是用關鍵欄位定位表中記錄的最好辦法(採用等號進行查詢)。

影子根頁演算法概述:FastDB資料庫中每條物件都具有唯一的識別符號(OID),用作一個數組(物件索引)的下標,元素值表示物件的一個控制代碼,在FastDB

資料庫中存在兩個索引(當前索引和影子索引),當某個物件第一次被修改時,它會建立一個副本,當前索引中的物件控制代碼被修改指向副本,影子索引仍然包含一個指向該物件原始版本的控制代碼。所有更改發生在副本上,FastDB在物件索引的一個特殊點陣圖頁上標記出哪個索引包含修改過的物件控制代碼。

當一個事務被提交時,FastDB首先檢查物件索引的尺寸的大小,若增長了,還會重新為物件索引的影子副本重新分配記憶體,然後釋放“舊物件”佔用的記憶體,釋放後,將修改過的所有點陣圖頁flush到磁碟上,然後FastDB將改變資料庫頭部中的當前物件索引指示符,以切換物件索引的角色。當前物件索引將變成影子索引之後,FastDB 把修改過的所有控制代碼從新的物件索引中複製到先前是影子的、現在已成為當前的物件索引中。此時,兩個索引都得到了同步。(具體記憶體塊的移動索引管理細節需要進一步琢磨)

3、 部署方法

1應用程式編譯環境需求,首先是任何一個FastDB應用程式必須包含標頭檔案:fastdb.h

然後是可以選擇呼叫庫檔案(FastDB編譯後提供靜態庫(libfastdb_r.a)和共享庫兩種庫(libfastdb_r.so/ libfastdb_r.so.2)給呼叫);

最後是FastDB提供很多編譯選項介面,使用者可以根據需要進行設定,比如:容錯支援,無盤模式,鎖檢測清理機制等等功能。

2執行系統環境需求,理論上說,記憶體載入的資料庫檔案規模最小是1MB,上限就是記憶體和磁碟的容量了(FastDB 的整個優化設計是基於真個資料庫系統存放在機器實體記憶體中,但是它依然支援將應用在規模超過實體記憶體的資料庫上,只是效率不會很高)

4、介面呼叫方法

1FastDB提供了subsql互動式工具供使用者進行備份,查詢,監控等。(按著提示走即可)

2C++介面

A開啟或建立資料庫:

dbDatabase db(parameter);

db.open(parameter);

mode的有:dbReadOnlydbAllAccessdbConcurrentReaddbConcurrentUpdate四模式

BFastDB支援的資料型別:

型別描述

bool                     布林型別 (true,false)

int1                      一個位元組的帶符號整型(-128..127)

int2                      兩個位元組的帶符號整型(-32768..32767)

int4                      四個位元組的帶符號整型(-2147483648..2147483647)

int8                      八個位元組的帶符號整型(-2**63..2**63-1)

real4                    四個位元組的ANSI 浮點型

real8                    八個位元組的雙精度浮點型

char const*           非中斷整型

dbReference<T>    到類的指標。

dbArray<T>          元素型別是的動態陣列。

CFastDB對錶的介面描述

C++需要用類的形式來定義表結構,然後一一對映到表的fields,如果類有方法就得用巨集:   CLASS_DESCRIPTOR(name,field_list),進行描述,還有方法巨集TYPE_DESCRIPTOR(field_list)(具體的檢視的幫助文件)

最後只需要將類進行註冊:REGISTER(Class Name);

D遊標

遊標有兩種模式:    dbCursorViewOnlydbCursorForUpdate

定義舉例dbCursor<Class Name> instance (dbCursorForUpdate);

提供了資料庫的改、刪、查方法介面

Instance.udate()

Instance.select()/select(dbquery &q);

Edbquery Q;

Q = “id = ” idvalue,”and datetime = ”,currtime;

F

資料的insert方法FastDB提供了過載

dbReference<T> insert(T const& record);

所以使用起來是很簡單的。

具體細節用法查閱手冊。Hoho。。。

5、改造計劃

暫時不用改造現有機制,如果不想在記憶體資料庫當中形成綜合賬單表(從原來的賬單中心的四張記憶體表(累賬賬單表,週期性費用表,優惠結果表,調賬結果表)中提取),減少冗餘,就需要改造其現有的事務提交機制。使得事務提交後,程式能夠控制資料改變對其他程序的可見性。

6、本人的兩點擔心

1FastDB適合主導讀取模式的應用程式,在大規模資料群處理上,進行更改事務處理的效率和準確性能上有待後查。

2FastDB雖然是一個極其優秀的開源記憶體資料庫,但畢竟沒有或者很少經過商用的專業的測試。系統中複雜的記憶體管理過程,可能容易產生過多的記憶體碎片,導致系統的不穩定。


相關推薦

記憶體資料庫fastdb的使用研究報告

原文連結 相對於傳統磁碟資料庫,記憶體資料庫通過將資料完全載入到記憶體,在記憶體中實現對資料的管理,在資料同步、資料傳送、事務處理、並行操作等方面進行了相應的改進設計,使得記憶體資料庫在處理資料上能夠比磁碟資料庫快得多,可以有效地解決計費系統中信控、實時累賬等部分對系

記憶體資料庫fastdb的效能測試報告

【從我原來blog搬來的】 IBM AIX 伺服器上 <一>利用SUBSQL介面手工進行測試 ----------<Some test Data>----------------------------------------- 1.Record(i

分散式資料庫在金融領域應用研究報告

第一章 概述及發展 如概念、基本特徵、發展歷程、必要性等。 第二章 關鍵技術及典型架構 如目前分散式資料庫的關鍵技術、典型架構等。 第三章 在金融領域應用現狀 如目前已應用的系統、上線的業務等。 第四章 在金融領域應用趨勢分析 如發展趨勢(如技術架構、安全可控、協同合

fastdb 記憶體資料庫使用例項

      最近一個月忙死了,沒有時間發表文章.先是出差一個月,做一個電話自動應答系統.忙的焦頭爛額.一個月只休息了三天.現在還暈呢.這兩天終於完事了,又讓我研究fastdb的使用.今天就來灌個fastdb的例子.      首先下載fastdb的原始碼,make原始碼裡邊的

valgrind報告5種記憶體洩露的研究

[[email protected] valtest]# valgrind --tool=memcheck --leak-check=yes ./valtest  ==29240== Memcheck, a memory error detector ==29240== Copyright (C)

FastDB記憶體資料庫API

1.  查詢語言 mdb支援類SQL句法的查詢語言。mdb更接近oop而不是關係資料庫。Table中的行被認為是物件例項,table則是這些物件的類。與SQL不同,mdb是面向物件的而不是SQL元組。因此,每次查詢的結果是一個類的物件的集合。 識別符號大小寫敏感,由 a-z, A-Z, '_' 或者 '$'

體外克隆技術的研究報告

熊貓 科學 動物 未來 nes 拉德 align 研究報告 強烈 體外克隆技術的研究報告 作者:姚佳琪 克隆技術的發展: 早在1938年,德國生物學家漢斯.斯佩曼最早提出克隆設想,世界各地的科研工作者們相繼展開克隆技術的研究,目前用胚胎細胞克隆的動物如綿羊、牛、兔、豬、猴紛

宜昌項目可行性研究報告

文件 挑戰 路線 復雜 競爭 img 改革 核心 都是 宜昌項目可行性研究報告 泓域企劃/中小企業2.0發展孵化服務機構 泓域企劃機構編寫的《項目可行性研究報告》通過對項目科學深入的市場需求和供給分析、未來價格預測、資源供應、建設規模、工藝路線、設備選型、環境影響、節能減

聊城項目可行性研究報告

城市 2016年 通過 影響 亞洲 提交 必須 核心競爭力 部門 聊城項目可行性研究報告 泓域企劃/中小企業2.0發展孵化服務機構 投資項目可行性研究報告為泓域企劃機構針對行業投資投資項目進行可行性研究咨詢服務的專項研究報告,此報告為個性化定制服務報告,我們將根據不同類型及

《2013-2017年廠園WiFi行業研究報告

競爭 方向 投放 繼續 管理層 廣告 變量 日常生活 天使 2013-2016年中國廠園WiFi發展狀況   《中國互聯網發展報告2016》調研發現,公關場所的免費WiFi在網民的日常生活中使用日益頻繁,絕大多數網民對這一服務表示接受。據調查,願意使用公關場所的免費WiFi

國際軟件設計文檔——可行性研究報告

得到 並且 研究報告 回收 之間 類別 字母 尺度 掌握 1 引言 1.1 編寫目的   說明編寫本可行性研究報告的目的,指出預期的讀者。 1.2 背景   說明: 所建議開發的軟件系統的名稱; 本項目的任務提出者、開發者、用戶及實現該軟件的計算中心或計算機網絡; 該軟件

報告丨2016-2017年中國手機地圖市場研究報告

media 好的 地圖 機會 針對 快速 不同 增加 領域 2017年2月24日,iiMedia Research(艾媒咨詢)權威發布《2016-2017年中國手機地圖市場研究報告》。報告顯示,2016年第四季度,手機地圖用戶累計規模已經達到6.64億人,增長率為1.53%

安全牛:“新一代SOC研究報告”之市場指南及技術指南點評

安全管理平臺 soc 安管平臺 isoc 安全牛 在2017年8月9日,國內知名的企業級信息安全市場的專業新媒體——安全牛——發布了“新一代SOC研究報告”之市場指南及技術指南。在指南正式發布之前,7月份的阿裏安全峰會(以後改成“網絡安全生態峰會”)上,安全牛背後的谷安天下負責人李華在論壇

張家港項目可行性研究報告

資質 工業 編制 科學 解決 建築 實現 部門 核心競爭力 張家港項目可行性研究報告 泓域企劃/張家港中小企業2.0發展孵化服務機構 張家港,原名沙洲,1986年9月撤銷沙洲縣,以境內天然良港張家港命名設立張家港市。張家港位於中國大陸東部,長江下遊南岸,是蘇州市所管轄的縣級

珠海項目可行性研究報告

發生 獲取 指標 防範 提升 發展 互聯 競爭 企業 珠海項目可行性研究報告 泓域企劃/珠海中小企業2.0發展孵化服務機構 珠海,廣東省地級市,珠江三角洲中心城市之一,東南沿海重要的風景旅遊城市 。地處北緯21°48′~22°27′、東經113°03′~114°19′之間。

贛州項目可行性研究報告編寫說明

江西 互聯網+ 技術 全國 投資分析 項目立項 周期 紅色 可行性研究報告 泓域企劃/贛州投資信息咨詢服務機構 所謂產業(項目)規劃是國家或地方各級政府根據國家的方針、政策和法規,對行業、專項和區域的發展目標、規模、速度,以及相應的步驟和措施等所做的設計、部署和安排。

埃森哲:2017年網絡犯罪成本研究報告(含分析)

ponemon 埃森哲 accenture 安全調研 網絡犯罪 2017年10月1日,在埃森哲的委托下,Ponemon發布了第九次網絡犯罪成本研究報告。根據這份訪談了來自全球7個國家,254個公司,2182名受訪者的報告顯示,全球一個組織或企業用於網絡安全的年平均成本(/花費)是1170萬

《如何編寫研究報告》讀書筆記0-1脈絡

alt 研究 .com 研究報告 png pos ima 分享 info 《如何編寫研究報告》讀書筆記0-1脈絡

《怎樣編寫研究報告》讀書筆記0-0

這樣的 inf 讀書 怎樣 過程 學習筆記 gpo 圖片 blog 這樣的一本書只有幾百頁,看完需要時間,就慢慢看吧,看的過程中做一些摘抄和學習筆記吧。 《怎樣編寫研究報告》讀書筆記0-0

2017下一代數據中心網絡研究報告zz

數量 tail tac 情況下 發展 for abs 代碼 系統介紹 http://dy.163.com/v2/article/detail/CDG9CD7G05179LAH.html   2月2日,SDxCentral發布了2017下一代數據中心研究報告(2017 Nex