[改进后的中文总结内容]
本次会议主要讨论了Ceph的Blue Store缓存设计和Messenger 2协议的改进。
一、Blue Store 缓存设计
讨论要点:
- I/O路径更新:自Juwell版本发布以来,I/O路径已完全重写,元数据结构略有不同,引入了逻辑引用和Blob,Blob可压缩或非压缩,可能包含校验数据。
- 缓存设计:Blue Store需要高效地修剪,并管理自己的缓冲区缓存。主要问题是如何在Blue Store中实现缓存,以及使用哪种缓存替换算法。
- 缓存结构:
- 全局缓存:简单易实现,但可能导致缓存争用和性能下降。
- 按集合缓存:每个集合拥有独立的缓存,但需要额外的锁和复杂的缓存大小调整机制。
- 分片缓存:将缓存分成多个分片,每个分片由不同的CPU核心访问,可以提高并发性和性能。
- 缓存替换算法:
- LRU算法:简单易实现,但可能导致热点数据被替换。
- MultiQ算法:基于多个LRU列表,可以根据数据的热度进行分层,提高缓存利用率。
决定事项:
- 采用分片缓存结构。
- 使用MultiQ算法作为缓存替换算法。
后续行动计划:
- 完善缓存管理代码。
- 评估MultiQ算法的性能。
二、Messenger 2 协议
讨论要点:
- 降级攻击:如何防止在Exchange中删除消息时影响加密等操作。
- Calamari 项目:讨论了Calamari项目的未来发展方向,包括与Seth Manager的集成。
- 协议设计:
- 签名:在消息头中添加签名,以增强安全性。
- 协商:客户端和服务器协商支持的协议版本和功能。
- 连接:建立连接并进行身份验证。
- 消息传递:交换消息。
- 断开连接:断开连接并清理资源。
决定事项:
- 在消息头中添加签名。
- 客户端和服务器协商支持的协议版本和功能。
- 使用简洁的协议设计。
后续行动计划:
- 完善协议实现。
- 评估协议性能和安全性。
三、其他事项
- 讨论了其他一些议题,包括性能优化、安全性等。