[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>
Этот коммит содержится в:
@@ -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 {
|
||||||
|
|||||||
Ссылка в новой задаче
Block a user