Problem
Raw NormEvent has a version field documented as the ETag or versionId that lets the simulator detect mutation and invalidation, but the replay policies key only on object_id. A raw replay trace with the same object_id and changing versions can therefore report false cache hits across object versions.
This does not affect current s3tap or IBM adapters much because they set version to None, but it affects the documented raw NormEvent input and future version-aware ingestion.
Impact
The model can overstate cacheability for traces that encode object mutations as version changes rather than explicit Put or Delete events.
Expected direction
Either make version part of the cache identity or treat a version change as an invalidation before the next demand access. If version remains unsupported, the field documentation and analyze docs should say it is currently ignored.
Relevant paths
- crates/s3tap-replay/src/trace.rs::NormEvent
- crates/s3tap-replay/src/driver.rs::run / eval_all_caps / belady_hit_rates / eval_admission_caps
- crates/s3tap-replay/src/bytes.rs::replay_bytes
- crates/s3tap-replay/src/hybrid.rs
Problem
Raw NormEvent has a version field documented as the ETag or versionId that lets the simulator detect mutation and invalidation, but the replay policies key only on object_id. A raw replay trace with the same object_id and changing versions can therefore report false cache hits across object versions.
This does not affect current s3tap or IBM adapters much because they set version to None, but it affects the documented raw NormEvent input and future version-aware ingestion.
Impact
The model can overstate cacheability for traces that encode object mutations as version changes rather than explicit Put or Delete events.
Expected direction
Either make version part of the cache identity or treat a version change as an invalidation before the next demand access. If version remains unsupported, the field documentation and analyze docs should say it is currently ignored.
Relevant paths