c-cube / frog-utils

[frozen] Scheduling and running jobs on a shared computer, then analyse their output
BSD 2-Clause "Simplified" License
5 stars 0 forks source link

transition to sqlite for all storage #38

Open c-cube opened 7 years ago

c-cube commented 7 years ago

Should be much more efficient for all sorts of queries and storage.

Proposition for schema (pseudo sql):

create table benchmaks (uid uuid primary key, timestamp int64, metadata blob);
create table text_blobs (key sha1 primary key, value blob);
create table provers (id sha1 primary key, name blob, version blob, cmd blob, sat blob, unsat blob);
create table problems (abspath blob primary key, content sha1);
create table results (prover sha1, problem sha1, stdout_key sha1, stderr_key sha1, bench_id uuid);
Gbury commented 7 years ago

This means that Storage could more or less be removed, right ? Since Storage.t can simply be replaced by the connection to the database file (which should be unique).

c-cube commented 7 years ago

Yes, I think so.

c-cube commented 7 years ago

Update:

create table benchmaks (uid uuid primary key, timestamp int64, metadata blob);
create table text_blobs (key sha1 primary key, value blob);
create table provers (id sha1 primary key, name blob, version blob, cmd blob, sat blob, unsat blob);
create table problems (abspath blob primary key, content sha1);
create table results (id sha1 primary key, prover sha1, problem sha1, stdout_key sha1, stderr_key sha1)
create table bench_res (bench_id uuid, res_id sha1);

The table bench_res maps benchmarks to sets of results.