<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mirrors/arti.git/crates/tor-circmgr/src/hspool, branch arti-v1.1.6</title>
<subtitle>mirror of https://gitlab.torproject.org/tpo/core/arti
</subtitle>
<id>http://git.dilluti0n.com/mirrors/arti.git/atom?h=arti-v1.1.6</id>
<link rel='self' href='http://git.dilluti0n.com/mirrors/arti.git/atom?h=arti-v1.1.6'/>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/'/>
<updated>2023-06-23T13:25:01Z</updated>
<entry>
<title>random_idx_where: Ensure uniform distribution of choice</title>
<updated>2023-06-23T13:25:01Z</updated>
<author>
<name>Jim Newsome</name>
<email>jnewsome@torproject.org</email>
</author>
<published>2023-06-23T01:07:59Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=7a8bade26289387209ba14c35d9d6d72911ba1c3'/>
<id>urn:sha1:7a8bade26289387209ba14c35d9d6d72911ba1c3</id>
<content type='text'>
Previously, this was more likely to select elements that occurred after
other elements that didn't satisfy the predicate.
</content>
</entry>
<entry>
<title>Add more tests for random_idx_where</title>
<updated>2023-06-23T13:24:35Z</updated>
<author>
<name>Jim Newsome</name>
<email>jnewsome@torproject.org</email>
</author>
<published>2023-06-23T00:44:37Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=35e6cc285b27e54c04966cd3e7016359aa5e06f6'/>
<id>urn:sha1:35e6cc285b27e54c04966cd3e7016359aa5e06f6</id>
<content type='text'>
</content>
</entry>
<entry>
<title>tor-circmgr: Test random_idx_where with empty slice</title>
<updated>2023-06-23T10:09:59Z</updated>
<author>
<name>Ian Jackson</name>
<email>ijackson@chiark.greenend.org.uk</email>
</author>
<published>2023-06-23T09:53:16Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=879c540cfaef0ab620cbee82af3675ecaccf31a1'/>
<id>urn:sha1:879c540cfaef0ab620cbee82af3675ecaccf31a1</id>
<content type='text'>
I have verified that this test fails, as expected, when applied
without the corresponding bugfix.
</content>
</entry>
<entry>
<title>tor-circmgr: random_idx_where: Don't panic on empty range</title>
<updated>2023-06-23T10:09:55Z</updated>
<author>
<name>Ian Jackson</name>
<email>ijackson@chiark.greenend.org.uk</email>
</author>
<published>2023-06-23T09:59:52Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=a0f5dbc05d399a39e575ba176e2f048aecde02c1'/>
<id>urn:sha1:a0f5dbc05d399a39e575ba176e2f048aecde02c1</id>
<content type='text'>
Fixes #918.
</content>
</entry>
<entry>
<title>Typo fixes</title>
<updated>2023-06-20T11:47:02Z</updated>
<author>
<name>gabi-250</name>
<email>gabi@torproject.org</email>
</author>
<published>2023-06-20T11:47:02Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=602bcc3c47ff6f6245b281c35238bf3273a26172'/>
<id>urn:sha1:602bcc3c47ff6f6245b281c35238bf3273a26172</id>
<content type='text'>
</content>
</entry>
<entry>
<title>circmgr: Use a slightly nicer way to pick a circuit from our pool.</title>
<updated>2023-06-16T16:14:49Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2023-06-16T16:05:17Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=1691c353924f89cc9026b67578a84959840bb987'/>
<id>urn:sha1:1691c353924f89cc9026b67578a84959840bb987</id>
<content type='text'>
This algorithm only looks at circuits until it finds one that
satisfies our needs.  To get a random circuit, it just randomizes
the starting point within the pool.

This optimization may help if we let circuit pools grow large.
</content>
</entry>
<entry>
<title>circmgr: Make hspool size dynamic</title>
<updated>2023-06-16T16:11:49Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2023-06-16T15:34:54Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=686d5cf2093322e4408513daf832af6693fa67a9'/>
<id>urn:sha1:686d5cf2093322e4408513daf832af6693fa67a9</id>
<content type='text'>
Previously we'd always try to keep 8 circuits ready.  That doesn't
make sense if we are super-busy.  Instead, if we run out of
circuits, we double the amount that we try to keep ready, and if we
never go under 80% of our target number, we half the number we try
to keep ready.

We limit the rate of change here, to make sure that we aren't
flapping too much or shrinking too aggressively.

This algorithm is still a mite arbitrary, and will need tuning in
the future.
</content>
</entry>
<entry>
<title>circmgr::hspool: Move the Mutex into an intermediary Inner struct</title>
<updated>2023-06-16T15:42:38Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2023-06-16T13:41:09Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=69179c5dfe1889ee77003fc491f2dfd05d7b7428'/>
<id>urn:sha1:69179c5dfe1889ee77003fc491f2dfd05d7b7428</id>
<content type='text'>
This will be helpful as we complexify the pool behavior a bit.
</content>
</entry>
<entry>
<title>Refactor ClientCirc APIs to use Arc&lt;ClientCirc&gt;.</title>
<updated>2023-05-16T13:02:09Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2023-05-16T13:02:09Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=ee390c423e7df0b678d77a8685f45dc526581910'/>
<id>urn:sha1:ee390c423e7df0b678d77a8685f45dc526581910</id>
<content type='text'>
Now ClientCirc is no longer `Clone`, and the things that need it
to be `Clone` instead return and use an Arc&lt;ClientCirc&gt;
We're doing this so that ClientCirc can participate in the RPC
system, and so that its semantics are more obvious.

Closes #846.

Thanks to the type system, this was a much simpler refactoring than
I had feared it would be.
</content>
</entry>
<entry>
<title>circmgr: Add an actual pool to HsCircPool.</title>
<updated>2023-03-22T16:35:41Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2023-03-16T13:16:24Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=a14214fae6b481a61a37744819acc1cda944a1ce'/>
<id>urn:sha1:a14214fae6b481a61a37744819acc1cda944a1ce</id>
<content type='text'>
We now have support for a pool of pre-build circuits that we can use
for HS-related purposes, and we take circuits from this pool as
needed.

Nothing populates or cleans the circuit pool yet.
</content>
</entry>
</feed>
