系统日报-20220120(cockroachDB是怎么优化分布式事务的)

444 阅读2分钟

「这是我参与2022首次更文挑战的第 3 天,活动详情查看:2022首次更文挑战」。

《系统日报》持续关注分布式系统、AI System,数据库、存储、大数据等相关领域文章。每天以摘要的形式精选不超过三篇系统文章分享给大家。 如果你有好文章推荐,或者有其他任何想法,欢迎在 Articles Weekly Repo[1]提 issue。

CockroachDB 优化到 1-round 的分布式事务

CockroachDB 分布式事务

来源flaneur2020.github.io/2021/09/06/…[2]

摘要:来自“F叔的学习笔记”的一篇文章,以 Percolator 事务引入,梳理了下 CockroachDB[3] 在工程上对两阶段事务的很多的巧妙优化。CockroachDB 是几位前谷歌员工在 2015 年创建的、开源的、云原生的、分布式 SQL 数据库。其创始人来自大名鼎鼎的 Google GFS[4] 和 Reader 团队。其设计理念也影响到了国内一众开源数据库。回到本篇文章,CockroachDB 提供 Serializable 隔离级别,主要优化点有:

  1. 使用 Push Timestamp 和 Read Refreshing 策略,在检测到冲突时,不是立即失败,而是先及尽力挽救,避免了部分冲突重试。
  2. 使用 Write Pipelining 和 Parallel Commit 策略,将对 Write Intent 和 Transaction Record 等需要走 raft 状态机的 KV 写入缩减到仅一次等待。为此需要将 Transaction Record 延迟到事务最后写入,以跟踪所有 Write Intent。
  3. 对 Write Intent 进行异步处理。包括 Coordinator 在事务完成时的正常处理、Coordinator 丢失心跳后 Range Server 的主动清理以及其他事务访问时的捎带处理。

F 叔的文章组织有序,深入浅出,值得一读。不过本文中没有提到事务 CockroachDB 所用的 HLC (逻辑混合时钟),这也是一个有意思的点,之后会找一些文章推荐给大家。

用混合训练优化物体检测 Detector

来源: arxiv.org/pdf/2111.03…

摘要: 该文章介绍了在物体检测中使用 EMA 模型生成伪标签的训练方法,该方法能有效解决标签缺失和标注定位噪声的问题。伪标签生成方法有两个约束,一是 EMA Detector 输出的 Bounding Box 置信度大于 0.9。 二是存在一个最近 Ground Truth Bounding Box ,两个 Bounding Box 的 IOU 大于0.5。该方法在训练过程会增加额外的 EMA 模型推理伪标签的时间,在模型推理或部署上不增加额外开销。

文章中使用 Faster-R-CNN 的 Detector 搭配不同的 backbond 网络 (ResNet-50, Swin-S)进行训练,在 COCO2017 数据集上的 mAP 指标都能有显著提升。

参考资料

[1] 任何想法都欢迎来提 issue: github.com/DistSysCorp…

[2] crdb 两阶段提交过程: flaneur2020.github.io/2021/09/06/…

[3] CockroachDB github 仓库: github.com/cockroachdb…

[4] GFS —— 取舍的艺术: www.qtmuniao.com/2019/05/26/…