@@ -398,9 +398,9 @@ def kill_cluster_requests(cluster_name: str, exclude_request_name: str):
398398 request_ids = [
399399 request_task .request_id
400400 for request_task in get_request_tasks (req_filter = RequestTaskFilter (
401- cluster_names = [cluster_name ],
402401 status = [RequestStatus .PENDING , RequestStatus .RUNNING ],
403- exclude_request_names = [exclude_request_name ]))
402+ exclude_request_names = [exclude_request_name ],
403+ cluster_names = [cluster_name ]))
404404 ]
405405 kill_requests (request_ids )
406406
@@ -422,10 +422,10 @@ def kill_requests(request_ids: Optional[List[str]] = None,
422422 request_ids = [
423423 request_task .request_id
424424 for request_task in get_request_tasks (req_filter = RequestTaskFilter (
425- user_id = user_id ,
426- status = [RequestStatus .RUNNING , RequestStatus .PENDING ],
425+ status = [RequestStatus .PENDING , RequestStatus .RUNNING ],
427426 # Avoid cancelling the cancel request itself.
428- exclude_request_names = ['sky.api_cancel' ]))
427+ exclude_request_names = ['sky.api_cancel' ],
428+ user_id = user_id ))
429429 ]
430430 cancelled_request_ids = []
431431 for request_id in request_ids :
@@ -489,31 +489,28 @@ def create_table(cursor, conn):
489489 { COL_SHOULD_RETRY } INTEGER,
490490 { COL_FINISHED_AT } REAL
491491 )""" )
492- # Add an index on created_at to speed up queries that sort on this column.
492+
493+ db_utils .add_column_to_table (cursor , conn , REQUEST_TABLE , COL_STATUS_MSG ,
494+ 'TEXT' )
495+ db_utils .add_column_to_table (cursor , conn , REQUEST_TABLE , COL_SHOULD_RETRY ,
496+ 'INTEGER' )
497+ db_utils .add_column_to_table (cursor , conn , REQUEST_TABLE , COL_FINISHED_AT ,
498+ 'REAL' )
499+
500+ # Add an index on status to speed up queries that filter on this column.
493501 cursor .execute (f"""\
494- CREATE INDEX IF NOT EXISTS created_at_idx ON { REQUEST_TABLE } (created_at );
502+ CREATE INDEX IF NOT EXISTS status_name_idx ON { REQUEST_TABLE } (status, name) WHERE status IN ('PENDING', 'RUNNING' );
495503 """ )
496504 # Add an index on cluster_name to speed up queries
497505 # that filter on this column.
498506 cursor .execute (f"""\
499- CREATE INDEX IF NOT EXISTS cluster_name_idx ON { REQUEST_TABLE } ({ COL_CLUSTER_NAME } );
500- """ )
501- # Add an index on name to speed up queries that filter on this column.
502- cursor .execute (f"""\
503- CREATE INDEX IF NOT EXISTS name_idx ON { REQUEST_TABLE } (name);
507+ CREATE INDEX IF NOT EXISTS cluster_name_idx ON { REQUEST_TABLE } ({ COL_CLUSTER_NAME } ) WHERE status IN ('PENDING', 'RUNNING');
504508 """ )
505- # Add an index on status to speed up queries that filter on this column.
509+ # Add an index on created_at to speed up queries that sort on this column.
506510 cursor .execute (f"""\
507- CREATE INDEX IF NOT EXISTS status_idx ON { REQUEST_TABLE } (status );
511+ CREATE INDEX IF NOT EXISTS created_at_idx ON { REQUEST_TABLE } (created_at );
508512 """ )
509513
510- db_utils .add_column_to_table (cursor , conn , REQUEST_TABLE , COL_STATUS_MSG ,
511- 'TEXT' )
512- db_utils .add_column_to_table (cursor , conn , REQUEST_TABLE , COL_SHOULD_RETRY ,
513- 'INTEGER' )
514- db_utils .add_column_to_table (cursor , conn , REQUEST_TABLE , COL_FINISHED_AT ,
515- 'REAL' )
516-
517514
518515_DB = None
519516_init_db_lock = threading .Lock ()
@@ -770,6 +767,10 @@ def build_query(self) -> Tuple[str, List[Any]]:
770767 status_list_str = ',' .join (
771768 repr (status .value ) for status in self .status )
772769 filters .append (f'status IN ({ status_list_str } )' )
770+ if self .include_request_names is not None :
771+ request_names_str = ',' .join (
772+ repr (name ) for name in self .include_request_names )
773+ filters .append (f'name IN ({ request_names_str } )' )
773774 if self .exclude_request_names is not None :
774775 exclude_request_names_str = ',' .join (
775776 repr (name ) for name in self .exclude_request_names )
@@ -781,10 +782,6 @@ def build_query(self) -> Tuple[str, List[Any]]:
781782 if self .user_id is not None :
782783 filters .append (f'{ COL_USER_ID } = ?' )
783784 filter_params .append (self .user_id )
784- if self .include_request_names is not None :
785- request_names_str = ',' .join (
786- repr (name ) for name in self .include_request_names )
787- filters .append (f'name IN ({ request_names_str } )' )
788785 if self .finished_before is not None :
789786 filters .append ('finished_at < ?' )
790787 filter_params .append (self .finished_before )
0 commit comments