diff --git a/config/settings.yml b/config/settings.yml index 24fece664..ad80a7d9c 100644 --- a/config/settings.yml +++ b/config/settings.yml @@ -242,6 +242,10 @@ token-buckets: depth: 20971520 # 20MiB inv-rate: 9.5e-7 # 1MiB/s initial-value: 0 + inject-files-count: + depth: 100 + inv-rate: 1 + initial-value: 0 prune-files: depth: 1572864000 # 1500MiB inv-rate: 1.9e-6 # 2MiB/s diff --git a/src/Jobs/Handler/Files.hs b/src/Jobs/Handler/Files.hs index 994807a2a..43a5122d8 100644 --- a/src/Jobs/Handler/Files.hs +++ b/src/Jobs/Handler/Files.hs @@ -370,6 +370,7 @@ dispatchJobInjectFiles = JobHandlerException . maybeT (return ()) $ do .| C.mapMaybe extractReference .| maybe (C.map id) (takeWhileTime . (/ 2)) interval .| transPipe (lift . runDB . setSerializable) (persistentTokenBucketTakeC' TokenBucketInjectFiles $ views _1 Minio.oiSize) + .| transPipe (lift . runDB . setSerializable) (persistentTokenBucketTakeC' TokenBucketInjectFilesCount $ const 1) .| C.mapM (lift . injectOrDelete) .| C.mapM (\res@(Sum inj, Sum sz) -> res <$ observeInjectedFiles inj sz) .| C.fold diff --git a/src/Model/Types/Misc.hs b/src/Model/Types/Misc.hs index 7eee837b9..108a89a4a 100644 --- a/src/Model/Types/Misc.hs +++ b/src/Model/Types/Misc.hs @@ -265,7 +265,7 @@ instance Csv.FromField Sex where parseField = maybe (fail "Could not parse Field of type Sex") return . fromPathPiece <=< Csv.parseField -data TokenBucketIdent = TokenBucketInjectFiles +data TokenBucketIdent = TokenBucketInjectFiles | TokenBucketInjectFilesCount | TokenBucketPruneFiles | TokenBucketRechunkFiles deriving (Eq, Ord, Read, Show, Enum, Bounded, Generic, Typeable)