Jiayi's Blog

衣带渐宽终不悔,为伊消得人憔悴

Design A Rate Limiter

System Design - An Insiders's Guide - Chapter Four Notes

Where To Put A Rate Limiter It seems like a good idea to always start with the simplist “client <–> server” model (only 2 component, a client and a server). So a rate limiter can be implemen...

Back-Of-The-Envelope Estimation (aka Napkin Math)

System Design - An Insiders's Guide - Chapter Two Notes

Some latencies programmers should know Latency Comparison Numbers (~2012) ---------------------------------- L1 cache reference 0.5 ns Branch mispredict ...

Scale From Zero To Millions Of Users

System Design - An Insiders's Guide - Chapter One Notes

Software Scaling Principles Scale The Service Breakdown functionalities so different components can be scaled independently Load balancing smartly to allow request from a single customer can...

Software Development LPs

Project Reflection

Software Development Leadership Principles It always pays off to invest time understanding the system before you start optimizing It always pays off later to learn and understand the system befor...

lvalue and rvalue In C++11

C++ Universal Reference

lvalue and rvalue in C++ With C++11 and the introducing of “move” semantic, it is important to understand rvalue and “rvalue reference”, which is a necessaty for C++ move semantics. Reference ...

System Design Learning Library

Books, Websites, and Notes

Learning Plan [Basic Knowledge] Learn about basic concepts mentioned in SYSTEM DESIGN PREPARATION Distributed System Network programming Concurrency Database W...

Linux Based File System - First Check

Linux Virtual File System (VFS), Linux Network File System (NFS)

Linux FS Mount & Root File System Root file system (rootfs)     Linux support multi-filesystem which means different FS (ext4, NFS, FAT32 etc.) can be used at the same time. The trick to...

Learn C++ with Projects

Interesting C++ Projects shiyanlou projects New C++ user project C++ Using Function Object Iterator     In C++, iterator is implemented by pointer. Lambda Function

C++ Project Learning

FUSE based File System

FUSE Resources libfuse home page NMSU - Writing a FUSE Filesystem: a Tutorial C/C++ Operations Terms POD type : A Plain Old Data Structure in C++ is an aggregate class that contains on...

C++ Containers

C++ Containers Unordered associative containers Traversal with iterator for (itr = umap.begin(); itr != umap.end(); itr++) { // itr works as a pointer to pair<string, double...