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 +4 -4
- data/CHANGELOG.md +8 -0
- data/README.md +21 -3
- data/lib/shed_machines/version.rb +1 -1
- data/lib/shed_machines_native/shed_machines_native.so +0 -0
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 5aae331cb22bfc3489dec6de6ffb6d4425092b10052d5945e225a2939eb1f7e7
|
|
4
|
+
data.tar.gz: 845ebe11ad5cbfd33d0475d5f41357b77bd0b9d4e87d5bd035e8ef6e0b84cb27
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
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
|
|
74
|
-
from a deep queue. It grows while fewer than `alpha` calls look
|
|
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 |
|
|
Binary file
|