tangled
alpha
login
or
join now
t1c.dev
/
rocksky
forked from
rocksky.app/rocksky
2
fork
atom
A decentralized music tracking and discovery platform built on AT Protocol 🎵
2
fork
atom
overview
issues
pulls
pipelines
Increase page size and reduce streaming delays
tsiry-sandratraina.com
1 month ago
5c024c9a
66856f33
+6
-13
1 changed file
expand all
collapse all
unified
split
tap
src
main.ts
+6
-13
tap/src/main.ts
···
6
6
import { omit } from "@es-toolkit/es-toolkit/compat";
7
7
import type { SelectEvent } from "./schema/event.ts";
8
8
9
9
-
const PAGE_SIZE = 50;
10
10
-
const PAGE_DELAY_MS = 3;
11
11
-
const YIELD_EVERY_N_PAGES = 1; // Yield after every page
12
12
-
const MAX_BUFFER_SIZE = 64 * 1024; // 64KB buffer limit
13
13
-
const BACKPRESSURE_CHECK_INTERVAL = 10; // Check every 10 events
14
14
-
const MESSAGE_DELAY_MS = 1; // Add tiny delay between messages
9
9
+
const PAGE_SIZE = 100; // Larger batches for faster streaming
10
10
+
const YIELD_EVERY_N_PAGES = 5; // Yield every 5 pages (2500 events)
11
11
+
const MAX_BUFFER_SIZE = 256 * 1024; // 256KB buffer limit
12
12
+
const BACKPRESSURE_CHECK_INTERVAL = 100; // Check every 100 events
15
13
const VERBOSE_LOGGING = false; // Set to true for detailed message tracking
16
14
17
15
interface ClientState {
···
190
188
return;
191
189
}
192
190
193
193
-
if (MESSAGE_DELAY_MS > 0 && i % 5 === 0) {
194
194
-
await new Promise((resolve) =>
195
195
-
setTimeout(resolve, MESSAGE_DELAY_MS),
196
196
-
);
197
197
-
}
198
198
-
191
191
+
// Check backpressure periodically (no message delay for speed)
199
192
if (totalEvents % BACKPRESSURE_CHECK_INTERVAL === 0) {
200
193
await waitForBackpressure(socket);
201
194
}
···
205
198
page++;
206
199
207
200
if (hasMore && page % YIELD_EVERY_N_PAGES === 0) {
208
208
-
await new Promise((resolve) => setTimeout(resolve, PAGE_DELAY_MS));
201
201
+
await new Promise((resolve) => setTimeout(resolve, 0));
209
202
}
210
203
}
211
204