From 3bfec6d7fffed7a5e255f0248e010bfcf37cba70 Mon Sep 17 00:00:00 2001 From: Muki Kiboigo Date: Tue, 21 Jul 2026 08:26:12 -0700 Subject: [PATCH] skip body dupe on expired without validators on Cache.get --- src/network/cache/SqliteCache.zig | 32 +++++++++++++++++++++---------- 1 file changed, 22 insertions(+), 10 deletions(-) diff --git a/src/network/cache/SqliteCache.zig b/src/network/cache/SqliteCache.zig index ba9552f94..41ef7c99e 100644 --- a/src/network/cache/SqliteCache.zig +++ b/src/network/cache/SqliteCache.zig @@ -198,16 +198,6 @@ pub fn get(self: *SqliteCache, arena: std.mem.Allocator, req: CacheRequest) !?Ca try headers.append(arena, .{ .name = name, .value = value }); } - var body_entry = try conn.row( - "select data from body where url = $1", - .{req.url}, - ) orelse { - log.debug(.cache, "miss", .{ .url = req.url, .reason = "missing body " }); - return null; - }; - defer body_entry.deinit(); - const body = try arena.dupe(u8, body_entry.get(Blob, 0).data); - const metadata = CachedMetadata{ .url = try arena.dupeZ(u8, req.url), .content_type = content_type, @@ -225,6 +215,28 @@ pub fn get(self: *SqliteCache, arena: std.mem.Allocator, req: CacheRequest) !?Ca }; const expired = metadata.isStale(req.timestamp); + + // If expired with no validators, this entry is going to get evicted anyways so we can + // skip the body fetch + dupe. + if (expired and !metadata.hasValidators()) { + log.debug(.cache, "hit", .{ .url = req.url, .expired = true, .body = "skipped" }); + return .{ + .metadata = metadata, + .data = .{ .buffer = "" }, + .expired = true, + }; + } + + var body_entry = try conn.row( + "select data from body where url = $1", + .{req.url}, + ) orelse { + log.debug(.cache, "miss", .{ .url = req.url, .reason = "missing body " }); + return null; + }; + defer body_entry.deinit(); + const body = try arena.dupe(u8, body_entry.get(Blob, 0).data); + log.debug(.cache, "hit", .{ .url = req.url, .expired = expired }); return .{