From 1f13a7b0866f430d5c7b1af67017453f7d42998b Mon Sep 17 00:00:00 2001 From: Marcin Ickiewicz <mickiewicz@syncad.com> Date: Thu, 25 Jul 2024 11:08:39 +0200 Subject: [PATCH] fix for massive_with_indexes wrongly recalculate all posts childs Previously sync cannot leave MASSIVE_WITH_INDEXES because update_all_hive_posts_children_count() and VACUUM were called --- hive/db/db_state.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/hive/db/db_state.py b/hive/db/db_state.py index 3b3b656be..deeb13d18 100644 --- a/hive/db/db_state.py +++ b/hive/db/db_state.py @@ -13,6 +13,7 @@ import sqlalchemy from hive.conf import ( SCHEMA_NAME ,SCHEMA_OWNER_NAME + ,ONE_WEEK_IN_BLOCKS ) from hive.db.adapter import Db @@ -553,9 +554,15 @@ class DbState: cls.db().query_no_return("COMMIT") cls.ensure_reputations_recalculated(last_completed_blocks, last_imported_blocks) - cls._execute_query(db=cls.db(), sql="VACUUM (VERBOSE,ANALYZE)") - cls._finish_all_tables(True, last_completed_blocks, last_imported_blocks) - cls._execute_query(db=cls.db(), sql="VACUUM (VERBOSE,ANALYZE)") + is_initial_massive = (last_imported_blocks - last_completed_blocks) > ONE_WEEK_IN_BLOCKS + + if is_initial_massive: + cls._execute_query(db=cls.db(), sql="VACUUM (VERBOSE,ANALYZE)") + + cls._finish_all_tables( is_initial_massive, last_completed_blocks, last_imported_blocks) + + if is_initial_massive: + cls._execute_query(db=cls.db(), sql="VACUUM (VERBOSE,ANALYZE)") log.info("[MASSIVE] Massive sync complete!") return True -- GitLab