On Sun, Aug 22, 2021, at 10:54 AM, eugenio.jordan@esa.int wrote:
Dear all.
My apologies if the answer to this question is obvious, but I am pretty newbie for 3 version, and to be very honest I haven't had enough time yet to have a deep look into the documentation.
Our customer is currently using PostGRESQL as backend, and we would like to perform some maintenance tasks, namely running vacuum full, or at least trying to rebuild hyperkitty_email primary key related index. We have been asked on the real impact of putting in place such initiative. Though the latter is related to archiving, I haven't found a way to stop just Hyperkitty or Django related processes other than stopping Mailman's core, hence preventing mails addressed to distribution lists from being delivered, could you please confirm if I am correct?
You can indeed stop Hyperkitty separate from stopping Core. Depending on how your client installed Mailman, there are two separate scripts/processes/commands to start and stop Mailman Core and Web components.
You should be able to safely stop Hyperkitty, run maintenance and re-start it. Core will continue to function during this duration, sending out emails and such. The archiving will obviously not happen, but it will be queued and Core we retry to archive that, which should succeed whenever HK comes back up.
Regarding the former, as far as I have read, the "mappings" lists -> addresses are stored just in the database, so if we run some kind of procedure or task like vacuum which will lock exclusively tables, or want anyway to have the database stopped for a cold backup or whatever, Mailman willl not work, that is, again the mails addressed to the distribution lists will not be delivered. Will you please confirm this point, too?
Both Core and Web components have separate databases. Although, technically speaking, the database name is passed in through configs and you can pass in the same database name to both and since they use separate table names, there is a good chance it would work.
Considering that your client has configured separate databases for both, you can run maintenance for the Web database without affecting any operation of Core (other than archiving). Core stores the mappings and data related to MailingLists. While Hyperkitty also has a partial copy of that data in its database that it needs to maintain the archives, that data can be synchronized with a command and is also done routinely using a cron job.
A database backup would be a good idea either way.
Hope this helps!
-- thanks, Abhilash Raj (maxking)