[譯文]SQL Server 2014–Hekaton概觀

  • 3063
  • 0

[譯文]SQL Server 2014–Hekaton概觀

   Microsoft從之前就開始在研究關於記憶體式資料庫的技術,在最新一代的SQL Server 2014中以模組的方式掛載進去,並且給予代號名稱:Hekaton。Hekaton大量的改善了效能以及SQL Server在即時交易處理上的延遲問題。

 

   Hekaton的架構設計主要環繞在四個主要的元素:

   1. 主記憶體資料存取的優化

       儲存優化引擎(i.e. 就像是SQL Server中的OLTP引擎)會將較常被存取的資料放置到主記憶體中的緩衝區中。在主記憶體中的資料可被存取和修改,然而,以舊觀點來看待主記憶體中的資料會以Page置換的方式往復在主記憶體和硬碟之間。Hekaton會觀察緩衝區的儲存在分派空間與空間破碎的情況,並且每分鐘都會紀錄資料異動的操作。你會將即時交易次數較頻繁的資料表放置在Hekaton中,其餘的資料表仍放置在原本的SQL Server原來的模組中。這樣一來就可以讓熱點資料表得到記憶體存取效能的優點,並且不需要管理多個資料儲存引擎。

 

       Hekation的主記憶體架構雖然避開了一些管理上的成本和過去優化資料存取所可能帶來的負面效應,但它仍能提供資料庫系統完整的ACID。舉例來說,durability在Hekaton是利用Streamlined紀錄和使用效能較佳的循序IO檢查點機制來達成。

 

   2. 加速商業邏輯處理

       目前已知CPU的時脈已到了極限,Hektaton需要更有效率的使用每一個核心的CPU。如今,SQL Server的查詢處理器採用直譯式的方式編譯查詢和預存程序。Hekaton則是將查詢和預存程序的T-SQL陳述句在編譯時期直接編譯成經過特殊優化的機械碼。這讓預存程序可以執行在效能較高的原生碼上。

 

   3. 提供硬體擴展

       現在要找到具有16到32核並且2路Socket的伺服器已經是相當容易的事。儲存優化引擎依賴於各種不同的的機制,例如鎖和閂提供了同步問題的管理。這些機制通常在當硬體升級到更多核CPU時,會帶來很多問題。Hekaton實做了高擴展的同步問題管理機制,並且採用無鎖式資料儲存方式來消弭傳統的鎖和閂所帶來的負面效應。

 

   4. 內建到SQL Server中

       Hekaton是SQL Server的新功能模組。

 

   為了讓大家能易於使用,SQL Server內建一個分析工具,該工具可以讓你瞭解到那些資料表和預存程序應該放到Hekaton中。首先,可以鍵入以下指令將資料表放置到Hekaton中:

Create table Order.hekaton
(
   [order_number] integer not null Primary Key Hash With(Bucket_count = 65536),
   [date] datetime not null,
   ...
   [Description] varchar(32) null

) With (Memory_Optimized =On, Durability = Schema_And_Data)

Go

Insert Into Order_hekaton Select = from order;

  

   放入Hekaton的資料表大小不能超過主記憶體的容量大小;存取Hekaton中的資料表就像存取一般資料表一樣,提供了優化卻擁有與過去操作資料表一樣的操作方式。

   在移轉完成後,有關這張放到Hekaton的資料表相關的預存程序,可以考慮將其轉換成原生碼型的預存程序了。重新編譯這些預存程序:

Create Procedure order_proc_hekaton @order_number integer
   With Native_Compilation, SchemaBinding, Execute as Ower
As 
Begin Atomic With(Transaction Isolation Level = Snapshop)
   Select Product.id from order_hekaton where order_number = @order_number
End

  

   Hekaton帶來的效能提升有多大呢?經過實測驗證了大概提了5 ~ 50倍的吞吐量於相同的硬體上。實際上能夠提升多少倍速關係到很多因素,例如像是有多少資料可以被移轉到Hekaton,有多少即時交易的可以應用在Hekaton。

 

原文鏈結:http://blogs.technet.com/b/dataplatforminsider/archive/2012/11/08/breakthrough-performance-with-in-memory-technologies.aspx