Talks
Speakers
Events
Topics
Sign in
Home
Talks
Speakers
Events
Topics
Leaderboard
Use
Analytics
Sign in
Suggest modification to this talk
Title
Description
Ractor is the new feature, introduced in Ruby 3.0, to run Ruby code on multiple CPU cores. But unfortunately, Ruby 3.0 is not fully ready for actual workloads. This session will show how we can improve web-app performance by Ractor, and what we have to do to run our web apps on Ractor. RubyKaigi Takeout 2021: https://rubykaigi.org/2021-takeout/presentations/tagomoris.html
Date
Summarized using AI?
If this talk's summary was generated by AI, please check this box. A "Summarized using AI" badge will be displayed in the summary tab to indicate that the summary was generated using AI.
Show "Summarized using AI" badge on summary page
Summary
Markdown supported
In the session titled "Ractor's Speed is Not Light-Speed," Satoshi Tagomori discusses Ractor, a new feature introduced in Ruby 3.0 that enables parallel execution of Ruby code across multiple CPU cores. The session highlights the experimental nature of Ractor and its potential in web applications while addressing its current limitations. Key points covered include: - **Introduction to Ractor**: Ractor is designed for parallelism, managing concurrency by dividing object spaces among multiple Ractors, reducing the complexities of multi-threading. - **Managing Shareable Objects**: Ractors work with shareable objects, which must be marked appropriately to be used across different Ractors, highlighting the differences between regular and isolated procs. - **Performance Expectations**: The performance of Ractor is anticipated to improve application speed by utilizing multiple CPU cores. However, its effectiveness compared to traditional process forking in web applications remains a key question. - **Demonstration of 'Write Speed' Server**: Tagomori introduces a simple Rack application server called "Write Speed" developed by himself. The server aims to process Rack applications with minimal overhead, although it currently faces challenges integrating with Sinatra and other frameworks due to unshareable objects. - **Performance Benchmarks**: Benchmarks showed promising results with a single connection but revealed issues like segmentation faults under load, indicating that Ractor is still in the experimental phase and has many unresolved problems. - **Challenges with Compatibility**: Many popular Ruby frameworks face compatibility issues with Ractor, particularly with accessing instance variables from non-main Ractors, leading to isolation errors. - **Recommendations and Future Prospects**: The talk encourages the community to work on developing Ractor-safe code, use immutable objects, and submit patches to Ruby core for improved performance and compatibility. Tagomori concludes by emphasizing the need for collaboration to enhance Ractor's integration into production environments.
Suggest modifications
Cancel