From 54d66303457d113d07fdfeb4f052e10431340d3d Mon Sep 17 00:00:00 2001 From: Tomas Kopecek Date: Oct 15 2019 07:00:22 +0000 Subject: Add vaccum to sessions cleanup --- diff --git a/docs/source/server_howto.rst b/docs/source/server_howto.rst index 6dc341f..a1e630f 100644 --- a/docs/source/server_howto.rst +++ b/docs/source/server_howto.rst @@ -515,11 +515,13 @@ timer is not enabled by default, so you need to run usual `systemctl` commands: If you don't want to use this script, be sure to run following SQL with appropriate age setting. Default value of one day should be ok for most -deployments. +deployments. As there will be tons of freed records, additional VACUUM can be +handy. :: DELETE FROM sessions WHERE update_time < now() - '1 day'::interval; + VACUUM ANALYZE sessions; Set User/Password Authentication ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/util/koji-sweep-db b/util/koji-sweep-db index 806cadd..39e305f 100755 --- a/util/koji-sweep-db +++ b/util/koji-sweep-db @@ -7,7 +7,7 @@ from six.moves.configparser import RawConfigParser import koji.db -def clean_sessions(cursor): +def clean_sessions(cursor, vacuum): q = " FROM sessions WHERE update_time < now() - '1 day'::interval" if options.verbose: cursor.execute("SELECT COUNT(*) " + q) @@ -15,6 +15,8 @@ def clean_sessions(cursor): print("Deleting %d sessions" % rows) cursor.execute("DELETE " + q) + if vacuum: + cursor.execute("VACUUM ANALYZE sessions") if __name__ == "__main__": @@ -23,6 +25,9 @@ if __name__ == "__main__": parser.add_option('-v', '--verbose', action="store_true", help="Be verbose") parser.add_option('-c', '--conf', default='/etc/koji-hub/hub.conf', action='store', help="Path to koji's hub.conf") + parser.add_option('--no-vacuum', action="store_false", dest="vacuum", + default=True, + help="Don't run vacuum on affected tables") options, args = parser.parse_args() if not os.path.exists(options.conf): @@ -66,5 +71,5 @@ if __name__ == "__main__": conn = koji.db.connect() cursor = conn.cursor() - clean_sessions(cursor) + clean_sessions(cursor, options.vacuum) conn.commit()