Skip to content

Tags: texascloud/ractor

Tags

v0.11.2

Toggle v0.11.2's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Move to oneshot's instead of bounded channels of size 1 (slawlor#263)

* Before

```
        9.82 real         4.19 user         3.78 sys
          1353138176  maximum resident set size
                   0  average shared memory size
                   0  average unshared data size
                   0  average unshared stack size
               90426  page reclaims
                   3  page faults
                   0  swaps
                   0  block input operations
                   0  block output operations
                   0  messages sent
                   0  messages received
                   0  signals received
                1870  voluntary context switches
              524687  involuntary context switches
         40331547246  instructions retired
         23204316450  cycles elapsed
          1351667776  peak memory footprint
  ```
  After:
  ```
          6.29 real         2.73 user         2.32 sys
          1121075200  maximum resident set size
                   0  average shared memory size
                   0  average unshared data size
                   0  average unshared stack size
               76399  page reclaims
                   3  page faults
                   0  swaps
                   0  block input operations
                   0  block output operations
                   0  messages sent
                   0  messages received
                   0  signals received
               10887  voluntary context switches
              413558  involuntary context switches
         29945793283  instructions retired
         14556521293  cycles elapsed
          1119671040  peak memory footprint
  ```

* version bump

v0.11.1

Toggle v0.11.1's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
More memory improvements, but smaller. No API changes (slawlor#261)

This change further reduces the memory utilization of the actors, down to ~ 13KB. However it also has the added benefit that some benchmarks are showing additional wins in message processing latencies.

```
Benchmarking Waiting on 100 actors to process first message: Warming up for 3.0000 s
Warning: Unable to complete 100 samples in 5.0s. You may wish to increase target time to 5.5s, enable flat sampling, or reduce sample count to 60.
Waiting on 100 actors to process first message
                        time:   [804.50 µs 818.01 µs 833.69 µs]
                        change: [-34.074% -26.977% -21.803%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 4 outliers among 100 measurements (4.00%)
  3 (3.00%) high mild
  1 (1.00%) high severe

Waiting on 1000 actors to process first message
                        time:   [9.6242 ms 9.7702 ms 9.9224 ms]
                        change: [-8.5173% -5.9246% -3.3614%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 3 outliers among 100 measurements (3.00%)
  1 (1.00%) low mild
  2 (2.00%) high mild

Waiting on 100000 messages to be processed
                        time:   [17.640 ms 17.759 ms 17.881 ms]
                        change: [-3.1347% -2.0925% -1.0043%] (p = 0.00 < 0.05)
                        Performance has improved.

```

No change to other metrics.

v0.11.0

Toggle v0.11.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Some of this is unavoidable due to each actor having 3 bounded and 1 …

…unbounded messaging channels, but the supervision logic alone had 3 dashmaps inside it. The monitoring functionality is pretty limited at-best, and we have no active use-cases for it, so dropping it and moving to a simple locked HashMap has allowed us to drop the heap space per actor to a little over 9KB (slawlor#260)

Additionally in running benchmarks against `main` we see large perf wins on actor creation time

```
     Running benches/actor.rs (target/release/deps/actor-464b0ad86c94b02f)
Gnuplot not found, using plotters backend
Creation of 100 actors  time:   [269.21 µs 282.84 µs 298.29 µs]
                        change: [-66.867% -64.514% -61.953%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 15 outliers among 100 measurements (15.00%)
  9 (9.00%) high mild
  6 (6.00%) high severe

Creation of 10000 actors
                        time:   [25.273 ms 25.862 ms 26.484 ms]
                        change: [-55.663% -53.735% -51.795%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 1 outliers among 100 measurements (1.00%)
  1 (1.00%) high mild
```

v0.10.4

Toggle v0.10.4's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Fix categories to valid slugs (slawlor#258)

v0.10.3

Toggle v0.10.3's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Adding handling if the actor fails during pre_start that it doesn't p…

…oison the named and pid registries. (slawlor#243)

* Adding handling if the actor fails during pre_start that it doesn't poison the named and pid registries.

Resolves slawlor#240

* Expose job and worker options for custom routing and queuing implementations.

This allows people implementing their own traits for routing and queueing to have access to the necessary worker properties to route jobs, as well as necessary job properties.

v0.10.2

Toggle v0.10.2's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
More doc updates (slawlor#242)

v0.10.1

Toggle v0.10.1's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Updating defunct docs from new factory migration (slawlor#241)

* Updating defunct docs from new factory migration

* Version bump to 0.10.1

v0.10.0

Toggle v0.10.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Prep for 0.10.0 release (slawlor#238)

* Update readmes for 0.10.0 release

* Adjust inconsistent naming with `SpawnErr` and `ActorErr` since panic isn't the only "failure", actors can return a regular Error as well

Resolves  slawlor#164

v0.9.8

Toggle v0.9.8's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Prepare for 0.9.8 release (slawlor#231)

v0.9.7

Toggle v0.9.7's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Update panic documentation on abort. Resolves slawlor#214 (slawlor#215)