@samjf opened this Issue on June 2nd 2022 Contributor

Move Annotations into their own table

At the moment annotations are saved in the Option table into a single row per site (see \Piwik\Plugins\Annotations\AnnotationList::save). This approach seems to cause DB performance problems when annotations are added in bulk due to constant serialization and locks for updating on a single row.

An approach to cleanly solve this problem would be to create a dedicated DB table for the annotations rather than the single row serialization. This would require a new model/schema and a migration of the current data, but would be a good way to future proof and solve this performance problem.

Your Environment

  • Matomo Version: 4.10.1
  • PHP Version: 8
  • Server Operating System: Mac
  • Additionally installed plugins:
@justinvelluppillai commented on June 3rd 2022 Member

I will move this to the For Prioritization queue. It is a pretty important issue to keep Cloud performant also.

@Chardonneaur commented on June 27th 2022

Would it be possible to add it as a report in itself too? So that we could export it afterwards? For example as an email report.

@sgiehl commented on June 27th 2022 Member

@Chardonneaur In theory the would be possible. For that we need API methods to fetch those annotations and a report class to provide that. But not sure if that will be handled in this issue.

Powered by GitHub Issue Mirror