[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug#32879] [PATCH] database: Add builds only if one of their outputs is
From: |
Clément Lassieur |
Subject: |
[bug#32879] [PATCH] database: Add builds only if one of their outputs is new. |
Date: |
Sun, 30 Sep 2018 22:41:38 +0200 |
User-agent: |
mu4e 1.0; emacs 26.1 |
Ludovic Courtès <address@hidden> writes:
> Hello Clément,
>
> Clément Lassieur <address@hidden> skribis:
>
>> * Makefile.am (dist_sql_DATA): Add 'src/sql/upgrade-4.sql'.
>> * src/cuirass/database.scm (db-add-output): New procedure.
>> (db-add-build): Call DB-ADD-OUTPUT, rollback the transaction and return #f if
>> DB-ADD-OUTPUT returned an empty list.
>> * src/schema.sql (Outputs): Set 'path' as primary key, instead of
>> 'derivation,
>> name'.
>> * src/sql/upgrade-4.sql: New file with SQL queries to upgrade the database.
>> * tests/database.scm (make-dummy-build): Use the #:OUTPUTS key. Get default
>> OUTPUTS to depend on DRV.
>> ("db-add-build-with-fixed-output"): New test.
>
> What’s the rationale? I suppose having a simpler primary key for
> ‘Outputs’ might help performance?
There is a slight performance and db size gain but the primary reason is
to have a better idea of Cuirass' load when looking at the pending
builds. There will be less (no?) 'fake' builds. The idea is that all
builds should be real builds.
Does that make sense?
> Thank you,
> Ludo’.