shed_machines 0.1.1-aarch64-linux → 0.1.2-aarch64-linux

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 83fbc1a79847e47c4a3a4f4cd90bee30a57f330937cc392ea0beecaf06939935
4
- data.tar.gz: 0f3ebbbd83afabf9b4cc5d571e3e6cd003c8476530be47d9c788d5967bc1d20b
3
+ metadata.gz: 5aae331cb22bfc3489dec6de6ffb6d4425092b10052d5945e225a2939eb1f7e7
4
+ data.tar.gz: 845ebe11ad5cbfd33d0475d5f41357b77bd0b9d4e87d5bd035e8ef6e0b84cb27
5
5
  SHA512:
6
- metadata.gz: 833d4bad1d9ae81c55dd6c04db258869b2ac00940fc1c326802ed5a9087bf9a2e05a5b312a2a0d6b69744b258c96dd6c0c500b2eec631794df920d3cb7db562e
7
- data.tar.gz: 7cffedc2849777b02c7ad01b31ed3eaaa40b2dbe0247a73553de56b6608950176f64800e0934983e7c7d083a632a0098b653957d85f2bfe8c400de0e4181676b
6
+ metadata.gz: c0ebdebeee3220e7be80a4d0c454437221b7e257326c1a185cc936d5a5522961dbe9d1f7872be9319a415d2b6fc7628520cc646720c61f93b1499f0642efa506
7
+ data.tar.gz: c5331e8000752c6a4a08e13c03e378001175723578577ac4eb5802278f2a6313a7c4b0012dcebd0d527594339ebfbb65b50f17ee73d45573d3bc1e20632115aa
data/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.1.2](https://github.com/seuros/shed_machines/compare/shed_machines/v0.1.1...shed_machines/v0.1.2) (2026-11-01)
4
+
5
+
6
+ ### Bug Fixes
7
+
8
+ * a republished platform gem is skipped, not fatal ([35352a1](https://github.com/seuros/shed_machines/commit/35352a16dd73e19cf7e7661ce362f96e016a2cac))
9
+ * window the Vegas baseline so it cannot pin to one lucky call ([9cea8fa](https://github.com/seuros/shed_machines/commit/9cea8fa82f1fd9ab99f0bcf7a67a36ee24cd61ec))
10
+
3
11
  ## [0.1.1](https://github.com/seuros/shed_machines/compare/shed_machines-v0.1.0...shed_machines/v0.1.1) (2026-11-01)
4
12
 
5
13
 
data/README.md CHANGED
@@ -70,15 +70,32 @@ control.limit # => 8
70
70
  ```
71
71
 
72
72
  `Vegas` infers queue depth from the gap between the current round-trip time and
73
- the best one it has seen, because latency alone cannot tell a slow dependency
74
- from a deep queue. It grows while fewer than `alpha` calls look queued, shrinks
75
- above `beta`, and holds in between.
73
+ the smallest one it has seen recently, because latency alone cannot tell a slow
74
+ dependency from a deep queue. It grows while fewer than `alpha` calls look
75
+ queued, shrinks above `beta`, and holds in between.
76
76
 
77
77
  ```ruby
78
78
  control = ShedMachines::Vegas.new(limit: 10, min: 1, max: 200, alpha: 3, beta: 6)
79
79
  control.best_rtt # => nil, until the first completed call
80
80
  ```
81
81
 
82
+ That inference only holds when any two calls would take about as long on an idle
83
+ dependency. Over a mix whose service times differ by orders of magnitude the
84
+ baseline settles on the fastest kind of work, every slower call reads as a deep
85
+ queue, and the limit sinks to `min` and stays there — tuning `alpha` and `beta`
86
+ cannot fix it, because the signal is measuring the wrong thing. Use `Aimd` for
87
+ heterogeneous work, since it steers on outcomes rather than latency, or give
88
+ each class of work its own `Vegas`.
89
+
90
+ The baseline is the smallest round-trip time in the current window of
91
+ `DEFAULT_BASELINE_WINDOW` samples or the one before it, so one unusually fast
92
+ call cannot pin it for the life of the process and a dependency that
93
+ legitimately slows down is believed within two windows.
94
+
95
+ ```ruby
96
+ control = ShedMachines::Vegas.new(limit: 10).baseline_window(250)
97
+ ```
98
+
82
99
  Both take `outcome: :ok` or `outcome: :overload`, where overload means the call
83
100
  timed out, was rejected, or otherwise says the dependency is loaded. Anything
84
101
  else raises `ArgumentError`. Both clamp a starting limit into `min..max`, which
@@ -152,6 +169,7 @@ The Ruby constants mirror the crate's, with the same names and values.
152
169
  | `Vegas::DEFAULT_ALPHA` | 3 |
153
170
  | `Vegas::DEFAULT_BETA` | 6 |
154
171
  | `Vegas::OVERLOAD_DIVISOR` | 2 |
172
+ | `Vegas::DEFAULT_BASELINE_WINDOW` | 1000 |
155
173
  | `Codel::DEFAULT_TARGET_NS` | 5_000_000 |
156
174
  | `Codel::DEFAULT_INTERVAL_NS` | 100_000_000 |
157
175
  | `Budget::DEFAULT_MULTIPLIER` | 2.0 |
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ShedMachines
4
- VERSION = '0.1.1'
4
+ VERSION = '0.1.2'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: shed_machines
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: aarch64-linux
6
6
  authors:
7
7
  - Abdelkader Boudih