You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: ARCHITECTURE.md
+4-4Lines changed: 4 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -13,18 +13,18 @@ Main Thread Worker Thread
13
13
│ │
14
14
│── Start replay ──→ │
15
15
│ Fetch data slice from API
16
-
│ Cache to disk (.gz file)
17
-
│ ←── message (sliceKey, path) ── │
16
+
│ Cache to disk (.gz/.zst file)
17
+
│ ←── message (sliceKey, path, size) ──
18
18
│ Fetch next slice...
19
19
│ │
20
20
Read cached file from disk │
21
-
Decompress (gunzip) │
21
+
Decompress (gzip/zstd) │
22
22
Split by newlines │
23
23
Parse JSON messages │
24
24
Yield {localTimestamp, message} │
25
25
```
26
26
27
-
Worker thread pre-fetches and caches slices while the main thread processes the current one. This keeps I/O and CPU pipelined.
27
+
Worker thread pre-fetches and caches slices while the main thread processes the current one. This keeps I/O and CPU pipelined. Normal replay fetches the first and last minute as one-minute requests, uses the returned suggested slice size for the middle of the range, and caches multi-minute responses as start-minute files with a `.size-{minutes}` suffix. One-minute cache paths keep the legacy filename.
0 commit comments