瀏覽代碼

Logs the number of storages kept alive by fastboot (#34667)

Brooks 1 年之前
父節點
當前提交
e84974cf63
共有 1 個文件被更改,包括 11 次插入2 次删除
  1. 11 2
      core/src/accounts_hash_verifier.rs

+ 11 - 2
core/src/accounts_hash_verifier.rs

@@ -104,12 +104,21 @@ impl AccountsHashVerifier {
                     ));
 
                     if let Some(snapshot_storages_for_fastboot) = snapshot_storages_for_fastboot {
-                        let num_storages = snapshot_storages_for_fastboot.len();
+                        // Get the number of storages that are being kept alive for fastboot.
+                        // Looking at the storage Arc's strong reference count, we know that one
+                        // ref is for fastboot, and one ref is for snapshot packaging.  If there
+                        // are no others, then the storage will be kept alive because of fastboot.
+                        let num_storages_kept_alive = snapshot_storages_for_fastboot
+                            .iter()
+                            .filter(|storage| Arc::strong_count(storage) == 2)
+                            .count();
+                        let num_storages_total = snapshot_storages_for_fastboot.len();
                         fastboot_storages = Some(snapshot_storages_for_fastboot);
                         datapoint_info!(
                             "fastboot",
                             ("slot", slot, i64),
-                            ("num_storages", num_storages, i64),
+                            ("num_storages_total", num_storages_total, i64),
+                            ("num_storages_kept_alive", num_storages_kept_alive, i64),
                         );
                     }