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

feat: re-implementation of sp exit #1279

Merged
merged 62 commits into from Dec 26, 2023
Merged
Show file tree
Hide file tree
Changes from 54 commits
Commits
Show all changes
62 commits
Select commit Hold shift + click to select a range
8322d28
recover scheduler
alexgao001 Dec 7, 2023
d90d833
feat:cmd
constwz Dec 8, 2023
b2fd9e0
feat: add recover failed object and verify scheduler and refine code
alexgao001 Dec 11, 2023
831c167
feat: DB persistence
alexgao001 Dec 11, 2023
213897f
fix: fix issue
alexgao001 Dec 11, 2023
edfeb1e
feat:sp exit cmd
constwz Dec 11, 2023
329bdd6
fix:cmd name
constwz Dec 11, 2023
e491442
feat: handle successor SP recover
alexgao001 Dec 12, 2023
8b2c414
fix: resolve conflict
alexgao001 Dec 12, 2023
4a9b0d4
fix:cmd name
constwz Dec 12, 2023
f193f4c
fix:cmd name
constwz Dec 12, 2023
41fdc41
fix: refine db index
alexgao001 Dec 12, 2023
9fb84bc
Merge branch 'adapt-sp-exit' of github.com:bnb-chain/greenfield-stora…
alexgao001 Dec 12, 2023
2faa195
feat:query recover process
constwz Dec 12, 2023
53caafe
fix: signer client
constwz Dec 13, 2023
929a05a
feat: enhance sp exit
alexgao001 Dec 13, 2023
154daac
Merge branch 'adapt-sp-exit' of github.com:bnb-chain/greenfield-stora…
alexgao001 Dec 13, 2023
29e8665
feat: enhance sp exit
alexgao001 Dec 13, 2023
e86efc9
feat: refine code
alexgao001 Dec 14, 2023
94c1b09
feat:query recover is executing
constwz Dec 14, 2023
796405e
fix: fix the concurrecy issue of when recovering from multiple SP
alexgao001 Dec 14, 2023
18e6864
Merge branch 'adapt-sp-exit' of github.com:bnb-chain/greenfield-stora…
alexgao001 Dec 14, 2023
6ec7718
fix:recover DB
constwz Dec 15, 2023
81649eb
fix: fix a fe issue
alexgao001 Dec 15, 2023
dba1170
Merge branch 'adapt-sp-exit' of github.com:bnb-chain/greenfield-stora…
alexgao001 Dec 15, 2023
4518069
fix:failed process exit
constwz Dec 15, 2023
38b30ff
fix: fix duplicate object dispatch
alexgao001 Dec 15, 2023
0049c29
Merge branch 'adapt-sp-exit' of github.com:bnb-chain/greenfield-stora…
alexgao001 Dec 15, 2023
ba8f353
fix:recover gvg bug
constwz Dec 15, 2023
fcbaec1
chore: enhancement
alexgao001 Dec 18, 2023
5c40e30
Merge branch 'adapt-sp-exit' of github.com:bnb-chain/greenfield-stora…
alexgao001 Dec 18, 2023
04b53dc
fix:swapin cmd
constwz Dec 18, 2023
1db1ac8
feat:query failed process
constwz Dec 18, 2023
5a98c19
fix:green version
constwz Dec 18, 2023
0007930
fix: fix sig when sending task to primary SP
alexgao001 Dec 18, 2023
eb1af6a
Merge branch 'adapt-sp-exit' of github.com:bnb-chain/greenfield-stora…
alexgao001 Dec 18, 2023
4467e90
fix:conflict
constwz Dec 18, 2023
d987bf9
Merge branch 'adapt-sp-exit' of github.com:bnb-chain/greenfield-stora…
constwz Dec 18, 2023
b524b13
fix:complete exit cmd
constwz Dec 18, 2023
4702f12
fix:Code cleaning
constwz Dec 18, 2023
5e34077
fix:code lint
constwz Dec 18, 2023
f1c2e99
fix:code lint
constwz Dec 18, 2023
fc083e2
fix: fix test
alexgao001 Dec 18, 2023
360f4af
Merge branch 'adapt-sp-exit' of github.com:bnb-chain/greenfield-stora…
alexgao001 Dec 18, 2023
e06ca4a
feat:add ListGlobalVirtualGroupsBySecondarySPCmd&ListVirtualGroupFami…
constwz Dec 19, 2023
bd907ab
fix:object count
constwz Dec 19, 2023
01cfe76
fix:add log and cmd desc
constwz Dec 19, 2023
a86ba62
fix: delete piece hash once integrity meta is set
alexgao001 Dec 19, 2023
c4e43d0
Merge branch 'adapt-sp-exit' of github.com:bnb-chain/greenfield-stora…
alexgao001 Dec 19, 2023
c8282a9
fix: fix log
alexgao001 Dec 19, 2023
0ce368a
fix:add note
constwz Dec 20, 2023
4fa94f4
fix:delete unuseful log
constwz Dec 20, 2023
3add62f
chore: add comment
alexgao001 Dec 20, 2023
cb02b1c
Merge branch 'adapt-sp-exit' of github.com:bnb-chain/greenfield-stora…
alexgao001 Dec 20, 2023
a541379
fix: fix the index
alexgao001 Dec 20, 2023
38f087a
chore:build develop tag
constwz Dec 22, 2023
fb83519
Merge branch 'develop' of github.com:bnb-chain/greenfield-storage-pro…
constwz Dec 22, 2023
7971513
merge:develop
constwz Dec 22, 2023
b59ab7c
feat:cancel swapIn cmd
constwz Dec 22, 2023
7e6bca6
feat:cancel swapIn cmd
constwz Dec 22, 2023
720ca0e
fix:delete object count
constwz Dec 25, 2023
e4f71c3
feat:prevent concurrent resource recovery
constwz Dec 26, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
4 changes: 4 additions & 0 deletions base/gfspapp/app_options.go
Expand Up @@ -153,6 +153,10 @@ const (
SignerFailureGfSpBucketMigrateInfo = "signer_gfsp_bucket_migrate_info_failure"
SignerSuccessRejectMigrateBucket = "signer_reject_migrate_bucket_success"
SignerFailureRejectMigrateBucket = "signer_reject_migrate_bucket_failure"
SignerSuccessSwapIn = "signer_swap_in_success"
SignerFailureSwapIn = "signer_swap_in_failure"
SignerSuccessCompleteSwapIn = "signer_complete_swap_in_success"
SignerFailureCompleteSwapIn = "signer_complete_swap_in_failure"

SignerSuccessDeposit = "signer_deposit_success"
SignerFailureDeposit = "signer_deposit_failure"
Expand Down
20 changes: 20 additions & 0 deletions base/gfspapp/manage_server.go
Expand Up @@ -411,3 +411,23 @@ func (g *GfSpBaseApp) GfSpResetRecoveryFailedList(ctx context.Context, _ *gfspse
RecoveryFailedList: recoveryFailedList,
}, nil
}

func (g *GfSpBaseApp) GfSpTriggerRecoverForSuccessorSP(ctx context.Context, req *gfspserver.GfSpTriggerRecoverForSuccessorSPRequest) (
*gfspserver.GfSpTriggerRecoverForSuccessorSPResponse, error) {
err := g.manager.TriggerRecoverForSuccessorSP(ctx, req.GetVgfId(), req.GetGvgId(), req.ReplicateIndex)
if err != nil {
return nil, err
}
return &gfspserver.GfSpTriggerRecoverForSuccessorSPResponse{}, nil
}

func (g *GfSpBaseApp) GfSpQueryRecoverProcess(ctx context.Context, req *gfspserver.GfSpQueryRecoverProcessRequest) (*gfspserver.GfSpQueryRecoverProcessResponse, error) {
gvgStats, flag, err := g.manager.QueryRecoverProcess(ctx, req.GetVgfId(), req.GetGvgId())
if err != nil {
return nil, err
}
return &gfspserver.GfSpQueryRecoverProcessResponse{
RecoverProcesses: gvgStats,
Executing: flag,
}, nil
}
20 changes: 20 additions & 0 deletions base/gfspapp/sign_server.go
Expand Up @@ -291,6 +291,26 @@ func (g *GfSpBaseApp) GfSpSign(ctx context.Context, req *gfspserver.GfSpSignRequ
metrics.ReqCounter.WithLabelValues(SignerSuccessRejectMigrateBucket).Inc()
metrics.ReqTime.WithLabelValues(SignerSuccessRejectMigrateBucket).Observe(time.Since(startTime).Seconds())
}
case *gfspserver.GfSpSignRequest_ReserveSwapIn:
txHash, err = g.signer.ReserveSwapIn(ctx, t.ReserveSwapIn)
if err != nil {
log.CtxErrorw(ctx, "failed to reserve swap in", "error", err)
metrics.ReqCounter.WithLabelValues(SignerFailureSwapIn).Inc()
metrics.ReqTime.WithLabelValues(SignerFailureSwapIn).Observe(time.Since(startTime).Seconds())
} else {
metrics.ReqCounter.WithLabelValues(SignerSuccessSwapIn).Inc()
metrics.ReqTime.WithLabelValues(SignerSuccessSwapIn).Observe(time.Since(startTime).Seconds())
}
case *gfspserver.GfSpSignRequest_CompleteSwapIn:
txHash, err = g.signer.CompleteSwapIn(ctx, t.CompleteSwapIn)
if err != nil {
log.CtxErrorw(ctx, "failed to complete swap in", "error", err)
metrics.ReqCounter.WithLabelValues(SignerFailureCompleteSwapIn).Inc()
metrics.ReqTime.WithLabelValues(SignerFailureCompleteSwapIn).Observe(time.Since(startTime).Seconds())
} else {
metrics.ReqCounter.WithLabelValues(SignerSuccessCompleteSwapIn).Inc()
metrics.ReqTime.WithLabelValues(SignerSuccessCompleteSwapIn).Observe(time.Since(startTime).Seconds())
}
case *gfspserver.GfSpSignRequest_Deposit:
txHash, err = g.signer.Deposit(ctx, t.Deposit)
if err != nil {
Expand Down
8 changes: 8 additions & 0 deletions base/gfspclient/helper_test.go
Expand Up @@ -236,6 +236,14 @@ func (mockDownloaderServer) GfSpDeductQuotaForBucketMigrate(ctx context.Context,

type mockManagerServer struct{}

func (s mockManagerServer) GfSpTriggerRecoverForSuccessorSP(ctx context.Context, request *gfspserver.GfSpTriggerRecoverForSuccessorSPRequest) (*gfspserver.GfSpTriggerRecoverForSuccessorSPResponse, error) {
return &gfspserver.GfSpTriggerRecoverForSuccessorSPResponse{Err: ErrExceptionsStream}, nil
}

func (s mockManagerServer) GfSpQueryRecoverProcess(ctx context.Context, request *gfspserver.GfSpQueryRecoverProcessRequest) (*gfspserver.GfSpQueryRecoverProcessResponse, error) {
return &gfspserver.GfSpQueryRecoverProcessResponse{Err: ErrExceptionsStream}, nil
}

func (mockManagerServer) GfSpBeginTask(ctx context.Context, req *gfspserver.GfSpBeginTaskRequest) (
*gfspserver.GfSpBeginTaskResponse, error) {
switch req.Request.(type) {
Expand Down
2 changes: 2 additions & 0 deletions base/gfspclient/interface.go
Expand Up @@ -194,6 +194,8 @@ type SignerAPI interface {
SignMigrateGVG(ctx context.Context, task *gfsptask.GfSpMigrateGVGTask) ([]byte, error)
SignBucketMigrationInfo(ctx context.Context, task *gfsptask.GfSpBucketMigrationInfo) ([]byte, error)
RejectMigrateBucket(ctx context.Context, rejectMigrateBucket *storagetypes.MsgRejectMigrateBucket) (string, error)
ReserveSwapIn(ctx context.Context, reserveSwapIn *virtualgrouptypes.MsgReserveSwapIn) (string, error)
CompleteSwapIn(ctx context.Context, completeSwpIn *virtualgrouptypes.MsgCompleteSwapIn) (string, error)
Deposit(ctx context.Context, deposit *virtualgrouptypes.MsgDeposit) (string, error)
DeleteGlobalVirtualGroup(ctx context.Context, deleteGVG *virtualgrouptypes.MsgDeleteGlobalVirtualGroup) (string, error)
}
Expand Down