# mmap

Published articles for mmap.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## 【etcd】bbolt 后端：mmap、batch 与单写者约束

DevFeed: [【etcd】bbolt 后端：mmap、batch 与单写者约束](<https://devfeed.tech/articles/etcd-bbolt-mmap-batch-33987.md>)

Original publisher: [Read original article](<https://quant67.com/post/etcd/05-bbolt-backend/05-bbolt-backend.html>)

Author: Liao Tonglang

Published: 2026-08-26T00:00:00Z

Content type: tutorial

Language: zh

Sources: [土法炼钢 - 系统与基础设施](<https://devfeed.tech/sources/source-4.md>)

Topics: [etcd](<https://devfeed.tech/topics/etcd.md>), [Databases](<https://devfeed.tech/topics/databases.md>), [Raft](<https://devfeed.tech/topics/raft.md>)

Tags: [apply](<https://devfeed.tech/tags/apply.md>), [backend](<https://devfeed.tech/tags/backend.md>), [batch](<https://devfeed.tech/tags/batch.md>), [bbolt](<https://devfeed.tech/tags/bbolt.md>), [commit](<https://devfeed.tech/tags/commit.md>), [distributed](<https://devfeed.tech/tags/distributed.md>), [etcd](<https://devfeed.tech/tags/etcd.md>), [kubernetes](<https://devfeed.tech/tags/kubernetes.md>), [mmap](<https://devfeed.tech/tags/mmap.md>), [mvcc](<https://devfeed.tech/tags/mvcc.md>), [raft](<https://devfeed.tech/tags/raft.md>), [v3-5](<https://devfeed.tech/tags/v3-5.md>), [v3-5-33](<https://devfeed.tech/tags/v3-5-33.md>)

### AI overview

This article explains how etcd v3.5.33 maps its MVCC storage model onto the bbolt backend. It covers bucket layout, mmap behavior, buffered batch commits, read and write transaction concurrency, and how bbolt's single-writer constraint shapes apply and linearizable reads.

### Source excerpt

钉清 etcd v3.5.33 的 bbolt 后端：bucket 布局、mmap 预映射、100ms/10000 条 batch commit、ConcurrentReadTx 与单写者如何约束 MVCC 读写并发。

## 【分布式系统百科】分布式 KV 存储对比：etcd、TiKV 与 FoundationDB

DevFeed: [【分布式系统百科】分布式 KV 存储对比：etcd、TiKV 与 FoundationDB](<https://devfeed.tech/articles/kv-etcd-tikv-foundationdb-33978.md>)

Original publisher: [Read original article](<https://quant67.com/post/distributed/39-kv-stores/kv-stores.html>)

Author: Liao Tonglang

Published: 2026-04-13T00:00:00Z

Content type: comparison

Language: zh

Sources: [土法炼钢 - 系统与基础设施](<https://devfeed.tech/sources/source-4.md>)

Topics: [etcd](<https://devfeed.tech/topics/etcd.md>), [Raft](<https://devfeed.tech/topics/raft.md>), [Kubernetes](<https://devfeed.tech/topics/kubernetes.md>)

Tags: [bbolt](<https://devfeed.tech/tags/bbolt.md>), [boltdb](<https://devfeed.tech/tags/boltdb.md>), [compaction](<https://devfeed.tech/tags/compaction.md>), [coreos](<https://devfeed.tech/tags/coreos.md>), [distributed](<https://devfeed.tech/tags/distributed.md>), [distributed-systems](<https://devfeed.tech/tags/distributed-systems.md>), [errcompacted](<https://devfeed.tech/tags/errcompacted.md>), [etcd](<https://devfeed.tech/tags/etcd.md>), [go](<https://devfeed.tech/tags/go.md>), [k8s](<https://devfeed.tech/tags/k8s.md>), [kubernetes](<https://devfeed.tech/tags/kubernetes.md>), [lease](<https://devfeed.tech/tags/lease.md>), [mmap](<https://devfeed.tech/tags/mmap.md>), [mvcc](<https://devfeed.tech/tags/mvcc.md>), [raft](<https://devfeed.tech/tags/raft.md>), [readindex](<https://devfeed.tech/tags/readindex.md>), [revision](<https://devfeed.tech/tags/revision.md>), [single-raft-group](<https://devfeed.tech/tags/single-raft-group.md>), [ssd](<https://devfeed.tech/tags/ssd.md>), [v3](<https://devfeed.tech/tags/v3.md>), [wal](<https://devfeed.tech/tags/wal.md>), [watch](<https://devfeed.tech/tags/watch.md>)

### AI overview

This Chinese-language comparison examines etcd, TiKV, and FoundationDB as distributed key-value stores for metadata. It focuses on architecture, implementation, performance, and limitations, with detailed coverage of etcd's single Raft group, MVCC, Watch, Lease, bbolt storage engine, linearizable reads, compaction, and defragmentation.

### Source excerpt

一个典型的架构评审场景：团队需要一个分布式键值存储来承载新系统的元数据。候选方案三个----etcd、TiKV、FoundationDB。三者都提供强一致性保证，都经过大规模生产验证，但设计目标截然不同。选错了，轻则性能不达标，重则数据丢失后无法恢复。这篇文章从架构、实现、性能和局限四个维度，把三个系统拆开来看。

## Mmap effects in databases

DevFeed: [Mmap effects in databases](<https://devfeed.tech/articles/mmap-effects-in-databases-39637.md>)

Original publisher: [Read original article](<https://www.gauravsarma.com/posts/2025-04-22_mmap-effects-in-databases>)

Published: 2025-04-22T00:00:00Z

Content type: article

Language: en

Sources: [Gaurav Sarma's Blog](<https://devfeed.tech/sources/gaurav-sarma-s-blog.md>)

Topics: [Database](<https://devfeed.tech/topics/database.md>), [Operating system](<https://devfeed.tech/topics/operating-system.md>), [data](<https://devfeed.tech/topics/data.md>), [systems](<https://devfeed.tech/topics/systems.md>), [file](<https://devfeed.tech/topics/file.md>), [memory pool](<https://devfeed.tech/topics/memory-pool.md>)

Tags: [database](<https://devfeed.tech/tags/database.md>), [file](<https://devfeed.tech/tags/file.md>), [memory](<https://devfeed.tech/tags/memory.md>), [mmap](<https://devfeed.tech/tags/mmap.md>), [operating-systems](<https://devfeed.tech/tags/operating-systems.md>), [performance](<https://devfeed.tech/tags/performance.md>), [system](<https://devfeed.tech/tags/system.md>)

### AI overview

This article explains how databases use operating-system storage and memory mechanisms, including buffered writes, storage blocks, database pages, and memory mapping, and discusses their effects on performance and data resiliency.

### Source excerpt

. [mmap Effects in Databases](mmap-effects-in-databases-cover...

## The memory remains: Permanent memory with systemd and a Rust allocator

DevFeed: [The memory remains: Permanent memory with systemd and a Rust allocator](<https://devfeed.tech/articles/the-memory-remains-permanent-memory-with-systemd-and-a-rust-allocator-35462.md>)

Original publisher: [Read original article](<https://darkcoding.net/software/rust-systemd-memory-remains/>)

Author: Graham King

Published: 2024-01-10T01:54:00Z

Content type: tutorial

Language: en

Sources: [Graham King](<https://devfeed.tech/sources/graham-king.md>)

Topics: [Rust](<https://devfeed.tech/topics/rust.md>), [systemd](<https://devfeed.tech/topics/systemd.md>), [file](<https://devfeed.tech/topics/file.md>), [Linux](<https://devfeed.tech/topics/linux.md>)

Tags: [assembly](<https://devfeed.tech/tags/assembly.md>), [file](<https://devfeed.tech/tags/file.md>), [function](<https://devfeed.tech/tags/function.md>), [glibc](<https://devfeed.tech/tags/glibc.md>), [layout](<https://devfeed.tech/tags/layout.md>), [memory](<https://devfeed.tech/tags/memory.md>), [mmap](<https://devfeed.tech/tags/mmap.md>), [pointers](<https://devfeed.tech/tags/pointers.md>), [rust](<https://devfeed.tech/tags/rust.md>), [software](<https://devfeed.tech/tags/software.md>), [systemd](<https://devfeed.tech/tags/systemd.md>)

### AI overview

This tutorial explains how to make Rust objects survive program restarts by combining Rust's Allocator trait with systemd's File Descriptor Store and Linux's memfd_create syscall. The approach stores allocator-backed memory in an in-memory file, maps it with mmap, and restores it after restart.

### Source excerpt

A Rust object that survives program restart thanks to Rust allocators, systemd's file descriptor store, and syscall memfd_create.

## Linux Address Space

DevFeed: [Linux Address Space](<https://devfeed.tech/articles/linux-address-space-39608.md>)

Original publisher: [Read original article](<https://www.gauravsarma.com/posts/2018-03-02_Linux-Address-Space-45e1d0aa8c86>)

Published: 2018-03-02T00:00:00Z

Content type: tutorial

Language: en

Sources: [Gaurav Sarma's Blog](<https://devfeed.tech/sources/gaurav-sarma-s-blog.md>)

Topics: [Linux](<https://devfeed.tech/topics/linux.md>), [Processes](<https://devfeed.tech/topics/processes.md>), [Kernel](<https://devfeed.tech/topics/kernel.md>), [Linux Kernel](<https://devfeed.tech/topics/linux-kernel.md>)

Tags: [fork](<https://devfeed.tech/tags/fork.md>), [kernel](<https://devfeed.tech/tags/kernel.md>), [linux](<https://devfeed.tech/tags/linux.md>), [linux-kernel](<https://devfeed.tech/tags/linux-kernel.md>), [mmap](<https://devfeed.tech/tags/mmap.md>), [processes](<https://devfeed.tech/tags/processes.md>), [threads](<https://devfeed.tech/tags/threads.md>), [virtual-memory](<https://devfeed.tech/tags/virtual-memory.md>), [vm](<https://devfeed.tech/tags/vm.md>)

### AI overview

This article explains how Linux processes use virtual memory and how the kernel maps virtual addresses to physical memory. It describes memory permissions, common memory areas, the memory descriptor, and how address spaces are handled for forked processes and threads.

### Source excerpt

Linux processes interact with virtual memory and not the physical memory. Every process has a notion that it is the only process running in the system and hence, has unlimited access to the memory present in the system...