Skip to content

Add allocation id to recover in config #1542

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

Merged
merged 4 commits into from
Mar 24, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion code/go/0chain.net/blobber/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package main

import (
"github.com/0chain/blobber/code/go/0chain.net/blobbercore/allocation"
"github.com/0chain/blobber/code/go/0chain.net/blobbercore/config"
"github.com/0chain/blobber/code/go/0chain.net/core/common"
"github.com/0chain/blobber/code/go/0chain.net/core/logging"
"github.com/0chain/blobber/code/go/0chain.net/core/node"
Expand Down Expand Up @@ -61,7 +62,7 @@ func main() {

if recoverTrie {
logging.Logger.Info("Recovering trie")
allocation.RecoverTrie()
allocation.RecoverTrie(config.Configuration.RecoverAllocations)
}

// todo: activate this when gRPC functionalities are implemented
Expand Down
28 changes: 11 additions & 17 deletions code/go/0chain.net/blobbercore/allocation/workers.go
Original file line number Diff line number Diff line change
Expand Up @@ -349,33 +349,27 @@ func deleteAllocation(ctx context.Context, a *Allocation) (err error) {
return err
}

func RecoverTrie() {
func RecoverTrie(recoverAllocs []string) {
var (
allocs []*Allocation
err error
offset int64
err error
)

for {
for _, allocID := range recoverAllocs {
var alloc *Allocation
err = datastore.GetStore().WithNewTransaction(func(ctx context.Context) error {
allocs, err = Repo.GetAllocations(ctx, offset)
alloc, err = Repo.GetAllocationFromDB(ctx, allocID)
return err
})
if err != nil {
logging.Logger.Error("recover_trie_fetch_alloc", zap.Error(err))
return
}
if len(allocs) == 0 {
return
}
offset += int64(len(allocs))
// recover trie of each allocation
for _, a := range allocs {
logging.Logger.Info("recover_trie", zap.String("allocation_id", a.ID))
err = a.recoverTrie()
if err != nil {
logging.Logger.Error("recover_trie", zap.Error(err))
}

// recover trie of allocation
logging.Logger.Info("recover_trie", zap.String("allocation_id", alloc.ID))
err = alloc.recoverTrie()
if err != nil {
logging.Logger.Error("recover_trie", zap.Error(err))
}
}
}
8 changes: 5 additions & 3 deletions code/go/0chain.net/blobbercore/config/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -157,9 +157,10 @@ type Config struct {
MinConfirmation int

// MountPoint is where allocation files are stored. This is basically arranged in RAID5.
MountPoint string
AllocDirLevel []int
FileDirLevel []int
MountPoint string
AllocDirLevel []int
FileDirLevel []int
RecoverAllocations []string
// AutomacitUpdate Whether to automatically update blobber updates to blockchain
AutomaticUpdate bool
BlobberUpdateInterval time.Duration
Expand Down Expand Up @@ -291,6 +292,7 @@ func ReadConfig(deploymentMode int) {
if w := Configuration.DelegateWallet; len(w) != 64 {
log.Fatal("invalid delegate wallet:", w)
}
Configuration.RecoverAllocations = viper.GetStringSlice("recover_allocations")

Configuration.MinSubmit = viper.GetInt("min_submit")
if Configuration.MinSubmit < 1 {
Expand Down
3 changes: 3 additions & 0 deletions config/0chain_blobber.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,9 @@ finalize_allocations_interval: 24h
# maximum limit on the number of combined directories and files on each allocation
max_dirs_files: 50000

#recover allocations
recover_allocations: [""]

# maximum limit on the number of objects in a directory
max_objects_dir: 1000
# limit of objects per gb(storage v2)
Expand Down
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ require (
)

require (
github.com/0chain/common v1.18.3
github.com/0chain/common v1.20.0
github.com/Luzifer/go-openssl/v3 v3.1.0 // indirect
github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 // indirect
github.com/btcsuite/btcd v0.23.4 // indirect
Expand Down
4 changes: 2 additions & 2 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,8 @@ cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RX
cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0=
cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3fOKtUw0Xmo=
dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU=
github.com/0chain/common v1.18.3 h1:42dYOv2KyMTSanuS67iDtfv+ErbSRqR8NJ3MG72MwaI=
github.com/0chain/common v1.18.3/go.mod h1:Lapu2Tj7z5Sm4r+X141e7vsz4NDODTEypeElYAP3iSw=
github.com/0chain/common v1.20.0 h1:Ek8YglLoTk8rfxYVB57mP2+w6XzfsztBPN3/vwH470I=
github.com/0chain/common v1.20.0/go.mod h1:Lapu2Tj7z5Sm4r+X141e7vsz4NDODTEypeElYAP3iSw=
github.com/0chain/errors v1.0.3 h1:QQZPFxTfnMcRdt32DXbzRQIfGWmBsKoEdszKQDb0rRM=
github.com/0chain/errors v1.0.3/go.mod h1:xymD6nVgrbgttWwkpSCfLLEJbFO6iHGQwk/yeSuYkIc=
github.com/0chain/gosdk v1.19.0-RC0 h1:PhHsvfEBJw9ofEFGWKqJ7UID7qMfl1LrWl2GyhIxjqE=
Expand Down
Loading