数据库内核的快照技术实现原理
"快照(Snapshot)"是数据库领域非常重要的一个概念,最初是用于数据备份.如今,快照技术已经成为数据库内核(引擎)最核心的技术特性之一.数据库内核的绝大多数操作,都依赖于快照,例如,LevelDB的每一次读取操作和遍历操作,其内部都必须创建一个快照,所以,对于一个请求量非常大的系统,数据库内核每秒种就要创建和销毁几十万次快照.因此,如何快速地创建和销毁快照,成为一个数据库内核(引擎)必须要解决的问题.本文从源头出发,逐步推演,探讨数据库内核是如何实现快照技术的.数据库内核创建快照,将使用如下技术:全量拷贝(FullClone)写时拷贝(CopyOnWrite)分区拷贝(Partitioning)多版本(MultiVersioning,Leveling,ZeroCopy)