タグ

関連タグで絞り込む (2)

タグの絞り込みを解除

concurrentとractorに関するa2ikmのブックマーク (3)

  • Ruby に Software Transactional Memory (STM) を入れようと思った話 - クックパッド開発者ブログ

    技術部でRubyインタプリタの開発をしている笹田です。コロナの影響で、リモート勤務などに移行し、新しい生活スタイルを満喫されている方々がたくさんいらっしゃるんじゃないかと思います。ただ、私は以前から自主的に自宅勤務することが多かったので、正直生活がぜんぜん変わっていません。 さて、家で私が何をしているかというと、Ruby 3の準備です。その中でも、数年取り組んできた Ruby で並列処理をするための仕組みである Ractor の開発をしています(以前は Guild というコードネームで呼んでいました)。Ractor という名前は、Ruby の Actor みたいな意味で付けました。Erlang とか Elixir で有名な Actor model というアレです。厳密には、Actor model でよく言われる特性をすべて備えているわけではないのですが、並列で動く Ractor を複数作る

    Ruby に Software Transactional Memory (STM) を入れようと思った話 - クックパッド開発者ブログ
  • Guild → Ractor

    Guild → Ractor ささだこういち Ruby 3 さみっと 2020/04/17 背景 • Ruby の 1 プロセスでは(基的には)並列処理できない • 同時に複数 CPU を使う処理 • Ruby(MRI)のThread == 並行処理 • マルチプロセスは難しそう… • そもそも Thread 難しい • 適切な同期漏れ • データレース • レースコンディション • デッドロック、ライブロック • 再現性がなくデバッグが困難 簡単に 並行・並列処理 したい! 間違いを起こさないためには? • スレッドを良い感じにサポート • 再現性をあげる(OS scheduler に手を入れるなど) • デバッグサポートを行う(Thread Sanitizer, helgrind, etc) • データの書き換えを禁止 • Erlang など • データ(オブジェクト)を共有しない

  • Writing a Ractor-based web server<!-- --> • Kir Shatrov

    Ractor, the new concurrency primitive in Ruby, has been merged to the upstream few days ago. I’ve been following that PR and watching the author’s talk at RubyKaigi (in Japanese, I wasn't able to find the translated version but it should be available somewhere), which got me excited to try Ractor myself. A web application server is the first thing that comes to mind when playing with concurrency.

  • 1