Skip to content

Commit dbc5b78

Browse files
create first-created-at on the fly for stats api (#675)
1 parent b5acf0b commit dbc5b78

File tree

4 files changed

+1
-41
lines changed

4 files changed

+1
-41
lines changed

server/src/handlers/http/logstream.rs

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -266,18 +266,6 @@ pub async fn get_stats(req: HttpRequest) -> Result<impl Responder, StreamError>
266266
if first_event_at_empty(&stream_name) {
267267
let store = CONFIG.storage().get_object_store();
268268
if let Ok(Some(first_event_at)) = catalog::get_first_event(store, &stream_name).await {
269-
if let Err(err) = CONFIG
270-
.storage()
271-
.get_object_store()
272-
.put_first_event_at(&stream_name, &first_event_at)
273-
.await
274-
{
275-
log::error!(
276-
"Failed to update first_event_at in metadata for stream {:?} {err:?}",
277-
stream_name
278-
);
279-
}
280-
281269
if let Err(err) =
282270
metadata::STREAM_INFO.set_first_event_at(&stream_name, Some(first_event_at))
283271
{

server/src/storage.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ pub struct ObjectStoreFormat {
7171
#[serde(rename = "created-at")]
7272
pub created_at: String,
7373
#[serde(rename = "first-event-at")]
74+
#[serde(skip_serializing_if = "Option::is_none")]
7475
pub first_event_at: Option<String>,
7576
pub owner: Owner,
7677
pub permissions: Vec<Permisssion>,

server/src/storage/object_storage.rs

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -161,23 +161,6 @@ pub trait ObjectStorage: Sync + 'static {
161161
self.put_object(&path, to_bytes(&stream_metadata)).await
162162
}
163163

164-
async fn put_first_event_at(
165-
&self,
166-
stream_name: &str,
167-
first_event_at: &str,
168-
) -> Result<(), ObjectStorageError> {
169-
let path = stream_json_path(stream_name);
170-
let stream_metadata = self.get_object(&path).await?;
171-
let first_event_ts =
172-
serde_json::to_value(first_event_at).expect("first_event_at is perfectly serializable");
173-
let mut stream_metadata: serde_json::Value =
174-
serde_json::from_slice(&stream_metadata).expect("parseable config is valid json");
175-
176-
stream_metadata["first-event-at"] = first_event_ts;
177-
178-
self.put_object(&path, to_bytes(&stream_metadata)).await
179-
}
180-
181164
async fn put_metadata(
182165
&self,
183166
parseable_metadata: &StorageMetadata,

server/src/storage/retention.rs

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -245,18 +245,6 @@ mod action {
245245
}
246246

247247
if let Ok(Some(first_event_at)) = catalog::get_first_event(store, &stream_name).await {
248-
if let Err(err) = CONFIG
249-
.storage()
250-
.get_object_store()
251-
.put_first_event_at(&stream_name, &first_event_at)
252-
.await
253-
{
254-
log::error!(
255-
"Failed to update first_event_at in metadata for stream {:?} {err:?}",
256-
stream_name
257-
);
258-
}
259-
260248
if let Err(err) =
261249
metadata::STREAM_INFO.set_first_event_at(&stream_name, Some(first_event_at))
262250
{

0 commit comments

Comments
 (0)