Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

client: introduce the HTTP client #7304

Merged
merged 7 commits into from
Nov 13, 2023

Conversation

JmPotato
Copy link
Member

@JmPotato JmPotato commented Nov 2, 2023

What problem does this PR solve?

Issue Number: ref #7300.

What is changed and how does it work?

Introduce the HTTP client.

Check List

Tests

  • Unit test
  • Integration test
  • Manual test (add detailed scripts or steps below)

Release note

None.

@JmPotato JmPotato added component/api HTTP API. component/client Client logic. labels Nov 2, 2023
Copy link
Contributor

ti-chi-bot bot commented Nov 2, 2023

[REVIEW NOTIFICATION]

This pull request has been approved by:

  • CabinfeverB
  • rleungx

To complete the pull request process, please ask the reviewers in the list to review by filling /cc @reviewer in the comment.
After your PR has acquired the required number of LGTMs, you can assign this pull request to the committer in the list by filling /assign @committer in the comment to help you merge this pull request.

The full list of commands accepted by this bot can be found here.

Reviewer can indicate their review by submitting an approval review.
Reviewer can cancel approval by submitting a request changes review.

Copy link
Contributor

ti-chi-bot bot commented Nov 2, 2023

Skipping CI for Draft Pull Request.
If you want CI signal for your change, please convert it to an actual PR.
You can still manually trigger a test run with /test all

@ti-chi-bot ti-chi-bot bot added release-note-none Denotes a PR that doesn't merit a release note. do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. labels Nov 2, 2023
@ti-chi-bot ti-chi-bot bot requested review from lhy1024 and nolouch November 2, 2023 09:21
@ti-chi-bot ti-chi-bot bot added the size/L Denotes a PR that changes 100-499 lines, ignoring generated files. label Nov 2, 2023
Copy link

codecov bot commented Nov 2, 2023

Codecov Report

Merging #7304 (3eff39e) into master (e6e35fd) will decrease coverage by 0.37%.
The diff coverage is 33.33%.

❗ Current head 3eff39e differs from pull request most recent head 8d19452. Consider uploading reports for the commit 8d19452 to get more accurate results

@@            Coverage Diff             @@
##           master    #7304      +/-   ##
==========================================
- Coverage   74.55%   74.19%   -0.37%     
==========================================
  Files         447      450       +3     
  Lines       48666    48908     +242     
==========================================
+ Hits        36282    36286       +4     
- Misses       9189     9382     +193     
- Partials     3195     3240      +45     
Flag Coverage Δ
unittests 74.19% <33.33%> (-0.37%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

@JmPotato JmPotato force-pushed the introduce_http_client branch from dbc89cb to 699cbfb Compare November 2, 2023 09:35
@ti-chi-bot ti-chi-bot bot added size/XL Denotes a PR that changes 500-999 lines, ignoring generated files. and removed size/L Denotes a PR that changes 100-499 lines, ignoring generated files. labels Nov 2, 2023
@JmPotato JmPotato force-pushed the introduce_http_client branch 2 times, most recently from 3abf334 to 5d2c497 Compare November 3, 2023 05:52
@ti-chi-bot ti-chi-bot bot added size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files. and removed size/XL Denotes a PR that changes 500-999 lines, ignoring generated files. labels Nov 3, 2023
@JmPotato JmPotato force-pushed the introduce_http_client branch from 5d2c497 to acc936a Compare November 6, 2023 08:30
@JmPotato JmPotato marked this pull request as ready for review November 6, 2023 08:30
@ti-chi-bot ti-chi-bot bot added size/XL Denotes a PR that changes 500-999 lines, ignoring generated files. size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files. and removed do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files. size/XL Denotes a PR that changes 500-999 lines, ignoring generated files. labels Nov 6, 2023
@JmPotato JmPotato mentioned this pull request Nov 7, 2023
7 tasks
@ti-chi-bot ti-chi-bot bot added the status/LGT1 Indicates that a PR has LGTM 1. label Nov 13, 2023
Copy link
Contributor

@nolouch nolouch left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

rest lgtm

}

func (c *client) pdAddr() string {
// TODO: support the customized PD address selection strategy.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we need it before using it in tidb.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comment on lines 174 to 175
var region RegionInfo
err := c.request(ctx, "GetRegionByID", RegionByID(regionID), &region)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

TiDB has a metric like tidb_server_pd_api_execution_duration. before using this sdk, It should also be considered to pass the metric into the client for compatibility.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Local test with replaced PD HTTP client:

image

}

// Merge merges two RegionsInfo together and returns a new one.
func (ri *RegionsInfo) Merge(other *RegionsInfo) *RegionsInfo {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Where it is used?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It will be used here:

pkg/executor/infoschema_reader.go:1609:37: allRegionsInfo.Merge undefined (type *"github.com/tikv/pd/client/http".RegionsInfo has no field or method Merge)

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's better to add a unit test for this function

@JmPotato JmPotato force-pushed the introduce_http_client branch from 216b5b7 to f27541c Compare November 13, 2023 03:47
@JmPotato JmPotato force-pushed the introduce_http_client branch from f27541c to 3eff39e Compare November 13, 2023 03:48
@JmPotato JmPotato force-pushed the introduce_http_client branch from 724daee to 3eff39e Compare November 13, 2023 04:00
@ti-chi-bot ti-chi-bot bot added status/LGT2 Indicates that a PR has LGTM 2. and removed status/LGT1 Indicates that a PR has LGTM 1. labels Nov 13, 2023
@JmPotato
Copy link
Member Author

/merge

Copy link
Contributor

ti-chi-bot bot commented Nov 13, 2023

@JmPotato: It seems you want to merge this PR, I will help you trigger all the tests:

/run-all-tests

You only need to trigger /merge once, and if the CI test fails, you just re-trigger the test that failed and the bot will merge the PR for you after the CI passes.

If you have any questions about the PR merge process, please refer to pr process.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the ti-community-infra/tichi repository.

Copy link
Contributor

ti-chi-bot bot commented Nov 13, 2023

This pull request has been accepted and is ready to merge.

Commit hash: d3f308a

@ti-chi-bot ti-chi-bot bot added the status/can-merge Indicates a PR has been approved by a committer. label Nov 13, 2023
Copy link
Contributor

ti-chi-bot bot commented Nov 13, 2023

@JmPotato: Your PR was out of date, I have automatically updated it for you.

If the CI test fails, you just re-trigger the test that failed and the bot will merge the PR for you after the CI passes.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the ti-community-infra/tichi repository.

@ti-chi-bot ti-chi-bot bot merged commit 7dbe607 into tikv:master Nov 13, 2023
22 checks passed
@JmPotato JmPotato deleted the introduce_http_client branch November 13, 2023 05:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
component/api HTTP API. component/client Client logic. release-note-none Denotes a PR that doesn't merit a release note. size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files. status/can-merge Indicates a PR has been approved by a committer. status/LGT2 Indicates that a PR has LGTM 2.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants