jserv 開發講座 - 高效網頁伺服器開發實務

國立成功大學 資訊工程學系新館 1F 65105 教室, 台南市東區大學路一號, 台南市, 701

類 Facebook 高效能網路服務組第三次組會、jserv 開發講座。

Oct 18, 2022, 11:00 AM – 2:00 PM

22
RSVP'd

RSVP Now

Key Themes

Solution Challenge

About this event

jserv 開發講座 - 高效網頁伺服器開發實務

活動簡介


技術探討

  • 原先專案並沒有使用並行 (Concurrency) 實作 Server,因此我們打算探討這項技術並改善效能問題。
  • 探討高並行 (High Concurrency) 的實作方案 - 管理執行緒,參考 Linux 核心內部 CMWQ (Concurrency Managed Workqueue) 的設計。
  • 探討 Server 端的 IO 問題,IO multiplexing 與 Event driven model。
  • 探討其他網頁伺服器的實作與 AIO 相關議題。


Figure 1: 用一隻地鼠燒書比擬一般程式運作 (Rob Pike)

Figure 2: 多隻地鼠分工燒書展現出並行的精神 (Rob Pike)


Figure 3: 利用並行改進 Server 的概念圖 (Valentin Bartenev of F5)


活動內容

  • 講師教授:說明並介紹 jserv 在 2016 年開發的 Facebooc - Yet another Facebook clone written in C 專案,以及談談此專案內程式碼的改善空間與可行方案。
  • 互動方式:一般普通講座為主,加上 Q&A 解決組員對開發專案的疑惑。
  • 組員實作:授課之後,實作與實驗並行與一般非並行程式的效能差異,以此展現專案議題 (Concurrency) 的重要性。


預期目標

  • 幫助組員重新認識/熟悉並行多執行緒程式設計
  • 對於 Facebooc - Yet another Facebook clone written in C 的專案設計有更進一步的認識,避免錯誤認知內部程式碼的設計思維。
  • 可以讓組員在系統開發上有足夠的素養與認知去著手進行改寫。
  • 其中有關於針對 Server 的高並行實作,預計採用類似 Linux 核心內部的 CMWQ 的設計思維,但是更為輕型且針對網路 Server 的 Thread Pool 實作。
  • 在 Github 的開源專案上,難以看到用 C 語言開發且設計完善的高並行 (high concurrency) 的網路 Server,而此專案為 Open Source,期望可以在開源社群上提供一個精簡但是完整的實作範例。


附註

  • jserv/facebooc 是一個以 C 語言為基礎開發的開源軟體,提供網頁形態的社群網站服務,取名為 Facebooc 在於強調用 C 語言實作出了有別於 Meta 公司主要以 php, C++ 實作的知名的社群網站 Facebook。

Speaker

  • Jim Huang

    BiiLab

    jserv

Organizers

  • 蘇奕幃 Alex Su

    GDSC Lead

  • 威凱

    總務

  • Jamie Yan

    公關部長

  • 政硯

    活動部長

  • Wei-Qin Chang

    設計部長

Contact Us