Skip to content

Commit 92d7374

Browse files
authored
Merge pull request #17787 from MinaProtocol/lyh/nit-arcihve-cli-cleanups
Clean up Archive CLI a bit
2 parents 4d49ac7 + 399dab2 commit 92d7374

File tree

2 files changed

+21
-17
lines changed

2 files changed

+21
-17
lines changed

src/app/archive/cli/archive_cli.ml

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,8 @@ let command_run =
4242
~doc:
4343
"int The number of accounts to insert from the database in one \
4444
transaction, when processing genesis ledger. This is to prevent \
45-
Postgres Out of Memory errors \n\
46-
\ when handling very big genesis file. Default is 100."
45+
Postgres Out of Memory errors when handling very big genesis file. \
46+
Default is 100."
4747
(optional_with_default 100 int)
4848
in
4949
let runtime_config_opt =
@@ -94,16 +94,17 @@ let command_prune =
9494
Format: 2000-00-00 12:00:00+0100"
9595
and postgres = Flag.Uri.Archive.postgres in
9696
fun () ->
97+
let logger = Logger.create () in
9798
let timestamp =
9899
timestamp
99100
|> Option.map ~f:Block_time.of_time
100101
|> Option.map ~f:Block_time.to_int64
101102
in
102-
let go () =
103+
let execute () =
103104
let open Deferred.Result.Let_syntax in
104105
let%bind ((module Conn) as conn) = Mina_caqti.connect postgres.value in
105106
let%bind () = Conn.start () in
106-
match%bind.Async.Deferred
107+
match%bind.Deferred
107108
let%bind () =
108109
Archive_lib.Processor.Block.delete_if_older_than ?height
109110
?num_blocks ?timestamp conn
@@ -112,11 +113,13 @@ let command_prune =
112113
with
113114
| Ok () ->
114115
return ()
115-
| Error err ->
116-
let%bind.Async.Deferred _ = Conn.rollback () in
117-
Deferred.Result.fail err
116+
| Error txn_error ->
117+
let%map.Deferred rollback_result = Conn.rollback () in
118+
Result.iter_error rollback_result ~f:(fun err ->
119+
[%log error] "Failed to rollback txn on failure"
120+
~metadata:[ ("error", `String (Caqti_error.show err)) ] ) ;
121+
Error txn_error
118122
in
119-
let logger = Logger.create () in
120123
let cmd_metadata =
121124
List.filter_opt
122125
[ Option.map height ~f:(fun v -> ("height", `Int v))
@@ -125,7 +128,7 @@ let command_prune =
125128
("timestamp", `String (Int64.to_string v)) )
126129
]
127130
in
128-
match%map.Async.Deferred go () with
131+
match%map.Async.Deferred execute () with
129132
| Ok () ->
130133
[%log info] "Successfully purged blocks." ~metadata:cmd_metadata
131134
| Error err ->

src/app/archive/lib/processor.ml

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4804,7 +4804,7 @@ let add_genesis_accounts ~logger ~(runtime_config_opt : Runtime_config.t option)
48044804
| Ok () ->
48054805
() )
48064806

4807-
let create_metrics_server ~logger ~metrics_server_port ~missing_blocks_width
4807+
let serve_metrics_server ~logger ~metrics_server_port ~missing_blocks_width
48084808
~block_window_duration_ms pool =
48094809
match metrics_server_port with
48104810
| None ->
@@ -4814,18 +4814,19 @@ let create_metrics_server ~logger ~metrics_server_port ~missing_blocks_width
48144814
Option.value ~default:Metrics.default_missing_blocks_width
48154815
missing_blocks_width
48164816
in
4817-
let%bind metric_server =
4817+
let%map metric_server =
48184818
Mina_metrics.Archive.create_archive_server ~port ~logger ()
48194819
in
4820-
let interval = Float.of_int (block_window_duration_ms * 2) in
4821-
let rec go () =
4820+
let interval =
4821+
Time.Span.of_ms @@ Float.of_int (block_window_duration_ms * 2)
4822+
in
4823+
let serve () =
48224824
let%bind () =
48234825
Metrics.update pool metric_server ~logger ~missing_blocks_width
48244826
in
4825-
let%bind () = after (Time.Span.of_ms interval) in
4826-
go ()
4827+
after interval
48274828
in
4828-
go ()
4829+
Deferred.forever () serve
48294830

48304831
(* for running the archive process *)
48314832
let setup_server ~proof_cache_db ~(genesis_constants : Genesis_constants.t)
@@ -4938,7 +4939,7 @@ let setup_server ~proof_cache_db ~(genesis_constants : Genesis_constants.t)
49384939
Deferred.unit ) ) )
49394940
|> don't_wait_for ;
49404941
(*Update archive metrics*)
4941-
create_metrics_server ~logger ~metrics_server_port ~missing_blocks_width
4942+
serve_metrics_server ~logger ~metrics_server_port ~missing_blocks_width
49424943
~block_window_duration_ms:constraint_constants.block_window_duration_ms
49434944
pool
49444945
|> don't_wait_for ;

0 commit comments

Comments
 (0)