Skip to content

Commit da95f63

Browse files
chore: check server time to delete shred slots
1 parent 7b92f53 commit da95f63

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";
@@ -695,3 +696,9 @@ export const [
695696
}),
696697
];
697698
})();
699+
700+
export const serverTimeMsAtom = atom((get) => {
701+
const serverTimeNanos = get(serverTimeNanosAtom);
702+
if (serverTimeNanos == null) return undefined;
703+
return Math.round(serverTimeNanos / nsPerMs);
704+
});

src/features/Overview/ShredsProgression/atoms.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import { delayMs, xRangeMs } from "./const";
55
import { nsPerMs, slotsPerLeader } from "../../../consts";
66
import { getSlotGroupLeader } from "../../../utils";
77
import { startupFinalTurbineHeadAtom } from "../../StartupProgress/atoms";
8+
import { serverTimeMsAtom } from "../../../atoms";
89

910
type ShredEventTsDeltaMs = number | undefined;
1011
/**
@@ -169,11 +170,10 @@ export function createLiveShredsAtoms() {
169170

170171
set(_liveShredsAtom, (prev) => {
171172
const slotRange = get(_slotRangeAtom);
173+
const now = get(serverTimeMsAtom) ?? Date.now();
172174

173175
if (!prev || !slotRange) return prev;
174176

175-
const now = Date.now();
176-
177177
if (isStartup) {
178178
// During startup, we only show event dots, not spans. Delete slots without events in chart view
179179
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";
@@ -56,15 +55,15 @@ export function shredsProgressionPlugin(
5655
const minCompletedSlot = store.get(atoms.minCompletedSlot);
5756
const skippedSlotsCluster = store.get(skippedClusterSlotsAtom);
5857
const rangeAfterStartup = store.get(atoms.rangeAfterStartup);
59-
const serverTimeNanos = store.get(serverTimeNanosAtom);
58+
const serverTimeMs = store.get(serverTimeMsAtom);
6059

6160
const maxX = u.scales[shredsXScaleKey].max;
6261

6362
if (
6463
!liveShreds ||
6564
!slotRange ||
6665
maxX == null ||
67-
serverTimeNanos == null
66+
serverTimeMs == null
6867
) {
6968
return;
7069
}
@@ -81,7 +80,7 @@ export function shredsProgressionPlugin(
8180
}
8281

8382
// Offset to convert shred event delta to chart x value
84-
const delayedNow = Math.trunc(serverTimeNanos / nsPerMs) - delayMs;
83+
const delayedNow = serverTimeMs - delayMs;
8584

8685
const tsXValueOffset = delayedNow - liveShreds.referenceTs;
8786

0 commit comments

Comments
 (0)