RustyRatracerr - 高性能计算 (HPC) 光线追踪实验
RustyRatracerr 项目是一个使用 Rust 语言实现的高性能计算 (HPC) 光线追踪实验。作者在家里搭建了一个 4 节点 32 核心的集群,希望通过这个计算密集型任务来实验高性能计算。项目基于 "Ray Tracing In One Weekend" 教程.
https://github.com/Timmoth/RustyRatracerr
CanopyDB - 轻量级、高效的事务性键值存储引擎
CanopyDB是一个用Rust编写的轻量级、高效的事务性键值存储引擎。它针对读取密集型和读写修改型工作负载进行了优化,采用MVCC设计和可选WAL(预写日志),可以比类似的替代品提供更好的写入性能和空间利用率,适用于更广泛的使用场景。
主要特点包括:
- 完全事务性API,支持可串行化快照隔离的单写入者模式。
- 类似BTreeMap的API,易于与Rust代码集成。
- 高效处理大值,并支持透明压缩。
- 每个数据库可有多个键空间,键空间管理完全事务化。
- 每个环境可有多个数据库,高效共享WAL和页面缓存。
- 支持跨数据库原子提交,在多个数据库间保持一致性。
- 可定制持久性,从同步提交到定期后台fsync。
CanopyDB在读取性能方面表现出色且稳定,写入性能和空间放大率也不错,有时可与基于LSM树的设计相媲美。该项目始于2020年,是作者对LMDB的一些缺陷(如最大键长510B、强制同步提交等)的不满而酝酿的实验性项目,经过多次重写。该作者希望这个项目能够为他人提供帮助。
https://old.reddit.com/r/rust/comments/1g7w628/canopydb_lightweight_and_efficient_transactional/
异步代码和阻塞代码在Rust语言中的抽象泄漏问题
该文章主要讨论了异步代码和阻塞代码在Rust语言中的抽象泄漏问题。
作者认为,与JavaScript等其他高级语言不同,在Rust中,阻塞代码才是真正的"抽象泄漏",因为它们无法很好地与异步代码交互。相比之下,异步代码可以通过 block_on 等机制从阻塞代码中调用,反之则比较困难。
文章还列出了一个表格,对比了异步代码和阻塞代码相互调用的难易程度。同时也提到了一些特殊情况,如GUI代码虽然使用阻塞语义但表现类似异步代码。
总的来说,作者认为在Rust中,异步代码具有更好的可组合性和可扩展性,而阻塞代码才是真正的"抽象泄漏"。
https://notgull.net/blocking-leaky
--
From 日报小组 Mike
社区学习交流平台订阅:
评论区
写评论还没有评论