Skip to content

Commit f3d0777

Browse files
committed
Bigger ceiling for concurrent appends
1 parent 225ea35 commit f3d0777

2 files changed

Lines changed: 46 additions & 0 deletions

File tree

lib/en57/benchmark.rb

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -256,6 +256,9 @@ def initialize(scenarios:, formatter:)
256256
end
257257

258258
def run
259+
original_append_retries = En57.configuration.append_retries
260+
En57.configuration.append_retries = 100
261+
259262
results =
260263
@scenarios.map do |instance_name, mk_scenario|
261264
PgEphemeral.with_server(instance_name:) do |server|
@@ -283,6 +286,8 @@ def run
283286
end
284287

285288
@formatter.format(results)
289+
ensure
290+
En57.configuration.append_retries = original_append_retries
286291
end
287292
end
288293

test/test_benchmark.rb

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,47 @@ def run(measure, retries)
122122
assert_equal([3, 3], formatted_results.map(&:retry_count))
123123
end
124124

125+
def test_runner_sets_append_retries_during_benchmark
126+
formatter = Object.new
127+
formatter.define_singleton_method(:format) { |_results| "formatted" }
128+
server = Data.define(:url).new("postgres://example")
129+
append_retries = nil
130+
original_append_retries = En57.configuration.append_retries
131+
En57.configuration.append_retries = 7
132+
scenario =
133+
Class
134+
.new do
135+
def initialize(capture)
136+
@capture = capture
137+
end
138+
139+
def name = "scenario"
140+
def runs = 1
141+
def run(measure, _retries)
142+
@capture.call(En57.configuration.append_retries)
143+
measure.call { nil }
144+
end
145+
end
146+
.new(->(value) { append_retries = value })
147+
148+
PgEphemeral.stub(
149+
:with_server,
150+
->(instance_name:, &block) { block.call(server) },
151+
) do
152+
Runner.new(
153+
formatter:,
154+
scenarios: {
155+
"instance" => ->(_database_url, _warmup_runs) { scenario },
156+
},
157+
).run
158+
end
159+
160+
assert_equal(100, append_retries)
161+
assert_equal(7, En57.configuration.append_retries)
162+
ensure
163+
En57.configuration.append_retries = original_append_retries
164+
end
165+
125166
def test_runner_uses_concurrent_array_for_samples
126167
formatter = Object.new
127168
formatted_results = nil

0 commit comments

Comments
 (0)