-
-
Notifications
You must be signed in to change notification settings - Fork 2.7k
Description
so i use the tracking api.
my code separates actions into groups of 500-800 (depending on session length)
each group is put into a queue, and threads send these groups to piwik to be tracked.
currently 15 threads send these groups simultaneously.
why i do this:
in my particular setup, i did some testing and around 500 was the sweet spot for piwik's ability to handle bulk tracks (less didn't decrease the time much, and more started increasing the time significantly)
i also noticed that the times it takes to track these hits doesn't seem to increase much if you have multiple bulk requests at the same time.
the problem:
i recently upgraded from 2.2.2 to 2.7.0, and now when i run the same importer, i start getting error 500s from the tracker requests.
looking at the apache error logs, there seems to be deadlock issues:
[Tue Oct 07 13:00:01 2014] [error] [client 130.14.24.60] Error in Piwik (tracker): Error query: SQLSTATE[40001]: Serialization failure: 1213 Deadlock found when trying to get lock; try restarting transaction \t\t\t\t\t\t\t\tIn query: UPDATE piwikdev_log_visit SET idvisitor = ?, visit_total_time = ?, visit_last_action_time = ?, visit_exit_idaction_url = ?, visit_total_actions = visit_total_actions + 1 , custom_var_k1 = ?, custom_var_v1 = ? WHERE idsite = ? AND idvisit = ? \t\t\t\t\t\t\t\tParameters: array