Hasty Briefsbeta

双语

Just make it scale: An Aurora DSQL story

a year ago
  • #Rust
  • #Database Engineering
  • #Aurora DSQL
  • Aurora DSQL在re:Invent大会上发布,其核心是通过从JVM转向Rust实现数据库工程的可扩展性
  • DSQL的开发历程涉及对Rust技术的深度探索、工程效率优化以及对历史决策的反思
  • AWS数据库产品线从Amazon RDS演进至DynamoDB、Redshift和Aurora等专用数据库,以满足多样化客户需求
  • Aurora DSQL采用模块化架构,各组件专注特定任务并高效协同工作
  • 水平扩展写入能力曾是技术难点,DSQL最终采用单一日志提交方案——简化写入但增加读取复杂度
  • 引入Crossbar组件分离读写路径,有效解决网络带宽瓶颈问题
  • 初期模拟测试显示40台主机存在性能问题,促使团队从JVM转向性能更优且内存安全的Rust
  • Rust的确定性性能、内存安全机制和零成本抽象特性完美契合DSQL数据平面需求
  • 团队首先用Rust重写Adjudicator组件,较原Kotlin版本实现10倍性能提升
  • 选择PostgreSQL处理查询任务,同时用Rust编写扩展模块以确保内存安全并复用现有库
  • 控制平面最初采用Kotlin开发,后改用Rust重写以统一逻辑并增强与数据平面的集成
  • Rust的采用使系统获得稳定的尾部延迟和可预测的性能表现
  • 团队通过编写内部指南和举办专题研讨会,系统性地提升Rust和分布式系统领域的专业能力
  • 团队熟练后,Rust的开发效率已与Java相当,但强调其适用性需根据项目具体评估
  • 选用Rust的决策基于特定需求、团队能力和运维环境的综合考量,体现了架构选择的重要性