Lukas Fleischer [2020-03-11 19:44:37 -0400]
Thanks! I like the approach. I wonder what the performance impact of always querying the Python backend first would be, though, especially at the beginning when most requests are expected to yield a 404.
One way or the other, I don’t think it’s worth worrying about since most 404 consist of accessing a local socket and exchanging a few KB. Hardly any disk or database access is performed. Best way to be sure is to measure it under load though. Are the AUR servers often overloaded?
Alternatively, would it make sense to use multiple location blocks and use the right upstream based on matching the path against a predefined set of patterns? It would add some additional maintenance work but since the overall plan is to migrate everything to Python eventually, it would exist only temporarily.
I couldn’t find a smart way to do it without turning it into a maintenance burden. Beside, I can’t see any advantage over the fallback approach, except a performance speedup which I believe would be irrelevant.
For an actual first patch to be merged, I suggest porting the RPC interface which is rather small and largely independent from other parts of the code.
Sure! But first, are there other approaches you would like to try out before we begin the serious work? Also, I’d like to make a proposal about regression testing to limit the best we can potential bugs introduced by the rewrite.