my head

Yu-Shan Lin (林玉山)

A PhD student currently doing DBMS researches in DataLab, NTHU, Taiwan.

  sam123456777 [AT]

  yslin [AT]

March 26, 2019 @ Bopiliao Historic Block, Wanhua District, Taipei City, Taiwan

My Research Field in DataLab

Cloud Databases and Distributed Database System


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.


Introudction to Top 3 Security Risks in Web


This talk introduces OWASP's Top 3 Application Security Risks, which are easily encountered on the web applications. These risks are Injections, Broken Authentication and Cross-Site Scripting (XSS). The talk gives the audiences an overview of these risks and help them understand the risks by demonstrating some easy examples.

Software Studio Course, 2017 Spring in CS, NTHU, Taiwan

VanillaDB: A Tutotiral-Oriented RDBMS


This talk introduce VanillaDB, a tutorial oriented relational database management system (RDBMS). First, it gives a few motivations of why we should read source code of RDBMS and introduces some basic background knowledge of RDBMS, such as ACID. Then, the talk bring the audiences go through how a query works in VanillaDB. In the end, it reveals the whole VanillaDB project and our next step.

COSCUP 2017 in NTU, Taiwan

How Does a RDBMS Work ?


This talk breifly introduces how a RDBMS works. We start from looking into a day of a query. Then, we talk about what a developer should consider while implementing a storage engine. In the end, we will see how to ensure ACID property of transactions.

PyHUG in MicroBeer, Hsinchu, Taiwan


Involving Projects


Simple, fast, and extensible database system prototypes.

  Website     Github


A relational database system made scalable, available, and elastic.

  Website     Github

Personal Projects

Tutorial Channel

Tutorial Channel


A Youtube channel that has lots of tutrials about computers. I am currently teaching C# Programming for now.

  Blog   Channel   FB Page

Google C++ Style Guide
Zh-TW Translation


A Traditional Chinese translation for Google C++ Style Guide.

  Online Book   Repository

US Army FM 3-21.8
Zh-TW Translation

A Traditional Chinese translation for US Army FM 3-21.8 (the infantry rifle platoon and squad).

  Online Book   Repository
OGLDev Testing

OGLdev Tutorials in Rust


A collection of example code in Rust for Tutorial OGLdev.

Rust Snake

Rust Snake


A Snake game written in Rust.


PTT BBS in Rust


A Rust implementation for PTT BBS .




A Telnet implementation in Rust.   Repository

Personal Skills

Programming Languages


I Know A Lot ! (80%)


Can Write Some Toys (50%)


Can Teach Somebody Else (70%)


I Am Ready ! (85%)


Can Write Useful Stuffs (70%)


Rookie (30%)


Can Write Some Toys (50%)

Human Languages


Native Speaker (100%)


Can Understand & Speak Some (70%)


TOEFL iBT: 93 (70%)


N2 Passed (60%)

Personal Interests

playing with cats
Playing with Cats
playing steam
Playing Steam
playing MMORPG
Playing MMORPG
learning new things
Learning New Things
reading comics
Reading Comics

The above icons are made by Freepik, Icomoon and Smartline from FlatIcon.