mbox series

[bitbake-devel,0/6] hashserv: Pipeline Upstream Queries

Message ID 20260724212822.1165552-1-JPEWhacker@gmail.com
Headers show
Series hashserv: Pipeline Upstream Queries | expand

Message

Joshua Watt July 24, 2026, 9:25 p.m. UTC
Adds a true asynchronous streaming API to the hash equivalence clients,
then uses that streaming API to pipeline requests to an upstream server.
This means that when a server wants to defer a request to an upstream,
it no longer has to wait for a complete round-trip API call. Instead, it
can use the faster streaming API to send the requests, and continue
processing other requests while a response inbound.

Joshua Watt (6):
  hashserv: client: Add asynchronous streaming API
  hashserv: server: Fix formatting
  hashserv: server: Add queued streaming API
  hashserv: server: Use streaming and queue API for upstream unihash
    queries
  hashserv: server: Use streaming and queue API for upstream exist
    queries
  hashserv: tests: Add test for upstream pipelining

 bin/bitbake-hashclient |   2 +-
 lib/hashserv/client.py | 306 ++++++++++++++++++++++++++++++++---------
 lib/hashserv/server.py | 191 +++++++++++++++++++------
 lib/hashserv/tests.py  | 105 +++++++++++++-
 4 files changed, 492 insertions(+), 112 deletions(-)

Comments

Richard Purdie July 26, 2026, 1:50 p.m. UTC | #1
Hi Joshua,

On Fri, 2026-07-24 at 15:25 -0600, Joshua Watt via lists.openembedded.org wrote:
> Adds a true asynchronous streaming API to the hash equivalence clients,
> then uses that streaming API to pipeline requests to an upstream server.
> This means that when a server wants to defer a request to an upstream,
> it no longer has to wait for a complete round-trip API call. Instead, it
> can use the faster streaming API to send the requests, and continue
> processing other requests while a response inbound.
> 
> Joshua Watt (6):
>   hashserv: client: Add asynchronous streaming API
>   hashserv: server: Fix formatting
>   hashserv: server: Add queued streaming API
>   hashserv: server: Use streaming and queue API for upstream unihash
>     queries
>   hashserv: server: Use streaming and queue API for upstream exist
>     queries
>   hashserv: tests: Add test for upstream pipelining

Thanks, this looks promising but builds didn't like it:

https://autobuilder.yoctoproject.org/valkyrie/#/builders/22/builds/4225

(and more in that a-full).

Cheers,

Richard