Fetching server information in parallel using php-curl would greatly speed up the polling time.
Proposed set-up:
Phase 1 (Fetching rooms) and Phase 2 (Fetching public keys) are done sequentially, as they depend on one another and have different handlers, so state management can be avoided in favour of code order.
In either phase, requests are bundled in fixed-size groups using a dedicated static function of CommunityServer. After partial or full processing of a bundle, the resulting data is stored. After a request bundle finishes or times out, the next bundle is processed.
Once all Phase 1 bundles are processed, Phase 2 bundles are created and begin to fire. After that, reachable servers are collected, as in poll_reachable.
Fetching server information in parallel using php-curl would greatly speed up the polling time.
Proposed set-up:
Phase 1 (Fetching rooms) and Phase 2 (Fetching public keys) are done sequentially, as they depend on one another and have different handlers, so state management can be avoided in favour of code order.
In either phase, requests are bundled in fixed-size groups using a dedicated static function of `CommunityServer`. After partial or full processing of a bundle, the resulting data is stored. After a request bundle finishes or times out, the next bundle is processed.
Once all Phase 1 bundles are processed, Phase 2 bundles are created and begin to fire. After that, reachable servers are collected, as in `poll_reachable`.
This repo is archived. You cannot comment on issues.
Fetching server information in parallel using php-curl would greatly speed up the polling time.
Proposed set-up:
Phase 1 (Fetching rooms) and Phase 2 (Fetching public keys) are done sequentially, as they depend on one another and have different handlers, so state management can be avoided in favour of code order.
In either phase, requests are bundled in fixed-size groups using a dedicated static function of
CommunityServer
. After partial or full processing of a bundle, the resulting data is stored. After a request bundle finishes or times out, the next bundle is processed.Once all Phase 1 bundles are processed, Phase 2 bundles are created and begin to fire. After that, reachable servers are collected, as in
poll_reachable
.