Oracle TimesTen企業(yè)級應(yīng)用實踐

責(zé)任編輯:王文龍

2013-04-19 10:09:01

摘自:it168網(wǎng)站

2013年4月18日,第四屆中國數(shù)據(jù)庫技術(shù)大會(DTCC 2013)在北京福朋喜來登酒店正式拉開序幕,現(xiàn)場座無虛席。

2013年4月18日,第四屆中國數(shù)據(jù)庫技術(shù)大會(DTCC 2013)在北京福朋喜來登酒店正式拉開序幕,現(xiàn)場座無虛席。4月18日下午,在內(nèi)存數(shù)據(jù)庫的分會場上,來自上海新炬網(wǎng)絡(luò)技術(shù)有限公司的交付中心副總監(jiān)王科先生發(fā)表了題為《Oracle TimesTen企業(yè)級應(yīng)用實踐》的精彩演講。

本次演講,王科重點介紹了TimesTen如何通過緩存為Oracle 數(shù)據(jù)庫加速;TimesTen的高可用架構(gòu)如何實現(xiàn)和高效運行;如何與應(yīng)用系統(tǒng)架構(gòu)結(jié)合滿足大并發(fā)、高實時性的業(yè)務(wù)需求;此外,他還通過實踐案例與大家逐一分享。

王科:Oracle TimesTen企業(yè)級應(yīng)用實踐

熟悉網(wǎng)購的朋友,恐怕對促銷打折并不陌生,比如每年的雙11與雙12活動,讓廠家,快遞公司,消費者忙個不停。不過,并不是所有的電商應(yīng)用都如此給力,實際上,大部分電商都經(jīng)歷過網(wǎng)站運行緩慢,甚至宕機的現(xiàn)象。而這一切,都與應(yīng)用系統(tǒng)架構(gòu)、網(wǎng)絡(luò)帶寬、數(shù)據(jù)庫架構(gòu)存在千絲萬縷的聯(lián)系。試想一下,當(dāng)應(yīng)用系統(tǒng)性能成為企業(yè)業(yè)務(wù)發(fā)展壯大的制約因素時,企業(yè)該如何選擇?

那么,針對應(yīng)用、網(wǎng)絡(luò)、數(shù)據(jù)庫IO造成的性能瓶頸,TimesTen能做些什么呢?不妨先來了解一下TimesTen的概念與功能。

Oracle TimesTen In-Memory Database (TimesTen) 是一個功能完備、經(jīng)過內(nèi)存優(yōu)化的關(guān)系數(shù)據(jù)庫,它具有持久性和可恢復(fù)性。它為應(yīng)用程序提供了即時響應(yīng)和極高的吞吐能力,可以滿足數(shù)據(jù)庫密集型應(yīng)用程序的需要。TimesTen部署在應(yīng)用程序?qū)?,運行在完全裝入物理內(nèi)存 (RAM) 的數(shù)據(jù)庫上。應(yīng)用程序使用標(biāo)準(zhǔn) SQL 接口訪問 TimesTen 數(shù)據(jù)庫。對于現(xiàn)有應(yīng)用程序數(shù)據(jù)存放于 Oracle 數(shù)據(jù)庫中的客戶,TimesTen 作為內(nèi)存中緩存數(shù)據(jù)庫來部署,可自動完成 TimesTen 與 Oracle 數(shù)據(jù)庫之間的數(shù)據(jù)同步。

TimesTen也有自己的日志文件,以及存放日志文件的目錄(LogDir),缺省的就是和DataStore放在同一個目錄下。但一般建議分開放。日志的概念和Oracle的一樣,在回滾以及恢復(fù)的時候,都會用到它。

從Oracle的官方數(shù)據(jù)得知,TimesTen數(shù)據(jù)庫事務(wù)吞吐量差不多是Oracle的10倍,這正如它的名字一樣。因此可見,對于高并發(fā)、實時性要求高的應(yīng)用,TimesTen是一種理想的選擇,能解決數(shù)據(jù)庫層的瓶頸問題。

另一方面,TimesTen完全可以作為共享庫的方式,嵌入至應(yīng)用程序內(nèi)部,這相當(dāng)于節(jié)省了網(wǎng)絡(luò)傳輸帶來的時間延遲,如下圖所示:

Oracle TimesTen企業(yè)級應(yīng)用實踐

TimesTen 從某種角度上來看,也是一種 Cache 機制,是磁盤數(shù)據(jù)庫的 Cache,通過物理內(nèi)存中的數(shù)據(jù)存儲區(qū)的直接操作,減少了到磁盤間的 I/O 交互。舉個例子,以下SQL演示的是Oracle數(shù)據(jù)庫中,取得有500次購貨記錄的的客戶姓名與地址,并且緩存到TimesTen中。

Oracle TimesTen企業(yè)級應(yīng)用實踐

當(dāng)TimesTen充當(dāng)Oracle數(shù)據(jù)庫的緩存,或者說與Oracle數(shù)據(jù)庫構(gòu)成主從關(guān)系時,支持兩者的雙向數(shù)據(jù)自動同步,具體表現(xiàn)為四種模式:

1.只讀模式:指的是在Oracle數(shù)據(jù)庫中更新,異步復(fù)制到 TimesTen可以自動刷新Oracle數(shù)據(jù)庫的更新。只讀模式適合更新不多的場合。

2.同步寫入模式:在TimesTen中更新,然后同步傳播到Oracle數(shù)據(jù)庫。同步寫入模式適合僅想高速化SELECT的場合。

3. 異步寫入模式:在TimesTen中更新,然后異步傳播到Oracle數(shù)據(jù)庫,適合高速化 SELECT 以及 DML的場合。

4. 用戶自定義模式。

從部署的角度,TimesTen支持獨立部署、緩存部署、與RAC聯(lián)合部署三種模式,如下圖所示。

Oracle TimesTen企業(yè)級應(yīng)用實踐

相對而言,前兩種方式非常好理解,而最后一種方式的出發(fā)點是高可用性與負(fù)載均衡。以高可用性為例,如下圖所示。讀寫緩存在Active節(jié)點提交事務(wù),而事務(wù)將自動并行復(fù)制到Standby節(jié)點,在Standby節(jié)點將事務(wù)并行寫到后端Oracle數(shù)據(jù)庫;讀緩存將Oracle數(shù)據(jù)庫變更的數(shù)據(jù)刷新到Active節(jié)點,更新的緩存數(shù)據(jù)并行復(fù)制到Standby節(jié)點。如此一來,即便后端Oracle數(shù)據(jù)庫宕機,前端TimesTen應(yīng)用不受影響。

Oracle TimesTen企業(yè)級應(yīng)用實踐

總之,無論是磁盤數(shù)據(jù)庫,還是內(nèi)存數(shù)據(jù)庫,無論是Oracle數(shù)據(jù)庫,還是TimesTen數(shù)據(jù)庫,都不存在絕對的好與壞。正向演講者王科介紹的那樣,合適的產(chǎn)品加合理的運用才等于最大的效能。  

 Oracle TimesTen企業(yè)級應(yīng)用實踐   

鏈接已復(fù)制,快去分享吧

企業(yè)網(wǎng)版權(quán)所有?2010-2024 京ICP備09108050號-6京公網(wǎng)安備 11010502049343號