Welcome! 👋

Hi, this is Fenglyu, I am a Senior Software Engineer in Shopee Singapore with a broad interest in Computer Science, including but not limited to Distributed Systems, DB, HPC, AI, AIGC, LLM and MLsys.
I’m currently looking for a PhD position. Please let me know if you think we’d work well together! My Email is fenglyu[dot]lin[at]gmail[dot]com.

Scale From Zero To Millions of Users

A reading note of《System Design Interview》, in which discuss how to design a system that can scale from zero to millions of users. Single server Everything is running on one server: web, app, database, cache, etc. Besides, DNS(Domain Server System) is paid service provided by 3rd parties With the growth of user base, one server is not enough. Separating Database and Server Separating web/mobile traffic(web tier) and database(data tier) servers allows them to be scaled independently...

December 4, 2023 · 8 min · Fenglyu

Essential Knowledge of MySQL Database

Essential Knowledge of MySQL Database How is a query processed? Connector: Long connection, Short connection, Reset Connection, etc. Cache: Optional for the query. However, the cache is not useful because the data might be updated frequently. It is now not supported in MySQL8.0 Analyzer: lexical analysis. Syntax analysis. Including checking whether a querying column exists or not. Optimizer: Decide using which index. Start by reading which table while executing join....

September 3, 2023 · 8 min · Fenglyu

MapReduce Implementation and Reading Note

This is the notes of MapReduce Paper(2004) and MIT 6.824 Distributed System Lab 1A. Intro Background: Over the past five years, the authors and many others at Google have implemented hundreds of special-purpose computations that process large amounts of raw data, such as crawled documents, web request logs, etc., to compute various kinds of derived data, such as inverted indices, various representations of the graph structure of web documents, summaries of the number of pages crawled per host, the set of most frequent queries in a given day, etc....

April 1, 2023 · 8 min · Fenglyu

The Evolution of Web Service Architecture

This is a note of 《The Phoenix Architecture》, which mainly elaborates the evolution of web service architecture The original distributed system era Monolithic architecture SOA era Microservice era Post-microservice era Serverless architecture The future The evolution of website service architecture(网站服务架构的演进) 原始分布式时代 目标:构建 “符合 UNIX 的设计哲学的” “如同本地调用一般简单透明的” 分布式系统 结果:迫于现实,这个目标在一定时期内被妥协、被舍弃。但是,到了三十多年以后的将来(即 2016 年服务网格重新提出透明通信的时候),随着分布式架构的逐渐成熟完善,取代单体成为大型软件的主流架构风格以后,这个美好的愿景终将还是会重新被开发者拾起。 UIUD UUID 是 通用唯一识别码(Universally Unique Identifier)的缩写。其目的,是让分布式系统中的所有元素,都能有唯一的辨识信息,而不需要通过中央控制端来做辨识信息的指定。 远程方法调用和本地方法调用是不一样的 且不说远程方法不能再依靠本地方法那些以内联为代表的传统编译优化来提升速度,光是“远程”二字带来的网络环境下的新问题,譬如,远程的服务在哪里(服务发现),有多少个(负载均衡),网络出现分区、超时或者服务出错了怎么办(熔断、隔离、降级),方法的参数与返回结果如何表示(序列化协议),信息如何传输(传输协议),服务权限如何管理(认证、授权),如何保证通信安全(网络安全层),如何令调用不同机器的服务返回相同的结果(分布式数据一致性)等一系列问题,全部都需要设计者耗费大量心思。 AFS 分布式文件系统 源自 AFS 的分布式文件系统(Distributed File System,DFS)规范,当时被称为DCE/DFS 原始分布式时代的教训 Just because something can be distributed doesn’t mean it should be distributed....

January 30, 2023 · 3 min · Fenglyu