Skip to content

Commit 165b1c3

Browse files
committed
Add indexes on status columns
1 parent a2bdc6e commit 165b1c3

2 files changed

Lines changed: 60 additions & 5 deletions

File tree

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
"""Index status columns
2+
3+
Revision ID: 50dd7ea98639
4+
Revises: ec02a26a256c
5+
Create Date: 2025-07-25 10:36:25.127923
6+
7+
"""
8+
9+
from alembic import op
10+
11+
# revision identifiers, used by Alembic.
12+
revision = "50dd7ea98639"
13+
down_revision = "ec02a26a256c"
14+
branch_labels = None
15+
depends_on = None
16+
17+
18+
def upgrade() -> None:
19+
# ### commands auto generated by Alembic - please adjust! ###
20+
with op.batch_alter_table("runs", schema=None) as batch_op:
21+
batch_op.create_index(batch_op.f("ix_runs_status"), ["status"], unique=False)
22+
23+
with op.batch_alter_table("jobs", schema=None) as batch_op:
24+
batch_op.create_index(batch_op.f("ix_jobs_status"), ["status"], unique=False)
25+
26+
with op.batch_alter_table("fleets", schema=None) as batch_op:
27+
batch_op.create_index(batch_op.f("ix_fleets_status"), ["status"], unique=False)
28+
29+
with op.batch_alter_table("instances", schema=None) as batch_op:
30+
batch_op.create_index(batch_op.f("ix_instances_status"), ["status"], unique=False)
31+
32+
with op.batch_alter_table("volumes", schema=None) as batch_op:
33+
batch_op.create_index(batch_op.f("ix_volumes_status"), ["status"], unique=False)
34+
35+
# ### end Alembic commands ###
36+
37+
38+
def downgrade() -> None:
39+
# ### commands auto generated by Alembic - please adjust! ###
40+
with op.batch_alter_table("runs", schema=None) as batch_op:
41+
batch_op.drop_index(batch_op.f("ix_runs_status"))
42+
43+
with op.batch_alter_table("jobs", schema=None) as batch_op:
44+
batch_op.drop_index(batch_op.f("ix_jobs_status"))
45+
46+
with op.batch_alter_table("fleets", schema=None) as batch_op:
47+
batch_op.drop_index(batch_op.f("ix_fleets_status"))
48+
49+
with op.batch_alter_table("instances", schema=None) as batch_op:
50+
batch_op.drop_index(batch_op.f("ix_instances_status"))
51+
52+
with op.batch_alter_table("volumes", schema=None) as batch_op:
53+
batch_op.drop_index(batch_op.f("ix_volumes_status"))
54+
55+
# ### end Alembic commands ###

src/dstack/_internal/server/models.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -359,7 +359,7 @@ class RunModel(BaseModel):
359359
submitted_at: Mapped[datetime] = mapped_column(NaiveDateTime)
360360
last_processed_at: Mapped[datetime] = mapped_column(NaiveDateTime)
361361
next_triggered_at: Mapped[Optional[datetime]] = mapped_column(NaiveDateTime)
362-
status: Mapped[RunStatus] = mapped_column(Enum(RunStatus))
362+
status: Mapped[RunStatus] = mapped_column(Enum(RunStatus), index=True)
363363
termination_reason: Mapped[Optional[RunTerminationReason]] = mapped_column(
364364
Enum(RunTerminationReason)
365365
)
@@ -400,7 +400,7 @@ class JobModel(BaseModel):
400400
submission_num: Mapped[int] = mapped_column(Integer)
401401
submitted_at: Mapped[datetime] = mapped_column(NaiveDateTime)
402402
last_processed_at: Mapped[datetime] = mapped_column(NaiveDateTime)
403-
status: Mapped[JobStatus] = mapped_column(Enum(JobStatus))
403+
status: Mapped[JobStatus] = mapped_column(Enum(JobStatus), index=True)
404404
termination_reason: Mapped[Optional[JobTerminationReason]] = mapped_column(
405405
Enum(JobTerminationReason)
406406
)
@@ -528,7 +528,7 @@ class FleetModel(BaseModel):
528528
deleted: Mapped[bool] = mapped_column(Boolean, default=False)
529529
deleted_at: Mapped[Optional[datetime]] = mapped_column(NaiveDateTime)
530530

531-
status: Mapped[FleetStatus] = mapped_column(Enum(FleetStatus))
531+
status: Mapped[FleetStatus] = mapped_column(Enum(FleetStatus), index=True)
532532
status_message: Mapped[Optional[str]] = mapped_column(Text)
533533

534534
spec: Mapped[str] = mapped_column(Text)
@@ -568,7 +568,7 @@ class InstanceModel(BaseModel):
568568
fleet_id: Mapped[Optional[uuid.UUID]] = mapped_column(ForeignKey("fleets.id"))
569569
fleet: Mapped[Optional["FleetModel"]] = relationship(back_populates="instances")
570570

571-
status: Mapped[InstanceStatus] = mapped_column(Enum(InstanceStatus))
571+
status: Mapped[InstanceStatus] = mapped_column(Enum(InstanceStatus), index=True)
572572
unreachable: Mapped[bool] = mapped_column(Boolean)
573573

574574
# VM
@@ -653,7 +653,7 @@ class VolumeModel(BaseModel):
653653
deleted: Mapped[bool] = mapped_column(Boolean, default=False)
654654
deleted_at: Mapped[Optional[datetime]] = mapped_column(NaiveDateTime)
655655

656-
status: Mapped[VolumeStatus] = mapped_column(Enum(VolumeStatus))
656+
status: Mapped[VolumeStatus] = mapped_column(Enum(VolumeStatus), index=True)
657657
status_message: Mapped[Optional[str]] = mapped_column(Text)
658658

659659
configuration: Mapped[str] = mapped_column(Text)

0 commit comments

Comments
 (0)