github.com/minio/minio@v0.0.0-20240328213742-3f72439b8a27/cmd/ilm-config.go (about) 1 // Copyright (c) 2015-2024 MinIO, Inc. 2 // 3 // This file is part of MinIO Object Storage stack 4 // 5 // This program is free software: you can redistribute it and/or modify 6 // it under the terms of the GNU Affero General Public License as published by 7 // the Free Software Foundation, either version 3 of the License, or 8 // (at your option) any later version. 9 // 10 // This program is distributed in the hope that it will be useful 11 // but WITHOUT ANY WARRANTY; without even the implied warranty of 12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 // GNU Affero General Public License for more details. 14 // 15 // You should have received a copy of the GNU Affero General Public License 16 // along with this program. If not, see <http://www.gnu.org/licenses/>. 17 18 package cmd 19 20 import ( 21 "sync" 22 23 "github.com/minio/minio/internal/config/ilm" 24 ) 25 26 var globalILMConfig = ilmConfig{ 27 cfg: ilm.Config{ 28 ExpirationWorkers: 100, 29 TransitionWorkers: 100, 30 }, 31 } 32 33 type ilmConfig struct { 34 mu sync.RWMutex 35 cfg ilm.Config 36 } 37 38 func (c *ilmConfig) getExpirationWorkers() int { 39 c.mu.RLock() 40 defer c.mu.RUnlock() 41 42 return c.cfg.ExpirationWorkers 43 } 44 45 func (c *ilmConfig) getTransitionWorkers() int { 46 c.mu.RLock() 47 defer c.mu.RUnlock() 48 49 return c.cfg.TransitionWorkers 50 } 51 52 func (c *ilmConfig) update(cfg ilm.Config) { 53 c.mu.Lock() 54 defer c.mu.Unlock() 55 56 c.cfg = cfg 57 }