鸟窝

The tossing WaitGroup

Original link: https://colobu.com/2022/08/30/waitgroup-to-love-to-toss/ WaitGroup is a concurrency primitive that is often used in Go concurrent programming for task scheduling. It looks like it has only a few simple methods and is relatively simple to use. In fact, the internal implementation of WaitGroup has also changed several times, mainly to optimize the atomic operation of its …

The tossing WaitGroup Read More »

Some recent optimizations for rpcx and some optimization attempts

Original link: https://colobu.com/2022/08/25/some-small-optimizations-of-rpcx/ Recently, before the 2022 Go ecosystem rpc framework Benchmark , it took a week to optimize rpcx. This article records several important optimization points for your reference. Add handler method to avoid using reflect on the server In the previous rpcx implementation, the reference is to the registration method of the standard …

Some recent optimizations for rpcx and some optimization attempts Read More »

Distributed System Design Patterns

Original link: https://colobu.com/2022/06/26/distributed-system-design-patterns/ Original: Distributed System Design Patterns Key design patterns for common problems associated with distributed systems. Bloom filter A Bloom filter is a space-efficient probabilistic data structure for testing whether an element is a member of a set. It is used in scenarios where we just need to check if an element belongs …

Distributed System Design Patterns Read More »

Using BPF to increase the throughput of Go network programs by 8 times

Original link: https://colobu.com/2022/06/05/use-bpf-to-make-the-go-network-program-8x-faster/ The classic bpf (classical Berkeley Packet Filter) is a very useful technology, which can greatly improve performance in some special Go underlying network programming situations. background I have previously developed a Go UDP application, the client and server communicate through the UDP program and through the raw socket. The purpose of the …

Using BPF to increase the throughput of Go network programs by 8 times Read More »

Tracing rpcx microservices with ebpf

Original link: https://colobu.com/2022/05/22/use-ebpf-to-trace-rpcx-microservices/ ebpf is an innovative and revolutionary technology that can run sandboxed programs in the kernel without modifying the kernel source code or loading kernel modules. Making the Linux kernel programmable enables smarter, more feature-rich infrastructure software to build on existing (rather than adding new) abstraction layers without increasing system complexity or sacrificing …

Tracing rpcx microservices with ebpf Read More »