microsoft / microsoft/Qcodes

Make Database structure more modular: Finding Runs and specifying sample properties

Open
#1,072 0 comments 0 reactions 0 assignees View on GitHub
discussion new dataset
Dominant language
Python
Stars
459
Forks
359
Avg merge
3d 6h
Merged PRs (30d)
73

Description

From the discussion in #1071 I would like to suggest the following improvement to the data base structure:
- modularize the data discovery:
By this I mean, we only provide a `get_by_id` function in the data_set and further functions as `get_experiment_by_name` or `get_experiments_by_tags` can live in some sort of external `DataProvider`. This way we could fully separate the task of finding experiments out and have a very thin interface constituted by a single function (`get_by_id`).
For the database layout this would mean:
- remove `name` from `Experiments` table
- add new table(s) for the `DataProviders` with the `exp_id` as a foreign key and the desired attributes as rows, like name(str), tags (key/str)

- open path to integration of fabrication database
It would be beneficial if, instead of a sample name, we would store a sample id and have another table that could hold all possible sample properties.

Contributor guide

Open the contributing guide

Research direction

Start by reading the discussion in issue #1071 and locating the existing database schema and data_set interface. Compare the current Experiments and sample representation with the proposed get_by_id-only interface, DataProviders tables, and sample-property table; the work is done when the modular design is implemented and its integration points are defined.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
databases
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.