前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Rust日报】使用Rust开发分布式系统的经验教训

【Rust日报】使用Rust开发分布式系统的经验教训

作者头像
MikeLoveRust
发布2024-05-29 13:01:06
930
发布2024-05-29 13:01:06
举报

Fjall - 一个安全Rust的KV存储引擎

Fjall 是一个可嵌入的基于 LSM 的 forbid-unsafe Rust 键值存储引擎。它的目标是成为一个可靠且可预测但性能优异的通用 KV 存储引擎,适用于小型数据集,尤其是大于内存大小的数据集。我刚刚发布了1.0版本,该版本稳定了其数据格式,适用于所有未来的1.x.x版本。

它的设计受到了 LevelDB/RocksDB 架构的重大影响,并且通常具有相似的性能。它具有类似的功能,包括:

  • 范围和前缀搜索以及前向和后向迭代
  • 数据分区(在 RocksDB 中称为 "Column Families")
  • 跨分区原子写批处理
  • MVCC 和快照读取
  • 可调节的耐久性保证
  • 大小分层(写优化)、级别分层(读优化)和 FIFO 压缩(用于临时数据)

Repo https://github.com/fjall-rs/fjall

使用Rust开发分布式系统的经验教训

Codethink 是一家致力于推广安全且可复现的软件的公司。在构建分布式系统时,他们选择了 Rust 作为工具,因为 Rust 具有多重安全保证和合理的包管理。以下是他们在构建一个 3 节点 Rust 分布式系统时所学到的一些经验教训:

  1. Rust 不会减慢开发速度
    • Rust 的显式错误返回类型(而非异常)使得隐藏的故障点大大减少。
    • 错误传播机制让我们能够在一个地方处理所有错误,更容易推理。
    • Rust 的开发速度并不比其他语言(如 Python 或 C)慢。
  2. 异步 Rust 的挑战
    • 使用异步编程确保节点可以同时执行 CPU 密集型工作并与其他节点保持多个通信通道打开。
    • Rust 的异步编程复杂性部分是为了不牺牲性能。
    • 需要仔细处理关闭和取消安全性,以确保服务能够停止或重启而不损坏数据。

总之,Rust 在构建分布式系统时表现出色,尽管异步编程可能有挑战,但最终的结果是成功的。🚀🦀

blog https://www.codethink.co.uk/articles/2024/distributed_system_rust/

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-05-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Rust语言学习交流 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Fjall - 一个安全Rust的KV存储引擎
  • 使用Rust开发分布式系统的经验教训
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档