今天介紹的這篇論文發表於今年的 PVLDB 期刊。 這篇論文發表了一種新的分散式 SQL 資料庫系統架構,適用的規模可以橫跨世界各區的資料中心,主要針對 Online Transactional Processing (OLTP) 的環境。 他們想要同時達成近代分散式資料庫系統的三大目標:(1) Strict Serializability、(2) 低 latency 與 (3) 高 throughput。這是目前尚未有人能完美同時解決的目標。
Posts for category 'Research'
近期開啟的新系列,以分享資料庫系統相關的論文並簡介內容為主,不會講得太深入,但是會需要些對資料庫系統內部運作原理的基本概念。
這篇論文 [1] 主要是把近期常被拿來討論幾個主要的 Concurrency Control 的分支,放在具備 1000 個 Core 的環境下進行測試。 目的是為了瞭解這些做法在 Core 數量極多的機器上的 Scalability 如何。 在研究過程中,他們也嘗試去優化這些方法,盡可能地避免實作上可能會造成的瓶頸。 所以這篇論文的研究也可以當作在 multi-thread 環境下,實作這些 CC 作法的參考。
基本上,PTT 的使用者連上 PTT 時,都是透過一個叫做 telnet 的 protocol 進行。看了 PTT 的程式碼,會發現 PTT 並沒有使用其它的 telnet 函式庫,而是自行實作 telnet protocol。剛剛將這個部分看的差不多了,因此稍微紀錄一下實作方式。
之前一直有打算要研究 PTT 的程式碼。剛好近期也在學習 Rust 語言,因此起了想要使用 Rust 重寫 PTT 的想法。Rust 具有的許多特性我認為都很適合用來寫 PTT。因此開始進行了「用 Rust 重寫 PTT 計畫」。詳細的程式碼會一一更新在 Github 上的這個 repository。
另外,撰寫之前也需要先了解 PTT 的程式碼在做些甚麼,所以我必須要先讀懂原本的程式碼是如何運作的。我會將閱讀程式碼的筆記紀錄在我所 fork 的 PTT repository 之中的 tracing branch 內。
因為我過年的時候蠻無聊的,雖然有研究上的正事要做,但是我還是想做一點自己的事情。正好最近 Dcard,這個專門為大學生開設的交友網站非常熱門,裡面有著各式各樣的文章,所以我就一時興起把上面的文章抓下來看看能做什麼樣的研究。