[MM-53466] Remove concurrency from data retention delete batching (#23927)

* Add TimeBetweenBatches config value for data retention

* adding feature flag for data retention concurrency
---------

Co-authored-by: Julien Tant <julien@craftyx.fr>
Co-authored-by: Mattermost Build <build@mattermost.com>
Этот коммит содержится в:
Ben Cooke
2023-07-05 11:09:03 -04:00
коммит произвёл GitHub
родитель 15eac83923
Коммит bf0e0ed45a
3 изменённых файлов: 23 добавлений и 13 удалений

Просмотреть файл

@@ -835,6 +835,7 @@ func (ts *TelemetryService) trackConfig() {
"boards_retention_days": *cfg.DataRetentionSettings.BoardsRetentionDays, "boards_retention_days": *cfg.DataRetentionSettings.BoardsRetentionDays,
"deletion_job_start_time": *cfg.DataRetentionSettings.DeletionJobStartTime, "deletion_job_start_time": *cfg.DataRetentionSettings.DeletionJobStartTime,
"batch_size": *cfg.DataRetentionSettings.BatchSize, "batch_size": *cfg.DataRetentionSettings.BatchSize,
"time_between_batches": *cfg.DataRetentionSettings.TimeBetweenBatchesMilliseconds,
"cleanup_jobs_threshold_days": *cfg.JobSettings.CleanupJobsThresholdDays, "cleanup_jobs_threshold_days": *cfg.JobSettings.CleanupJobsThresholdDays,
"cleanup_config_threshold_days": *cfg.JobSettings.CleanupConfigThresholdDays, "cleanup_config_threshold_days": *cfg.JobSettings.CleanupConfigThresholdDays,
}) })

Просмотреть файл

@@ -205,11 +205,12 @@ const (
BleveSettingsDefaultIndexDir = "" BleveSettingsDefaultIndexDir = ""
BleveSettingsDefaultBatchSize = 10000 BleveSettingsDefaultBatchSize = 10000
DataRetentionSettingsDefaultMessageRetentionDays = 365 DataRetentionSettingsDefaultMessageRetentionDays = 365
DataRetentionSettingsDefaultFileRetentionDays = 365 DataRetentionSettingsDefaultFileRetentionDays = 365
DataRetentionSettingsDefaultBoardsRetentionDays = 365 DataRetentionSettingsDefaultBoardsRetentionDays = 365
DataRetentionSettingsDefaultDeletionJobStartTime = "02:00" DataRetentionSettingsDefaultDeletionJobStartTime = "02:00"
DataRetentionSettingsDefaultBatchSize = 3000 DataRetentionSettingsDefaultBatchSize = 3000
DataRetentionSettingsDefaultTimeBetweenBatchesMilliseconds = 100
PluginSettingsDefaultDirectory = "./plugins" PluginSettingsDefaultDirectory = "./plugins"
PluginSettingsDefaultClientDirectory = "./client/plugins" PluginSettingsDefaultClientDirectory = "./client/plugins"
@@ -2765,14 +2766,15 @@ func (bs *BleveSettings) SetDefaults() {
} }
type DataRetentionSettings struct { type DataRetentionSettings struct {
EnableMessageDeletion *bool `access:"compliance_data_retention_policy"` EnableMessageDeletion *bool `access:"compliance_data_retention_policy"`
EnableFileDeletion *bool `access:"compliance_data_retention_policy"` EnableFileDeletion *bool `access:"compliance_data_retention_policy"`
EnableBoardsDeletion *bool `access:"compliance_data_retention_policy"` EnableBoardsDeletion *bool `access:"compliance_data_retention_policy"`
MessageRetentionDays *int `access:"compliance_data_retention_policy"` MessageRetentionDays *int `access:"compliance_data_retention_policy"`
FileRetentionDays *int `access:"compliance_data_retention_policy"` FileRetentionDays *int `access:"compliance_data_retention_policy"`
BoardsRetentionDays *int `access:"compliance_data_retention_policy"` BoardsRetentionDays *int `access:"compliance_data_retention_policy"`
DeletionJobStartTime *string `access:"compliance_data_retention_policy"` DeletionJobStartTime *string `access:"compliance_data_retention_policy"`
BatchSize *int `access:"compliance_data_retention_policy"` BatchSize *int `access:"compliance_data_retention_policy"`
TimeBetweenBatchesMilliseconds *int `access:"compliance_data_retention_policy"`
} }
func (s *DataRetentionSettings) SetDefaults() { func (s *DataRetentionSettings) SetDefaults() {
@@ -2807,6 +2809,10 @@ func (s *DataRetentionSettings) SetDefaults() {
if s.BatchSize == nil { if s.BatchSize == nil {
s.BatchSize = NewInt(DataRetentionSettingsDefaultBatchSize) s.BatchSize = NewInt(DataRetentionSettingsDefaultBatchSize)
} }
if s.TimeBetweenBatchesMilliseconds == nil {
s.TimeBetweenBatchesMilliseconds = NewInt(DataRetentionSettingsDefaultTimeBetweenBatchesMilliseconds)
}
} }
type JobSettings struct { type JobSettings struct {

Просмотреть файл

@@ -62,6 +62,8 @@ type FeatureFlags struct {
DeprecateCloudFree bool DeprecateCloudFree bool
CloudReverseTrial bool CloudReverseTrial bool
DataRetentionConcurrencyEnabled bool
} }
func (f *FeatureFlags) SetDefaults() { func (f *FeatureFlags) SetDefaults() {
@@ -85,6 +87,7 @@ func (f *FeatureFlags) SetDefaults() {
f.WysiwygEditor = false f.WysiwygEditor = false
f.OnboardingTourTips = true f.OnboardingTourTips = true
f.CloudReverseTrial = false f.CloudReverseTrial = false
f.DataRetentionConcurrencyEnabled = true
} }
func (f *FeatureFlags) Plugins() map[string]string { func (f *FeatureFlags) Plugins() map[string]string {