TL:Dr I have a bunch of contacts and segments and minimal campaigns running on a nice server. Integrity Constraint Violations are exceptions that kill the segment update cron and it’s breaking the bone that holds all my curse words in.
Looking for guidance on managing Integrity Constrain Violations.
My environment:
Mautic 3.1.1
Php 7.3
Mariadb 10.3.2
AMD 16 Core dedicated server and 64Gb ram
Centos7
I have 9,692,499 contacts current
I’m running 20 simultaneous imports of 5000 line files. About 10,000 uploads to go.
I have 148 segments ranging from simple industry sector segments to incorrectly formatted lead imports that I delete via campaign.
Handful of maintenance campaigns. Deleting anything that isn’t shinola, or moving contacts that match a combo of lead fields.
The problem I’m having is Integrity Constraint Violations if segments are updating via cron, campaigns are updating and campaigns are running. I haven’t nailed the timing of all this. If a lead belongs to multiple segments and it’s subsequently deleted via a quality control campaign then a segment update appears to throw an integrity constraint violation and kills the entire segment update.
My questions are: can the exception be logged and ignored so the job can continue and if so how would one go about that. Second question if ignoring these specific violations cannot be accomplished without significant heartache what would be some recommended timings of
mautic:segment:update
mautic:campaign:update
mautic:campaign:trigger
So I can process my contacts more efficiently.
I’ve fine tuned my.cf to squeeze and much stable performance possible out of Mariadb with daily mysqltuner runs to triple check that performance and stability. I log slow queries, and have debug = true in my local.php so I can tail -f my mautic logs on screen to watch the workflows.
Php max parameters are generously set.
I don’t think this is a performance issue necessarily. Just bad timing that consistently throws this error and creates even larger workloads the next time a segment update is run.
All replies welcome