物聯網大數據處理技術與實踐InternetofThings
BigDataprocessingTechnologyandPractice感知數據庫管理系統感知數據庫的總體設計1感知數據庫的分布部署體系2感知數據庫中的關鍵技術3PARTONE1感知數據庫的總體設計師傅領進門,學藝在自身。------中國諺語感知數據庫總體設計感知數據庫設計的主要原則:松耦合組件化消息機制感知數據庫松耦合:由于感知數據的海量數據流以上行數據為主的特性,因將高頻度、周期性的感知數據在線處理任務與其他非周期任務分開處理,以避免系統抖動問題。組件化:通過系統的解耦和以及組件化設計,有利用系統的分布式部署以及充分利用服務器上的多處理器多核的計算能力。消息機制:組件之間更多采用消息機制,提高并發處理能力,避免接口調用導致堵塞降低系統性能。感知數據庫的設計框架感知數據系統主要包含九大組件,分別是:數據采集協調器、內存數據管理器、歷史數據管理器、數據組織管理器、實時事務調度中心、數據訂閱-發布中心、數據同步服務器、日志管理器、應用接口服務器組成。如右圖所示。應用服務接口數據訂閱-發布中心數據同步服務器內存數據管理器數據采集協調器日志管理器實時調度處理中心歷史數據管理器數據組織管理器感知數據庫的設計框架感知數據庫系統的九大組件具體功能如下:(1)數據采集協調器:提供一個標準的框架及其插件的系統架構,不同協議類似于一個插件,可以動態加入統一的框架中,方便系統擴展數據采集能力。(2)數據組織管理器:數據組織管理器按照時態對象模型組織數據,其中實時數據由內存數據管理器負責組織管理,歷史數據緩存以及持久存儲由歷史數據管理器負責。感知數據庫的設計框架(3)內存數據管理器:內存數據管理器利用主內存的快速存取優勢,采用獨占寫數據權限+共享多用戶讀數據權限,以及多版本并發控制,最大化數據訪問的并發能力,以便快速處理源源不斷到達的實時數據流。(4)歷史數據管理器:歷史數據管理器采用數據緩存、數據塊、歸檔文件三級模式進行數據管理。歷史數據管理器利用數據緩存進行數據壓縮打包,并建立索引,形成數據塊,存入物理磁盤。根據數據訪問需求以及用戶設置,長期不用的數據可以轉換成歸檔文件,歸檔文件一般不提供在線查詢服務。(5)實時事務調度中心:系統中所有的數據操作都是采用事務模型進行處理,實時事務調度處理中心是整個系統的核心,事務的調度算法以及并發控制機制是體現系統性能的關鍵。(6)數據訂閱-發布中心:由于感知數據處理的實時性需求,數據分發方式不能采用關系數據庫等傳統系統的查詢或者輪詢方式,必須采用訂閱-發布機制確保數據更新能夠及時地到達系統內部的其他組件或者外部應用。感知數據庫的設計框架(7)數據同步服務器:數據同步服務器是支撐系統進行分布式部署的基礎,常用的同步方式包括鏡像同步與聚合同步。·鏡像同步主要應用于跨網絡的數據共享應用,最典型的場景是通過網絡隔離裝置-安全隔離網閘實現的單向數據同步服務-通用的網閘設計一般分三個基本部分:內網處理單元、外網處理單元、隔離與交換控制單元(8)日志管理器:日志管理器主要用來記錄數據庫中的重大參數修改、系統運行日志、用戶事務日志、錯誤日志等,其中系統運行日志包括數據采集接口運行狀態、用戶端連接狀態、系統運行負荷等內容。(9)應用接口服務器:系統對外提供數據訂閱服務、數據查詢服務、數據回放服務以及對SQL語言的支持等,這些都是使用特定的協議通過應用接口服務與系統打交道。網閘結構PARTTWO2感知數據庫的分布部署體系感知數據庫的分布部署體系感知數據庫的分布部署一方面來源于系統的分級、分區管理需求,另一方面來源于系統的高性能與高可用性需求,而且系統高可用性的分布部署模式也是整個系統分布部署的基礎環節。系統的集群部署模式根據側重的方向和目的,集群分為三大類:高性能集群(HighPerformanceCluster,HPC)負載均衡集群(LoadBalanceCluster,LBC)高可用性集群(HighAvailabilityCluster,HAC)高性能集群目的是利用一個集群中的多臺機器共同完成同一件任務,使得完成任務的速度和可靠性都遠遠高于單機運行的效果,彌補單機性能上的不足主要用在天氣預報、環境監控等數據量大、計算復雜的環境中系統的集群部署模式負載均衡集群利用一個集群中的多臺單機,完成許多并行的小的工作主要目的是選擇負載最小的機器,縮短用戶請求的響應時間,提供最好的服務,并且增加系統的可用性和穩定性在網站中使用較多高可用性集群
依利用集群中系統的冗余,最大限度地保證集群中服務的可用性
廣泛應用于系統可靠性要求高的領域系統的集群部署模式按照集群工作的層面可分為:數據庫集群、應用服務集群、交換機集群等。MicrosoftSQLServer自身可提供兩種集群技術:失敗轉移集群(MSCS:MicrosoftSQLClusterServer)和鏡像(Mirror)鏡像(Mirror)是一種不需要共享磁盤的高可用集群,是數據庫級別的集群。MSCS是一種基于共享磁盤的高可用集群,是操作系統級別的集群,這也能夠通過第三方的高可用(HA:HighAvailability)軟件實現系統的集群部署模式目前,工業上數據庫系統支持最多并且最常用的集群方式是雙機熱備與鏡像。雙機熱備:是一種主從模式、基于共享磁盤的失敗轉移集群,是操作系統級別的集群,大部分通過操作系統或者第三方的HA軟件來實現,不需要數據庫系統的特別支持。數據庫鏡像:是非共享磁盤型的高可用解決方案,可分為完全鏡像與部分鏡像,一般需要數據庫自身的支持,是進行系統多層級部署的基礎;部分數據鏡像的主要目的是實現數據庫的聚合同步,實現系統的分級部署。系統的集群部署模式數據庫系統的雙機部署模式系統的集群部署模式多點集群是雙機系統在技術上的提升,由多臺服務器組成一個集群,靈活地進行系統部署,并設置適合的接管策略。常用的方式有:一備多、多備多、多機互備等。可以充分地利用服務器資源,同時保證系統的高可用性與擴展能力。數據庫系統的多點集群部署模式系統的集群部署模式以上集群部署模式主要目的在于系統的高可用性,通過雙機互備或者多點集群能在一定程度上實現系統的高性能。這些部署中的許多模式需要數據庫本身的支持,包括數據庫的多實例、數據同步復制、全局數據字典管理、多服務器的統一訪問接口等等。多層級的系統部署體系一級數據庫系統:一般來說,一級數據庫系統部署在基層單位,直接從工業現場、傳感器網絡或者嵌入式數據庫中采集或者同步復制數據,支持本地應用并為上一級系統提供數據基礎;感知數據庫系統的部署可以根據實際需求采用雙機熱備、雙機互備、雙機雙工或者多點集群等模式。這一級數據庫系統更多地是面向SCADA之類的綜合自動化應用,以及部分在線計算分析應用。由于物聯網本身的廣域特征以及管理的級別體系需求,感知數據庫系統在一定情況下有必要采用多層級的分布式體系。下面,我們以典型的三級分布部署體系為例,描述多層級的系統部署體系。多層級的系統部署體系二級數據庫系統:二級數據庫系統同樣可采用多種部署方式,數據來源可能包括工業現場、一級數據庫系統以及一定數量的在線整合計算數據,并可支持數據的歸檔管理;二級數據庫系統與一級數據庫可以采用鏡像方式進行數據同步復制,并且在必要的情況下支持跨網閘的數據傳輸,保證兩級系統之間的網絡隔離。三級數據庫系統或者大數據云平臺:三級數據庫系統的數據主要來源于二級數據庫以及在線的整合計算數據,系統主要是面向管理業務提供實時的統計分析以及設備運行分析與預測應用,而非面向監控應用。系統在二級數據庫系統的基礎上,更加深入地與關系數據庫、知識庫系統等結合,通過進一步數據整合計算或者數據挖掘分析,構建全面完整的企業實時數據倉庫和挖掘分析平臺。多層級的系統部署體系數據庫系統的三級部署體系多層級的數據庫系統部署體系是許多大型工廠與企業進行實時數據平臺建設的基本模式,要求大型分布式數據庫系統產品提供一定的功能支持,包括數據庫的聚合同步、數據的在線整合計算、一定的數據挖掘分析能力等。服務分布的部署體系感知數據庫系統不僅需要支持系統的多級部署,而且應該支持系統中不同服務的分布部署感知數據庫系統中的服務通常包括:基于內存的實時數據服務、歷史數據服務、報警與事件服務、數據訂閱服務、數據目錄服務、實時計算服務等等這些服務通過實時高效的通信機制互聯互通,其分布部署體系分為三個方面:服務的分布式部署系統中,每類服務都可有多個,每個服務都可單獨部署,多個服務也可部署在同一節點上。通過分布式部署某類服務的多個實例,可提高服務和系統的并行處理能力。例如,實時數據服務與歷史數據服務以及報警與事件服務都能夠部署在不同的服務器上。服務間的靈活映射系統中不同服務之間的關系可根據應用需求進行動態組合、拆分和配置;比如,某幾個實時數據服務可以對應到某一歷史數據服務。服務間的靈活映射是系統進行多點集群部署的基礎。服務的冗余配置系統中重要的服務可冗余配置,包括雙機熱備、雙機互備、多機互備等上面描述的多種方式,保證整個系統的高可用性。服務分布的部署體系感知數據庫系統的服務分布部署體系PARTTHREE3感知數據庫中的關鍵技術智能設備及傳感器接口技術隨著工業領域的發展,智能工廠、智能生產、智能物流對設備的智能化、生產線的智能化以及感知手段有了更新更高的要求。此外,在智能建筑、智能家居、環境監控等領域,都涉及到系統與智能設備、傳感器的雙向通信與交互。智能設備及傳感器接口技術從設計方面來說,系統需要提供可配置的協議擴展框架,以便兼容眾多的工業總線協議及廠商的定制化協議。常見的工業協議有:Modubus、Prifibus、BACnet、CAN、Lonworks以及OPC、SNMP等。右圖給出了系統的協議擴展框架:感知數據采集協調器的框架+插件模型智能設備及傳感器接口技術感知數據采集協調器把遠遠不斷涌來的數據按照優先級放入不同的數據隊列,以便基于內存的實時數據管理器進行處理。感知數據采集協調器的數據交互模型流數據實時在線處理技術基于目前廣泛使用的多CPU多核的特點,系統根據需要建立感知事務處理線程池;根據優先級調度執行感知數據對象的在線處理過程,數據更新結果進入基于內存的實時數據管理器;根據事件定義觸發相應的事件,放入事件隊列;根據用戶的訂閱需求,把需要發布的數據放入發布隊列。感知數據庫工作原理流數據實時在線處理技術感知數據屬于典型的流數據,它的處理具有流數據處理的典型特征:數據觸發模式,處理過程始終在線;在數據流動的過程中進行處理與計算;只對一段時間內的數據進行處理,感知數據對象內置的在線處理過程必須能夠在確定的時間內完成,否則會影響整個系統的性能。流數據實時在線處理技術內置的在線處理過程針對采集的數據進行常規處理,通常包括以下內容:標記時間戳基本報警判定更新內存快照訂閱數據發布除了以上系統提供的標準數據操作,系統還支持定制內嵌操作或者進行操作的擴展,以便提供更加豐富的數據處理能力。事件驅動的高效處理機制事件驅動框架(EDA:Event-DrivenArchitecture)是Gartner于2003年提出的實時事件處理的軟件架構,它定義了一個設計和實現軟件系統的方法學,在這個系統里事件可傳輸于松散耦合的軟件組件和服務之間。一個事件驅動系統典型地由事件消費者和事件產生者組成,通常采用訂閱-發布機制。事件驅動架構在具體實現中是指由一系列相關組件構成的應用,而組件之間通過事件機制完成一定的業務功能。事件驅動的高效處理機制EDA系統能夠更有加效地對管道化(Pipelined)的、由多軟件模塊鏈接而成的并發事件流(ConcurrentProcessingofEvents)進行處理。其各組件以異步方式響應事件,在本質上是可以并行的,其具備以下特點:并發執行事件觸發/數據觸發/時間規則觸發實時/增量響應分布式事件系統處理事件驅動設計和開發的優勢如下:可以更容易開發和維護大規模分布式應用程序和不可預知的服務或異步服務;可以很容易,低成本地集成、再集成、再配置新的和已存在的應用程序和服務;促進遠程組件和服務的再使用,擁有一個更靈敏、健壯的開發環境;系統對動態處理有更好的響應,對實時變化的響應接近于同步。事件驅動的高效處理機制數據的訂閱-發布
數據的訂閱-發布模式是以消息流的處理為核心的技術框架,消息的產生是由感知數據對象的更新事件驅動。
訂閱-發布模式定義了一種一對多的依賴關系,讓多個訂閱者同時監聽某一個感知數據對象。事件驅動的高效處理機制數據的訂閱-發布
對于感知數據這類具有時態屬性的數據來說,數據或者消息的分發同樣具有實時性要求。消息的調度處理機制能夠緩解消息傳輸中的優先級反轉問題,為實時數據庫的實時性需求提供了基礎。消息調度對512字節消息傳輸的影響消息調度對16K消息傳輸的影響事件驅動的高效處理機制數據的訂閱-發布基于訂閱-發布的實時消息通信體系必須提供如下功能:提供端到端(Peer-to-Peer)的消息通訊能力,支持QoS保證;消息發送單次可達:保證每個消息能從發送者到達接收者,且僅被接收一次;提供多種消息緩存機制:使其能夠支持各種不同應用或組件的消息存取速度、持久性和可靠性等方面的不同需求;消息的調度管理:隊列中的消息可以按照截止期或優先級進行排列,為消息傳遞提供可預測的、確定的時延。
事件驅動的高效處理機制復合事件處理技術
簡單事件處理(SimpleEventProcessing)是消息導向的架構,主要處理單一事件,其中事件則定義為可直接觀察到的改變。
復合事件處理(ComplexEventProcessing)機制使用模式比對、事件的相互關系、事件間的聚合關系,從事件云(EventCloud)中找出有意義的事件,使得系統可以更能彈性使用事件驅動架構,并且能更快速的開發出更復雜的邏輯架構。
復合事件處理描述的就是系統如何持續地處理這些事件,即系統對變化的持續反應。事件驅動的高效處理機制復合事件處理技術
規則語言定義事件處理的規則,即ECA規則:事件+條件
動作。當某事件發生時,如果某些條件滿足,執行一些處理或者一些動作。
持續查詢語言CQL使用類似SQL的語法來描述事件和事件反應處理規則。對于內存中大量的外部事件和內部對象,CQL通過查詢語句來做條件匹配,同時提供回調函數,當某些事件或者對象符合查詢條件,就調用回調函數做相應的處理。
復合事件處理描述的就是系統如何持續地處理這些事件,即系統對變化的持續反應。事件驅動的高效處理機制復合事件處理技術規則語言和持續查詢語言的比較分為以下幾類:兩種技術的實現手段兩種技術的性能如何選擇使用哪種技術復合事件處理技術替代普通編程語言來實現一些應用的好處:開發時采用聲明型語言替代過程式語言兩種技術的性能在對大量事件和對象的持續條件匹配和處理的過程中,復合事件處理產品提供高效的條件匹配,對象查詢感知數據的壓縮存儲技術實時數據采集要求在線壓縮以解決巨大數據量和不穩定網絡的挑戰。有損壓縮方法如旋轉門算法適用于批量數據,而快速且高壓縮比的無損壓縮則適用于高精度數據。數據存儲管理采用內存、數據庫和文件隊列三級管理體制,定制化支持地震勘探數據管理的需求數據壓縮優化存儲空間,并提高數據查詢與檢索速度數據存儲管理示意圖數據在線壓縮技術工業實時數據庫系統采用有損和無損壓縮算法,分別應用于不同數據類型。死區壓縮算法通過比較當前數據與上一個保存的數據的偏差來決定是否保存當前數據,適用于穩定測點數據的壓縮和噪音過濾。該算法在處理線性漂移數據方面存在限制,不能很好地進行壓縮。對于沿斜線變化的數據,需要采用能處理斜率變化的壓縮方式以實現更有效的壓縮。死區壓縮算法的原理數據在線壓縮技術旋轉門壓縮算法是OSIsoft公司PI系統的核心壓縮算法,基于Bristol提出的旋轉門趨勢化算法。它是一種快速、高效、簡單且可控制誤差的線性擬合算法,適用于大量臨近度高的浮點型數據壓縮,顯著減少存儲空間占用。旋轉門算法以A點為基準,利用平行四邊形確定存儲與丟棄點。具體實現簡單,計算量小,最大誤差為壓縮精度的一半。旋轉門算法能有效處理數據壓縮,優化存儲空間利用。旋轉門壓縮算法原理圖感知數據的索引技術時間序列感知數據存儲中建立基于時間的索引至關重要,有助于提高系統性能。于時間的索引機制使系統能夠快速定位數據位置,加快數據檢索速度。感知數據主要應用模式包括基于事件的查詢,如狀態異常事件、用戶反饋信息等,可為感知數據建立輔助索引,提升查詢和分析效率。基于時間的索引建立示意圖THANKS
FOR
YOUR
WATCHINGLoremIpsumDolorSitErElitLamet,ConsectetaurCilliumAdipisicingPecu,SedDoEiusmodTemporIncididuntUtLaboreEtDoloreMagnaAliqua.Thankyou物聯網大數據處理技術與實踐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事務的執行框架與模式通用系統模型與調度方法
在多核、多線程、多處理器環境中的系統模型與事務調度以及并發控制都需要重新分析與設計,下面我們從數據庫系統模型的設計出發,分析多核、多處理器環境中優化的實時數據庫系統開發模式以及設計中的關鍵問題,給出一個泛化的、基于前面描述的感知事務模型的單進程多線程事務處理框架,并在此基礎上,分析優化的多進程、多線程的事務處理框架的設計模式。單進程多線程模式單進程多線程系統模式的優勢在于提高系統并行性與提供處理器資源利用率的同時,具有系統開銷小、數據共享方便等優點。右圖給出了一個單進程多線程的事務調度處理框架。其主要包括事務隊列管理器和事務調度主線程。事務隊列管理器用于管理來自采集接口的各種事務。事務調度主線程根據預定義的事務調度策略為事務分派不同的事務處理線程執行事務,事務處理線程根據操作系統的調度機制分配處理器資源運行,也可以由事務調度主線程指定處理器或者內核運行。基于功能劃分的多線程模式右圖給出了基于功能劃分的數據庫多進程系統模型。其中,實時數據管理與歷史數據管理分別由不同的進程負責,并且提供一定的進程間通信機制與數據存取接口。多進程系統的優點在于內存隔離,單個進程的異常不會導致整個系統的崩潰;缺點是由于大量的進程間
評論
0/150
提交評論