SYMPTOM
Current System-Defined Aggregate Count exceeds way more than the limit (Retention Limit + Excess Amount Allowed) set.
DESCRIPTION
- Usually, the total number of System-Defined Aggregates count is determined as the Retention Limit + Excess Amount Allowed for that particular environment.
- For example, If the Retention limit is set as 100 and the Excess Amount Allowed is set as 10, then the Total number of System Defined Aggregates should not exceed more than 110
- Aggregate Maintainer usually takes care of this excess aggregate cleanup.
- Usually, the Aggregate maintainer runs every 1 hour. Maintainer checks the Retainer limit, queries the postgres to get the least utilized System Aggregates, and deletes the excess system aggregates (The least used aggregates get deleted first).
- In some situations, Aggregate Maintainer services won't run properly, and the excess aggregates won't get cleaned up.
RESOLUTION
- Please check the logs for error(s) like TimeOut from Postgres while trying to clean up aggregates.
- You can consider increasing the custom setting appDb.syncTimeout from the default 5 seconds to 20.Seconds or 30.Seconds
- This should ease the Postgres Sync congestion, and the next time the Aggregate maintainer run, unused aggregates should be cleaned up and maintained at the desired level.