Skip to content

[r2cn] SlayerFS 元数据存储缓存实现 #203

@genedna

Description

@genedna

[任务] SlayerFS 元数据存储缓存实现

[任务分值] 80 分

[背景描述]

当前系统的元数据模块已实现基本的持久化存储功能,可以将数据可靠地保存到数据库中。然而,在高并发或大规模分布式场景下,频繁访问数据库会带来性能瓶颈,导致响应延迟增加,影响系统整体性能。因此,需要设计缓存机制来提升单机和分布式环境下的访问效率。

[需求描述]

为了提升系统在单机和分布式场景下的性能,需要为数据库存储和分布式存储设计高效的缓存功能。缓存应具备以下能力:

  1. 快速访问:通过在内存中缓存热点元数据,减少对底层数据库和分布式存储的直接访问,从而降低响应延迟。
  2. 缓存策略支持:支持常用缓存淘汰策略,如 LRU(Least Recently Used),确保有限内存中缓存的数据始终为热点数据。
  3. 数据一致性与过期控制:引入**过期策略(TTL, Time-To-Live)**或更新机制,保证缓存与数据库或分布式存储的数据保持一致性,避免读取到过期或错误的元数据。
  4. 可扩展性与可配置性:缓存大小、过期时间和策略可配置,以适应不同的业务场景和访问模式。

通过设计和实现上述缓存功能,系统能够在保证数据可靠性的同时,大幅提升单机和分布式环境下的元数据访问效率和整体性能。

[代码标准]

  1. 所有 PR 提交必须签署 Signed-off-by 和 使用 GPG 签名,即提交代码时(使用 git commit 命令时)至少使用 -s -S 两个参数,参考 Contributing Guide
  2. 所有 PR 提交必须通过 GitHub Actions 自动化测试,提交 PR 后请关注 GitHub Actions 结果;
  3. 代码注释均需要使用英文;

[PR 提交地址] 提交到 mega 仓库的 main 分支 libra 目录;

[开发指导]

  1. 认领任务参考 r2cn 开源实习计划 - 任务认领与确认;

[导师及邮箱] 请申请此题目的同学使用邮件联系导师,或加入到 R2CN Discord 后在 #p-meta 频道和导师交流。

  1. Quanyi Ma [email protected]
  2. Tianxing Ye [email protected]

[备注]

  1. 认领实习任务的同学,必须完成测试任务和注册流程,请参考: r2cn 开源实习计划 - 测试任务r2cn 开源实习计划 - 学生注册与审核

Metadata

Metadata

Assignees

Type

Projects

Status

In Progress

Relationships

None yet

Development

No branches or pull requests

Issue actions