Currently, a Catalyst creates total snapshots for every type only once at startup. We need to update them periodically (daily maybe) in a somehow efficient way for each one except profiles.
One potential solution:
Go through all the partial snapshots and grep lines by type and write to different files excluding profiles. This will avoid querying the database.
Pseudocode:
cat aPartialSnapshot | grep "type: 'aType'" >> aTypeSnapshot