Skip to content

feat!: create the cache deletion job instead of the seeding job (MAPCO-11265) - #119

Open
almog8k wants to merge 6 commits into
masterfrom
feat/cache-deletion-job-MAPCO-11265
Open

feat!: create the cache deletion job instead of the seeding job (MAPCO-11265)#119
almog8k wants to merge 6 commits into
masterfrom
feat/cache-deletion-job-MAPCO-11265

Conversation

@almog8k

@almog8k almog8k commented Aug 12, 2026

Copy link
Copy Markdown
Collaborator
Question Answer
Bug fix
New feature
Breaking change
Deprecations
Documentation
Tests added
Chore

Related issues: MAPCO-11265 (epic MAPCO-11261)

Further information:

Replaces the MapProxy tile-cache seeding job with a cache deletion job. On ingestion finalize, overseer now tells the cleaner worker which Redis tile keys to drop instead of driving mapproxy-seed; tiles repopulate lazily on cache miss.

Cleaner resolves its strategy from a combined job+task token, so the job type selects the behaviour while the task type stays tiles-deletion:

flow job type task params
update Update_Delete_Cache tile ranges over the ingested footprint, z0..maxZoom
swap-update Swap_Delete_Cache whole-prefix wipe + delaySeconds

The Redis key prefix is composed as ${cacheName}_${grid} (mapproxy loader.py's rule) because mapproxy-api reports neither a prefix nor a grid. Verified against a production key and pinned as a regression test. GEODETIC_GRIDS therefore gates construction: footprintToTileRanges only implements the geodetic grid, and against any other it would return plausible ranges for the wrong tiles.

Not deployable on its own. job-tracker has no handler or config entry for the two new job types — getJobHandler throws BadRequestError for anything outside its switch — so it would reject every task event for these jobs. Ticket pending. It also completes a job on completedTasks === taskCount, which needs a decision since tasks are streamed after the job is created. Cleaner work is MAPCO-11263/11264; both dependency pins are CI tarballs to be swapped for published versions before production (MAPCO-11267).

BREAKING CHANGE: overseer no longer creates seeding jobs. Ingestion finalize now creates an Update_Delete_Cache or Swap_Delete_Cache job, and the Ingestion_Seed job type is no longer produced.

image image

Adds the Update_Delete_Cache / Swap_Delete_Cache job types and the

cacheDeletion task config, wired through to the chart in the same change.

Pins raster-shared to the build exporting GEODETIC_GRIDS.
Composes the redis key prefix from the mapproxy cache name and the

configured grid, emits a prefix-wipe task for swap-update and streamed

range tasks for update, and fails a partially-populated job explicitly.
…O-11265)

Both ingestion finalize handlers now create an Update_Delete_Cache or

Swap_Delete_Cache job instead of a seeding job, and SeedingJobCreator

with its SeedMode and Seed* param types is removed.

BREAKING CHANGE: overseer no longer creates seeding jobs.
…1265)

The previous toMatchObject assertion used an empty parameters object,

which matches anything, so ingestionJobId and ingestionJobType were

unasserted. Verified the new assertion fails when they are removed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant