分布式人两个重要手段:Partition 和 Replicate。其宛如两板斧一样大道至简,不必故弄玄虚。本文聚焦于 复制 主题。
本文是 Russ Cox 大佬撰写的 Hardware Memory Models 的姊妹篇,发布于 2021年7月6日,原文链接: Programming Language Memory Models
本文由 Russ Cox 大佬撰写,发布于 2021年6月29日,原文链接 Hardware Memory Models。博主是读了此文后才恍然理解 C++ 中的 Memory Order 的技术背景和设计动机。特此翻译留念。
RocksDB 可靠性和高性能是众所周知的。将其部署在分布式文件系统也是一种趋势,体现了存算分离的思路。本文先讨论官方的分布式改造论文 Disaggregating RocksDB: A Production Experience,随后记录一些自己的想法。
在扩展到分布式之前,我们先来弄明白单机 IO 的手段。同步/异步/Poller/线程池,眼花缭乱的名词,是否在故弄玄虚?
本文翻译自 https://lwn.net/Articles/457667/ 原文标题: Ensuring data reaches disk 理想情况下,不会发生操作系统的崩溃和断电,磁盘也不会发生故障。但不幸的是,故障比预期更为常见。本文描述了从应用程序到数据存储的路径。重点介绍数据缓冲部分,提供最佳实践,以确保数据被提交到稳定的持久化存储中,避免发生问题时中途丢失。
使用 raft + 单机 KV 引擎构建分布式 KV 存储,是一种常见的方式。比如 TiKV, CockroachDB 等。本文重点讨论如何进行 raft snapshot。
braft 是一个较多人使用的 C++ raft 框架。开发者基于其抽象接口实现自己的业务逻辑,方便实现 raft 高可用的服务。本文从 metrics 入手,梳理开发者应该持续关注哪些监控变量。以其为线索,阅读源码探究其实现原理。力争做到心里有谱,不惧异常。
项目使用 tikv 作为分布式 KV 引擎构建了元数据服务。随着业务增长,P99 延迟急剧升高。在调优 tikv server 收获甚微后,我们把目光转回 tikv-client,结合源码和线上 metrics 分析可能的瓶颈和优化手段。
我们思考了很久,如何筹备一场新人和宾客都能沉浸其中的婚礼。“简单、自由、快乐、分享” 成为了主题。我们找到了生活的答案,并邀请朋友们一同见证。