vald
vald copied to clipboard
[Experimental] [WIP] add QUIC support and use netpoll for more efficient network handling
Signed-off-by: kpango [email protected]
Description:
Vald has been working on minimizing the overhead of the network by enhancing the libraries around each network, including gRPC. Recently, the final specification of QUIC has been fixed, and Vald would like to verify the approach of gRPC over QUIC, since it will be in practical use soon. This PR contains the code to verify gRPC over QUIC using quic-go from netpoll and other Network I/O blocking solutions.
Related Issue:
How Has This Been Tested?:
Environment:
- Go Version: 1.16.6
- Docker Version: 19.03.8
- Kubernetes Version: 1.18.2
- NGT Version: 1.12.3
Types of changes:
- [ ] Bug fix [type/bug]
- [ ] New feature [type/feature]
- [ ] Add tests [type/test]
- [ ] Security related changes [type/security]
- [ ] Add documents [type/documentation]
- [ ] Refactoring [type/refactoring]
- [ ] Update dependencies [type/dependency]
- [ ] Update benchmarks and performances [type/bench]
- [ ] Update CI [type/ci]
Changes to Core Features:
- [ ] Have you added an explanation of what your changes do and why you'd like us to include them?
- [ ] Have you written new tests for your core changes, as applicable?
- [ ] Have you successfully ran tests with your changes locally?
Checklist:
- [ ] I have read the CONTRIBUTING document.
- [ ] I have checked open Pull Requests for the similar feature or fixes?
- [ ] I have added tests and benchmarks to cover my changes.
- [ ] I have ensured all new and existing tests passed.
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have updated the documentation accordingly.
[CHATOPS:HELP] ChatOps commands.
- :ok_woman:
/approve
- approve - :love_letter:
/changelog
- replace the PR body by changelog details - :bento:
/format
- format codes and add licenses - :white_check_mark:
/gen-test
- generate test codes - :label:
/label
- add labels - :rewind:
/rebase
- rebase master - :end: :two: :end:
/label actions/e2e-deploy
- run E2E deploy & integration test
Codecov Report
Merging #1357 (54ea37b) into master (d55e2db) will increase coverage by
17.45%
. The diff coverage isn/a
.
@@ Coverage Diff @@
## master #1357 +/- ##
===========================================
+ Coverage 30.80% 48.25% +17.45%
===========================================
Files 372 214 -158
Lines 32395 10759 -21636
===========================================
- Hits 9980 5192 -4788
+ Misses 22042 5384 -16658
+ Partials 373 183 -190
Impacted Files | Coverage Δ | |
---|---|---|
...nt/core/ngt/service/vqueue/uninserted_index_map.go | 70.49% <0.00%> (-2.74%) |
:arrow_down: |
internal/errgroup/group.go | 93.00% <0.00%> (-1.00%) |
:arrow_down: |
internal/worker/worker.go | 83.59% <0.00%> (ø) |
|
internal/config/grpc.go | ||
internal/config/net.go | ||
internal/net/dialer.go | ||
internal/net/grpc/option.go | ||
internal/net/net.go | ||
internal/servers/server/server.go | ||
internal/servers/servers.go | ||
... and 153 more |
Continue to review full report at Codecov.
Legend - Click here to learn more
Δ = absolute <relative> (impact)
,ø = not affected
,? = missing data
Powered by Codecov. Last update d55e2db...54ea37b. Read the comment docs.
[WARNING:INTCFG] Changes in interal/config
may require you to change Helm charts. Please check.
[FOSSA] The scan result will be available at https://app.fossa.com/projects/custom%2B21465%2Fvald/refs/branch/feature%2Finternal-net%2Fsupport-quic/bc6705577d6c36af4bb29437a1409edf00d28f63
Profile Report
type | vald-agent-ngt | vald-lb-gateway | vald-discoverer | vald-manager-index |
---|---|---|---|---|
cpu | ![]() | ![]() | ![]() | ![]() |
heap | ![]() | ![]() | ![]() | ![]() |