御坂数据库 MisakaDB
主页
文档
分类
模块
主页
文档
分类
模块
内部实现 2插件 1miql 1coin 内置插件 1其他 1
原子任务中心

Date: 2026/7/2Category: 内部实现Tag: 原子任务

TaskType对应一个TaskBooks,多个TaskBooks组合成一个Task。不同的Task存在在原子任务中心的TaskMap中以TaskID作为键来进行存储,TaskID的获取方式是通过函数AddTask的返回值获取的。

原子任务中心的作用

当客户端发来miql之后,misakadb要统一进行解析,为了保持miql的任务的原子性、一致性、隔离性、持久性这四个属性,misakaDB需要一个原子任务中心来管理所有的任务。

全局锁池

Date: 2026/6/22Category: 内部实现Tag: 全局锁池

什么是全局锁池

全局锁池可以帮助我们快速的在项目中对某个资源、操作句柄进行上锁。

全局锁池的实现

全局锁池内部被划分为两个子池:

  • YoungPool:存储当前高频访问、命中率较高的热点锁
  • OldPool:存储暂时降级的锁,用于后续淘汰和回收判断

业务线程在获取锁时,会优先查询 YoungPool。如果未命中,再继续查询 OldPool。一旦在 OldPool 中找到目标锁,就会将该锁重新提升到 YoungPool,从而让热点锁始终尽量停留在更快命中的路径上。