Smithsonian / Smithsonian/layup

Per-object timeout in the batch path

Open
#492 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
Python
Stars
10
Forks
2
Avg merge
1d 43m
Merged PRs (30d)
58

Description

One object that never converges currently stalls the whole chunk. Fitting 108 short arcs in a single orbitfit call ran over an hour with no output; the same 108 fitted individually took under a minute of compute, because two of them grind indefinitely and nothing interrupts them.

At catalogue scale that is the difference between a run finishing and not. The pathological rate on short MPC arcs measured 1.9% at 7 days and 7.2% at 14 (#465). On 1.5M objects that is tens of thousands of fits that never return.

Suggested: a per-object wall-clock budget in the chunk loop, defaulting to something generous. On expiry, record the object with a distinct flag and move on. The result should say which objects were abandoned rather than silently omitting them.

This also makes a run resumable in a useful way — a chunk that hits the budget still produces output for everything else in it.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by locating the chunk loop behind the orbitfit call and reading how per-object results and failures are currently recorded. Define the timeout and abandoned-object status there, then verify that a timed-out object is reported while the remaining objects still produce output and the chunk can be resumed.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
data
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
52/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.