mbox series

[bitbake-devel,v3,00/11] hashserv: Pipeline Upstream Queries

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

Message

Joshua Watt Aug. 28, 2026, 3:58 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.

V2: Fixes several bugs related to when the connection between the client
and upstream server was disconnected, and added tests for them.

V3: Fixes an unexpected disconnect when there was a unihash miss from
the upstream server while streaming

Joshua Watt (10):
  asyncrpc: Add Task Group
  asyncrpc: serv: Use Task Group
  asyncrpc: serv: Cancel all clients on server stop
  hashserv: tests: Improve test logging
  hashserv: client: Add asynchronous streaming API
  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 more upstream tests
  hashserv: tests: Add test for upstream pipelining

Michal Sieron (1):
  hashserv: server: Fix upstream get-unihash miss truncating stream

 bin/bitbake-hashclient       |   2 +-
 lib/bb/asyncrpc/__init__.py  |   1 +
 lib/bb/asyncrpc/serv.py      |  13 +-
 lib/bb/asyncrpc/taskgroup.py |  52 ++++++
 lib/hashserv/client.py       | 349 +++++++++++++++++++++++++++--------
 lib/hashserv/server.py       | 197 ++++++++++++++++----
 lib/hashserv/tests.py        | 298 ++++++++++++++++++++++++++++--
 7 files changed, 776 insertions(+), 136 deletions(-)
 create mode 100644 lib/bb/asyncrpc/taskgroup.py