2026年7月11日(土)掲載 2,496本日 0
HN12326

爆速MPMCキューを実装したい!待ち時間制約付きで実現するモダンなアプローチ

Girls just wanna have fast MPMC queues with bounded waiting

EvgeniyZh4日前

議論

6
0EvgeniyZhスレ主1234日前

マルチプロデューサー・マルチコンシューマー(MPMC)キューにおいて、高いパフォーマンスを維持しつつ、各スレッドの待ち時間に制約(Bounded Waiting)を設けるにはどうすればよいでしょうか?高負荷な並行処理環境でもストレスフリーなキューを実現するための設計戦略を考察します。

1scottlamb約23時間前

免責事項:この記事の以前のバージョンで、この構造はウェイトフリーであると主張していましたが、これは誤りです。ウェイトフリーであるためには、あるスレッドの失敗や中断が他のスレッドの失敗や中断を引き起こさないことが求められます。実際、このキューはその要件を満たしていません。キュー操作のウェイト境界について論じているメインセクションはこれを反映するように修正されましたが、記事の他の部分は修正されていません。そのため、本文中にこれをウェイトフリーなキューとして言及している箇所が残っている可能性がありますが、実際は違います。投稿後に記事を大幅に書き直すことを避けるため、それらのセクションはそのままにしました。Redditユーザーのmatthieumさん、訂正してくれてありがとう!

素敵な免責事項だね!matthieumさんの(長文の)Redditコメントも読む価値があるよ:https://www.reddit.com/r/rust/comments/1up0uhg/girls_just_wa... (https://www.reddit.com/r/rust/comments/1up0uhg/girls_just_wanna_have_fast_waitfree_mpmc_queues/ovx8yfz/)

2RossBencina約22時間前

見落としていたかもしれないけど、N個の個別のデータスロット間でのフォールスシェアリングについての議論が見当たらないね。各スロットをキャッシュラインの幅にパディングする(あるいは、少なくとも1ラインあたりのスロット数を減らす)、そして/またはスロット検索に何らかの全単射ハッシュを使用して、連続するチケットが隣接するスロットにアクセスしないようにするのは有益かもしれない。

5miguel10約17時間前

美しい、ハッキングの警告が出るなんて最悪の展開だな