An Introduction to Ractors in Ruby

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
  • multiversion-concurrency-control

    Implementation of multiversion concurrency control, Raft, Left Right concurrency Hashmaps and a multi consumer multi producer Ringbuffer, concurrent and parallel load-balanced loops, parallel actors implementation in Main.java, Actor2.java and a parallel interpreter

  • I wrote a parallel communicating thread actor model in Java that doesn't use mutuexes. I am yet to prove it is waitfree but it doesn't block, it always tries to move towards forward progress.

    I wrote a model checker in Python and it's slow as it tests every possible interleaving of the threads. I've run it a lot but there's the possibility there is a rare bug. But my model checker needs parallelising to prove the algorithm correct. So I need to parallelise my parallel algorithm checker.

    It's kind of based on https://www.cs.technion.ac.il/~erez/Papers/wfquque-ppopp.pdf in terms of work stealing (or helping)

    Every thread can communicate with every other thread and I load balance the pool with a simple atomic counter and modulo.

    https://github.com/samsquire/multiversion-concurrency-contro...

    I get 2 million communication events a second, so communication costs 500 nanoseconds. I plan to implement bidirectional communication so threads swap messages with each other, for double the throughput. The plan is that threads/actors have multiple event streams or sources of work, so they always have work to do even if there is contention.

    If you found this comment useful or interesting, check out my profile. I write of this stuff everyday.

  • I wrote a parallel communicating thread actor model in Java that doesn't use mutuexes. I am yet to prove it is waitfree but it doesn't block, it always tries to move towards forward progress.

    I wrote a model checker in Python and it's slow as it tests every possible interleaving of the threads. I've run it a lot but there's the possibility there is a rare bug. But my model checker needs parallelising to prove the algorithm correct. So I need to parallelise my parallel algorithm checker.

    It's kind of based on https://www.cs.technion.ac.il/~erez/Papers/wfquque-ppopp.pdf in terms of work stealing (or helping)

    Every thread can communicate with every other thread and I load balance the pool with a simple atomic counter and modulo.

    https://github.com/samsquire/multiversion-concurrency-contro...

    I get 2 million communication events a second, so communication costs 500 nanoseconds. I plan to implement bidirectional communication so threads swap messages with each other, for double the throughput. The plan is that threads/actors have multiple event streams or sources of work, so they always have work to do even if there is contention.

    If you found this comment useful or interesting, check out my profile. I write of this stuff everyday.

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts