编辑
2023-10-25
数据结构与算法
00
请注意,本文编写于 562 天前,最后修改于 562 天前,其中某些信息可能已经过时。

在数据库系统中,latch(也称为轻量级锁)和lock(也称为重量级锁)是两种并发控制机制。

  1. Latch(轻量级锁):

    • Latch是一种低级别的并发控制机制,通常用于保护数据结构的一致性。它是一种自旋锁,使用忙等待的方式来实现。
    • Latch是一种短暂的锁,它的获取和释放操作不涉及上下文切换,因此开销较小。
    • Latch的目的是提供一种临时的互斥机制,以避免竞争条件和数据不一致问题。
    • Latch通常用于保护内存数据结构,如缓冲池中的页、索引树节点等。
  2. Lock(重量级锁):

    • Lock是一种高级别的并发控制机制,通常用于保护数据库中的表、行、事务等。
    • Lock是一种长时间的锁,它的获取和释放操作涉及到上下文切换,因此开销较大。
    • Lock通常用于实现事务的隔离性,保证并发事务之间的互斥和一致性。
    • Lock通常支持多种模式,如共享锁(允许多个事务同时读取数据)和排他锁(只允许一个事务修改数据)。

区别:

  • Latch是一种轻量级的自旋锁,适用于保护内存数据结构的一致性,开销较小。而Lock是一种重量级的锁,适用于保护数据库中的表、行、事务等,开销较大。
  • Latch的获取和释放操作不涉及上下文切换,而Lock的获取和释放操作涉及到上下文切换。
  • Latch通常用于短暂的互斥操作,Lock通常用于长时间的事务隔离。

本文作者:yowayimono

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!