rr(debugging) 的配置与基本使用

当我们进行数据库等复杂应用系统时,如果出现了问题需要进行 debug 的话,gdb 就是第一选择。但是对于类似于内存等复杂问题来说,使用 gdb 进行调试颇为不便: gdb 无法“回滚”我们的操作,也就是说,当我们使用断点错过了一个非常重要的操作的话,一切就得重新开始。此时我们就可以选择 rr 这个支持反向调试的工具,一次复现,N 次调试。 »

PostgreSQL 中的 MVCC (01)——基本可见性判断

在数据的并发读写过程中,由于写入并不是原子性的,因此当一个线程正在写时,如果另一个线程进行读操作的话就很有可能产生数据不一致的问题。 比如数据的前半部分写入了,但是后半部分尚未写入,那么在读取时就会取到中间值,也就是脏数据,典型案例就是 64 位整型的写入将会分为两次写入。 »