論文筆記 - Staring into the Abyss: An Evaluation of Concurrency Control with One Thousand Cores

近期開啟的新系列,以分享資料庫系統相關的論文並簡介內容為主,不會講得太深入,但是會需要些對資料庫系統內部運作原理的基本概念。

這篇論文 [1] 主要是把近期常被拿來討論幾個主要的 Concurrency Control 的分支,放在具備 1000 個 Core 的環境下進行測試。 目的是為了瞭解這些做法在 Core 數量極多的機器上的 Scalability 如何。 在研究過程中,他們也嘗試去優化這些方法,盡可能地避免實作上可能會造成的瓶頸。 所以這篇論文的研究也可以當作在 multi-thread 環境下,實作這些 CC 作法的參考。

Read More
漏洞筆記 - 別讓你的 .git 資料夾公開在網路上啊!

這個周末玩了一個 CTF 線上賽。其中有一題是說有一個新手架了一個網站,然後分別使用了 Nginx、PHP、git 這些技術。點開題目提供的網址後,就看到一個 Hello World 的網頁。打開原始碼後,只看到幾行簡單的基礎程式碼,也沒有看到可疑的東西。正當我打算要放棄的時候,突然想到題目有特別提到他有使用 git。於是就嘗試了打開該網站的 .git 資料夾,不過馬上就被 403 Forbidden 打臉。

就在我快想不到到底怎麼辦的時候,突然又靈機一動。想到雖然我看不到 .git 的內容,但或許我仍可以下載裡面的檔案?於是我馬上隨便打開我手邊的一個 git repository。發現 .git 資料夾內一定有 HEAD 這個檔案。於是我馬上就嘗試下載 .git/HEAD。果不其然!可以抓到這個檔案!那麼接下來就有個方向了!

Read More
Rust-PTT 開發筆記 1

很早以前我就想深入研究 PTT 的程式碼,雖然 PTT 很早就將程式碼開源出來,但是當時我並沒有能力看懂。最近又將程式碼翻出來看,看了一些之後有些心得。剛好在 PTT 上有人在討論重寫 PTT 的問題,因此就讓我起了重寫 PTT 的意思。

這裡我選擇使用 Rust 做為重寫的語言。主要是因為我最近在研究這個程式語言,但是一直沒有甚麼機會寫出比較大的專案。因此我認為用 Rust 寫 PTT 剛好是個不錯的機會,於是這個專案就這麼開始了!

從這裡可以到 Rust-PTT 的 Github 頁面:https://github.com/SLMT/rust-ptt/

Read More
PTT Source Code 研究筆記 2

基本上,PTT 的使用者連上 PTT 時,都是透過一個叫做 telnet 的 protocol 進行。看了 PTT 的程式碼,會發現 PTT 並沒有使用其它的 telnet 函式庫,而是自行實作 telnet protocol。剛剛將這個部分看的差不多了,因此稍微紀錄一下實作方式。

Read More
PTT Source Code 研究筆記 1

之前一直有打算要研究 PTT 的程式碼。剛好近期也在學習 Rust 語言,因此起了想要使用 Rust 重寫 PTT 的想法。Rust 具有的許多特性我認為都很適合用來寫 PTT。因此開始進行了「用 Rust 重寫 PTT 計畫」。詳細的程式碼會一一更新在 Github 上的這個 repository

另外,撰寫之前也需要先了解 PTT 的程式碼在做些甚麼,所以我必須要先讀懂原本的程式碼是如何運作的。我會將閱讀程式碼的筆記紀錄在我所 fork 的 PTT repository 之中的 tracing branch 內。

Read More