Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion bigtable-bench/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -188,7 +188,7 @@ async fn main() -> anyhow::Result<()> {
]),
};
let metadata = Metadata {
expiration_policy: ExpirationPolicy::TimeToLive(Duration::from_secs(3600)),
expiration_policy: ExpirationPolicy::TimeToLive(Duration::from_hours(1)),
..Metadata::default()
};

Expand Down
30 changes: 15 additions & 15 deletions objectstore-server/src/usecases.rs
Original file line number Diff line number Diff line change
Expand Up @@ -214,14 +214,14 @@ mod tests {
#[test]
fn unconfigured_usecase_allows_ttl() {
let usecases = UseCases::default();
let metadata = make_metadata(ExpirationPolicy::TimeToLive(Duration::from_secs(3600)));
let metadata = make_metadata(ExpirationPolicy::TimeToLive(Duration::from_hours(1)));
usecases.validate("anything", &metadata).unwrap();
}

#[test]
fn unconfigured_usecase_allows_tti() {
let usecases = UseCases::default();
let metadata = make_metadata(ExpirationPolicy::TimeToIdle(Duration::from_secs(3600)));
let metadata = make_metadata(ExpirationPolicy::TimeToIdle(Duration::from_hours(1)));
usecases.validate("anything", &metadata).unwrap();
}

Expand Down Expand Up @@ -268,7 +268,7 @@ mod tests {
},
});

let metadata = make_metadata(ExpirationPolicy::TimeToLive(Duration::from_secs(3600)));
let metadata = make_metadata(ExpirationPolicy::TimeToLive(Duration::from_hours(1)));
let err = usecases.validate("test", &metadata).unwrap_err();
assert!(matches!(err, UseCaseError::PolicyNotAllowed { .. }));
}
Expand All @@ -279,13 +279,13 @@ mod tests {
expiration: ExpirationConfig {
ttl: DurationPolicyConfig {
allowed: true,
max: Some(Duration::from_secs(7200)),
max: Some(Duration::from_hours(2)),
},
..ExpirationConfig::default()
},
});

let metadata = make_metadata(ExpirationPolicy::TimeToLive(Duration::from_secs(3600)));
let metadata = make_metadata(ExpirationPolicy::TimeToLive(Duration::from_hours(1)));
usecases.validate("test", &metadata).unwrap();
}

Expand All @@ -295,13 +295,13 @@ mod tests {
expiration: ExpirationConfig {
ttl: DurationPolicyConfig {
allowed: true,
max: Some(Duration::from_secs(3600)),
max: Some(Duration::from_hours(1)),
},
..ExpirationConfig::default()
},
});

let metadata = make_metadata(ExpirationPolicy::TimeToLive(Duration::from_secs(3600)));
let metadata = make_metadata(ExpirationPolicy::TimeToLive(Duration::from_hours(1)));
usecases.validate("test", &metadata).unwrap();
}

Expand All @@ -311,13 +311,13 @@ mod tests {
expiration: ExpirationConfig {
ttl: DurationPolicyConfig {
allowed: true,
max: Some(Duration::from_secs(3600)),
max: Some(Duration::from_hours(1)),
},
..ExpirationConfig::default()
},
});

let metadata = make_metadata(ExpirationPolicy::TimeToLive(Duration::from_secs(7200)));
let metadata = make_metadata(ExpirationPolicy::TimeToLive(Duration::from_hours(2)));
let err = usecases.validate("test", &metadata).unwrap_err();
assert!(matches!(err, UseCaseError::DurationExceeded { .. }));
}
Expand All @@ -336,7 +336,7 @@ mod tests {
},
});

let metadata = make_metadata(ExpirationPolicy::TimeToIdle(Duration::from_secs(3600)));
let metadata = make_metadata(ExpirationPolicy::TimeToIdle(Duration::from_hours(1)));
let err = usecases.validate("test", &metadata).unwrap_err();
assert!(matches!(err, UseCaseError::PolicyNotAllowed { .. }));
}
Expand All @@ -347,13 +347,13 @@ mod tests {
expiration: ExpirationConfig {
tti: DurationPolicyConfig {
allowed: true,
max: Some(Duration::from_secs(7200)),
max: Some(Duration::from_hours(2)),
},
..ExpirationConfig::default()
},
});

let metadata = make_metadata(ExpirationPolicy::TimeToIdle(Duration::from_secs(3600)));
let metadata = make_metadata(ExpirationPolicy::TimeToIdle(Duration::from_hours(1)));
usecases.validate("test", &metadata).unwrap();
}

Expand All @@ -363,13 +363,13 @@ mod tests {
expiration: ExpirationConfig {
tti: DurationPolicyConfig {
allowed: true,
max: Some(Duration::from_secs(3600)),
max: Some(Duration::from_hours(1)),
},
..ExpirationConfig::default()
},
});

let metadata = make_metadata(ExpirationPolicy::TimeToIdle(Duration::from_secs(7200)));
let metadata = make_metadata(ExpirationPolicy::TimeToIdle(Duration::from_hours(2)));
let err = usecases.validate("test", &metadata).unwrap_err();
assert!(matches!(err, UseCaseError::DurationExceeded { .. }));
}
Expand All @@ -391,7 +391,7 @@ mod tests {
let metadata = make_metadata(ExpirationPolicy::Manual);
usecases.validate("test", &metadata).unwrap();

let metadata = make_metadata(ExpirationPolicy::TimeToLive(Duration::from_secs(3600)));
let metadata = make_metadata(ExpirationPolicy::TimeToLive(Duration::from_hours(1)));
usecases.validate("test", &metadata).unwrap();
}
}
4 changes: 2 additions & 2 deletions objectstore-server/tests/limits.rs
Original file line number Diff line number Diff line change
Expand Up @@ -589,7 +589,7 @@ async fn test_usecase_expiration_policy() -> Result<()> {
manual: ManualPolicyConfig { allowed: false },
ttl: DurationPolicyConfig {
allowed: true,
max: Some(Duration::from_secs(90 * 24 * 3600)),
max: Some(Duration::from_hours(90 * 24)),
},
tti: DurationPolicyConfig {
allowed: false,
Expand All @@ -609,7 +609,7 @@ async fn test_usecase_expiration_policy() -> Result<()> {
},
tti: DurationPolicyConfig {
allowed: true,
max: Some(Duration::from_secs(90 * 24 * 3600)),
max: Some(Duration::from_hours(90 * 24)),
},
},
},
Expand Down
18 changes: 9 additions & 9 deletions objectstore-service/src/backend/bigtable.rs
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,7 @@ const CONNECT_TIMEOUT: Duration = Duration::from_secs(10);
/// reconnection, resulting in increased latency for those requests.
const MAX_CHANNEL_AGE: Option<Duration> = Some(Duration::from_mins(50));
/// Time to debounce bumping an object with configured TTI.
const TTI_DEBOUNCE: Duration = Duration::from_secs(24 * 3600); // 1 day
const TTI_DEBOUNCE: Duration = Duration::from_hours(24);
/// Permission scopes required for accessing the BigTable data API.
const TOKEN_SCOPES: &[&str] = &["https://www.googleapis.com/auth/bigtable.data"];

Expand Down Expand Up @@ -1441,15 +1441,15 @@ mod tests {
async fn test_tti_bump() -> Result<()> {
let backend = create_test_backend().await?;
// TTI must exceed TTI_DEBOUNCE (1 day) for the bump condition to be reachable.
let tti = Duration::from_secs(2 * 24 * 3600); // 2 days
let tti = Duration::from_hours(2 * 24);
let metadata = Metadata {
expiration_policy: ExpirationPolicy::TimeToIdle(tti),
..Default::default()
};

// Pass a backdated `now` so the written expiry is inside the bump window:
// expire_at = past_now + tti = now - TTI_DEBOUNCE - 60s (stale but not yet expired).
let past_now = SystemTime::now() - TTI_DEBOUNCE - Duration::from_secs(60);
let past_now = SystemTime::now() - TTI_DEBOUNCE - Duration::from_mins(1);

// Sub-sequence 1: get_object triggers bump (loaded=true path).
let id1 = make_id();
Expand Down Expand Up @@ -1494,7 +1494,7 @@ mod tests {

let id = make_id();
// TTI must exceed TTI_DEBOUNCE (1 day) for the bump condition to be reachable.
let tti = Duration::from_secs(2 * 24 * 3600); // 2 days
let tti = Duration::from_hours(2 * 24);
let metadata = Metadata {
expiration_policy: ExpirationPolicy::TimeToIdle(tti),
..Default::default()
Expand Down Expand Up @@ -1734,7 +1734,7 @@ mod tests {

let hv_id = make_id();
let lt_id = ObjectId::random(hv_id.context().clone());
let expiration_policy = ExpirationPolicy::TimeToLive(Duration::from_secs(3600));
let expiration_policy = ExpirationPolicy::TimeToLive(Duration::from_hours(1));
let tombstone = Tombstone {
target: lt_id.clone(),
expiration_policy,
Expand Down Expand Up @@ -1971,7 +1971,7 @@ mod tests {
// A future cell timestamp (now + TTL) is required so `expires_before` does not
// immediately filter the row.
let id = make_id();
let ttl = Duration::from_secs(2 * 24 * 3600);
let ttl = Duration::from_hours(2 * 24);
write_legacy_tombstone(&backend, &id, ExpirationPolicy::TimeToLive(ttl), None).await?;

let TieredMetadata::Tombstone(t) = backend.get_tiered_metadata(&id).await? else {
Expand All @@ -1992,11 +1992,11 @@ mod tests {
let id = make_id();
let path = id.as_storage_path().to_string().into_bytes();

let tti = Duration::from_secs(2 * 24 * 3600); // must exceed TTI_DEBOUNCE (1 day)
let tti = Duration::from_hours(2 * 24); // must exceed TTI_DEBOUNCE (1 day)

// Place time_expires just inside the bump window: past `now + tti - TTI_DEBOUNCE`
// but still in the future so `expires_before(now)` does not filter the row.
let old_deadline = SystemTime::now() + tti - TTI_DEBOUNCE - Duration::from_secs(60);
let old_deadline = SystemTime::now() + tti - TTI_DEBOUNCE - Duration::from_mins(1);
write_legacy_tombstone(
&backend,
&id,
Expand Down Expand Up @@ -2113,7 +2113,7 @@ mod tests {
let new_lt_id = ObjectId::random(id.context().clone());
let new_tombstone = Tombstone {
target: new_lt_id.clone(),
expiration_policy: ExpirationPolicy::TimeToLive(Duration::from_secs(3600)),
expiration_policy: ExpirationPolicy::TimeToLive(Duration::from_hours(1)),
};
let committed = backend
.compare_and_write(&id, None, TieredWrite::Tombstone(new_tombstone))
Expand Down
8 changes: 4 additions & 4 deletions objectstore-service/src/backend/gcs.rs
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ const DEFAULT_ENDPOINT: &str = "https://storage.googleapis.com";
/// Permission scopes required for accessing GCS.
const TOKEN_SCOPES: &[&str] = &["https://www.googleapis.com/auth/devstorage.read_write"];
/// Time to debounce bumping an object with configured TTI.
const TTI_DEBOUNCE: Duration = Duration::from_secs(24 * 3600); // 1 day
const TTI_DEBOUNCE: Duration = Duration::from_hours(24);
/// How many times to retry failed operations.
const REQUEST_RETRY_COUNT: usize = 2;

Expand Down Expand Up @@ -1285,7 +1285,7 @@ mod tests {

let id = make_id();
// TTI must exceed TTI_DEBOUNCE (1 day) for the bump condition to be reachable.
let tti = Duration::from_secs(2 * 24 * 3600); // 2 days
let tti = Duration::from_hours(2 * 24);
let metadata = Metadata {
content_type: "text/plain".into(),
expiration_policy: ExpirationPolicy::TimeToIdle(tti),
Expand All @@ -1299,7 +1299,7 @@ mod tests {
// Manually set custom_time to just inside the bump window.
// The bump condition is: expire_at < now + tti - TTI_DEBOUNCE.
let object_url = backend.object_url(&id)?;
let old_deadline = SystemTime::now() + tti - TTI_DEBOUNCE - Duration::from_secs(60);
let old_deadline = SystemTime::now() + tti - TTI_DEBOUNCE - Duration::from_mins(1);
backend.update_custom_time(object_url, old_deadline).await?;

// First get_metadata sees the old timestamp and triggers a TTI bump.
Expand Down Expand Up @@ -1328,7 +1328,7 @@ mod tests {

let id = make_id();
// TTI must exceed TTI_DEBOUNCE (1 day) for the bump condition to be reachable.
let tti = Duration::from_secs(2 * 24 * 3600); // 2 days
let tti = Duration::from_hours(2 * 24);
let metadata = Metadata {
content_type: "text/plain".into(),
expiration_policy: ExpirationPolicy::TimeToIdle(tti),
Expand Down
4 changes: 2 additions & 2 deletions objectstore-service/src/backend/in_memory.rs
Original file line number Diff line number Diff line change
Expand Up @@ -516,7 +516,7 @@ mod tests {
let id = make_id();
let metadata = Metadata {
content_type: "text/plain".into(),
expiration_policy: ExpirationPolicy::TimeToIdle(Duration::from_secs(3600)),
expiration_policy: ExpirationPolicy::TimeToIdle(Duration::from_hours(1)),
origin: Some("203.0.113.42".into()),
custom: [("foo".into(), "bar".into())].into(),
..Default::default()
Expand Down Expand Up @@ -556,7 +556,7 @@ mod tests {
assert_eq!(meta.content_type, "text/plain".to_string());
assert_eq!(
meta.expiration_policy,
ExpirationPolicy::TimeToIdle(Duration::from_secs(3600))
ExpirationPolicy::TimeToIdle(Duration::from_hours(1))
);
assert_eq!(meta.origin, Some("203.0.113.42".into()));
assert_eq!(meta.custom, [("foo".into(), "bar".into())].into());
Expand Down
6 changes: 3 additions & 3 deletions objectstore-service/src/backend/local_fs.rs
Original file line number Diff line number Diff line change
Expand Up @@ -468,7 +468,7 @@ mod tests {

let metadata = Metadata {
content_type: "text/plain".into(),
expiration_policy: ExpirationPolicy::TimeToIdle(Duration::from_secs(3600)),
expiration_policy: ExpirationPolicy::TimeToIdle(Duration::from_hours(1)),
time_created: Some(SystemTime::now()),
time_expires: None,
compression: Some(Compression::Zstd),
Expand Down Expand Up @@ -565,7 +565,7 @@ mod tests {
let id = make_id();
let metadata = Metadata {
content_type: "text/plain".into(),
expiration_policy: ExpirationPolicy::TimeToIdle(Duration::from_secs(3600)),
expiration_policy: ExpirationPolicy::TimeToIdle(Duration::from_hours(1)),
origin: Some("203.0.113.42".into()),
custom: [("foo".into(), "bar".into())].into(),
..Default::default()
Expand Down Expand Up @@ -605,7 +605,7 @@ mod tests {
assert_eq!(meta.content_type, "text/plain".to_string());
assert_eq!(
meta.expiration_policy,
ExpirationPolicy::TimeToIdle(Duration::from_secs(3600))
ExpirationPolicy::TimeToIdle(Duration::from_hours(1))
);
assert_eq!(meta.origin, Some("203.0.113.42".into()));
assert_eq!(meta.custom, [("foo".into(), "bar".into())].into());
Expand Down
2 changes: 1 addition & 1 deletion objectstore-service/src/backend/s3_compatible.rs
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ const GCS_CUSTOM_PREFIX: &str = "x-goog-meta-";
/// See: <https://cloud.google.com/storage/docs/xml-api/reference-headers#xgoogcustomtime>
const GCS_CUSTOM_TIME: &str = "x-goog-custom-time";
/// Time to debounce bumping an object with configured TTI.
const TTI_DEBOUNCE: Duration = Duration::from_secs(24 * 3600); // 1 day
const TTI_DEBOUNCE: Duration = Duration::from_hours(24);

/// An authentication token that can be passed as a bearer credential.
pub trait Token: Send + Sync {
Expand Down
4 changes: 2 additions & 2 deletions objectstore-service/src/backend/tiered.rs
Original file line number Diff line number Diff line change
Expand Up @@ -983,7 +983,7 @@ mod tests {
let payload = vec![0xCDu8; 2 * 1024 * 1024]; // 2 MiB, over threshold
let metadata_in = Metadata {
content_type: "image/png".into(),
expiration_policy: ExpirationPolicy::TimeToLive(Duration::from_secs(3600)),
expiration_policy: ExpirationPolicy::TimeToLive(Duration::from_hours(1)),
origin: Some("10.0.0.1".into()),
..Default::default()
};
Expand Down Expand Up @@ -1624,7 +1624,7 @@ mod tests {
let id = make_id("mp-single");
let metadata = Metadata {
content_type: "application/octet-stream".into(),
expiration_policy: ExpirationPolicy::TimeToLive(Duration::from_secs(3600)),
expiration_policy: ExpirationPolicy::TimeToLive(Duration::from_hours(1)),
..Default::default()
};
let payload = vec![0xABu8; 2 * 1024 * 1024]; // 2 MiB
Expand Down
Loading
Loading