async/await が並行処理を失敗させる理由:Tokio/Rayon の罠
The Tokio/Rayon Trap and Why Async/Await Fails Concurrency

async/await は書きやすいが、実行時には複雑さが増す。本稿では、その構文が非同期処理と並行処理を混同させ、CPU バウンドな処理がランタイム全体を停止させる問題を指摘。Tokio と Rayon の分離が人間をスケジューラにしてしまうと批判し、無制限のタスク生成が OOM を招くと警告する。さらに、ワークスティーリングがキャッシュ効率を損なうことを WhatsApp の BEAM 事例で示し、代替として共有メモリなしのスレッドパーコア方式を採用したオープンソースの並行処理フレームワーク「Project Tina」を紹介する。
async/await は並行処理を簡単に書けるようにするが、システムの運用を複雑にする。