me

林玉山 (Yu-Shan Lin)

一位專長開發分散式及資料庫系統的軟體工程師與資訊工程博士
目前正在作為消防替代役服一年兵役中

  sam123456777 [AT] gmail.com

  yslin.eng [AT] gmail.com

2021 年 5 月 19 日 攝於 台灣新竹市國立清華大學

我的研究題目

具有高延展、高可得、彈性等特性的關聯式資料庫系統

發表著作

T-Part Paper
T-Part: Partitioning of Transactions for Forward-Pushing in Deterministic Database Systems
in Proc. of the 2016 ACM Int'l Conf. on Management of Data (SIGMOD), June 2016

Shan-Hung Wu, Tsai-Yu Feng, Meng-Kai Liao, Shao-Kan Pi, and Yu-Shan Lin

摘要

Deterministic database systems, a type of NewSQL database systems, have been shown to yield high throughput on a cluster of commodity machines while ensuring the strong consistency between replicas, provided that the data can be well-partitioned on these machines. However, data partitioning can be suboptimal for many reasons in real-world applications. In this paper, we present T-Part, a transaction execution engine that partitions transactions in a deterministic database system to deal with the unforeseeable workloads or workloads whose data are hard to partition. By modeling the dependency between transactions as a T-graph and continuously partitioning that graph, T-Part allows each transaction to know which later transactions on other machines will read its writes so that it can push forward the writes to those later transactions immediately after committing. This forward-pushing reduces the chance that the later transactions stall due to the unavailability of remote data. We implement a prototype for T-Part. Extensive experiments are conducted and the results demonstrate the effectiveness of T-Part.

  論文
MgCrab Paper
MgCrab: Transaction Crabbing for Live Migration in Deterministic Database Systems
in Proc. of the VLDB Endowment 12.5 (2019): 597-610

Yu-Shan Lin, Shao-Kan Pi, Meng-Kai Liao, Ching Tsai, Aaron Elmore, and Shan-Hung Wu

摘要

Recent deterministic database systems have achieved high scalability and high availability in distributed environments given OLTP workloads. However, modern OLTP applications usually have changing workloads or access patterns, so how to make the resource provisioning elastic to the changing workloads becomes an important design goal for a deterministic database system. Live migration, which moves the specified data from a source machine to a destination node while continuously serving the incoming transactions, is a key technique required for the elasticity. In this paper, we present MgCrab, a live migration technique for a deterministic database system, that leverages the determinism to maintain the consistency of data on the source and destination nodes at very low cost during a migration period. We implement MgCrab on an open-source database system. Extensive experiments were conducted and the results demonstrate the effectiveness of MgCrab.

Hermes Paper
Don't Look Back, Look into the Future: Prescient Data Partitioning and Migration for Deterministic Database Systems
in Proc. of the 2021 ACM Int'l Conf. on Management of Data (SIGMOD), June 2021

Yu-Shan Lin, Ching Tsai, Tz-Yu Lin, Yun-Sheng Chang, and Shan-Hung Wu

摘要

Deterministic database systems have been shown to significantly improve the availability and scalability of a distributed database system deployed on a shared-nothing architecture across WAN while ensuring strong consistency. However, their scalability and performance advantages highly depend on the quality of data partitioning due to the reduced flexibility in transaction processing. Although a deterministic database system can employ workload driven data (re-)partitioning and live data migration algorithms to partition data, we found that the effectiveness of these algorithms is limited in complex real-world environments due to the unpredictability of machine workloads. In this paper, we present Hermes, a deterministic database system prototype that, for the first time, does not rely on sophisticated data partitioning to achieve high scalability and performance. Hermes employs a novel transaction routing mechanism that jointly optimizes the balance of machine workloads, data (re-)partitioning, and live data migration by looking into the queued transactions to be executed in the near future. We conducted extensive experiments which show that Hermes is able to yield 29% to 137% increase in transaction throughput as compared to the state-of-the-art systems under complex real-world workloads.

演講

淺談前三大網路漏洞

2017/5/10

這個演講介紹了網路中常遇到的三大安全漏洞。這些漏洞包括注入攻擊 (Injection)、驗證缺失 (Broken Authentication)與跨站腳本攻擊 (Cross-Site Scripting)。演講中會先讓聽眾大致了解這個漏洞的型態,以及利用一些簡單的範例來幫助大家更深入了解如何利用這些漏洞。

清華大學 資工系 2017 年春天 軟體實驗課

VanillaDB - 由淺入深的教學型 RDBMS

2017/8/5

這個演講介紹 VanillaDB,一個教學用途的關聯式資料庫系統 (RDBMS)。一開始會先給大家一些動機,讓大家了解為什麼要看這種系統的程式碼,以及介紹一些關於 RDBMS 的背景知識,像是 ACID。接著,這個演講會帶聽眾深入了解一個查詢 (Query) 在 VanillaDB 是怎麼被執行的,以及一些開發這類系統會遇到的問題。最後,演講會揭露整個 VanillaDB 專案的全貌,以及我們的下一步。

COSCUP 2017 於 台灣大學

淺談 RDBMS 運作原理

2018/3/14

這個演講將會簡單地帶大家入門 RDBMS 的運作原理。一開始會先介紹 Query 的一天,接著介紹開發 storage engine 時可能會要考慮甚麼。最後帶大家了解如何實作 RDBMS 最重要的 ACID 特性。

PyHUG 於 新竹麥烤杯

專案

參與的大型專案

VanillaDB

簡單、快速、容易擴充的資料庫系統原型

  網站     程式碼

ElaSQL

具備高延展性、高可得性與高度彈性的關聯式資料庫系統

  網站     程式碼

個人專案

Tutorial Channel

Youtube 教學頻道

C#

一個具有許多關於電腦方面教學的 Youtube 頻道。目前主要以 C# 程式設計 為主

  部落格   頻道   FB 粉絲團

Google C++ 風格指南
繁體中文版

C++

繁體中文翻譯版的 Google C++ 風格指南

  線上電子書   程式碼

telnet-rs

Rust

以 Rust 撰寫的 Telnet 實作

  crates.io   程式碼
OGLDev Testing

以 Rust 撰寫的 OGLdev 教學

Rust

一個為了 OGLdev 教學而使用 Rust 撰寫的範例集合

  程式碼

美國陸軍戰場手冊 3-21.8
繁體中文版

繁體中文翻譯版的「美國陸軍戰場手冊 3-21.8 - 步槍排與班」

  線上電子書   程式碼

Paper Plot Lib

Python

一個讓 matplotlib 更容易用於繪製論文實驗圖的函式庫

  程式碼
Rust Snake

Rust 貪吃蛇

Rust

用 Rust 撰寫的貪吃蛇遊戲

  程式碼

Rust 批踢踢

Rust

用 Rust 撰寫的批踢踢

  程式碼

個人技能

程式語言

C

我懂不少! (80%)

C++

可以寫一些玩具 (50%)

C#

可以教別人 (70%)

Java

我準備好了! (85%)

Rust

可以寫一些有用的東西 (70%)

Python

嫩 (30%)

Javascript

可以寫一些玩具 (50%)

人類語言

中文 (普通話)

從小學到大 (100%)

台語

可以聽懂,但只能講一些 (70%)

英文

TOEFL iBT 測驗 93 分 (70%)

日文

N2 通過! (60%)

個人興趣

playing with cats
跟貓咪玩
playing steam
玩 Steam
playing MMORPG
玩 MMORPG
(FF14)
learning new things
學習新事物
reading comics
看漫畫
coding
寫程式

以上圖案由 Freepik, Icomoon and Smartline 製作並發表於 FlatIcon