Skip to content

Commit 80b0a7f

Browse files
committed
[ruby/sinatra-sequel] Add Iodine server
+---------------------+------+-----+-----+-------+--------------+ | branch_name|update| db|query|fortune|weighted_score| +---------------------+------+-----+-----+-------+--------------+ | master| 10712|42587|18920| 30587| 1342| |sinatra-sequel/iodine| 36294|70876|51271| 9335| 3757| +---------------------+------+-----+-----+-------+--------------+
1 parent 2ed435c commit 80b0a7f

9 files changed

+62
-17
lines changed

frameworks/Ruby/sinatra-sequel/Gemfile

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,23 +4,28 @@ gem 'json', '~> 2.8'
44
gem 'sequel', '~> 5.0'
55
gem 'sinatra', '~> 4.0', :require=>'sinatra/base'
66

7-
group :mysql do
7+
group :mysql, optional: true do
88
gem 'mysql2', '~> 0.5', :platforms=>[:ruby, :mswin]
99
end
1010

11-
group :postgresql do
11+
group :postgresql, optional: true do
1212
gem 'pg', '~> 1.5', :platforms=>[:ruby, :mswin]
1313
gem 'sequel_pg', '~> 1.6', :platforms=>:ruby, :require=>false
1414
end
1515

16-
group :passenger do
16+
17+
group :iodine, optional: true do
18+
gem 'iodine', '~> 0.7', platforms: [:ruby, :mswin], require: false
19+
end
20+
21+
group :passenger, optional: true do
1722
gem 'passenger', '~> 6.0', platforms: [:ruby, :mswin], require: false
1823
end
1924

20-
group :puma do
25+
group :puma, optional: true do
2126
gem 'puma', '~> 6.4', require: false
2227
end
2328

24-
group :unicorn do
29+
group :unicorn, optional: true do
2530
gem 'unicorn', '~> 6.1', platforms: [:ruby, :mswin], require: false
2631
end

frameworks/Ruby/sinatra-sequel/Gemfile.lock

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,16 @@ GEM
33
specs:
44
base64 (0.2.0)
55
bigdecimal (3.1.8)
6+
iodine (0.7.58)
67
json (2.8.2)
78
kgio (2.11.4)
89
mustermann (3.0.3)
910
ruby2_keywords (~> 0.0.1)
1011
mysql2 (0.5.6)
1112
nio4r (2.7.4)
12-
passenger (6.0.23)
13+
passenger (6.0.24)
1314
rack (>= 1.6.13)
14-
rackup
15+
rackup (>= 2.0.0)
1516
rake (>= 12.3.3)
1617
pg (1.5.8)
1718
puma (6.5.0)
@@ -22,9 +23,8 @@ GEM
2223
rack (>= 3.0.0, < 4)
2324
rack-session (2.0.0)
2425
rack (>= 3.0.0)
25-
rackup (2.1.0)
26+
rackup (2.2.1)
2627
rack (>= 3)
27-
webrick (~> 1.8)
2828
raindrops (0.20.1)
2929
rake (13.2.1)
3030
ruby2_keywords (0.0.5)
@@ -43,13 +43,13 @@ GEM
4343
unicorn (6.1.0)
4444
kgio (~> 2.6)
4545
raindrops (~> 0.7)
46-
webrick (1.8.2)
4746

4847
PLATFORMS
4948
ruby
5049
x86_64-darwin-23
5150

5251
DEPENDENCIES
52+
iodine (~> 0.7)
5353
json (~> 2.8)
5454
mysql2 (~> 0.5)
5555
passenger (~> 6.0)

frameworks/Ruby/sinatra-sequel/benchmark_config.json

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,26 @@
4242
"versus": "rack-sequel-postgres-puma-mri",
4343
"notes": ""
4444
},
45+
"postgres-iodine-mri": {
46+
"db_url": "/db",
47+
"query_url": "/queries?queries=",
48+
"fortune_url": "/fortunes",
49+
"update_url": "/updates?queries=",
50+
"port": 8080,
51+
"approach": "Realistic",
52+
"classification": "Micro",
53+
"database": "Postgres",
54+
"framework": "sinatra",
55+
"language": "Ruby",
56+
"orm": "Full",
57+
"platform": "Rack",
58+
"webserver": "Iodine",
59+
"os": "Linux",
60+
"database_os": "Linux",
61+
"display_name": "sinatra-sequel-postgres-iodine-mri",
62+
"versus": "rack-sequel-postgres-iodine-mri",
63+
"notes": ""
64+
},
4565
"postgres-passenger-mri": {
4666
"db_url": "/db",
4767
"query_url": "/queries?queries=",

frameworks/Ruby/sinatra-sequel/boot.rb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@
1616
'puma'
1717
elsif defined?(Unicorn)
1818
'unicorn'
19-
elsif defined?(Agoo)
20-
'agoo'
19+
elsif defined?(Iodine)
20+
'iodine'
2121
end
2222

2323
Bundler.require(:default) # Load core modules
@@ -39,7 +39,7 @@ def connect(dbtype)
3939
elsif defined?(Puma) && (threads = Puma.cli_config.options.fetch(:max_threads)) > 1
4040
opts[:max_connections] = (2 * Math.log(threads)).floor
4141
opts[:pool_timeout] = 10
42-
else
42+
elsif defined?(Unicorn) || defined?(Passenger)
4343
Sequel.single_threaded = true
4444
end
4545

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
FROM ruby:3.4
2+
3+
ENV RUBY_YJIT_ENABLE=1
4+
5+
# Use Jemalloc
6+
RUN apt-get update && \
7+
apt-get install -y --no-install-recommends libjemalloc2
8+
ENV LD_PRELOAD=libjemalloc.so.2
9+
10+
ADD ./ /sinatra-sequel
11+
WORKDIR /sinatra-sequel
12+
13+
ENV BUNDLE_WITH=postgresql:iodine
14+
RUN bundle install --jobs=4 --gemfile=/sinatra-sequel/Gemfile
15+
16+
ENV DBTYPE=postgresql
17+
18+
EXPOSE 8080
19+
20+
CMD bundle exec iodine -p 8080

frameworks/Ruby/sinatra-sequel/sinatra-sequel-postgres-passenger-mri.dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ ENV LD_PRELOAD=libjemalloc.so.2
1010
ADD ./ /sinatra-sequel
1111
WORKDIR /sinatra-sequel
1212

13-
ENV BUNDLE_WITHOUT=mysql:puma:unicorn
13+
ENV BUNDLE_WITH=postgresql:passenger
1414
RUN bundle install --jobs=4 --gemfile=/sinatra-sequel/Gemfile
1515

1616
# TODO: https://github.com/phusion/passenger/issues/1916

frameworks/Ruby/sinatra-sequel/sinatra-sequel-postgres-unicorn-mri.dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ ENV LD_PRELOAD=libjemalloc.so.2
1010
ADD ./ /sinatra-sequel
1111
WORKDIR /sinatra-sequel
1212

13-
ENV BUNDLE_WITHOUT=mysql:passenger:puma
13+
ENV BUNDLE_WITH=postgresql:unicorn
1414
RUN bundle install --jobs=4 --gemfile=/sinatra-sequel/Gemfile
1515

1616
ENV DBTYPE=postgresql

frameworks/Ruby/sinatra-sequel/sinatra-sequel-postgres.dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ ENV LD_PRELOAD=libjemalloc.so.2
1010
ADD ./ /sinatra-sequel
1111
WORKDIR /sinatra-sequel
1212

13-
ENV BUNDLE_WITHOUT=mysql:passenger:unicorn
13+
ENV BUNDLE_WITH=postgresql:puma
1414
RUN bundle install --jobs=4 --gemfile=/sinatra-sequel/Gemfile
1515

1616
ENV DBTYPE=postgresql

frameworks/Ruby/sinatra-sequel/sinatra-sequel.dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ ENV LD_PRELOAD=libjemalloc.so.2
1010
ADD ./ /sinatra-sequel
1111
WORKDIR /sinatra-sequel
1212

13-
ENV BUNDLE_WITHOUT=postgresql:passenger:unicorn
13+
ENV BUNDLE_WITH=mysql:puma
1414
RUN bundle install --jobs=4 --gemfile=/sinatra-sequel/Gemfile
1515

1616
ENV DBTYPE=mysql

0 commit comments

Comments
 (0)