Skip to content

Commit c4f552e

Browse files
chore: check server time to delete shred slots
1 parent c94e121 commit c4f552e

File tree

3 files changed

+15
-9
lines changed

3 files changed

+15
-9
lines changed

src/atoms.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
import { atom } from "jotai";
2-
import { slotsPerLeader } from "./consts";
2+
import { nsPerMs, slotsPerLeader } from "./consts";
33
import { atomWithImmer } from "jotai-immer";
44
import {
55
bootProgressAtom,
66
estimatedSlotDurationAtom,
77
identityKeyAtom,
8+
serverTimeNanosAtom,
89
skippedSlotsAtom,
910
startupProgressAtom,
1011
} from "./api/atoms";
@@ -693,3 +694,9 @@ export const [
693694
}),
694695
];
695696
})();
697+
698+
export const serverTimeMsAtom = atom((get) => {
699+
const serverTimeNanos = get(serverTimeNanosAtom);
700+
if (serverTimeNanos == null) return undefined;
701+
return Math.round(serverTimeNanos / nsPerMs);
702+
});

src/features/Overview/ShredsProgression/atoms.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import { maxShredEvent, ShredEvent } from "../../../api/entities";
44
import { delayMs, xRangeMs } from "./const";
55
import { nsPerMs, slotsPerLeader } from "../../../consts";
66
import { getSlotGroupLeader } from "../../../utils";
7+
import { serverTimeMsAtom } from "../../../atoms";
78

89
type ShredEventTsDeltaMs = number | undefined;
910
/**
@@ -150,11 +151,10 @@ export function createLiveShredsAtoms() {
150151

151152
set(_liveShredsAtom, (prev) => {
152153
const slotRange = get(_slotRangeAtom);
154+
const now = get(serverTimeMsAtom) ?? Date.now();
153155

154156
if (!prev || !slotRange) return prev;
155157

156-
const now = Date.now();
157-
158158
if (isStartup) {
159159
// During startup, we only show event dots, not spans. Delete slots without events in chart view
160160
for (

src/features/Overview/ShredsProgression/shredsProgressionPlugin.ts

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,11 @@ import {
1818
shredReplayStartedColor,
1919
shredSkippedColor,
2020
} from "../../../colors";
21-
import { skippedClusterSlotsAtom } from "../../../atoms";
21+
import { serverTimeMsAtom, skippedClusterSlotsAtom } from "../../../atoms";
2222
import { clamp } from "lodash";
2323
import { ShredEvent } from "../../../api/entities";
2424
import { getSlotGroupLabelId, getSlotLabelId } from "./utils";
25-
import { nsPerMs, slotsPerLeader } from "../../../consts";
26-
import { serverTimeNanosAtom } from "../../../api/atoms";
25+
import { slotsPerLeader } from "../../../consts";
2726

2827
const store = getDefaultStore();
2928
export const shredsXScaleKey = "shredsXScaleKey";
@@ -54,15 +53,15 @@ export function shredsProgressionPlugin(
5453
const slotRange = store.get(atoms.range);
5554
const minCompletedSlot = store.get(atoms.minCompletedSlot);
5655
const skippedSlotsCluster = store.get(skippedClusterSlotsAtom);
57-
const serverTimeNanos = store.get(serverTimeNanosAtom);
56+
const serverTimeMs = store.get(serverTimeMsAtom);
5857

5958
const maxX = u.scales[shredsXScaleKey].max;
6059

6160
if (
6261
!liveShreds ||
6362
!slotRange ||
6463
maxX == null ||
65-
serverTimeNanos == null
64+
serverTimeMs == null
6665
) {
6766
return;
6867
}
@@ -77,7 +76,7 @@ export function shredsProgressionPlugin(
7776
}
7877

7978
// Offset to convert shred event delta to chart x value
80-
const delayedNow = Math.trunc(serverTimeNanos / nsPerMs) - delayMs;
79+
const delayedNow = serverTimeMs - delayMs;
8180

8281
const tsXValueOffset = delayedNow - liveShreds.referenceTs;
8382

0 commit comments

Comments
 (0)