Radish alpha
h
Radicle Heartwood Protocol & Stack
Radicle
Git (anonymous pull)
Log in to clone via SSH
config: add gc interval limit
Quaylyn Rimer committed 3 months ago
commit af4b32cbbf06801522c630f817a8b140b81bd345
parent b63ad6bb709427648eaa6ebcd4ef19851c902d39
2 files changed +27 -1
modified crates/radicle-node/src/runtime.rs
@@ -242,7 +242,7 @@ impl Runtime {
            limit: FetchLimit::default(),
            local: nid,
            expiry: worker::garbage::Expiry::default(),
-
            gc_interval: LocalDuration::from_mins(10),
+
            gc_interval: config.limits.gc_interval.into(),
        };
        let pool = worker::Pool::with(
            worker_recv,
modified crates/radicle/src/node/config.rs
@@ -140,6 +140,9 @@ pub struct Limits {
    /// Network scheduling limits.
    pub network: NetworkLimits,

+
    /// Minimum interval between `git gc` runs per repository.
+
    pub gc_interval: LimitGcInterval,
+

    /// Channel limits.
    pub fetch_pack_receive: FetchPackSizeLimit,
}
@@ -758,6 +761,29 @@ impl From<LocalDuration> for LimitKeepAliveDelta {
#[derive(Clone, Copy, Debug, Deserialize, Serialize, Eq, PartialEq)]
#[serde(transparent)]
#[cfg_attr(feature = "schemars", derive(schemars::JsonSchema))]
+
pub struct LimitGcInterval(localtime::LocalDuration);
+

+
impl Default for LimitGcInterval {
+
    fn default() -> Self {
+
        Self(localtime::LocalDuration::from_mins(10))
+
    }
+
}
+

+
impl From<LimitGcInterval> for LocalDuration {
+
    fn from(value: LimitGcInterval) -> Self {
+
        value.0
+
    }
+
}
+

+
impl From<LocalDuration> for LimitGcInterval {
+
    fn from(value: LocalDuration) -> Self {
+
        Self(value)
+
    }
+
}
+

+
#[derive(Clone, Copy, Debug, Deserialize, Serialize, Eq, PartialEq)]
+
#[serde(transparent)]
+
#[cfg_attr(feature = "schemars", derive(schemars::JsonSchema))]
pub struct LimitMinReconnectionDelta(localtime::LocalDuration);

impl Default for LimitMinReconnectionDelta {