owned this note changed a year ago
Linked with GitHub

講稿

3

傳統上我們用 maximum allowable loss percentage 來表達 deadline miss 的容忍度,例如在影片串流允許 10% 的 maximum allowable loss percentage。我們對 maximum allowable loss percentage 的期待是這些發生 deadline miss 的事件是均勻分散的,但是我們僅用整體的 loss percentage 去評估往往不符合我們的期待。拿影片串流為例,如果連續好幾幀都丟失,就算整部影片的 loss percentage 為 10%,視覺上就會發現影片掉幀。為了解決上述的問題,我們可以用另一個方法來表達容忍度:在任意 k 個連續 frame 的 window 中至少有 m 個 frame meet deadline,即 (m, k)-firm deadline。

4

在 (m, k)-firm deadlines 的 stream 中,如果在任意 k 個連續 customer 少於 m 個 customer meet deadline,則稱此 stream 遇到 dynamic failure。customer 與 stream 的定義稍後會講解。

本論文想解決的問題就是將 customer schedule 在單個 server 上,以降低平均 dynamic failure 的機率。

5

過去已經有很多研究提出一個可以達到 maximum allowable loss percentage 的 model,像是以下 paper,然而,這些研究著重的點是在整體的 loss percentage,但不會去在意連續 customers miss 的問題。

6

有另一些研究會專門針對類的 (m, k)-firm deadline,提出 imprecise computation model。在這一類的 model 中,會將 customers 分成 mandatory 和 optional 兩類。其中, optional customers 採用的是 best-effort basis,也就是當系統有餘裕時才會 service 這類的 customers。而這 model 應用在 (m, k)-firm deadline 就是將一個 window 內 k 個 customers 分配只少 m 個 mandatory customers。這種 model 的方式雖然可以減少 dynamic failure,但是會讓整體的 deadline miss rate 更高。

7

考慮一個 real-time customer stream,其中 customer 可以是 task、message 等在 real time application 中的 schedulable entity。如果 customer 可以在 deadline 前被 fully serviced,則稱這個 customer meet the deadline。反之則為 miss the deadline。

8

9

而我們可以 generally 得用 (m, k)-firm deadline 來表示各個 case。如果這個 stream 的每個 customer 都必須 meet the deadline,可以用 (1, 1)-firm deadlines 表示。如果這個系統要求不能有連續兩個 customer miss the deadline,則是 (1, 2)-firm deadlines。而 (4, 6)-firm deadline 隱含的是不會有三個以上連續的 customers miss the deadline,不僅如此,還確保在 6 個 customers 的 window size 裡至少 4 個 customer meet the deadline。

10

(m, k)-firm 也隱含了一個概念,就是這個 stream 有 (k - m)/k maximum allowable loss rate。(4, 5)-firm 代表 20% 的 maximum allowable loss rate。(8, 10)-firm 比 (4, 5)-firm 來得不嚴格一點,依然表示 20% 的 maximum allowable loss rate。

我們考慮到一個由 N 個 stream 組的系統,每個 stream 編號從 R1 到 RN。Stream Rj 有 (mj, kj)-firm deadline。而本篇論文所要討論的就是一個 server 或是說一個 system,我們要如何去 schedule 這些 customers 來降低 average probability of dynamic failure。

11

也解決這個議題,最直觀的方式就是去降低各個 customer miss the deadline 的機率。以下介紹的是過往的 scheduling policies。

每個 stream 都有一個 FIFO queue,確保一個 stream 的各個 customer 的順序是依照它的 arrival order。另外會有一個 service queue 從這些 stream queue 的端點中選擇 customer 執行,如下圖

12

這邊舉兩種常見的例子說明 service queue 挑選的 policy。第一種是 FIFO policy,如果一個 stream 的最前面的 customer 它的 arrival 時間最早,那我們就將它拉進 service queue 裡。另一種方式是 EDF policy,挑選的方式是根據各個 customer 的 deadline,deadline 最早的會最先被挑選。

13

而本篇研究提出的方式也可以套用這種 service queue model,我們會挑選各個 stream 中 priority 最高的 customer 放進 service queue,若 priority 相同,因為過往研究發現 EDF policy 會有更好的表現,會採用 EDF policy。

14

而這章節會詳細討論論文提出的 DBP 的策略。在 DBP policy 裡,我們會根據各個 stream miss 或是 meet 的歷史紀錄來 assign 給 customer priority。

對於每個 stream,系統會有一個 state 用來記錄歷史。每個 customer 有可能會被 service 或是被 drop 掉,而一個 serviced customer 有可能 miss 或是 meet the deadline。而這裡所有被 dropped 的 customer 也被視為是 miss the deadline。

15

這邊介紹一些符號定義。\(\delta_i^j\) 用來表示 stream Rj 中第 i 個 customer 的 status, i 大於等於 1。

我們用一個 kj tuple 表示一個給定時間點 stream Rj 的 state。其中最右邊的代表 arrivel time 最早。

如果 Rj 這個 stream 的 state 少於 mj 個 meet,則稱這個 state 是 failing state。

我們分別用 M 和 m 或是 1 和 0 來表示 customer 的 status 是 meet 還是 miss the deadline。
舉例來說,這個 stream 最近三次 customer 的 status 分別為 miss、meet、meet。

16

我們的目標是要防止 stream 進入 failing state。

如果 stream 越接近 failing state,我們就給他越高的 priority。

在本篇論文提出的方法中,是用這個 stream 在 current state 時,距離 failing state 還需多少個連續的 miss 來決定其 priority value,當一個 stream priority value 越低,代表這個 stream 距離 failing state 越近,priority 越高。

17

我們可以將 DBP scheme 畫成 FSM。以下是 (2, 3)-firm deadlines 的圖。圖中的圓圈代表各個 state,而灰斜線的 state 代表 failing state,我們可以看到 failing state 中,3 個連續的 status 中有兩個以上的 miss。圖中的箭頭則表示這個 state 根據下個 customer 是 miss 或是 meet 會到下個 state。

各個 state 的 priority value 我用紅字標示在 state 的右上方,可以看到 priority value 為 0 的 state 代表 failing state,需要給他更高的 priority,priority value 為 1 的 state 代表再一個 miss 就會進入 failing state,priority value 為 2 的 state 則是連續兩個 miss 才會進入 failing state

18

我們採用 DBP 這個 scheme 在一個有不同 deadline firm 的 stream 的系統中也有好處。比方說有一個系統有兩個 stream,分別為 (3, 5)-firm deadlines 和 (9, 10)-firm deadlines

第一個 stream 在連續 5 個 customers 中可以容忍 2 misses,40% loss rate。第二個 stream 在連續 10 個 customers 種只可以容忍 1 miss,10% loss rate。在傳統的 single priority scheme 中,不會考慮到不同 streams 的 timing requirements,導致整個系統,也就是兩個 streams 有一樣的 loss rate。但要注意的是,DBP scheme 跟 static 得給 deadline requirement 高的 stream 比較高的優先度也不一樣。在後者的方式中,因為 (9, 10)-firm deadlines 的 requirement 更高,會固定給其比較高的 priority。而在 DBP scheme,是看跟 failing state 的距離決定 priority,因此,若 (3, 5)-firm 距離 failing state 更近,會拿到比 (9, 10)-firm 更高的 priority。

19

而這個方法可以用硬體或軟體來實作,我們可以將 stream Rj 的 state 存放在 k-j bit 的 register 中,用 0 和 1 分別代表 miss 和 meet the deadline。當下一個 customer 被 serviced 時,我們可以根據該 customer 是 miss 或是 meet 分別 shift in 0 或是 1。

20

而這裡我們定義 lj(n, s),用來表示 register 中,從右邊數來第 n 個 meet 的位置,s 則是代表當前時間點 stream Rj 的 state。若 register 中少於 n 個 1,則我們將 lj(n, s) 設為 kj + 1。

這邊舉一個例子作說明,


21

我們透過模擬器評估 DBP 與 single priority (簡稱為 SP) 的 dynamic failure 機率,在 DBP 與 SP 中,如果 customer 的 priority 都相同則採用 earliest-deadline-first 來 schedule。

使用兩種模式來生成 customer,分別為 Poisson 與 bursty。在 Poisson stream 中,customer 的 inter-arrival time 為指數分布;bursty stream 則分為 ON 與 OFF 兩種狀態,狀態為 ON 時會定期產生 customer,OFF 時則不產生 customer,ON 與 OFF 的時長為指數分布。bursty 模式常常被用來模擬人談話的聲音,人在交談時為 ON,安靜時為 OFF。

22

在這個部分有 A 到 F 六個實驗,現在這張圖是實驗 A 的圖表。首先在 A、B 實驗中,我們考慮系統中所有 stream 有一樣的 (m,k)-firm,我們也假定只有 meet deadline 的 customer 能夠獲得 service。

Fig. 3 展示了 (1, 2)-firm 和 (3, 4)-firm 在兩個一樣的系統中的 dynamic failure 機率。系統中有 5 個 Poisson stream、所有 customer 的 service time 固定不變且期限為 service time 的 5 倍、customer 的 interarrival time 為指數分布,透過調整 interarrival time 來讓系統的 average load 介於 0.2 至 0.9。

Fig 3a 和 3b 唯一的差異在於對 miss deadline 的容忍度,3a 允許任 2 個連續 customer 中 1 個 miss deadline,而 3b 比較嚴格,只允許任 4 個中 1 個 miss deadline,也因此 3b 的 dynamic failure 機率比較高,在 3a 中 DBP 至少降低了 60% 的 dynamic failure,在 3b 中至少降低 40%。

23

Fig. 4 跟 Fig 3. 類似,展示了 (1, 2)-firm 和 (3-4)-firm 在兩個一樣的系統中的 dynamic failure 機率。系統中有 5 個 bursty stream,\(ON\) 的平均時間為 50 微秒、\(OFF\) 的平均時間為 100 微秒,因此可以得到 ON 的狀態下 load 為 average load 的三倍。在 ON 狀態下,每個 stream 每 5 微秒會生成一個 customer、每個 customer 的 deadline 是 10 微秒、透過拉長 service time 來把 average load 調整在 0.2 和 0.9 之間。同樣的,實驗結果表明 DBP 較 SP 優。

在 4a DBP 的 dynamic failure 機率大致少了 95%、在 4b 減少幅度則較小。

比較實驗 A 與實驗 B,也可以發現 bursty stream 的 dynamic failure 率要比 Poisson stream 高,這是因為 bursty 在此實驗中尖峰時段 load 接近 average load 的 3 倍),尖峰時段 load 時常大於 1,意味著系統常常 overload,所以在相同的 average load 下,bursty 的 dynamic failure 機率比較高。

24

在 A、B 實驗中,我們都假設系統已知每個 customer 的 service time,所以在 service 前把必定 miss deadline 的 customer drop 掉,然而不是每一種系統都能預先知道 service time,在實驗 C 使用這種必須 serve 所有 customer 的系統,不允許 drop 掉。

Fig 5. 展示了基於實驗 A,也就是 Poisson stream 的系統,但是不允許 drop customer。因為這次實驗中,實質上獲得 service 的 customer 更多了, dynamic failure 機率也提高,雖然 DBP 相較 SP 減少超過 80% 的 dynamic failure 機率,但機率的數值仍然比 Fig 3. 高。

25

在前面 A、B、C 實驗中,每個 stream 的 (m,k)-firm 都相同。本實驗將每個 stream 設為不同的 (m, k)-firm。分別為 (9, 10)-firm、(3, 4)-firm、(1, 2)-firm、(1, 3)-firm、(1, 4)-firm,其餘條件則同實驗 A。

在 Fig 6. 中,我們單獨挑出 average load 為 0.5、0.7、0.9 觀察,分別對應 6a、6b、6c。本次實驗除了 SP、DBP 外,還測試了另一種 policy 叫做 fixed priority (FP),在 FP 方案中,mk-firm 越緊迫的 stream 會被分配越高的優先度,也就是 (9, 10)-firm stream 的 customer 會被固定為最高 priority,最優先被執行,其次 (3, 4)-firm 依此類推,(1, 4)-firm stream 的 customer 為最低 priority。在 Fig 6. 中黑色是 SP、灰色是 FP、白色是 DBP。

觀察 Fig 6.,在 SP 中,mk-firm 越緊迫則 dynamic failure 率越高;相反的,在 FP 中,mk-firm 越緊迫則 dynamic faliure 則通常偏低。這表明了 (m, k)-firm deadline 的嚴格程度與 priority 的高低是影響 dynamic failure 的兩個因素,dynamic failure 的高低取決於這兩者的平衡。

最後觀察 DBP 擁有最低的 dynamic faliure 率,而且在緊迫的 (m, k)-firm 下表現遠超 SP,但是在 average load 偏低以及 (m, k)-firm 較不嚴格的 mk-firm stream 表現較差。另一方面,DBP 在 (m, k)-firm 較不嚴格的 stream 表現較 FP 好,反之 FP 則表現的比 DBP 好。最後綜觀 5a 5b 5c,DBP 在各種不同的 (m, k)-firm deadline 下,是較為平衡的方案。

26

實驗 E 是將實驗 C 中的 No-drop policy 的實驗結果與 impresice model 進行比較,我們前面有介紹過 Imprecise model 的定義,所有 customer 被區分為 mandatory 與 optional。mandatory customer 必須獲得 service,optional customer 則是拿來優化 mandotary customer,在整個系統 load 過高時可以被 drop。

在本實驗中,將 (m, k)-firm 結合 imprecise model,令 stream 中,連續 k 個 customer 裡要至少有 m 個 mandotary customer。本次實驗的系統基於 Fig 5b 的 (3, 4)-firm stream 組成的系統,並將 customer 掛上 mandotary 和 optional 的標籤。接著我們定義一個臨界點 \(T\),當在 service queue 中等候的 customer 數量超過 \(T\) 時,之後到達的 optional customer 會直接被丟掉。當 \(T = 0\) 所有 optional customer 都會被 drop;當 \(T = \infty\) 則所有 optional customer 都會獲得 service,也就是排程邏輯等同於 SP。

在 Fig 7. 中,x 軸為臨界點 \(T\) 的值,介於 0 到 8,左圖 y 軸為 dynamic failure 機率,右圖 y 軸為 customer miss deadline 的機率,Fig 7. 只抓 average load 為 0.3、0.6、0.8 來觀察。

透過觀察,只有 IMPRECISE 會與臨界點 \(T\) 有關,而 SP 與 DBP 並不會使用到 \(T\),因此我們可以看到不管 \(T\) 的值為何,SP 與 DBP 的 dynamic failure 機率都不變,為兩條水平線。imprecise model 在合適的臨界點 \(T\) 下,dynamic failure 機率與 DBP 差不多低,例如在 average load 較高且 \(T=0\) 時,左圖 dynamic failure 機率低。然而隨之而來的是右圖 customer miss deadline 機率大幅提升,因為當 \(T=0\) 時,所有 optional customer 都會被 drop 掉,而因為系統中所有 stream 都是 (3, 4)-firm,所以每四個 customer 必定會丟掉 1 個,導致 IMPRESICE model 中 customer miss deadline 的機率大於等於 0.25。反觀 DBP 則可以在不拉高 miss deadline 機率的情況下保持較低的 dynamic failure 機率。

imprecise model 還有一個問題,臨界點 \(T\) 的值需要依據 average load 來調整,我們可以看到在 load 為 0.3 時,\(T=0\) 反而對 imprecise model 造成很差的效果。綜觀以上,DBP 的效果優於 IMPRECISE model。

27

從前面的實驗,我們已經確定 DBP 相較於其他 policy,像 SP、FP、Impresice model 有較低的 dynamic failure 機率。在這個實驗 F 中則是研究 stream 數量對 DBP 的影響,固定 stream 的 mk-firm,我們逐次增加 stream 的數量,並且調整 customer 的 arrival rate 讓整個系統的 average load 保持相同。

在 Fig 8. 中,系統的 average load 為 0.7、所有 stream 都是 Poisson stream,stream 是 (1, 2)-firm deadline。8a 中所有 customer 都會獲得 service (也就是實驗 C 中的 No-drop policy)、8b 中只有 meet deadline 的 customer 會得到 service。

綜觀 8a 與 8b,當 stream 數量為 1,SP 與 DBP 的 dynamic failure 機率是一樣的,隨著 stream 數量越多,DBP 的 dynamic failure 機率以顯著的幅度下降,在 8a 中,3 個 stream 的狀況下 DBP 較 SP 少了 70% 的 dynamic failure 機率。

28

DBP 中可供分配的優限度是基於 (m, k)-firm,當 stream \(R_j\)\((m_j, k_j)\rm{-firm}\),則總共有 0,1,\(k_j-m_j+1\),總共 \(k_j-m_j+2\) 個不同的 priority level。因此,在多個不同 (m, k)-firm stream 的系統,必須支援所有 Stream 中,擁有最多 Priority level 的,如中間的公式:

\(P=\rm{max}\{k_j-m_j+2:j=1,2,...,N\}\)

但是現實中,一個系統通常會限制 priority level 的數量,例如 linux 系統中,priority 的值介於 -20 到 +19。我們將系統最大的 priority 記為 \(P_{max}\),在這個章節我們將討論 \(P_{max}<P\) 的狀況。

29

簡單來說,當系統的當一個 stream 與 failing state 的距離大於 \(P_{max}-1\),就還是分配 \(P_{max}-1\) 給它的 customer。我們用以下式子表達 stream \(R_j\) 的第 \(i+1\) 個 customer 將會分配到的 priority:

\(\mbox{priority }^j_{i+1}=\rm{min}\{k_j-l_j(m_j,s)+1,P_{max}-1\}\)

其中 s 和 \(l_j\) 的定義我們在前面提到過,s 是 \(R_j\) 目前的 state , \(l_j\) 是從右邊數來第 \(m_j\) 個 meet deadline 的 customer 的位置。

30

Fig 9. 系統中全為 (2,5)-firm deadline 的 Poisson stream,系統 average load 固定為 0.8。在理想情況下,\(P=5\) 且共有 0, 1, 2, 3, 4 五種 priority,但是我們透過調整 \(P_{max}\) 觀察不同 priority level 對 dynamic failure 機率的影響。9a 所有 customer 都會獲得 service (No-drop policy);9b 只有期限內可以完成的 customer 可以獲得 service,其餘則被 drop 掉。

\(P_{max}=1\) 時,只有一種 priority,等同於 SP。觀察 Fig 9. 可以發現其實 \(P_{max}=3\) 時,DBP 的效果就足夠好了,再提高 Priority level 降低 dynamic failure 的機率有限。當 \(P_{max}=3\) 時,failing state stream 的 customer 會被分配 priority 0、近期只有 1 個 customer miss deadline 的 stream priority 為 1、其餘 priority 為 2。

31

Fig 10. 則展示 \(P_{max}\) 對 hetrogeneous system 的影響,五個 stream 分別為 (9, 10)-firm、(3, 4)-firm、(1, 2)-firm、(1, 3)-firm、(1, 4)-firm,其餘條件與前一張投影片的實驗相同。這裡我們一樣可以發現當 \(P_{max}=3\) 時,DBP 就已經展現可觀的效果了。

32

最後講本篇論文的結論。本論文介紹了 (m,k)-firm deadline model ,它概括了 hard 和 soft deadline 的概念,在 mk-firm model 裡每個 stream 有兩個參數 m 和 k,如果 k 個連續 customer 中少於 m 個 meet deadline,就會發生 dynamic failure,相較於傳統上常用的 maxium allowable loss rate,mk-firm 更精確地表達 real-time application 對於 customer meet deadline 的要求。

接著本論文提出基於 Distance-Based Priority (DBP) policy,較接近 failing state 的 stream 會被分配更高的 priority,以提高它的 customer meet deadline 的機會。本方法與 single priority、fixed priority 與 imprecise computation model 進行比較,實驗結果表明,我們所提出的方法大大降低了 dynamic failure 的機率,同時不會大幅影響 customer miss deadline 的機率。

我們的報告到此結束,謝謝大家。

Select a repo