Skip to content

Commit eaf46ba

Browse files
authored
engine v1 improved dequeue selection algorithm (#1632)
* engine v1 fairness improvements (env based queue selection) * Add ability to bias env selection by concurrency limit and capacity * Add some randomization to the list of queues within each evn * Configure biases using env vars * Typo * revert v3 catalog project ref change * Fix v2 marqs
1 parent 16cf357 commit eaf46ba

15 files changed

+1746
-550
lines changed

.vscode/launch.json

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,15 @@
2222
"cwd": "${workspaceFolder}/apps/webapp",
2323
"sourceMaps": true
2424
},
25+
{
26+
"type": "node-terminal",
27+
"request": "launch",
28+
"name": "Debug fairDequeuingStrategy.test.ts",
29+
"command": "pnpm run test -t FairDequeuingStrategy",
30+
"envFile": "${workspaceFolder}/.env",
31+
"cwd": "${workspaceFolder}/apps/webapp",
32+
"sourceMaps": true
33+
},
2534
{
2635
"type": "chrome",
2736
"request": "launch",

apps/webapp/app/env.server.ts

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -199,6 +199,8 @@ const EnvironmentSchema = z.object({
199199
INTERNAL_OTEL_TRACE_INSTRUMENT_PRISMA_ENABLED: z.string().default("0"),
200200
INTERNAL_OTEL_TRACE_DISABLED: z.string().default("0"),
201201

202+
INTERNAL_OTEL_LOG_EXPORTER_URL: z.string().optional(),
203+
202204
ORG_SLACK_INTEGRATION_CLIENT_ID: z.string().optional(),
203205
ORG_SLACK_INTEGRATION_CLIENT_SECRET: z.string().optional(),
204206

@@ -221,9 +223,12 @@ const EnvironmentSchema = z.object({
221223
.number()
222224
.int()
223225
.default(60 * 1000 * 15),
224-
MARQS_SHARED_QUEUE_SELECTION_COUNT: z.coerce.number().int().default(36),
225-
MARQS_DEV_QUEUE_SELECTION_COUNT: z.coerce.number().int().default(12),
226+
MARQS_SHARED_QUEUE_LIMIT: z.coerce.number().int().default(1000),
227+
MARQS_DEV_QUEUE_LIMIT: z.coerce.number().int().default(1000),
226228
MARQS_MAXIMUM_NACK_COUNT: z.coerce.number().int().default(64),
229+
MARQS_CONCURRENCY_LIMIT_BIAS: z.coerce.number().default(0.75),
230+
MARQS_AVAILABLE_CAPACITY_BIAS: z.coerce.number().default(0.3),
231+
MARQS_QUEUE_AGE_RANDOMIZATION_BIAS: z.coerce.number().default(0.25),
227232

228233
PROD_TASK_HEARTBEAT_INTERVAL_MS: z.coerce.number().int().optional(),
229234

0 commit comments

Comments
 (0)