Talks
Speakers
Events
Topics
Sign in
Home
Talks
Speakers
Events
Topics
Leaderboard
Use
Analytics
Sign in
Suggest modification to this talk
Title
Description
We have proven that fibers are useful for building scalable systems. In order to develop this further, we need to add hooks into the various Ruby VMs so that we can improve the concurrency of existing code without changes. There is an outstanding PR for this work, but additional effort is required to bring this to completion and show its effectiveness in real world situations. We will discuss the implementation of this PR, the implementation of the corresponding Async Scheduler, and how they work together to improve the scalability of Ruby applications.
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 presentation titled "Don't Wait For Me! Scalable Concurrency for Ruby 3!" delivered by Samuel Williams at RubyKaigi Takeout 2020, the focus was on improving Ruby's scalability through the use of fibers and a new Ruby fiber scheduler. The discussion began with the essentials of scalability and its critical role in maximizing application efficiency, particularly in handling large traffic volumes that Ruby can face. Key points discussed included: - **Understanding Scalability**: Scalability is about efficient resource utilization as system demands grow. It's essential to avoid overwhelming systems, especially in cloud environments where inefficiencies can incur higher costs. - **Concurrency vs. Parallelism**: Concurrency allows interleaving tasks, improving hardware utilization and reducing the overhead associated with traditional threading and processes. Efficient task scheduling can minimize waiting times and enhance application throughput. - **Introducing the Fiber Scheduler**: The implementation of a fiber-based scheduler that seamlessly integrates with existing Ruby code without requiring major rewrites was emphasized. This scheduler can handle non-blocking I/O operations, improving responsiveness and scalability. - **The Async Gem**: The Async framework allows developers to write non-blocking code with minimal changes to existing structures. It provides wrappers around traditional I/O operations, enabling concurrent execution and improving performance under I/O-bound conditions. - **Falcon Application Server**: The talk also introduced Falcon, a web server for Ruby designed as a proof of concept for scalability. With capabilities to manage numerous simultaneous connections efficiently using fibers, Falcon demonstrates significant improvement over traditional web servers. - **Challenges with Existing Libraries**: The discussion highlighted issues with existing libraries, such as Active Record, which may not efficiently support concurrency due to their connection management strategies. However, ongoing discussions aim to resolve these limitations as Ruby 3's concurrency model evolves. In conclusion, Samuel Williams stressed the importance of community involvement in developing these new scalability features. He encouraged developers to experiment with the Async gem and Falcon server while considering financial support for further advancements. The objective is clear: to improve Ruby’s ecosystem, allowing developers to build more scalable and efficient applications without significant changes to existing codebases. This work not only enhances application performance but also aligns with broader goals of resource efficiency in technology architecture.
Suggest modifications
Cancel