Curve质量监控与运维 - 网易数帆9/33新代码提交 Dailybuild测试 提交issue 开发设计 提交PR review +1 CI测试(编译、静态检 查、单元测试、集成测 试、覆盖率80%卡点) 合入master 分支 代码提交流程 异常自动化 测试 混沌测试 (每周一次) CI测试(编译、静态检 查、单元测试、集成测 试、覆盖率80%卡点) 邮件通知 Curve所有代码均在github托管。新 代码需要通过CI测试和code 量覆盖绝大 多数情况: 两因素组合测试 通过测试集覆盖任意两个变量的所有取值组合。理论上两因素组合测 试最多可发现95%的缺陷,平均缺陷检出率也达到了86%,在用例数量 和缺陷检测能力上达到了平衡。因此,一般测试用例应该保证两因素组 合的100%覆盖。 多因素组合测试 生成的测试集可以覆盖任意t个变量(t>2)的所有取值组合。 基于选择的覆盖 选择最常用的参数值作为基础组合,在此基础上每次改变一个参数, 常用的bvar数据类型: bvar::Adder: 计数器,默认0, varname << N相当于varname += N bvar::LatencyRecorder : 专用于记录延时和qps的变量。 bvar::Maxer : 记录最大值,默认std::numeric_limits::min(), varname << N相当于varname = max(varname, N)。 0 码力 | 33 页 | 2.64 MB | 6 月前3
Curve支持S3 数据缓存方案根据InodeId找到对应的FileCacheManager,执行Flush函数。 2.在Flush函数中,加写锁,通过swap获取FileCacheManager的chunkCacheMap_到临时变量tmp,并清空chunkCacheMap_,解写锁。遍历tmp中的DataCache列表,执行Flush函数,并更新对应的元数据。 3.Flush返回成功。 4.如果DataCache的Flush失 sh函数。© XXX Page 9 of 9 后台流程 1.在FsCacheManager中增加一个DataCacheNum_字段,如果该字段为0,表示没有cache需要flush,则线程由条件变量控制处于wait状态。 2.write流程会对后台线程处于wait状态的情况触发notify唤醒,同时修改DataCacheNum_。 3.后台会遍历DataCache,达到flushwait的时间,或者DataCache0 码力 | 9 页 | 179.72 KB | 6 月前3
Curve文件系统元数据持久化方案设计毫秒),rehash 过程如下: 哈希表渐进式 rehash 的详细步骤: (1) 为 ht[1] 分配空间, 让字典同时持有 ht[0] 和 ht[1] 两个哈希表 (2) 在字典中维持一个索引计数器变量 rehashidx, 并将它的值设置为 0, 表示 rehash 工作正式开始 (3) 在 rehash 进行期间, 每次对字典执行添加、删除、查找或者更新操作时, 程序除了执行指定的操作以外, 还会顺带将0 码力 | 12 页 | 384.47 KB | 6 月前3
共 3 条
- 1













