物聯網大數據處理技術與實踐(第2版)課件 第6章-實時事務調度處理技術_第1頁
物聯網大數據處理技術與實踐(第2版)課件 第6章-實時事務調度處理技術_第2頁
物聯網大數據處理技術與實踐(第2版)課件 第6章-實時事務調度處理技術_第3頁
物聯網大數據處理技術與實踐(第2版)課件 第6章-實時事務調度處理技術_第4頁
物聯網大數據處理技術與實踐(第2版)課件 第6章-實時事務調度處理技術_第5頁
已閱讀5頁,還剩25頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

物聯網大數據處理技術與實踐InternetofThings

BigDataprocessingTechnologyandPractice實時事務調度處理技術常見事務特性分析1事務調度與并發控制2服務器與操作系統3事務的執行框架與模式4系統框架的分析與性能優化5PARTONE1常見事務特性分析師傅領進門,學藝在自身。------中國諺語實時事務調度處理技術事務是面向數據庫中數據存取訪問的一個邏輯工作單位,是一個操作序列,執行這個操作序列使數據庫從一種一致狀態轉換到另一種一致狀態,以實現特定的業務功能。感知數據來源主要是分布的智能設備以及傳感器,并且數據具有很強的時間屬性。數據的時間屬性或者直接來自外界的傳感器,或者基于傳感器數據推導計算而來,其最主要的特性是時態一致性。傳統的關系數據庫系統旨在處理永久性數據,其設計與開發主要強調數據的完整性、一致性,要求事務具有ACID特性(Atomicity-原子性、Consistency-一致性、Isolation-隔離性、Durability-持久性),以及提高系統的平均吞吐量等總體性能指標,卻很少考慮與數據本身及數據處理相關聯的時間屬性。常見事務特性分析根據感知數據的處理需求,我們把數據庫中的事務劃分為三大類:

感知事務

觸發事務

用戶事務感知事務

感知事務是數據庫獲取數據的基本方式,又稱為數據采集事務,或者傳感器事務。這些事務一般都是預定義的定期事務,按照一定的采集周期更新數據以保持數據時間屬性的絕對一致性,具有確定的性質,包括事務的相對截止期、執行周期以及最壞情形執行時間。采集事務一般是固實時的事務,如果在一定的時間周期內不能執行完成,可以放棄;待下個執行周期再執行。但是,在特殊情況下,數據采集事務可以由用戶事務或者其它事務觸發。例如,用戶的控制指令往往需要通過即刻執行的數據采集事務確定指令執行的結果;或者一些事務的執行需要保持相關數據的相對時間一致性時,可以通過發起實時采集事務保證。觸發事務

觸發事務是感知數據庫系統實現主動性的關鍵,可以分為更新觸發事務與定期事務。觸發事務一般通過ECA(Event-Condition-Action)規則進行定義,屬于預定義的事務。更新觸發事務:一般是系統中預定義的過程,在傳感器事務更新數據對象時觸發,用于主動的事務處理或者數據的推導計算等。這類事務一般具有明確的截止期,如果是時態數據更新事件定期觸發,則存在事務的執行周期或者兩個事務之間的最小間隔時間。更新觸發事務與實時采集事務之間的關系可以是松耦合也可以是緊耦合,取決于用戶對數據一致性的要求;一般說來,實時數據采集事務更新時態數據對象中的相關屬性,如報警判定、單位轉換等采用緊耦合方式,而涉及多數據對象的屬性推導計算以及分析計算時采用松耦合方式。定期事務:一般是預定義或用戶提交的長計算事務,一般沒有明確的截止期,屬于軟實時事務,但是存在事務的執行周期;并且,很多情況下的計算結果精度與事務執行的時間有關。

用戶事務用戶事務總是由用戶或者客戶端應用發起,事務的操作類型可以是只讀、只寫或者讀寫,包括數據的查詢和修改。這類事務一般是非定期、軟實時事務,沒有明確的截止期,但是要求盡可能短的響應時間。PARTTWO2事務調度與并發控制事務的調度方法事務調度的最重要目標是保證數據的新鮮度即時間屬性,并保證盡可能多的事務能夠滿足截止期。感知數據庫中的采集事務主要是采集數據、完成數據更新,大量的采集事務涉及磁盤I/O等不可預測因素。緊耦合的觸發事務一般都是短事務,可以作為數據采集事務的子事務觸發執行;松耦合的觸發事務最好作為獨立的事務,按照數據重要性以及時間屬性分配優先級。事務調度算法必須綜合考慮事務的截止期與關鍵性,事務截止期與關鍵性的分布情況也在很大程度上影響系統的性能。事務的調度方法

事務調度算法必須綜合考慮事務的截止期與關鍵性,事務截止期與關鍵性的分布情況也在很大程度上影響系統的性能。在如何確定事務的優先級方面,有許多不同的算法。

隨著計算機處理能力特別是并行能力的增強,事務的調度算法不只是分派單個的CPU資源,而是如何綜合利用系統的處理能力提升事務的吞吐量并盡可能滿足數據以及事務時間需求。并發控制策略并發控制中使用優先級解決數據沖突有利于改進系統的性能。并發控制用于控制并發執行的事務之間的交互操作以避免數據庫的一致性被破壞。傳統的并發控制大多采用基于鎖的方法,基于鎖的并發控制屬于悲觀的方法,總是假定事務沖突經常發生,而實際上鎖只在最壞情形下才是必要的。優先級反轉是傳統的并發控制協議應用于基于優先級的事務調度表現出的主要問題。樂觀并發控制基于相反的假設,事務沖突很少發生,因此允許事務無阻礙地執行直到全部操作完成,然后在提交時進行驗證,如果通過了檢驗就提交,否則夭折。并發控制策略感知數據庫系統中采用樂觀的并發控制方法能夠獲得更高的效率;因為數據采集事務是只寫事務,可以通過數據版本控制減少沖突;其他事務原則上不應該更改這些傳感器數據的值。所有實時采集的數據快照都保存在內存中,為了增加事務的并發度,降低事務之間的沖突,系統中可以采用兩版本方法。每個時項都具有兩個數據版本,一個一致版本,一個工作版本,其中一致版本保存了該數據項的最近的有效版本。態數據數據采集服務程序處理數據更新事務時總是使用數據項的工作版本,而在事務提交時這個工作版本將轉換成一致版本。PARTTHREE3服務器與操作系統服務器體系結構與發展當前的商用服務器從系統架構可分為三類:對稱多處理器體系結構(SMP)非一致存儲訪問體系結構(NUMA)海量并行處理體系結構(MPP)SMP體系結構對稱多處理器結構,是指服務器中多個CPU對稱工作,無主次或從屬關系。SMP的各CPU共享相同的物理內存,每個CPU訪問內存中的任何地址所需時間是相同的,因此SMP也被稱為一致存儲器訪問結構(UMA)。SMP共享的特性導致它擴展能力有限。隨著CPU數量的增加,內存訪問沖突也會增加,最終導致CPU資源浪費。SMP的CPU利用率最好的情況是是2~4個CPU。NUMA體系結構NUMA是針對SMP在擴展能力上的限制而提出的有效擴展從而構建大型系統的技術。NUMA服務器的基本特征是具有多個CPU模塊。其節點之間可以通過互通模塊信息連接和消息交互,每個CPU可訪問整個系統的內存。利用NUMA技術可以較好的解決SMP系統的擴展問題

圖-NUMA體系結構MPP體系結構MPP由多個SMP服務器通過一定的節點互聯網絡進行連接,協同工作,完成相同的任務。其中,每個節點只訪問自己的本地資源,是一種完全無共享結構。在MPP系統中,每個SMP節點也可以運行自己的操作系統、數據庫等。MPP服務器需要一種復雜的機制來調度和平衡各個節點的負載和并行處理過程。從架構來看,NUMA與MPP具有許多相似之處,它們之間的對比見右圖。操作系統的多任務機制:Linux操作系統體系結構GNU/Linux操作系統最上層是用戶空間,即用戶應用程序執行的地方。用戶空間之下是內核空間,其中分為:系統調動接口獨立于體系結構的內核代碼依賴于體系結構的代碼除此之外,GNUCLibrary提供了連接內核的系統調用接口,還提供了在用戶空間應用程序和內核之間進行轉換的機制

GNU/Linux操作系統的體系結構操作系統的多任務機制:程序、進程與線性程序是為了完成某種任務而設計的軟件,進程就是運行中的程序。一個進程是一個程序的一次執行的過程。在Linux中,一個進程在內存里有三部分數據:“數據段”、“堆棧段”與“代碼段”。線程是在共享內存空間中并發的多道執行路徑,它們共享一個進程的資源,如文件描述和信號處理。POSIX線程是線程的POSIX標準,定義了創建和操縱線程的一套API,實現POSIX線程標準的庫稱作PThread。一個進程可以擁有多個線程,每個線程必須有一個父進程。操作系統的多任務機制:Linux進程調度Linux支持兩種類型的進程調度,實時進程和普通進程。其內核具體提供以下進程調度策略:SCHED_NORMAL:默認的調度策略,針對的是普通進程;SCHED_FIFO:針對實時進程的先進先出調度,適合對時間性要求比較高但每次運行時間比較短的進程;SCHED_RR:針對的是實時進程的時間片輪轉調度,適合每次運行時間比較長得進程;SCHED_BATCH:針對批處理進程的調度,適合那些非交互性且對CPU使用密集的進程;SCHED_IDLE:適用于優先級較低的后臺進程。PARTFOUR4事務的執行框架與模式通用系統模型與調度方法

在多核、多線程、多處理器環境中的系統模型與事務調度以及并發控制都需要重新分析與設計,下面我們從數據庫系統模型的設計出發,分析多核、多處理器環境中優化的實時數據庫系統開發模式以及設計中的關鍵問題,給出一個泛化的、基于前面描述的感知事務模型的單進程多線程事務處理框架,并在此基礎上,分析優化的多進程、多線程的事務處理框架的設計模式。單進程多線程模式單進程多線程系統模式的優勢在于提高系統并行性與提供處理器資源利用率的同時,具有系統開銷小、數據共享方便等優點。右圖給出了一個單進程多線程的事務調度處理框架。其主要包括事務隊列管理器和事務調度主線程。事務隊列管理器用于管理來自采集接口的各種事務。事務調度主線程根據預定義的事務調度策略為事務分派不同的事務處理線程執行事務,事務處理線程根據操作系統的調度機制分配處理器資源運行,也可以由事務調度主線程指定處理器或者內核運行。基于功能劃分的多線程模式右圖給出了基于功能劃分的數據庫多進程系統模型。其中,實時數據管理與歷史數據管理分別由不同的進程負責,并且提供一定的進程間通信機制與數據存取接口。多進程系統的優點在于內存隔離,單個進程的異常不會導致整個系統的崩潰;缺點是由于大量的進程間調用,導致通信和切換開銷比較大,消耗更多資源。多進程模型有以下優點:更高的系統穩定性更好的模塊化與可擴展性可以有效的適應分布式系統基于數據分區的多進程框架基于數據分區的多進程模式將數據進行水平分片,即將數據集合劃分成一系列子集,各個子集之間可以有交集,也可以沒有交集。對應于各個數據子集,都有自己的一個完整的功能系統,處理該系統所屬的數據。這種劃分可以有效的提高系統的并行性,并且可以提供主進程+多工作進程模式,但是需要提供全局的數據與服務管理能力。5系統框架的分析與性能優化系統框架的分析與性能優化在數據庫服務器程序的設計與開發中,選擇合適的系統設計模式至關重要。這些模式包括單線程模式、多進程模式和多線程模式。單線程模式簡單易用,但在處理復雜任務和高并發時性能有限。多進程模式穩定性較高,但進程間通信和切換開銷較大。多線程模式能充分利用多核處理器,提供更高的性能和響應能力,但需要處理線程安全和同步問題。系統框架的分析與性能優化在設計中應充分考慮各種因素以求做到系統資源的最大利用。系統設計模式可以概括為三種:多線程單進程模式:系統所有功能在單個進程中實現,通過多線程最大化系統資源利用與性能提升;多線程多進程模式:基于功能劃分的多進程系統框架采用這種模式實現,系統通過多個不同的端口對外提供差別服務;多線程主進程+工作進程模式:這種模式支持動態創建或者終止工作進程,但是最好在服務運行期間減少動態的創建與終止。系統框架的分析與性能優化無論是采用何種模式,都是多線程的。多線程是為了同步完成多項任務,不是為了提高運行效率,而是為了提高資源使用效率來提高系統的效率。特別是,提高多核系統的性能,在幾個線程都同時準備運行的多線程應用程序中,每個核可以運行不同的線程,應用程序實現了真正的并行任務執行。這樣不僅增強了CPU使用效率更高和系統可靠性更高這兩個優點,而且使性能得到徹底提高。使用線程還可以把占據長時間的程序中的任務放到后臺去處理,用戶界面可以及時響應。一個多線程服務程序中的線程大致可分為三類:IO線程計算線程其它輔助線程系統框架的分析與性能優化實時感知數據庫系統在進行調度優化時通常考慮以下三個主要因素:優化定期計算事務:將長時間計算任務綁定到特定處理器上,減少對其他任務的干擾,降低線程切換開銷。優化共享數據訪問:將需要共享相同數據的線程或進程綁定到同一CPU上,提高CPUCach

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論