【Alluxio】文件系统锁模型之InodeLockList

InodeLockList接口,表示在inode tree里一个加了锁的路径。

沿着path,inodes和edges都被加锁了。path可能从edge或inode任意一个开始。

锁列表总是包含了一定数量的读锁(0个或多个),随后跟随着一些数量的写锁(0个或多个)。

举个例子:
/a/b/c/d 进行加锁,c->d这个边是第一个写锁模式的元素,那么locked list可以表示成如下:

[->/, /, /->a, a, a->b, b, b->c, c, c->d*, d*]

其中 * 表示写锁模式, edges是边,由parentName指向childName。

locked list开头的 ->/ 是一个伪边(pseudo-edge),用来让root能够使用WRITE_EDGE锁模式。
这个->/ edge只能通过lockRootEdge来加锁。

InodeLockList接口有两个实现类:CompositeInodeLockList和SimpleInodeLockList

InodeLockList接口定义了核心方法:

lockInode、lockEdge、lockRootEdge、pushWriteLockedEdge、unlockLastEdge、unlockLastInode
e

相关推荐

  1. Alluxio文件系统模型LockPool

    2024-05-09 08:12:06       27 阅读
  2. Alluxio文件系统模型LockPattern详解

    2024-05-09 08:12:06       27 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-05-09 08:12:06       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-05-09 08:12:06       106 阅读
  3. 在Django里面运行非项目文件

    2024-05-09 08:12:06       87 阅读
  4. Python语言-面向对象

    2024-05-09 08:12:06       96 阅读

热门阅读

  1. 在Linux中,用户的软件一般安装在哪里比较好

    2024-05-09 08:12:06       34 阅读
  2. 【算法】用存入下标的方法来巧解单调队列

    2024-05-09 08:12:06       38 阅读
  3. 【linux】隐藏文件,vim 或 gedit 打开隐藏文件

    2024-05-09 08:12:06       30 阅读
  4. 探索九型人格测试API接口:神奇之处暗藏何处?

    2024-05-09 08:12:06       27 阅读
  5. Amazon IoT 服务的组件

    2024-05-09 08:12:06       34 阅读
  6. docker安装部署FastGPT

    2024-05-09 08:12:06       29 阅读
  7. selenium 同样的class如何选择第二个

    2024-05-09 08:12:06       33 阅读
  8. C#语言进阶(四) 枚举器和迭代器

    2024-05-09 08:12:06       35 阅读