RocksDB MANIFEST恢复流程

作者:sryan 更新时间:16 天前 分类:数据库

由于内存的易失性,所以不少信息需要保存于硬盘中。同时由于内存及硬盘的速度的差异,需要有很多方式来折衷硬盘和内存的特性。比如对于硬盘的随机写及fsync等操作,我们要尽量避免,所以现代很多存储引擎基本都...

点击数:21 回复数:0

[转载] Memory model synchronization modes

作者:sryan 更新时间:20 天前 分类:C++/C/汇编

This is the area most people find confusing when looking at the memory model. Atomic variables are p...

点击数:22 回复数:0

再谈Memory order

作者:sryan 更新时间:21 天前 分类:C++/C/汇编

最近一直在研究RocksDB的源码,非常多的原子操作涉及到内存序,之前由于用原子操作常常只是用作计数,在这种简单的场景下其实各个内存序是没有差异的。但是为何要有各种内存序呢? 我们首先来看下定义的内存...

点击数:20 回复数:0

RocksDB的读流程分析

作者:sryan 更新时间:21 天前 分类:数据库

RocksDB的读流程分析 相对于写流程,Get的流程还是相对而言比较简单的,我们这里简单的梳理一下Get经过哪几个步骤,是怎么样进行处理的。 获取当前时刻的SuperVersion。SuperVer...

点击数:17 回复数:0

RocksDB ThreadLocalPtr梳理

作者:sryan 更新时间:22 天前 分类:数据库

RocksDB ThreadLocalPtr梳理 关于ThreadLocal,做过多线程编程的同学应当很熟悉了,通过ThreadLocal,我们可以在不同的线程中获取到对应的存储而不受其它线程影响。关...

点击数:21 回复数:0

RocksDB Memtable的Flush流程梳理

作者:sryan 更新时间:22 天前 分类:数据库

在写入数据的时候,经历写入WAL以及MemTable的过程后,会触发MemTable是否需要变为Immutable memtable的检测,当满足条件的时候,会标记为只读并且等待刷入磁盘。 检测是否转...

点击数:36 回复数:0

RocksDB Inline skiplist的插入流程

作者:sryan 更新时间:22 天前 分类:数据库

在之前的文章中,主要梳理了一下RocksDB的写入流程与组提交,了解了多线程如何写WAL与MemTable。在这篇文章中,主要细致地梳理一下MemTable是如何写入的。 MemTable有很多的实现...

点击数:42 回复数:1

RocksDB 写流程分析

作者:sryan 更新时间:22 天前 分类:数据库

RocksDB写入实现主要在DBImpl::WriteImpl中,设计到的核心思想是组提交,将多个请求组成链表,第一个进入链表的成为Leader,负责批量 提交WAL日志,提交完毕后,唤醒其它等待的线...

点击数:19 回复数:0

3.07.00更新进度

作者:sryan 更新时间:19 天前 分类:backmir

修复仓库数据过多导致的服务器崩溃问题 扩大照明类道具的光照范围 优化魔法类短时光照的消失效果为渐变 修复玄铁矿冶炼问题 修复黑虎斧等武器没有外观的问题 修复目前算法导致无法爆出4词缀以上装备的问题 雪...

点击数:1996 回复数:91

梳理Redis 4.0中的psync命令

作者:sryan 更新时间:2020-07-03 15:25 分类:数据库

psync主要用于redis主从实例之间的同步,该命令在2.8版本引入。 2.8之前的版本只有sync命令,每次触发都会先进行全同步,然后进行增量同步。而2.8引入的psync命令可以在类似于断线重连...

点击数:29 回复数:0