Talks
Speakers
Events
Topics
Sign in
Home
Talks
Speakers
Events
Topics
Leaderboard
Use
Analytics
Sign in
Suggest modification to this talk
Title
Description
http://rubykaigi.org/2016/presentations/narittan.html Unicorn is the most used multiprocess server framework implemented in ruby. But it doesn't work on Windows unfortunately. Serverengine is a robust multiprocess server implemented in ruby and it works on windows now. This is the first multiprocess server with ruby which can work on windows. I'll talk about what only ruby can do and my original effort for realizing a robust multiprocess server for restricted environment. And in the end, I'll introduce real demos on windows. Ritta Narita, @narittan Ritta graduated from university last September and now is working at Treasure Data.Inc. And he is maintainer of serverengine.
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 this video from RubyKaigi 2016, Ritta Narita discusses the creation of a multiprocess server on Windows using Ruby, focusing on the ServerEngine framework—a robust alternative to the commonly used Unicorn framework, which unfortunately does not operate on Windows. Ritta begins by introducing himself and his role at Treasure Data, where he works on data management services. He highlights how Treasure Data can efficiently manage large data sets, particularly emphasizing the role of Fluentd for streaming data. Key Points Discussed in the Presentation: - **Introduction to Multiprocess Server**: Ritta emphasizes the need for a multiprocess server that works on Windows, presenting ServerEngine as a viable solution that operates similarly to Unicorn. - **Functionality of ServerEngine**: ServerEngine is described as a framework that supports daemonizing and supervising processes, with features such as automatic restarts of worker processes when they fail. - **Configuration and Management**: The speaker explains how to configure ServerEngine, including writing server and worker modules that define their respective functionalities, and how to choose between different types of workers (thread, process, spawn). - **Socket Management on Windows**: Ritta addresses unique challenges posed by Windows regarding socket management. He explains how to utilize Windows API methods for socket duplication and management, contrasting it with Unix systems' simplicity due to the lack of a fork function. - **Event Handling in Windows**: He suggests using read-polling methods to handle HTTP requests efficiently to avoid blocking calls, illustrating the nuanced differences between handling requests in Unix versus Windows environments. - **I/O Completion Ports (IOCP)**: The video concludes with a discussion on IOCP as an advanced method for handling socket communications in Windows, which facilitates better performance and resource management. Ritta presents practical examples including the configuration of Fluentd with ServerEngine, demonstrating effective data routing and worker management. His benchmarking results indicate significant performance improvements—about a twofold increase—validating the multiprocess architecture's efficiency on Windows. The main takeaways from the video emphasize the unique challenges of Windows development with Ruby, the powerful capabilities of the ServerEngine framework, and the importance of adapting Ruby's functionalities to cater to Windows-specific API requirements. Ritta’s insights on socket management and the performance metrics present a compelling argument for using Ruby in Windows environments despite the inherent complexities.
Suggest modifications
Cancel