Experiment with Go http#3973
Conversation
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## master #3973 +/- ##
==========================================
- Coverage 28.34% 28.18% -0.17%
==========================================
Files 681 681
Lines 45756 46016 +260
==========================================
Hits 12969 12969
- Misses 31555 31815 +260
Partials 1232 1232 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
|
What we need here is to finish this prototype with an end-to-end GET data transport over HTTP, from S3 gateway (additional branch there) to SN. Many things can be improved here performance-wise, but we're interested in a quick prototype first, so many of object service internals are still left as is and just two proto-encoded byte arrays are pushed to the client (that needs to parse them). |
Let's see how it goes. Signed-off-by: Roman Khimov <roman@nspcc.ru>
Signed-off-by: Roman Khimov <roman@nspcc.ru>
Accept protobufs, reply with protobufs. TODO: * deal with TTL/new requests (create new ones signed by container node) * create new requests for EC parts * create and handle them client-side Signed-off-by: Roman Khimov <roman@nspcc.ru>
- implement copyHTTPStream. - GetHTTP: read body with io.ReadAll, emit apistatus.Status protobuf in non-200 responses, map errors to 4xx/5xx. - continueHTTP: normalize peer URI scheme, set Content-Type, surface non-200 upstream status. - network/cache: h2c http.Client for inter-SN forwarder. Signed-off-by: Andrey Butusov <andrey@nspcc.io>
|
Ran load against target (HTTP/2) vs base (gRPC): REP3, 4 KB and 4 MB objects, 1/4/16 threads/node. Result: at 1 thread everything is within the margin of error, but the gap grows steadily as threads increase - the prototype scales worse under concurrency.
PUT wasn't changed - the regression comes from the node now serving gRPC over Likely cause of the degradation with more threads: stock |
No description provided.