S/4 HANA中的數據庫鎖策略


S4中的新的MM數據模型以及HANA的Insert-only特性允許物料憑證的並行處理,提高了相關的吞吐量。由此,數據庫鎖的應用情況也發生了變化。下文將介紹這些變化(基於S4 1610)。

 

本文鏈接:http://www.cnblogs.com/hhelibeb/p/9059153.html

英文原文:Lock strategies in S/4HANA 1610

Key figure模型和Account模型

在SAP S/4 HANA, on-premise edition 1610中,物料估價不再需要排它鎖(exclusive locking),這包含所有價格控制為“移動平均價”的和所有特殊庫存類型的物料,因為HANA是一個Insert-only數據庫,因此它允許物料憑證的並行處理。

因為在S/4HANA OP1610和CE1608中,新的MM-IM數據模型將舊的key figure模型變為了account模型(還添加了53個幫助快速計算/統計的附加列),這允許更細粒度的延遲數量鎖定。

下面就是Key figure模型和Account模型的例子,

Key figure模型:

Account模型

對於Key figure模型模型而言,必須在物料和工廠級別上加鎖。但是通過Account模型,可以在物料、工廠、存儲位置、存儲標識、特殊存儲標識級別加鎖(原則上可以在新模型中任何定義了庫存的級別上加鎖)。因此,即便是在過去很可能發生鎖碰撞的情況下,現在也能並行處理了。

移動平均價的鎖

當貨物移動改變了庫存價值(SALK3)和已估計庫存(LBKUM)的時候,移動平均價必須據此調整,這會產生一個V1級別的更新,並且在更新結束前一直需要一個排它鎖。數量/價值的變化主要來源於貨物移動帶來的外部值(比如,來自於采購訂單)。然而,如果變化的來源僅僅是舍入差異,移動平均價將不會再調整。

創建批次時的鎖(分割評估)

如果創建了物料主數據或者由一個貨物移動帶來改變時,還是需要排它鎖的。如果使用了分割評估,且必須創建新的批次的話,貨物移動會創建物料主數據。

對不允許負庫存的工廠的延遲共享鎖

S/4 HANA OP1610和CE1608引入了一個新的增加吞吐量的選項。這個選項可以在配置中設定,對延遲鎖策略(late lock strategy),不允許再使用排它鎖,而是使用延遲共享鎖(late shared locks),這使得物料憑證的並行處理成為了真正的現實。

庫存檢查在這種情況下依然是可行的,因為所有的處理進程都會把他們的提取發送到鎖服務器,此時,鎖服務器將成為庫存變更的第二存儲(第一存儲是數據庫),數據的計算會從第一和第二存儲進行。

批次主數據變更時的鎖

從S/4 HANA OP1610和CE1608開始,為了物料憑證過賬時的碰撞率,對於批次物料行項目而言,批次鎖只會在批次主數據變更時存在,例如生產日期或best before date變更、且與數據庫中現有值不同時

對On-the-fly calculations的優化

由於on-the-fly calculation,聚合數量變化會存儲到混合和聚合表中,成為實際庫存數據。這使得對這些表的讀訪問要比Suite on HANA慢。

為了將on-the-fly calculation的劣勢轉變為優勢,S/4 HANA OP1610和CE1608會引入以下特性:

  • 在預讀取階段,只有物料主數據會被讀取到內部緩存中,這是通過純物料主數據視圖來從數據庫中檢索數據的。
  • 行項目處理中庫存數量會從數據庫的Account模型中讀取,並且這只會在庫存減少、且禁止負庫存的情況下才會進行。

因此,對於S/4 HANA OP1610和CE1608而言,為延遲鎖策略的進行的調整允許物料憑證處理的平行處理,而從數據庫讀取庫存數量的策略和庫存檢查的策略減少了單個物料憑證的處理時間。總之,相較於過去的S/4 HANA OP1511和Suite on HANA,新版本的系統減少了物料憑證的處理時間。

允許負庫存的工廠的鎖策略

  1. 在延遲鎖策略下,不再加任何鎖。
  2. 不會再從數據庫進行庫存判斷,也不會再進行庫存檢查(在兩種鎖策略下都是)。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM