model accounting_rollup ( key node_id start_time index ( fields start_time ) field node_id blob field start_time timestamp field put_total int64 field get_total int64 field get_audit_total int64 field get_repair_total int64 field put_repair_total int64 field at_rest_total float64 field interval_end_time timestamp ( updatable, nullable ) ) // --- storage node accounting tables --- // model storagenode_bandwidth_rollup ( key storagenode_id interval_start action index ( name storagenode_bandwidth_rollups_interval_start_index fields interval_start ) field storagenode_id blob field interval_start timestamp field interval_seconds uint field action uint field allocated uint64 ( updatable, nullable, default 0 ) field settled uint64 ( updatable ) ) create storagenode_bandwidth_rollup() read all ( select storagenode_bandwidth_rollup where storagenode_bandwidth_rollup.storagenode_id = ? where storagenode_bandwidth_rollup.interval_start = ? ) read paged ( select storagenode_bandwidth_rollup where storagenode_bandwidth_rollup.interval_start >= ? ) read paged ( select storagenode_bandwidth_rollup where storagenode_bandwidth_rollup.storagenode_id = ? where storagenode_bandwidth_rollup.interval_start >= ? ) model storagenode_bandwidth_rollup_archive ( key storagenode_id interval_start action index ( name storagenode_bandwidth_rollup_archives_interval_start_index fields interval_start ) field storagenode_id blob field interval_start timestamp field interval_seconds uint field action uint field allocated uint64 ( updatable, nullable, default 0 ) field settled uint64 ( updatable ) ) read paged ( select storagenode_bandwidth_rollup_archive where storagenode_bandwidth_rollup_archive.interval_start >= ? ) /////////////////////////////////////// // orders phase2->phase3 rollout table /////////////////////////////////////// model storagenode_bandwidth_rollup_phase2 ( table storagenode_bandwidth_rollups_phase2 // make the pluralization consistent key storagenode_id interval_start action field storagenode_id blob field interval_start timestamp field interval_seconds uint field action uint field allocated uint64 ( updatable, nullable, default 0 ) field settled uint64 ( updatable ) ) read paged ( select storagenode_bandwidth_rollup_phase2 where storagenode_bandwidth_rollup_phase2.storagenode_id = ? where storagenode_bandwidth_rollup_phase2.interval_start >= ? ) model storagenode_storage_tally ( // this primary key will enforce uniqueness on interval_end_time,node_id // and also creates an index on interval_end_time implicitly. // the interval_end_time will be the same value for many rows so // we put that first so we can use cockroachdb prefix compression. // node_id is also used many times but interval_end_time is more // repetative and will benefit greater. key interval_end_time node_id index ( fields node_id ) field node_id blob field interval_end_time timestamp field data_total float64 ) read all ( select storagenode_storage_tally ) read all ( select storagenode_storage_tally where storagenode_storage_tally.interval_end_time >= ? )