lealone 提供了三种写 redolog 的方式:
1. 不写 redolog,仅用于开发测试阶段,此时的数据库就相当于一个内存数据库;
2. 在调用 fsync 把 redolog 落盘前给客户端返回成功消息,这种方式可以做到极低的微秒级的响应延迟,但是如果断电了,有可能丢失几个毫秒内的数据;
3. 在调用 fsync 把 redolog 落盘后才给客户端返回成功消息,这种方式可以确保数据不丢,但会导致很高的响应延迟,通常取决硬盘的速度,比如在我的笔记本电脑上的 ssd 调用 fsync 需要几个毫秒。
