Rust -- Getting Started
Setup for newbie Install rustup. Install rust-analyzer: rustup component add rust-analyzer and config nvim lspconfig and treesitter. Read https://doc.rust-lang.org/stable/book/ Checkout h...
Setup for newbie Install rustup. Install rust-analyzer: rustup component add rust-analyzer and config nvim lspconfig and treesitter. Read https://doc.rust-lang.org/stable/book/ Checkout h...
TCP Keepalive https://tldp.org/HOWTO/html_single/TCP-Keepalive-HOWTO/ Socket in general The first newbie question when doing socket programming is how to tell a socket has received all bytes fr...
SIGALRM and Timeouts If you have done some timer things in Linux, you must be familiar with the concept of Interval Timer. If not, please check out the man page. Below example illustrates how to u...
Channel is usually used together with goroutines. Let’s take an example from k8s source code. This function returns a channel for callers to consume. Inside, it spawns a background goroutine to sen...
Many tools pg_ha_migrations for Ruby on Rails. The core part is this function. It acquires the lock beforehand. Basically, it first waits until no conflicting transaction exits. Then, it acquires ...
Q1. What plan contains? How is it executed? You know what? The part I love most about Postgres codebase is its comments. Very informative and I learned a lot from them. What does a query planner ...
Postgres official documentation Chapter 55. Frontend/Backend Protocol covers all the details about the client-sever binary protocol, which is a based on top of TCP. All communication is through...
WAL (Write Ahead Log) Tree locations postgres=# select pg_current_wal_flush_lsn(), pg_current_wal_lsn(), pg_current_wal_insert_lsn(); pg_current_wal_flush_lsn | pg_current_wal_lsn | pg_current_w...
RMI (Remote Method Invocation) RMI is a way of calling methods on remote objects over a network connection. It is similar to RPC, but the biggest difference is that RPC deals with data structures ...
When using GCC to add breakpoint to a specific location, sometimes I am worried that this piece of code may be optimized away by the compiler. Disabling optimization can rule out my concern, but I ...