haopoboy / ads-exposure-test

0 stars 0 forks source link

Possible system meltdown when not enough Ads #13

Open guyspy opened 4 years ago

guyspy commented 4 years ago

Hi 我是豬排

以下寫法,是基於假設系統永遠有可投放廣告而設計 https://github.com/haopoboy/ads-exposure-test/blob/dev/src/main/kotlin/io/github/haopooby/service/AdsServiceImpl.kt#L36-L39 但是若大部分廣告已被發完時,目前機制會面臨嚴重dead lock問題? 在可用廣告數量不足,但活躍使用者量級又非常大的的時候,目前寫法應該是會導致很快所有 thread 都被佔滿?

P.S. 原題目的 spec 指出

  1. 需支援同時存放的廣告達上萬筆
  2. 需支援同時在線人數達六百萬

其實題目並沒有保證資料庫中的廣告數量,將一直維持在萬筆的水準。 真實世界中廣告與同時在線人數是會一直動態變化的,一般開規格書時,本就只會定義「負載極限」數字,而工程師應有職責去考慮到各種環境下,可能會出現的 edge case。

再請想想可以怎麼設計了 這個更改不限時間,請儘管動腦思考囉

haopoboy commented 4 years ago

Hi 豬排 對,會卡在 while 這塊,我來寫個測試觸發這個錯誤並打算用空廣告的方式消化 之後我在增加更多情境測試模擬可能的現實狀況

Related to #11