This deployment is a part of the 2024.1.1 release.
It will also mostly focus on delivering the latest updates for callback-processor and statistics-api services. There’ll be also a bunch of updates for a clickhouse : material views will be updated as well as stream tables since we’re going to make some changes to page_events and subscribers_source_param stream.
Updates
directory
- 1320 - multiple target urls
- 1257 - source activity report
- 1297 - forbid campaigns after user limit reached
- 1287 - subscriber’s tags for url
- 1262 - subscriber free plan updates
- 1185 - multiple messages
statistics
- 1257 - source activity report
Risks
- 1257 is huge, and it will add some extra load to the system. The most of the work will be done by callback-processor. Additional data will be required to be stored in the memory, so we’ll need to increase the memory limit for the service.
- a data migration is also required. since it was already performed on the staging it is well described here - clickhouse data migration
- 0060_auto_20231016_1329 migration adds compound index (is_active, channel_id) to the subscribers table but it’s already there, so don’t forget to fake it
Update plan
- update callback processor
- fake 0060_auto_20231016_1329 (subscribers)
- apply migrations
- update directory messages on all of the on-premises
- do the same for directory messages (spam)
- update subscribers tasks service
- update subscribers-postponed
- update subscribers errors service
- clean old subscriber source activities
- update statistics-api
- execute steps described in clickhouse data migration
Update map
| service | before | after |
|---|---|---|
| statistics-api | 1.21.11.0 | 1.21.14.0 |
| callback-processor | 1.57.3.2 | 1.63.7.1 |
| directory-messages | 1.57.2.2 | 1.63.7.1 |
| subscribers-cache | 1.56.4.1 | 1.63.7.1 |
| subscribers-tasks | 1.56.10.1 | 1.63.11.1 |
| subscribers-postponed | 1.56.4.1 | 1.63.7.1 |
| subscribers-errors | 1.56.4.1 | 1.63.7.1 |
Problems during deployment
- subscribers tasks service suddenly became unstable. It seemed like it was dealing with some issues during a ‘process_new_subscriber‘ task. It was just stalling and do nothing until main worker process killed it. The main bugger is that it still unclear of origins of the troubles. A single-threaded, standalone worker had been implemented as a solution. Seems to work fine.
Links
- affected: