跳转到主要内容

文章

uv 运行原理:从 init 到 tool install,它内部到底在做什么

2961 字 6 分钟

说明 uv 是 Astral(Ruff 背后的团队)用 Rust 写的 Python 包管理器,官方口号是 10-100 倍快于 pip。快只是结果,真正值得搞清楚的是:它内部到底怎么工作的。 这篇文章不讲功能清单,只回答一个问题:每敲一条命令,uv 在背后做了哪几步、为什么这么设计。 先给结论:uv 所有命令都建立在 …

MySQL 的 RR 到底有没有解决幻读

1717 字 4 分钟

本文由原作者归档自知乎,原文发布于 2026-06-15。原文链接:MySQL 的 RR 到底有没有解决幻读。 MySQL 的 RR 到底有没有解决幻读? 关于数据库隔离级别,有一个流传很多年的结论:Read Committed 解决脏读,Repeatable Read 解决不可重复读,Serializable 解决 …

读写分离后为什么会读到旧数据:MaxScale 的一致性读

1464 字 3 分钟

问题 读写分离最容易让人困惑的一幕是:写请求已经返回成功,紧接着发起查询,却没有看到刚写入的数据。这里不一定是事务没有提交,而是写落在主库后,读被路由到了尚未追上复制进度的副本。 那么,有什么办法可以解决这个问题呢?那就是本文要分析的 MaxScale,它解决了这个问题。 MaxScale 的解决方案 MaxScale …

恭喜,聪明的你发明了RocksDB的主从复制

1675 字 4 分钟

本文由原作者归档自微信公众号「两分钟好奇心」,原文发布于 2025-01-06。原文链接:恭喜,聪明的你发明了RocksDB的主从复制。 背景 你是一个 RocksDB 进程,你的名字叫A。 (该图片来自rockdb.org) 很久很久以前,你承担着上层应用的 Put、Get 请求,你勤勤恳恳没有怨言。 突然有一天, …

从 TiDB 学习分布式数据库测试

3938 字 8 分钟

前言 最近在研究数据库正确性测试相关的内容,恰好看到TiDB数据库在这方面的工作,很受启发,故写此文章。 推荐下一些TiDB官方好文章: 《分布式系统测试那些事儿 – 理念》https://cn.pingcap.com/blog/distributed-system-test-1/ 《分布式系统测试那些事儿 – 错误注 …

rocksdb:manifest 文件写流程

1346 字 3 分钟

本文由原作者归档自知乎,原文发布于 2024-09-24。原文链接:rocksdb:manifest 文件写流程。 零、说明 manifest文件是rocksdb用来管理元信息变动的文件。文件中以VersionEdit为单位。记录了所有SST文件的创建、删除、层级调整等变动行为。 我们都知道,写文件之前需要先将文件 …

RedisRaft - 单元测试说明

114 字 1 分钟

代码目录 主要测试了: util(对parse_slots函数测试) file(对原生read、write、flush、get、sync的包裹) log(用来维护 raft log的实现) serialization(对 redis command 序列化与反序列化的测试)

RedisRaft - 混沌测试说明

1912 字 4 分钟

redis-raft 仓库提供了基于 docker 的运行方式 运行的代码存储在 https://github.com/redislabs/jepsen-redisraft 关于 jepsen-redisraft 仓库的说明 0、程序入口 在 project.clj 中定义了 `:main …

RedisRaft - 集成测试说明

520 字 2 分钟

两个核心的类 通过 class RedisRaft 将每个节点的 init、start、restart、pause、join、transfer_leader、cleanup 等行为进行管理(通过对 pylib subprocess 、redis cmd 的封装实现) 通过 class Cluster 将多个 …

RedisRaft - 使用说明

800 字 2 分钟

从官方仓库看测试可以分为两大类: 功能测试:即单元测试、集成测试,https://github.com/RedisLabs/redisraft/tree/master/tests 正确性测试:即混动工程测试 …

编写你的第一个 Sysbench Lua Script

1381 字 3 分钟

零、sysbench 介绍 Sysbench 是一个开源的多线程性能测试工具。它提供了一系列的测试用例,用户可以通过命令行参数自定义测试的各种方面,如线程数、测试时长、数据大小等。 Sysbench 内置了一些基本的测试模式,如CPU、内存和I/O性能测试,以及针对MySQL和PostgreSQL的数据库测试。但是,当 …