mirror of
https://github.com/hatchet-dev/hatchet.git
synced 2026-01-06 00:40:10 -06:00
feat: tenant partitioning (#649)
* feat: tenant partitioning * fix: rebalance inactive partitions, split into separate partitioner * fix: shutdown partitioner scheduler properly * update config options * fix: config options linting
This commit is contained in:
@@ -1,6 +0,0 @@
|
||||
-- Create "SecurityCheckIdent" table
|
||||
CREATE TABLE "SecurityCheckIdent" ("id" uuid NOT NULL, PRIMARY KEY ("id"));
|
||||
-- Create index "SecurityCheckIdent_id_key" to table: "SecurityCheckIdent"
|
||||
CREATE UNIQUE INDEX "SecurityCheckIdent_id_key" ON "SecurityCheckIdent" ("id");
|
||||
-- Insert Default Ident
|
||||
INSERT INTO "SecurityCheckIdent" ("id") VALUES (gen_random_uuid());
|
||||
20
sql/migrations/20240626204339_v0.34.2.sql
Normal file
20
sql/migrations/20240626204339_v0.34.2.sql
Normal file
@@ -0,0 +1,20 @@
|
||||
-- Create "ControllerPartition" table
|
||||
CREATE TABLE "ControllerPartition" ("id" text NOT NULL, "createdAt" timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, "updatedAt" timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, "lastHeartbeat" timestamp(3) NULL, PRIMARY KEY ("id"));
|
||||
-- Create index "ControllerPartition_id_key" to table: "ControllerPartition"
|
||||
CREATE UNIQUE INDEX "ControllerPartition_id_key" ON "ControllerPartition" ("id");
|
||||
-- Create "SecurityCheckIdent" table
|
||||
CREATE TABLE "SecurityCheckIdent" ("id" uuid NOT NULL, PRIMARY KEY ("id"));
|
||||
-- Create index "SecurityCheckIdent_id_key" to table: "SecurityCheckIdent"
|
||||
CREATE UNIQUE INDEX "SecurityCheckIdent_id_key" ON "SecurityCheckIdent" ("id");
|
||||
-- Create "TenantWorkerPartition" table
|
||||
CREATE TABLE "TenantWorkerPartition" ("id" text NOT NULL, "createdAt" timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, "updatedAt" timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, "lastHeartbeat" timestamp(3) NULL, PRIMARY KEY ("id"));
|
||||
-- Create index "TenantWorkerPartition_id_key" to table: "TenantWorkerPartition"
|
||||
CREATE UNIQUE INDEX "TenantWorkerPartition_id_key" ON "TenantWorkerPartition" ("id");
|
||||
-- Modify "Tenant" table
|
||||
ALTER TABLE "Tenant" ADD COLUMN "controllerPartitionId" text NULL, ADD COLUMN "workerPartitionId" text NULL, ADD CONSTRAINT "Tenant_controllerPartitionId_fkey" FOREIGN KEY ("controllerPartitionId") REFERENCES "ControllerPartition" ("id") ON UPDATE SET NULL ON DELETE SET NULL, ADD CONSTRAINT "Tenant_workerPartitionId_fkey" FOREIGN KEY ("workerPartitionId") REFERENCES "TenantWorkerPartition" ("id") ON UPDATE SET NULL ON DELETE SET NULL;
|
||||
-- Create index "Tenant_controllerPartitionId_idx" to table: "Tenant"
|
||||
CREATE INDEX "Tenant_controllerPartitionId_idx" ON "Tenant" ("controllerPartitionId");
|
||||
-- Create index "Tenant_workerPartitionId_idx" to table: "Tenant"
|
||||
CREATE INDEX "Tenant_workerPartitionId_idx" ON "Tenant" ("workerPartitionId");
|
||||
|
||||
INSERT INTO "SecurityCheckIdent" ("id") VALUES (gen_random_uuid());
|
||||
@@ -1,4 +1,4 @@
|
||||
h1:SgNqZT++7yKEJ3fqsLNmn+nm/JhKU9+HDAInq0XAtI4=
|
||||
h1:NK+ekkECiuadzun2bA8DNGD9zGTMM8+f44rPVLThpJs=
|
||||
20240115180414_init.sql h1:Ef3ZyjAHkmJPdGF/dEWCahbwgcg6uGJKnDxW2JCRi2k=
|
||||
20240122014727_v0_6_0.sql h1:o/LdlteAeFgoHJ3e/M4Xnghqt9826IE/Y/h0q95Acuo=
|
||||
20240126235456_v0_7_0.sql h1:KiVzt/hXgQ6esbdC6OMJOOWuYEXmy1yeCpmsVAHTFKs=
|
||||
@@ -33,4 +33,4 @@ h1:SgNqZT++7yKEJ3fqsLNmn+nm/JhKU9+HDAInq0XAtI4=
|
||||
20240531200418_v0_30_1.sql h1:jPAKmGkP0Ecq1mUk9o2qr5S0fEV46oXicdlGh1TmBQg=
|
||||
20240606145243_v0_31_0.sql h1:ALisDQv8IPGe6MiBSfE/Esdl5x4pzNHIVMavlsBXIPE=
|
||||
20240625180548_v0.34.0.sql h1:77uSk0VF/jBvEPHCqWC4hmMQqUx4zVnMdTryGsIXt9s=
|
||||
20240626195645_v0_35_0.sql h1:iBWeeBHZpNkUGzfg1z6k7Jy1RvuXiUPhH09Nmp6bZtQ=
|
||||
20240626204339_v0.34.2.sql h1:e2hArnEfcEYcBjEPxZW3axkl4CGt2lHa1oIA2r2fjfY=
|
||||
|
||||
@@ -61,6 +61,16 @@ CREATE TABLE "Action" (
|
||||
CONSTRAINT "Action_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "ControllerPartition" (
|
||||
"id" TEXT NOT NULL,
|
||||
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"updatedAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"lastHeartbeat" TIMESTAMP(3),
|
||||
|
||||
CONSTRAINT "ControllerPartition_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "Dispatcher" (
|
||||
"id" UUID NOT NULL,
|
||||
@@ -350,6 +360,8 @@ CREATE TABLE "Tenant" (
|
||||
"slug" TEXT NOT NULL,
|
||||
"analyticsOptOut" BOOLEAN NOT NULL DEFAULT false,
|
||||
"alertMemberEmails" BOOLEAN NOT NULL DEFAULT true,
|
||||
"controllerPartitionId" TEXT,
|
||||
"workerPartitionId" TEXT,
|
||||
|
||||
CONSTRAINT "Tenant_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
@@ -455,6 +467,16 @@ CREATE TABLE "TenantVcsProvider" (
|
||||
CONSTRAINT "TenantVcsProvider_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "TenantWorkerPartition" (
|
||||
"id" TEXT NOT NULL,
|
||||
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"updatedAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"lastHeartbeat" TIMESTAMP(3),
|
||||
|
||||
CONSTRAINT "TenantWorkerPartition_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "Ticker" (
|
||||
"id" UUID NOT NULL,
|
||||
@@ -744,6 +766,9 @@ CREATE UNIQUE INDEX "Action_id_key" ON "Action"("id" ASC);
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "Action_tenantId_actionId_key" ON "Action"("tenantId" ASC, "actionId" ASC);
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "ControllerPartition_id_key" ON "ControllerPartition"("id" ASC);
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "Dispatcher_id_key" ON "Dispatcher"("id" ASC);
|
||||
|
||||
@@ -837,12 +862,18 @@ CREATE INDEX "StepRunEvent_stepRunId_idx" ON "StepRunEvent"("stepRunId" ASC);
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "StepRunResultArchive_id_key" ON "StepRunResultArchive"("id" ASC);
|
||||
|
||||
-- CreateIndex
|
||||
CREATE INDEX "Tenant_controllerPartitionId_idx" ON "Tenant"("controllerPartitionId" ASC);
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "Tenant_id_key" ON "Tenant"("id" ASC);
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "Tenant_slug_key" ON "Tenant"("slug" ASC);
|
||||
|
||||
-- CreateIndex
|
||||
CREATE INDEX "Tenant_workerPartitionId_idx" ON "Tenant"("workerPartitionId" ASC);
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "TenantAlertEmailGroup_id_key" ON "TenantAlertEmailGroup"("id" ASC);
|
||||
|
||||
@@ -876,6 +907,9 @@ CREATE UNIQUE INDEX "TenantVcsProvider_id_key" ON "TenantVcsProvider"("id" ASC);
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "TenantVcsProvider_tenantId_vcsProvider_key" ON "TenantVcsProvider"("tenantId" ASC, "vcsProvider" ASC);
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "TenantWorkerPartition_id_key" ON "TenantWorkerPartition"("id" ASC);
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "Ticker_id_key" ON "Ticker"("id" ASC);
|
||||
|
||||
@@ -1125,6 +1159,12 @@ ALTER TABLE "StreamEvent" ADD CONSTRAINT "StreamEvent_stepRunId_fkey" FOREIGN KE
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "StreamEvent" ADD CONSTRAINT "StreamEvent_tenantId_fkey" FOREIGN KEY ("tenantId") REFERENCES "Tenant"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "Tenant" ADD CONSTRAINT "Tenant_controllerPartitionId_fkey" FOREIGN KEY ("controllerPartitionId") REFERENCES "ControllerPartition"("id") ON DELETE SET NULL ON UPDATE SET NULL;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "Tenant" ADD CONSTRAINT "Tenant_workerPartitionId_fkey" FOREIGN KEY ("workerPartitionId") REFERENCES "TenantWorkerPartition"("id") ON DELETE SET NULL ON UPDATE SET NULL;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "TenantAlertEmailGroup" ADD CONSTRAINT "TenantAlertEmailGroup_tenantId_fkey" FOREIGN KEY ("tenantId") REFERENCES "Tenant"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user