107 lines
3.6 KiB
Diff
107 lines
3.6 KiB
Diff
diff --git a/bgs/bgs.go b/bgs/bgs.go
|
|
index 35dfab9d..7e225f6c 100644
|
|
--- a/bgs/bgs.go
|
|
+++ b/bgs/bgs.go
|
|
@@ -112,6 +112,7 @@ type BGSConfig struct {
|
|
DefaultRepoLimit int64
|
|
ConcurrencyPerPDS int64
|
|
MaxQueuePerPDS int64
|
|
+ InitialNewPDSPerDayLimit int64
|
|
NumCompactionWorkers int
|
|
}
|
|
|
|
@@ -122,6 +123,7 @@ func DefaultBGSConfig() *BGSConfig {
|
|
DefaultRepoLimit: 100,
|
|
ConcurrencyPerPDS: 100,
|
|
MaxQueuePerPDS: 1_000,
|
|
+ InitialNewPDSPerDayLimit: 10,
|
|
NumCompactionWorkers: 2,
|
|
}
|
|
}
|
|
@@ -159,6 +161,7 @@ func NewBGS(db *gorm.DB, ix *indexer.Indexer, repoman *repomgr.RepoManager, evtm
|
|
slOpts.DefaultRepoLimit = config.DefaultRepoLimit
|
|
slOpts.ConcurrencyPerPDS = config.ConcurrencyPerPDS
|
|
slOpts.MaxQueuePerPDS = config.MaxQueuePerPDS
|
|
+ slOpts.DefaultNewPDSPerDayLimit = config.InitialNewPDSPerDayLimit
|
|
s, err := NewSlurper(db, bgs.handleFedEvent, slOpts)
|
|
if err != nil {
|
|
return nil, err
|
|
diff --git a/bgs/fedmgr.go b/bgs/fedmgr.go
|
|
index 42ce7407..9072ba05 100644
|
|
--- a/bgs/fedmgr.go
|
|
+++ b/bgs/fedmgr.go
|
|
@@ -45,6 +45,7 @@ type Slurper struct {
|
|
MaxQueuePerPDS int64
|
|
|
|
NewPDSPerDayLimiter *slidingwindow.Limiter
|
|
+ initialNewPDSPerDayLimit int64
|
|
|
|
newSubsDisabled bool
|
|
trustedDomains []string
|
|
@@ -70,6 +71,7 @@ type SlurperOptions struct {
|
|
DefaultRepoLimit int64
|
|
ConcurrencyPerPDS int64
|
|
MaxQueuePerPDS int64
|
|
+ DefaultNewPDSPerDayLimit int64
|
|
}
|
|
|
|
func DefaultSlurperOptions() *SlurperOptions {
|
|
@@ -82,6 +84,7 @@ func DefaultSlurperOptions() *SlurperOptions {
|
|
DefaultRepoLimit: 100,
|
|
ConcurrencyPerPDS: 100,
|
|
MaxQueuePerPDS: 1_000,
|
|
+ DefaultNewPDSPerDayLimit: 10,
|
|
}
|
|
}
|
|
|
|
@@ -112,6 +115,7 @@ func NewSlurper(db *gorm.DB, cb IndexCallback, opts *SlurperOptions) (*Slurper,
|
|
ssl: opts.SSL,
|
|
shutdownChan: make(chan bool),
|
|
shutdownResult: make(chan []error),
|
|
+ initialNewPDSPerDayLimit: opts.DefaultNewPDSPerDayLimit,
|
|
}
|
|
if err := s.loadConfig(); err != nil {
|
|
return nil, err
|
|
@@ -224,13 +228,15 @@ func (s *Slurper) loadConfig() error {
|
|
}
|
|
|
|
if sc.ID == 0 {
|
|
- if err := s.db.Create(&SlurpConfig{}).Error; err != nil {
|
|
+ sc.NewPDSPerDayLimit = s.initialNewPDSPerDayLimit
|
|
+ if err := s.db.Create(&SlurpConfig{ NewPDSPerDayLimit: s.initialNewPDSPerDayLimit, }).Error; err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
s.newSubsDisabled = sc.NewSubsDisabled
|
|
s.trustedDomains = sc.TrustedDomains
|
|
+ s.initialNewPDSPerDayLimit = sc.NewPDSPerDayLimit
|
|
|
|
s.NewPDSPerDayLimiter, _ = slidingwindow.NewLimiter(time.Hour*24, sc.NewPDSPerDayLimit, windowFunc)
|
|
|
|
diff --git a/cmd/bigsky/main.go b/cmd/bigsky/main.go
|
|
index 540796f5..cb946aed 100644
|
|
--- a/cmd/bigsky/main.go
|
|
+++ b/cmd/bigsky/main.go
|
|
@@ -195,6 +195,12 @@ func run(args []string) error {
|
|
EnvVars: []string{"RELAY_EVENT_PLAYBACK_TTL"},
|
|
Value: 72 * time.Hour,
|
|
},
|
|
+ &cli.Int64Flag{
|
|
+ Name: "newpds-perday-limit",
|
|
+ EnvVars: []string{"RELAY_NEWPDS_PERDAY_LIMIT"},
|
|
+ Value: 10,
|
|
+ Usage: "initial value for NewPDSPerDayLimit",
|
|
+ },
|
|
&cli.IntFlag{
|
|
Name: "num-compaction-workers",
|
|
EnvVars: []string{"RELAY_NUM_COMPACTION_WORKERS"},
|
|
@@ -418,6 +424,7 @@ func runBigsky(cctx *cli.Context) error {
|
|
bgsConfig.ConcurrencyPerPDS = cctx.Int64("concurrency-per-pds")
|
|
bgsConfig.MaxQueuePerPDS = cctx.Int64("max-queue-per-pds")
|
|
bgsConfig.DefaultRepoLimit = cctx.Int64("default-repo-limit")
|
|
+ bgsConfig.InitialNewPDSPerDayLimit = cctx.Int64("newpds-perday-limit")
|
|
bgsConfig.NumCompactionWorkers = cctx.Int("num-compaction-workers")
|
|
bgs, err := libbgs.NewBGS(db, ix, repoman, evtman, cachedidr, rf, hr, bgsConfig)
|
|
if err != nil {
|