Batina's Blog

[db/paper] 1 - Spanner

0 序 这一系列都是读论文,尝试理解和解读经典论文的思想、这样设计的优势,因此博客内容基本可以看作是对论文的翻译或者重新编排,可能加入一些自己的理解,但是不一定能保证正确性。 本文主要想回答...

[os] 文件系统

之前一直好奇格式化磁盘时选的 FAT32 和 NTFS 选项有何区别,当时知道 Linux 常用 Ext3/Ext4 文件系统,一般装双系统时如果 Linux 用的不是 NTFS 的话,在 Wi...

[分布式事务] 1 - Percolator

其实一直没搞懂 percolator 所属的类别 好,今天我们来看 Percolator。 不知道为什么检索了许多有关分布式事务的博客,很少有介绍分布式事务提交协议时带上 Perco...

[共识算法] 2 - Raft Membership Change

这一节读了两次没完全搞懂 Joint Consensus 怎么使用 $ C_{old,new} $,然后搜了一些博客发现居然又提到每次增删只变更1个节点的单步成员变更,踏马搞得我更迷糊了;奈何被...

面试日志 - 1

阿里OceanBase实习一轮面试总结: 简历上内容包括声明了主要使用语言是 golang,用过c++/java/python,然后对数据库事务比较了解和感兴趣,项目方面放了 pingcap ...

[db] 5 - Snapshot Isolation

之前在事务的介绍中,我们提过事务定义有 Serializable、Repeatable_Read、Read_Committed、Read_Uncommitted 四种隔离等级。我们今天要介绍的快...

[db] 4 - Phantom Problem

产生原因 要实现真正的可串行化,幻象问题是我们绕不过去的坎。诶,但是之前介绍 2PL 时不是说严格遵守两阶段锁协议就能够实现事务的可串行化吗。对,但这是有条件的,两阶段锁能保证可串行化的前提是...

『Tool』2 - 手绘风插图 excalidraw

今天就是想安利一个手绘风格的图表绘制网站。 我之前一直非常非常喜欢手绘风格的配图,我印象中大三一次做英语课堂展示的时候,配图就是我在手机上画的小火柴人。 后来的PPT也好、博客也好,没什么心...

[os] 进程、线程和协程

「现代操作系统-原理与实现」中关于进程、线程、协程的介绍解决了我很多以前看「操作系统概念」产生的疑惑,整理出这份笔记以备查阅,当然还有欠缺,以后慢慢完善 进程 进程是运行中的程序。不...

[golang] 4 - container/heap

golang里要使用优先队列略微麻烦,需要自己实现 heap.Interface 下的几个接口,比起 c++ 的容器使用起来更麻烦一些。 1 2 3 4 5 6 7 8 9 10 11 12 ...