me

Yu-Shan Lin (林玉山)

A Software Engineer and Ph.D. specializing in distributed and database systems.
Currently fulfilling my one-year conscription obligation for the country in the NFA.

  sam123456777 [AT] gmail.com

  yslin.eng [AT] gmail.com

May 19, 2021 @ National Tsing Hua University, Hsinchu City, Taiwan

My Research Topic in DataLab

Highly Scalable, Available and Elastic Relational Database Systems

Publications

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

Abstract

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.

  Paper
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

Abstract

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

Abstract

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.

Talks

Introduction to Top 3 Security Risks in Web

May 10, 2017

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

August 5, 2017

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 ?

March 14, 2018

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

Projects

Involving Projects

VanillaDB

Simple, fast, and extensible database system prototypes.

  Website     Github

ElaSQL

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

  Website     Github

Personal Projects

Tutorial Channel

Tutorial Channel

C#

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

C++

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

  Online Book   Repository

telnet-rs

Rust

A Telnet implementation in Rust.

  crates.io   Repository
OGLDev Testing

OGLdev Tutorials in Rust

Rust

A collection of example code in Rust for Tutorial OGLdev.

  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

Paper Plot Lib

Python

A library that helps you plot figures for papers easier with matplotlib.

  Repository
Rust Snake

Rust Snake

Rust

A Snake game written in Rust.

  Repository

PTT BBS in Rust

Rust

A Rust implementation for PTT BBS .

  Repository

Personal Skills

Programming Languages

C

I Know A Lot ! (80%)

C++

Can Write Some Toys (50%)

C#

Can Teach Somebody Else (70%)

Java

I Am Ready ! (85%)

Rust

Can Write Useful Stuffs (70%)

Python

Rookie (30%)

Javascript

Can Write Some Toys (50%)

Human Languages

Chinese

Native Speaker (100%)

Taiwanese

Can Understand & Speak Some (70%)

English

TOEFL iBT: 93 (70%)

Japanese

N2 Passed (60%)

Personal Interests

playing with cats
Playing with Cats
playing steam
Playing Steam
playing MMORPG
Playing MMORPG
(FF14)
learning new things
Learning New Things
reading comics
Reading Comics
coding
Coding

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