openml / openml/server-api

Proposal: change `data_processed` table to record every processing attempt.

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

Nobody has claimed this yet.

database enhancement proposal
Dominant language
Python
Stars
16
Forks
50
PR merge metrics
No merged PRs in 30d

Description

The current design of data_processed has a primary key on did, evaluation_id, so one particular row is updated every time a dataset is attempted to be processed. In particular, the num_tries records the history.

mysql> DESCRIBE data_processed;
+----------------------+--------------+------+-----+---------+-------+
| Field                | Type         | Null | Key | Default | Extra |
+----------------------+--------------+------+-----+---------+-------+
| did                  | int unsigned | NO   | PRI | NULL    |       |
| evaluation_engine_id | int          | NO   | PRI | NULL    |       |
| user_id              | int          | NO   |     | NULL    |       |
| processing_date      | datetime     | NO   |     | NULL    |       |
| error                | text         | YES  |     | NULL    |       |
| warning              | text         | YES  |     | NULL    |       |
| num_tries            | int          | NO   |     | 1       |       |
+----------------------+--------------+------+-----+---------+-------+

I would rather record each processing attempt. The table would need a new primary key (a sequential identifier is fine), and num_tries then becomes derivative (count the matching (did, evaluation_id) rows). This would provide a history of the errors and when attempts have been made.

Contributor guide

No contributing guide indexed for this repository

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

No files, tests, or entry points are named. Start by locating the data_processed schema and the processing code that updates num_tries, then trace consumers of its primary key and attempt data. Done means each processing attempt is retained with a new identifier, while attempt counts remain derivable for existing uses.

Written by the indexing model from the issue text.

Assessment

Tech stack
mysql, python
Domain
backend, databases
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.