-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Submit CFP to RubyKaigi Takeout 2021 #3435
Comments
@fujimotos this issue was automatically closed because it did not follow the issue template |
@ashie @kenhys @kou This is the CFP draft for Rubykaigi Takeout 2021. Please comment here if you have any suggestions (preferably by Tuesday # Title
Fluentd: How to ship a Ruby Application to Windows
# Abstract
Shipping a Ruby application to Windows is a challenging task. For starters, we
cannot even expect that Ruby is handily pre-installed there!
We (Fluentd team) maintain a set of Windows packages to make it easier to
deploy and run Fluentd on Windows. In this talk, we discuss the general problems
of shipping Ruby applications to Windows, and explain how we addressed them.
# Details
The goal of my talk is to let attendants obtain the general knowledge of how to
distribute Ruby applications on Windows.
Here is the (planned) outline of my talk:
* What is Fluentd? (intro)
* Windows and Ruby
* Myth: "Ruby is cross-platform. My app should just work fine!"
* Not all platform incosistencies are abstracted away.
* Not all gems are Windows-ready.
* Detailed know-hows
* Porting your app to Windows.
* How to create a Windows installer (WIX/NSIS...)
* How to include a copy of Ruby in your package.
* How to manage gems for your app on Windows.
* How to run your Windows app as Windows Service.
* ...
* Open problems
* Unix culture vs Windows culture
* Conclusion
# Pitch
Ruby developers demographic is heavily leaned toward Unix (Linux/BSD/macOS).
Generally speaking, there is much less community knowledge and expertise
regarding Windows.
However Windows is the most widely used desktop operating system, especially
in the business space. There are indeed a lot of demands for Ruby apps to support
Windows. I see here a certain gap waiting to be filled between Ruby devs (Unix)
and general user demographic (mostly Windows).
Fluentd project is maintaining the Windows distribution for years, and I think
we can provide a unique perspective on this topic. |
One more topic for "Detailed know-hows"
|
RubyKaigi is a deeply technical conference for Ruby itself. http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-core/104408
It seems that this talk focuses on packaging mainly. Can we focus on deeply technical topic related to Ruby as the main topic? |
I'm not sure they are suitable for RubyKaigi though, following topics are Ruby on Windows related things in Fluentd I know.
|
Could you provide links of their implementations? |
I've added them to the comment. |
Thanks. |
@kou @ashie I created a new CFP draft. The presentation topic is Ractor and Fluentd.
RubyKaigi Takout 201 CFP (draft v2) # Title
Speed up data parsing in Fluentd using Ractor
# Abstract
Prallelization is becoming the norm in moden programming. As more cores
are added to CPUs, programmers are expected to utilize these additional cores.
Ractor is the new parallelism mechanism available since Ruby 3.0. Recently,
Fluentd team experimented with this relatively-new feature to make text parsing
faster. In this talk, we introduce the general concept of Ractor and discuss our
experience with it.
# Details
The goal of my talk is to let attendants obtain the general knowledge of Ractor,
the bleeding-edge multi-thereading feature
Here is the (planned) outline of my talk:
* What is Ractor? (Introduction)
* Ractor = safe threading with easier interface
* Feature: Parallel processing (with multiple Ractors)
* Feature: Message passing
* Restriction: Cannot share data
* Restriction: Most gems do not support it (yet)
* Make Fluentd faster to parse texts using Ractor
* Basic: How Fluentd parser works
* Making LTSV parser faster (1)
* Making LTSV parser faster (2)
* Making LTSV parser faster (3)
* Experiment
* Result
* Open issues
* Ractor: still "experiment" feature
* We need to make more gems Ractor-ready
* Conclusion
# Pitch
Parallelism becomes a very hot topic recently. As CPU vendors add more and more
cores to their products, more programing languages are starting to give the special
consideration to parallel processing.
Ruby was historically not very good at concurrent programming (e.g. GIL issue).
However, the status has rapidly changed in the last few years. Especially
the introduction of Ractor was a big factor.
In this talk, we're going to introduce Ractor to general audience and show how
it can be made used of to speed up data processing. |
Here is a PoC implementation of Ractor-enabled Using the following configuration: <source>
@type tail
tag test.log
path test.log
read_from_head true
<parse>
@type ltsv
</parse>
<buffer>
@type memory
flush_interval 1s
</buffer>
</source>
<match test.**>
@type flowcounter_simple
unit second
</match> I can confirm that it actually utilizes 8 threads (cores): A caveat is: actually the current implementation is a little slower than But anyway, I think we can polish the PoC up and make a talk on it. |
It seems that this is a good starting point. BTW, is it faster than |
Abound 30% CPU usage per thread may be low. |
@kou We don't have any thread implementation on in_tail. Here is some performance stats:
Note that the test machine has 8 CPUs (Azure F8s with Xeon 8272CL) |
Is |
I experimened with Ractor using another part of Fluentd last night. It didn't work. Ractor was actually slower than a single-thread implementation. So, apparently, Ractor seem not to be eligible for production usage (yet)... |
Yes. Ractor is still an experimental feature. |
RubyKaigi Takout 201 CFP (draft v3) # Title
Ractor: Experimenting with the new parallelization feature
# Abstract
Parallelization is becoming the norm in model programming. As more cores are
added to CPUs, programmers are expected to utilize these additional cores.
Ractor is the new parallelism mechanism available since Ruby 3.0. Recently,
Fluentd team experimented with this relatively-new feature to see if it can
accelarete data processing.
In this talk, we explain our experience with Ractor and discuss the current
status of this technology.
# Details
The goal of my talk is to let attendants obtain the general knowledge of Ractor,
the bleeding-edge multi-thereading model.
Here is the (planned) outline of my talk:
* What is Ractor? (Introduction)
* Ractor = safe threading with easier interface
* Feature: Parallel processing (with multiple Ractors)
* Restriction: Data sharing
* Restriction: Gem support
* Practical performance of Ractor
* Basic: How Fluentd works
* Make Fluentd Plugin Ractor-ready (1)
* Make Fluentd Plugin Ractor-ready (2)
* Make Fluentd Plugin Ractor-ready (3)
* Experiment & Result
* Open problems
* Conclusion
# Pitch
Parallelism becomes a hot topic recently. As multi-CPU architecture becomes
popular, programming languages are starting to give the special consideration
to parallel processing.
Ruby was historically not very good at concurrent programming (e.g. GIL vs Thread).
However, the status has rapidly changed in the last few years. Especially
the introduction of Ractor in Ruby 3 was deemed as a big step ahead.
In this presentation, we want to talk about this breeding-edge technology from
application developers' perspective |
RubyKaigi Taketout 2021 CFP draft (v4) # Title
Ractor: Experimenting with the new parallelization approach
# Abstract
Parallelism has become the norm in modern programming. As more cores are
added to CPU chips, developers are expected to integrate multi-threading
into programs to utilize these additional cores.
Ractor is the new multi-threading mechanism introduced in Ruby 3.0.0.
Recently, Fluentd team experimented with this new technique to see if it
can bring higher data throughputs.
In this talk, we explain our experience with Ractor and discuss the
current state of the technology.
# Details
The goal of this talk is to show how to use Ractor, the breeding-edge
multithreading feature, with practical use cases.
Here is the (planned) outline of my talk:
* Introduction: What is Ractor?
* Ractor = Actor-based multi-threading
* Ractor can be executed in parallel (vs Threads)
* Ractor is easier and safer to use
* Caveats (1) Limited object sharing
* Caveats (2) Not all gems support it yet
* Practical performance of Ractor
* Basics: How Fluentd works
* Make Fluentd Plugin Ractor-ready (1)
* Make Fluentd Plugin Ractor-ready (2)
* Make Fluentd Plugin Ractor-ready (3)
* Experiment
* Result
* Open problems
* Some cases Ractor cannot handle well
* On Gem ecosystem and Ractor
* The experimental side of Ractor
* Conclusion
# Pitch
Parallelism is a hot topic right now. More and more programming languages
are integrating multi-threading technologies into their design (e.g. Go's
goroutines), and some are getting real traction.
Ruby was historically heavily restricted to a single thread. However, the
status has been rapidly changing in recent years. In particular, the
introduction of Ractor in 3.0.0 was regarded as a big step ahead.
Still, this technology is relatively new, and not much experience is
accumulated on community. I think our presentation will act as a good
introduction for general Ruby developers. |
@kou @ashie @kenhys CFP submitted at Jun 30 23:30. I close this issue as done now. |
Problem Description
Assginee
Me (fujimotos)
Timeline
The text was updated successfully, but these errors were encountered: