itsi 0.2.12 → 0.2.13
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/Cargo.lock +2 -2
- data/crates/itsi_scheduler/Cargo.toml +1 -1
- data/crates/itsi_server/Cargo.toml +1 -1
- data/examples/hybrid_scheduler_mode/README.md +46 -0
- data/gems/scheduler/Cargo.lock +1 -1
- data/gems/scheduler/lib/itsi/scheduler/version.rb +1 -1
- data/gems/server/Cargo.lock +1 -1
- data/gems/server/lib/itsi/server/config/options/scheduler_threads.md +1 -1
- data/gems/server/lib/itsi/server/version.rb +1 -1
- data/lib/itsi/version.rb +1 -1
- metadata +6 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d3c1c81086711872c2ceaa5042078e05f4da5b6f4246bf6d5bc24ff607581557
|
4
|
+
data.tar.gz: 551e582ba837c8a4fe19a09ced2f38866493be737e6ac5188d206fad4835a510
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5e858281765fdc2c698d2af7ec7e5c05efbda0430cc49ca0319acd23bdc7f35b12d72a5496fbac6c3cbd1d594f46dfb16bf5daac2fded466be9ede98d3cecca5
|
7
|
+
data.tar.gz: e28a5fa4d4c3c6b2b2169005f0d686d90f2bf9c1b98f02bc7dd283189e26ad09698d519a7879280724b49e2794c994872b7c3cba5927dcdcf974d6b762f24164
|
data/Cargo.lock
CHANGED
@@ -1644,7 +1644,7 @@ checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c"
|
|
1644
1644
|
|
1645
1645
|
[[package]]
|
1646
1646
|
name = "itsi-scheduler"
|
1647
|
-
version = "0.2.
|
1647
|
+
version = "0.2.13"
|
1648
1648
|
dependencies = [
|
1649
1649
|
"bytes",
|
1650
1650
|
"derive_more",
|
@@ -1662,7 +1662,7 @@ dependencies = [
|
|
1662
1662
|
|
1663
1663
|
[[package]]
|
1664
1664
|
name = "itsi-server"
|
1665
|
-
version = "0.2.
|
1665
|
+
version = "0.2.13"
|
1666
1666
|
dependencies = [
|
1667
1667
|
"argon2",
|
1668
1668
|
"async-channel",
|
@@ -0,0 +1,46 @@
|
|
1
|
+
## Hybrid Scheduler Mode Example
|
2
|
+
This example shows how you can route some requests to use traditional blocking threads,
|
3
|
+
and others to use threads that have a Fiber scheduler enabled.
|
4
|
+
|
5
|
+
First, run the slow_service inside ./slow_service.
|
6
|
+
E.g.
|
7
|
+
```bash
|
8
|
+
cd ./slow_service
|
9
|
+
itsi
|
10
|
+
```
|
11
|
+
|
12
|
+
Then in a second tab, run the hybrid_scheduler_mode example.
|
13
|
+
E.g.
|
14
|
+
```bash
|
15
|
+
itsi
|
16
|
+
```
|
17
|
+
|
18
|
+
If you run a benchmark on the `/nonblocking` endpoint, you
|
19
|
+
should see Itsi will concurrent execute all requests. By contrast, running on
|
20
|
+
the `/blocking` endpoint should show drastically worse throughput due to requests running sequentially.
|
21
|
+
|
22
|
+
```bash
|
23
|
+
# Non-blocking mode. 100 requests at a time, service takes 2s to respond. Throughput of ~50rps expected.
|
24
|
+
❯ wrk http://0.0.0.0:3000/nonblocking -c 100 -d 10
|
25
|
+
Running 10s test @ http://0.0.0.0:3000/nonblocking
|
26
|
+
2 threads and 100 connections
|
27
|
+
Thread Stats Avg Stdev Max +/- Stdev
|
28
|
+
Latency 0.00us 0.00us 0.00us nan%
|
29
|
+
Req/Sec 65.00 109.41 316.00 84.62%
|
30
|
+
500 requests in 10.10s, 69.34KB read
|
31
|
+
Socket errors: connect 0, read 0, write 0, timeout 500
|
32
|
+
Requests/sec: 49.50
|
33
|
+
Transfer/sec: 6.86KB
|
34
|
+
# Blocking mode. Requests are executed sequentially , service takes 2s to respond. Throughput of ~0.5rps expected.
|
35
|
+
❯ wrk http://0.0.0.0:3000/nonblocking -c 100 -d 10
|
36
|
+
Running 10s test @ http://0.0.0.0:3000/blocking
|
37
|
+
2 threads and 100 connections
|
38
|
+
Thread Stats Avg Stdev Max +/- Stdev
|
39
|
+
Latency 0.00us 0.00us 0.00us nan%
|
40
|
+
Req/Sec 0.00 0.00 0.00 100.00%
|
41
|
+
5 requests in 10.10s, 710.00B read
|
42
|
+
Socket errors: connect 0, read 0, write 0, timeout 5
|
43
|
+
Requests/sec: 0.49
|
44
|
+
```
|
45
|
+
|
46
|
+
See the `Itsi.rb` file for more details.
|
data/gems/scheduler/Cargo.lock
CHANGED
data/gems/server/Cargo.lock
CHANGED
@@ -38,4 +38,4 @@ rackup_file "./config.ru"
|
|
38
38
|
```
|
39
39
|
## Examples.
|
40
40
|
|
41
|
-
See [https://github.com/wouterken/itsi/tree/main/examples/hybrid_scheduler_mode
|
41
|
+
See [a code example](https://github.com/wouterken/itsi/tree/main/examples/hybrid_scheduler_mode) in the Git repository.
|
data/lib/itsi/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: itsi
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.13
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Wouter Coppieters
|
@@ -15,28 +15,28 @@ dependencies:
|
|
15
15
|
requirements:
|
16
16
|
- - "~>"
|
17
17
|
- !ruby/object:Gem::Version
|
18
|
-
version: 0.2.
|
18
|
+
version: 0.2.13
|
19
19
|
type: :runtime
|
20
20
|
prerelease: false
|
21
21
|
version_requirements: !ruby/object:Gem::Requirement
|
22
22
|
requirements:
|
23
23
|
- - "~>"
|
24
24
|
- !ruby/object:Gem::Version
|
25
|
-
version: 0.2.
|
25
|
+
version: 0.2.13
|
26
26
|
- !ruby/object:Gem::Dependency
|
27
27
|
name: itsi-server
|
28
28
|
requirement: !ruby/object:Gem::Requirement
|
29
29
|
requirements:
|
30
30
|
- - "~>"
|
31
31
|
- !ruby/object:Gem::Version
|
32
|
-
version: 0.2.
|
32
|
+
version: 0.2.13
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
35
|
version_requirements: !ruby/object:Gem::Requirement
|
36
36
|
requirements:
|
37
37
|
- - "~>"
|
38
38
|
- !ruby/object:Gem::Version
|
39
|
-
version: 0.2.
|
39
|
+
version: 0.2.13
|
40
40
|
description: Wrapper Gem for both the Itsi server and the Itsi Fiber scheduler
|
41
41
|
email:
|
42
42
|
- wc@pico.net.nz
|
@@ -254,6 +254,7 @@ files:
|
|
254
254
|
- examples/file_server/subdirectory/movies.csv
|
255
255
|
- examples/helpers/datastore.rb
|
256
256
|
- examples/hybrid_scheduler_mode/Itsi.rb
|
257
|
+
- examples/hybrid_scheduler_mode/README.md
|
257
258
|
- examples/hybrid_scheduler_mode/config.ru
|
258
259
|
- examples/hybrid_scheduler_mode/slow_service/Itsi.rb
|
259
260
|
- examples/media_server/Itsi.rb
|