In-Memory OLTP 垃圾回收

如果数据行已被不再处于活动状态的事务删除,则被视为过时。 过时的行就有资格进行垃圾收集。 以下是 In-Memory OLTP 中垃圾回收的特征:

  • 非阻塞。 垃圾回收在一段时间内进行分散,对工作负荷的影响很小。

  • 合作社。 用户事务与主垃圾回收线程一起参与垃圾回收。

  • 有效。 用户事务将正在使用的访问路径(索引)中的过时行断开。 这可以减少最终删除行时所需的工作。

  • 适应性强 内存压力会导致积极的垃圾回收。

  • 可缩放。 提交后,用户事务将承担一部分垃圾回收的工作。 事务活动越多,越能将过时行解除链接。

垃圾回收由主垃圾回收线程控制。 主垃圾回收线程每分钟运行一次,或者当提交的事务数超过内部阈值时。 垃圾回收器的任务是:

用户事务提交后,它会标识与运行该事务的计划程序关联的所有排队项,然后释放内存。 如果计划程序上的垃圾回收队列为空,则会在当前 NUMA 节点中搜索任何非空队列。 如果事务活动较低,并且存在内存压力,则主垃圾回收线程可以从任何队列访问垃圾回收行。 如果在删除大量行后且没有内存压力的情况下没有事务活动,则在事务活动恢复或存在内存压力之前,不会对已删除的行进行垃圾回收。

另请参阅

管理 In-Memory OLTP 的内存