diff --git a/CHANGES.rst b/CHANGES.rst index 0469d5fcfac6f5596af429d8a6b16753c55bf663..0dcc7850838178b1457b99a8e559f0b7b06fa11b 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -97,6 +97,11 @@ Node when answering heavy RPCs. This can be enabled using ``--external-rpc-addr`` (MR :gl:`!9490`) +- Introduced ``--storage-maintenance-delay`` to allow delaying the + storage maintenance. It is set to ``auto`` by default, to + automatically trigger the maintenance whenever it is the most + suitable. (MR :gl:`!14503`) + Client ------ diff --git a/src/lib_shell_services/shell_limits.ml b/src/lib_shell_services/shell_limits.ml index 9620b1d714488e856a0dbb5c46e178fbc36d9cdf..5dcd2b802db80acc0d5e30304593d2625a71c614 100644 --- a/src/lib_shell_services/shell_limits.ml +++ b/src/lib_shell_services/shell_limits.ml @@ -247,7 +247,7 @@ let chain_validator_limits_encoding = let default_disable_context_pruning = false -let default_storage_maintenance_delay = Storage_maintenance.Disabled +let default_storage_maintenance_delay = Storage_maintenance.Auto type limits = { block_validator_limits : block_validator_limits; @@ -267,7 +267,7 @@ let default_limits = chain_validator_limits = default_chain_validator_limits; history_mode = None; disable_context_pruning = Some false; - storage_maintenance_delay = Some Disabled; + storage_maintenance_delay = Some Auto; } let limits_encoding = diff --git a/tezt/tests/bootstrap.ml b/tezt/tests/bootstrap.ml index 990cc4a895a2a805260c0838d7b363e081077364..8dcdfd7db5030629cc068c550fa40ebb9ea8cdf8 100644 --- a/tezt/tests/bootstrap.ml +++ b/tezt/tests/bootstrap.ml @@ -189,7 +189,15 @@ let check_bootstrap_with_history_modes hmode1 hmode2 = in (* Initialize nodes and client. *) let node_1_args = - Node.[Synchronisation_threshold 0; Connections 1; History_mode hmode1] + (* Disable the storage maintenance delay to have a deterministic + behavior. *) + Node. + [ + Synchronisation_threshold 0; + Connections 1; + History_mode hmode1; + Storage_maintenance_delay "disabled"; + ] in let* node_1 = Node.init node_1_args and* node_2 = Node.init [Connections 1; History_mode hmode2] in diff --git a/tezt/tests/storage_maintenance.ml b/tezt/tests/storage_maintenance.ml index ba01ca98f88aeb8c27ec43a0dcddc5205a804b44..eb0f392cfc5735502dd6925c63249b56815a9494 100644 --- a/tezt/tests/storage_maintenance.ml +++ b/tezt/tests/storage_maintenance.ml @@ -52,7 +52,13 @@ let test_context_pruning_call = in (* As the context pruning is enabled by default,we specify nothing on the command line. *) - let* node2 = Node.init ~name:"with_gc" Node.[Synchronisation_threshold 0] in + let* node2 = + Node.init + ~name:"with_gc" + (* Disable the storage maintenance delay to have a deterministic + behavior. *) + Node.[Synchronisation_threshold 0; Storage_maintenance_delay "disabled"] + in let* () = Client.Admin.connect_address ~peer:node2 client in let* (_ : int) = Node.wait_for_level node2 1 in let blocks_per_cycle = 8 in @@ -154,7 +160,11 @@ let test_custom_maintenance_delay = ] in let* regular_node = - Node.init ~name:"regular_node" Node.[Synchronisation_threshold 0] + Node.init + ~name:"regular_node" + (* Disable the storage maintenance delay to have a deterministic + behavior. *) + Node.[Synchronisation_threshold 0; Storage_maintenance_delay "disabled"] in let* client = Client.init ~endpoint:(Node delayed_node) () in let* () = Client.Admin.connect_address ~peer:regular_node client in @@ -316,7 +326,9 @@ let test_auto_maintenance_delay = Node.init ~name:"delayed_node" ~event_sections_levels:[("node.store", `Info)] - Node.[Synchronisation_threshold 0; Storage_maintenance_delay "auto"] + (* No need to set the storage maintenance flag, it is expected + to be set to "auto", by default, by the node. *) + Node.[Synchronisation_threshold 0] in let* client = Client.init ~endpoint:(Node delayed_node) () in let* () = diff --git a/tezt/tests/storage_snapshots.ml b/tezt/tests/storage_snapshots.ml index fbae52d84f9a8f2e4b3506256d376cd422604114..a05ef8063a2b062c8c6959c9ef070612b057ae6b 100644 --- a/tezt/tests/storage_snapshots.ml +++ b/tezt/tests/storage_snapshots.ml @@ -33,7 +33,10 @@ let team = Tag.layer1 -let node_arguments = Node.[Synchronisation_threshold 0] +let node_arguments = + (* Disable the storage maintenance delay to have a deterministic + behavior. *) + Node.[Synchronisation_threshold 0; Storage_maintenance_delay "disabled"] let pp_snapshot_export_format fmt v = Format.fprintf fmt "%s" (match v with Node.Tar -> "tar" | Raw -> "raw")