Skip to content

Commit

Permalink
[batch] Remove all v2 billing tables (#13893)
Browse files Browse the repository at this point in the history
Fixes #13656. This PR removes all triggers and tables associated with
the v2 tables. Stacked on #13892.
  • Loading branch information
jigold authored Feb 15, 2024
1 parent b3df763 commit e68103e
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 147 deletions.
147 changes: 0 additions & 147 deletions batch/sql/estimated-current.sql
Original file line number Diff line number Diff line change
Expand Up @@ -406,61 +406,6 @@ CREATE INDEX job_group_attributes_value ON `job_group_attributes` (`value`(256))
CREATE INDEX job_group_attributes_batch_id_key_value ON `job_group_attributes` (`batch_id`, `job_group_id`, `key`, `value`(256));
CREATE INDEX job_group_attributes_batch_id_value ON `job_group_attributes` (`batch_id`, `job_group_id`, `value`(256));

DROP TABLE IF EXISTS `aggregated_billing_project_user_resources_v2`;
CREATE TABLE IF NOT EXISTS `aggregated_billing_project_user_resources_v2` (
`billing_project` VARCHAR(100) NOT NULL,
`user` VARCHAR(100) NOT NULL,
`resource_id` INT NOT NULL,
`token` INT NOT NULL,
`usage` BIGINT NOT NULL DEFAULT 0,
`migrated` BOOLEAN DEFAULT FALSE,
PRIMARY KEY (`billing_project`, `user`, `resource_id`, `token`),
FOREIGN KEY (`billing_project`) REFERENCES billing_projects(name) ON DELETE CASCADE,
FOREIGN KEY (`resource_id`) REFERENCES resources(`resource_id`) ON DELETE CASCADE
) ENGINE = InnoDB;
CREATE INDEX aggregated_billing_project_user_resources_v2 ON `aggregated_billing_project_user_resources_v2` (`user`);

DROP TABLE IF EXISTS `aggregated_billing_project_user_resources_by_date_v2`;
CREATE TABLE IF NOT EXISTS `aggregated_billing_project_user_resources_by_date_v2` (
`billing_date` DATE NOT NULL,
`billing_project` VARCHAR(100) NOT NULL,
`user` VARCHAR(100) NOT NULL,
`resource_id` INT NOT NULL,
`token` INT NOT NULL,
`usage` BIGINT NOT NULL DEFAULT 0,
`migrated` BOOLEAN DEFAULT FALSE,
PRIMARY KEY (`billing_date`, `billing_project`, `user`, `resource_id`, `token`),
FOREIGN KEY (`billing_project`) REFERENCES billing_projects(name) ON DELETE CASCADE,
FOREIGN KEY (`resource_id`) REFERENCES resources(`resource_id`) ON DELETE CASCADE
) ENGINE = InnoDB;
CREATE INDEX aggregated_billing_project_user_resources_by_date_v2_user ON `aggregated_billing_project_user_resources_by_date_v2` (`billing_date`, `user`);

DROP TABLE IF EXISTS `aggregated_job_group_resources_v2`;
CREATE TABLE IF NOT EXISTS `aggregated_job_group_resources_v2` (
`batch_id` BIGINT NOT NULL,
`job_group_id` INT NOT NULL DEFAULT 0,
`resource_id` INT NOT NULL,
`token` INT NOT NULL,
`usage` BIGINT NOT NULL DEFAULT 0,
`migrated` BOOLEAN DEFAULT FALSE,
PRIMARY KEY (`batch_id`, `resource_id`, `token`),
FOREIGN KEY (`batch_id`) REFERENCES batches(`id`) ON DELETE CASCADE,
FOREIGN KEY (`resource_id`) REFERENCES resources(`resource_id`) ON DELETE CASCADE
) ENGINE = InnoDB;

DROP TABLE IF EXISTS `aggregated_job_resources_v2`;
CREATE TABLE IF NOT EXISTS `aggregated_job_resources_v2` (
`batch_id` BIGINT NOT NULL,
`job_id` INT NOT NULL,
`resource_id` INT NOT NULL,
`usage` BIGINT NOT NULL DEFAULT 0,
`migrated` BOOLEAN DEFAULT FALSE,
PRIMARY KEY (`batch_id`, `job_id`, `resource_id`),
FOREIGN KEY (`batch_id`) REFERENCES batches(`id`) ON DELETE CASCADE,
FOREIGN KEY (`batch_id`, `job_id`) REFERENCES jobs(`batch_id`, `job_id`) ON DELETE CASCADE,
FOREIGN KEY (`resource_id`) REFERENCES resources(`resource_id`) ON DELETE CASCADE
) ENGINE = InnoDB;

CREATE TABLE IF NOT EXISTS `aggregated_billing_project_user_resources_v3` (
`billing_project` VARCHAR(100) NOT NULL,
`user` VARCHAR(100) NOT NULL,
Expand Down Expand Up @@ -847,98 +792,6 @@ BEGIN
END IF;
END $$

DROP TRIGGER IF EXISTS aggregated_bp_user_resources_v2_before_insert $$
CREATE TRIGGER aggregated_bp_user_resources_v2_before_insert BEFORE INSERT ON aggregated_billing_project_user_resources_v2
FOR EACH ROW
BEGIN
SET NEW.migrated = 1;
END $$

DROP TRIGGER IF EXISTS aggregated_bp_user_resources_by_date_v2_before_insert $$
CREATE TRIGGER aggregated_bp_user_resources_by_date_v2_before_insert BEFORE INSERT ON aggregated_billing_project_user_resources_by_date_v2
FOR EACH ROW
BEGIN
SET NEW.migrated = 1;
END $$

DROP TRIGGER IF EXISTS aggregated_job_group_resources_v2_before_insert $$
CREATE TRIGGER aggregated_job_group_resources_v2_before_insert BEFORE INSERT on aggregated_job_group_resources_v2
FOR EACH ROW
BEGIN
SET NEW.migrated = 1;
END $$

DROP TRIGGER IF EXISTS aggregated_job_resources_v2_before_insert $$
CREATE TRIGGER aggregated_job_resources_v2_before_insert BEFORE INSERT on aggregated_job_resources_v2
FOR EACH ROW
BEGIN
SET NEW.migrated = 1;
END $$

DROP TRIGGER IF EXISTS aggregated_bp_user_resources_v2_after_update $$
CREATE TRIGGER aggregated_bp_user_resources_v2_after_update AFTER UPDATE ON aggregated_billing_project_user_resources_v2
FOR EACH ROW
BEGIN
DECLARE new_deduped_resource_id INT;

IF OLD.migrated = 0 AND NEW.migrated = 1 THEN
SELECT deduped_resource_id INTO new_deduped_resource_id FROM resources WHERE resource_id = OLD.resource_id;

INSERT INTO aggregated_billing_project_user_resources_v3 (billing_project, user, resource_id, token, `usage`)
VALUES (NEW.billing_project, NEW.user, new_deduped_resource_id, NEW.token, NEW.usage)
ON DUPLICATE KEY UPDATE
`usage` = `usage` + NEW.usage;
END IF;
END $$

DROP TRIGGER IF EXISTS aggregated_bp_user_resources_by_date_v2_after_update $$
CREATE TRIGGER aggregated_bp_user_resources_by_date_v2_after_update AFTER UPDATE ON aggregated_billing_project_user_resources_by_date_v2
FOR EACH ROW
BEGIN
DECLARE new_deduped_resource_id INT;

IF OLD.migrated = 0 AND NEW.migrated = 1 THEN
SELECT deduped_resource_id INTO new_deduped_resource_id FROM resources WHERE resource_id = OLD.resource_id;

INSERT INTO aggregated_billing_project_user_resources_by_date_v3 (billing_date, billing_project, user, resource_id, token, `usage`)
VALUES (NEW.billing_date, NEW.billing_project, NEW.user, new_deduped_resource_id, NEW.token, NEW.usage)
ON DUPLICATE KEY UPDATE
`usage` = `usage` + NEW.usage;
END IF;
END $$

DROP TRIGGER IF EXISTS aggregated_job_group_resources_v2_after_update $$
CREATE TRIGGER aggregated_job_group_resources_v2_after_update AFTER UPDATE ON aggregated_job_group_resources_v2
FOR EACH ROW
BEGIN
DECLARE new_deduped_resource_id INT;

IF OLD.migrated = 0 AND NEW.migrated = 1 THEN
SELECT deduped_resource_id INTO new_deduped_resource_id FROM resources WHERE resource_id = OLD.resource_id;

INSERT INTO aggregated_job_group_resources_v3 (batch_id, resource_id, token, `usage`)
VALUES (NEW.batch_id, new_deduped_resource_id, NEW.token, NEW.usage)
ON DUPLICATE KEY UPDATE
`usage` = `usage` + NEW.usage;
END IF;
END $$

DROP TRIGGER IF EXISTS aggregated_job_resources_v2_after_update $$
CREATE TRIGGER aggregated_job_resources_v2_after_update AFTER UPDATE ON aggregated_job_resources_v2
FOR EACH ROW
BEGIN
DECLARE new_deduped_resource_id INT;

IF OLD.migrated = 0 AND NEW.migrated = 1 THEN
SELECT deduped_resource_id INTO new_deduped_resource_id FROM resources WHERE resource_id = OLD.resource_id;

INSERT INTO aggregated_job_resources_v3 (batch_id, job_id, resource_id, `usage`)
VALUES (NEW.batch_id, NEW.job_id, new_deduped_resource_id, NEW.usage)
ON DUPLICATE KEY UPDATE
`usage` = `usage` + NEW.usage;
END IF;
END $$

CREATE PROCEDURE activate_instance(
IN in_instance_name VARCHAR(100),
IN in_ip_address VARCHAR(100),
Expand Down
14 changes: 14 additions & 0 deletions batch/sql/remove-v2-billing-tables.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
DROP TRIGGER IF EXISTS aggregated_bp_user_resources_v2_before_insert;
DROP TRIGGER IF EXISTS aggregated_bp_user_resources_by_date_v2_before_insert;
DROP TRIGGER IF EXISTS aggregated_job_group_resources_v2_before_insert;
DROP TRIGGER IF EXISTS aggregated_job_resources_v2_before_insert;

DROP TRIGGER IF EXISTS aggregated_bp_user_resources_v2_after_update;
DROP TRIGGER IF EXISTS aggregated_bp_user_resources_by_date_v2_after_update;
DROP TRIGGER IF EXISTS aggregated_job_group_resources_v2_after_update;
DROP TRIGGER IF EXISTS aggregated_job_resources_v2_after_update;

DROP TABLE IF EXISTS aggregated_billing_project_user_resources_v2;
DROP TABLE IF EXISTS aggregated_billing_project_user_resources_by_date_v2;
DROP TABLE IF EXISTS aggregated_job_group_resources_v2;
DROP TABLE IF EXISTS aggregated_job_resources_v2;
3 changes: 3 additions & 0 deletions build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2360,6 +2360,9 @@ steps:
- name: update-ip-fee-resource
script: /io/sql/update-ip-fee-resource.py
online: true
- name: remove-v2-billing-tables
script: /io/sql/remove-v2-billing-tables.sql
online: true
inputs:
- from: /repo/batch/sql
to: /io/sql
Expand Down

0 comments on commit e68103e

Please sign in to comment.