Skip to content

Commit

Permalink
Add schema for report upload counters (#2553)
Browse files Browse the repository at this point in the history
  • Loading branch information
inahga authored Jan 26, 2024
1 parent 27b5b3d commit 94e7e0f
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 1 deletion.
2 changes: 1 addition & 1 deletion aggregator_core/src/datastore.rs
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ macro_rules! supported_schema_versions {
// version is seen, [`Datastore::new`] fails.
//
// Note that the latest supported version must be first in the list.
supported_schema_versions!(1);
supported_schema_versions!(2, 1);

/// Datastore represents a datastore for Janus, with support for transactional reads and writes.
/// In practice, Datastore instances are currently backed by a PostgreSQL database.
Expand Down
1 change: 1 addition & 0 deletions db/00000000000002_task_upload_counters.down.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
DROP TABLE task_upload_counters;
19 changes: 19 additions & 0 deletions db/00000000000002_task_upload_counters.up.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
-- Per task report upload counters.
CREATE TABLE task_upload_counters(
id BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY, -- artificial ID, internal-only
task_id BIGINT NOT NULL,

interval_collected BIGINT NOT NULL DEFAULT 0, -- Reports submitted for an interval that was already collected.
report_decode_failure BIGINT NOT NULL DEFAULT 0, -- Reports which failed to decode.
report_decrypt_failure BIGINT NOT NULL DEFAULT 0, -- Reports which failed to decrypt.
report_expired BIGINT NOT NULL DEFAULT 0, -- Reports that were older than the task's report_expiry_age.
report_outdated_key BIGINT NOT NULL DEFAULT 0, -- Reports that were encrypted with an unknown or outdated HPKE key.
report_success BIGINT NOT NULL DEFAULT 0, -- Reports that were successfully uploaded.
report_too_early BIGINT NOT NULL DEFAULT 0, -- Reports whose timestamp is too far in the future.
task_expired BIGINT NOT NULL DEFAULT 0, -- Reports sent to the task while it is expired.

ord BIGINT NOT NULL, -- Index of this task_upload_counters shard.

CONSTRAINT fk_task_id FOREIGN KEY(task_id) REFERENCES tasks(id) ON DELETE CASCADE,
CONSTRAINT task_upload_counters_unique UNIQUE(task_id, ord)
);

0 comments on commit 94e7e0f

Please sign in to comment.