一个小故事,关于科幻,关于老师


今天是教师节,半夜看了罗老师的一个回忆老师的视频,想起些陈年旧事,睡不着了,干脆爬起来写写。 自然,这是个关于老师的故事。 时间回到2001年。…
Read more ⟶

beancount 复式记账实践


尝试复式记账(beancount)有一段时间了,也有了一些实践上的体会(和走弯路),本文就简单做个分享。注意,其实我的很多做法完全算不上专业…
Read more ⟶

重复的代码都应该被消除吗?


昨天,我们项目组同事给测试代码做了些重构和梳理,总体上是很好的,不过有一个地方我觉得其实不如原本的好。 这段代码是在单测里虚拟一个集群添加一些…
Read more ⟶

如何快速检测新冠病毒


这几天,北京迎来了第二波新冠疫情。由于这一波疫情爆发在人流量大而密集的新发地市场,感染人群的排查上也遇到了严峻挑战。其中一个很突出的问题就是…
Read more ⟶

消除 TSO 单点


在 TiDB 中,分布式事务的一致性需要依赖 PD 作为 TSO (Timestamp Oracle,时间戳分配器) 分配的严格单调递增的 ts。这里一个很显然的问题就是,作为一个分布式系…
Read more ⟶

数据库的外部一致性


一言以蔽之,外部一致性就是事务在数据库内的执行序列不能违背外部观察到的顺序。 举个例子,客户端先创建一个事务写入一条数据,然后再创建一个事务读…
Read more ⟶

分布式事务的 Commit Point


理解分布式事务原子性(atomic)的关键所在
Read more ⟶

为什么重复性工作一定要自动化


假如老板给你安排了一个活儿,每天早上去 AppStore 看一下自家的几个应用在排名,并记在一个 Excel 表格里。 显然,这是一个没什么创造性的重复劳动。你在心里简单打…
Read more ⟶

PD leader 切换耗时分析


本文首发在AskTUG.com。 我们知道,TiDB 集群中的多个 PD 提供的服务的方式是选出一个 PD 作为 leader 来提供服务的,当 leader 出现故障或者网络隔离后,…
Read more ⟶

五句话理解 Rust 所有权


先免责声明一下哈,我是 Rust 新手入门,也没研究过 Rust 编译器。本文只是我自己学习 Rust 所有权时的一些思路,或者说对相关概念的一种解释吧,仅供参考,有谬误…
Read more ⟶