Depends on D5034
In order to be able to handle multiple connections at the same time, we have to store a collection of clients in the rust state instead of having just one.
Here, I'm adding the collection to the put blob client.
Differential D5035
[services] Rust Integration - Backup - Rust - Multiple put clients • karol on Sep 2 2022, 3:52 AM. Authored by Tags None Referenced Files
Details Depends on D5034 In order to be able to handle multiple connections at the same time, we have to store a collection of clients in the rust state instead of having just one. Here, I'm adding the collection to the put blob client. The backup service will not build successfully because of invalid calls from the c++ but I decided to divide the code so the diffs are not too big. This is fixed in the next diff in the stack - D5036 This will work: cd services/backup/blob_client cargo check
Diff Detail
Event TimelineComment Actions Overall this might work but it seems like having a pool of clients and a queue with tasks could be a better solution.
Comment Actions I don't think an approach where every function takes the same parameter is a maintainable one. If all the functions share the same context, we should probably make this context a field of a struct and implement all the functions as methods of this struct. Is it possible to do something like that in cxx?
Comment Actions The CI reported some compilation issues
Comment Actions would really like for this to be rebased, the Arc usage for the other lazy_static items has been removed on master, and would like to avoid potentially adding them back. Comment Actions Btw, if that was the only concern I think you could just accept it, rebasing to master was pretty easy and straightforward and would enable landing some diffs already reducing cycles. Comment Actions Not sure what happened here, but according to CI
We should (almost) never land anything with failed builds! |