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

pdms: support primary/transfer api for scheduling and tso #8157

Open
wants to merge 11 commits into
base: master
Choose a base branch
from

Conversation

HuSharp
Copy link
Member

@HuSharp HuSharp commented May 9, 2024

What problem does this PR solve?

Issue Number: Ref #5766, #7519

What is changed and how does it work?

$ curl --location --request GET 'http://127.0.0.1:2379/pd/api/v2/ms/primary/tso'
"http://127.0.0.1:2382"%

$ curl --location --request POST 'http://127.0.0.1:2379/pd/api/v2/ms/primary/transfer/tso' \
--header 'Content-Type: text/plain' \
--data-raw '{
    "new_primary": "tso-0"
}'
"success"%

$ curl --location --request GET 'http://127.0.0.1:2379/pd/api/v2/ms/primary/tso'
"http://127.0.0.1:2384"

$ curl --location --request POST 'http://127.0.0.1:2379/pd/api/v2/ms/primary/transfer/tso' \
--header 'Content-Type: application/json' \
--data-raw '{
    "new_primary": ""
}'
"success"

$ curl --location --request GET 'http://127.0.0.1:2379/pd/api/v2/ms/primary/tso'
"http://127.0.0.1:2382"

the members info are

curl --location --request GET 'http://127.0.0.1:2379/pd/api/v2/ms/members/tso'

get

[
    {
        "name": "tso-0",
        "service-addr": "http://127.0.0.1:2384",
        "version": "v8.2.0-alpha-23-gdd72b9c19-dirty",
        "git-hash": "dd72b9c19707ccbdb1801d379b3982a7944df23f",
        "deploy-path": "/Users/pingcap/CS/PingCAP/pd/bin",
        "start-timestamp": 1715577605,
        "member-value": "ChtodHRwOi8vMTI3LjAuMC4xOjIzODQtMDAwMDAQp+L2iMCp3NUaGhVodHRwOi8vMTI3LjAuMC4xOjIzODQ="
    },
    {
        "name": "tso-1",
        "service-addr": "http://127.0.0.1:2386",
        "version": "v8.2.0-alpha-23-gdd72b9c19-dirty",
        "git-hash": "dd72b9c19707ccbdb1801d379b3982a7944df23f",
        "deploy-path": "/Users/pingcap/CS/PingCAP/pd/bin",
        "start-timestamp": 1715577605,
        "member-value": "ChtodHRwOi8vMTI3LjAuMC4xOjIzODYtMDAwMDAQj9ro5Yq9mY8mGhVodHRwOi8vMTI3LjAuMC4xOjIzODY="
    }
]

Check List

Tests

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

Release note

None.

Copy link
Contributor

ti-chi-bot bot commented May 9, 2024

[REVIEW NOTIFICATION]

This pull request has not been approved.

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.

@ti-chi-bot ti-chi-bot bot added release-note-none size/XL Denotes a PR that changes 500-999 lines, ignoring generated files. labels May 9, 2024
Signed-off-by: husharp <jinhao.hu@pingcap.com>
@HuSharp HuSharp force-pushed the support_transfer_primary2 branch from 510f18d to 7fa19d3 Compare May 9, 2024 03:03
@HuSharp HuSharp force-pushed the support_transfer_primary2 branch 2 times, most recently from 480b075 to 2a647ac Compare May 9, 2024 03:34
Signed-off-by: husharp <jinhao.hu@pingcap.com>
@HuSharp HuSharp force-pushed the support_transfer_primary2 branch from 2a647ac to 1f13fa2 Compare May 9, 2024 03:55
pkg/election/leadership.go Outdated Show resolved Hide resolved
pkg/election/leadership.go Outdated Show resolved Hide resolved
pkg/mcs/discovery/discover.go Outdated Show resolved Hide resolved
pkg/mcs/scheduling/server/server.go Outdated Show resolved Hide resolved
pkg/mcs/scheduling/server/server.go Outdated Show resolved Hide resolved
Signed-off-by: husharp <jinhao.hu@pingcap.com>
@HuSharp HuSharp force-pushed the support_transfer_primary2 branch 2 times, most recently from 5490d10 to 02a8c4a Compare May 9, 2024 13:17
Signed-off-by: husharp <jinhao.hu@pingcap.com>
@HuSharp HuSharp force-pushed the support_transfer_primary2 branch from 02a8c4a to 8d36be5 Compare May 9, 2024 13:19
Copy link

codecov bot commented May 9, 2024

Codecov Report

Attention: Patch coverage is 75.53648% with 57 lines in your changes are missing coverage. Please review.

Project coverage is 77.36%. Comparing base (2fabb74) to head (4d0598f).

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #8157      +/-   ##
==========================================
+ Coverage   77.34%   77.36%   +0.01%     
==========================================
  Files         471      471              
  Lines       61368    61588     +220     
==========================================
+ Hits        47466    47647     +181     
- Misses      10341    10367      +26     
- Partials     3561     3574      +13     
Flag Coverage Δ
unittests 77.36% <75.53%> (+0.01%) ⬆️

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

Signed-off-by: husharp <jinhao.hu@pingcap.com>
Signed-off-by: husharp <jinhao.hu@pingcap.com>
@HuSharp HuSharp force-pushed the support_transfer_primary2 branch from 1fe976d to dd72b9c Compare May 10, 2024 09:09
Signed-off-by: husharp <jinhao.hu@pingcap.com>
Signed-off-by: husharp <jinhao.hu@pingcap.com>
"--listen-addr=" + c.ListenAddr,
"--advertise-listen-addr=" + c.AdvertiseListenAddr,
"--backend-endpoints=" + c.BackendEndpoints,
}

flagSet := pflag.NewFlagSet("test", pflag.ContinueOnError)
flagSet.StringP("name", "", "", "human-readable name for this scheduling member")
Copy link
Member

Choose a reason for hiding this comment

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

Shall we need a default name?

Copy link
Member Author

@HuSharp HuSharp May 13, 2024

Choose a reason for hiding this comment

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

default name set by this code, which is like TSO-localhost

func (c *Config) Adjust(meta *toml.MetaData) error {
configMetaData := configutil.NewConfigMetadata(meta)
if err := configMetaData.CheckUndecoded(); err != nil {
c.WarningMsgs = append(c.WarningMsgs, err.Error())
}
if c.Name == "" {
hostname, err := os.Hostname()
if err != nil {
return err
}
configutil.AdjustString(&c.Name, fmt.Sprintf("%s-%s", defaultName, hostname))

And your commented snippet is for testing to avoid using the same name for the same machine for local testing, I used addr here

pd/tests/testutil.go

Lines 87 to 88 in 51708b5

cfg.Name = cfg.ListenAddr
cfg, err := tso.GenerateConfig(cfg)

Copy link
Member

Choose a reason for hiding this comment

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

got

pkg/mcs/scheduling/server/server.go Outdated Show resolved Hide resolved
pkg/mcs/utils/util.go Outdated Show resolved Hide resolved
pkg/election/leadership.go Outdated Show resolved Hide resolved
@@ -64,6 +64,8 @@ type Leadership struct {
leaderKey string
leaderValue string

leaderWatch atomic.Bool
Copy link
Member

Choose a reason for hiding this comment

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

Will it only be used in ms?

Copy link
Member Author

Choose a reason for hiding this comment

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

For now, yes.

Signed-off-by: husharp <jinhao.hu@pingcap.com>
@@ -415,5 +415,5 @@ func (ls *Leadership) Reset() {
}
ls.keepAliveCancelFuncLock.Unlock()
ls.getLease().Close()
ls.SetLeaderWatch(false)
ls.SetPrimaryWatch(false)
Copy link
Member

Choose a reason for hiding this comment

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

Do we need to skip it in non-ms mode?

Copy link
Member Author

Choose a reason for hiding this comment

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

Maybe it's no problem that this code makes false negatives for non-ms mode.

@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 May 14, 2024
Signed-off-by: husharp <jinhao.hu@pingcap.com>
@HuSharp HuSharp force-pushed the support_transfer_primary2 branch from 63a61e9 to a4c5c29 Compare May 14, 2024 06:28
Signed-off-by: husharp <jinhao.hu@pingcap.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
release-note-none size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants