11use crate :: {
2- ArtifactCollection , ArtifactId , ArtifactIdNumber , BenchmarkRequest , BenchmarkRequestStatus ,
3- CodegenBackend , CompileBenchmark , Target ,
2+ ArtifactCollection , ArtifactId , ArtifactIdNumber , BenchmarkRequest , BenchmarkRequestIndex ,
3+ BenchmarkRequestStatus , CodegenBackend , CompileBenchmark , Target ,
44} ;
55use crate :: { CollectionId , Index , Profile , QueuedCommit , Scenario , Step } ;
66use chrono:: { DateTime , Utc } ;
@@ -187,18 +187,18 @@ pub trait Connection: Send + Sync {
187187 benchmark_request : & BenchmarkRequest ,
188188 ) -> anyhow:: Result < ( ) > ;
189189
190- /// Gets the benchmark requests matching the status. Optionally provide the
191- /// number of days from whence to search from
192- async fn get_benchmark_requests_by_status (
193- & self ,
194- statuses : & [ BenchmarkRequestStatus ] ,
195- ) -> anyhow:: Result < Vec < BenchmarkRequest > > ;
190+ /// Load all known benchmark request SHAs and all completed benchmark requests.
191+ async fn load_benchmark_request_index ( & self ) -> anyhow :: Result < BenchmarkRequestIndex > ;
192+
193+ /// Load all pending benchmark requests, i.e. those that have artifacts ready, but haven't
194+ /// been completed yet. Pending statuses are `ArtifactsReady` and `InProgress`.
195+ async fn load_pending_benchmark_requests ( & self ) -> anyhow:: Result < Vec < BenchmarkRequest > > ;
196196
197197 /// Update the status of a `benchmark_request`
198198 async fn update_benchmark_request_status (
199199 & mut self ,
200- benchmark_request : & BenchmarkRequest ,
201- benchmark_request_status : BenchmarkRequestStatus ,
200+ request : & BenchmarkRequest ,
201+ status : BenchmarkRequestStatus ,
202202 ) -> anyhow:: Result < ( ) > ;
203203
204204 /// Update a Try commit to have a `sha` and `parent_sha`. Will update the
@@ -420,7 +420,7 @@ mod tests {
420420 "" ,
421421 ) ;
422422
423- let try_benchmark_request = BenchmarkRequest :: create_try (
423+ let try_benchmark_request = BenchmarkRequest :: create_try_without_artifacts (
424424 Some ( "b-sha-2" ) ,
425425 Some ( "parent-sha-2" ) ,
426426 32 ,
@@ -474,7 +474,7 @@ mod tests {
474474 "" ,
475475 ) ;
476476
477- let try_benchmark_request = BenchmarkRequest :: create_try (
477+ let try_benchmark_request = BenchmarkRequest :: create_try_without_artifacts (
478478 Some ( "b-sha-2" ) ,
479479 Some ( "parent-sha-2" ) ,
480480 32 ,
@@ -502,7 +502,7 @@ mod tests {
502502 . unwrap ( ) ;
503503
504504 let requests = db
505- . get_benchmark_requests_by_status ( & [ BenchmarkRequestStatus :: ArtifactsReady ] )
505+ . load_benchmark_request_index ( & [ BenchmarkRequestStatus :: ArtifactsReady ] )
506506 . await
507507 . unwrap ( ) ;
508508
@@ -545,7 +545,7 @@ mod tests {
545545 . unwrap ( ) ;
546546
547547 let requests = db
548- . get_benchmark_requests_by_status ( & [ BenchmarkRequestStatus :: InProgress ] )
548+ . load_benchmark_request_index ( & [ BenchmarkRequestStatus :: InProgress ] )
549549 . await
550550 . unwrap ( ) ;
551551
@@ -566,7 +566,7 @@ mod tests {
566566 let time = chrono:: DateTime :: from_str ( "2021-09-01T00:00:00.000Z" ) . unwrap ( ) ;
567567 let pr = 42 ;
568568
569- let try_benchmark_request = BenchmarkRequest :: create_try (
569+ let try_benchmark_request = BenchmarkRequest :: create_try_without_artifacts (
570570 None ,
571571 None ,
572572 pr,
@@ -582,7 +582,7 @@ mod tests {
582582 . await
583583 . unwrap ( ) ;
584584 let requests = db
585- . get_benchmark_requests_by_status ( & [ BenchmarkRequestStatus :: ArtifactsReady ] )
585+ . load_benchmark_request_index ( & [ BenchmarkRequestStatus :: ArtifactsReady ] )
586586 . await
587587 . unwrap ( ) ;
588588
@@ -604,7 +604,7 @@ mod tests {
604604 let time = chrono:: DateTime :: from_str ( "2021-09-01T00:00:00.000Z" ) . unwrap ( ) ;
605605 let pr = 42 ;
606606
607- let completed_try = BenchmarkRequest :: create_try (
607+ let completed_try = BenchmarkRequest :: create_try_without_artifacts (
608608 Some ( "sha-2" ) ,
609609 Some ( "p-sha-1" ) ,
610610 pr,
@@ -615,7 +615,7 @@ mod tests {
615615 ) ;
616616 db. insert_benchmark_request ( & completed_try) . await . unwrap ( ) ;
617617
618- let try_benchmark_request = BenchmarkRequest :: create_try (
618+ let try_benchmark_request = BenchmarkRequest :: create_try_without_artifacts (
619619 None ,
620620 None ,
621621 pr,
@@ -638,7 +638,7 @@ mod tests {
638638 . unwrap ( ) ;
639639
640640 let requests = db
641- . get_benchmark_requests_by_status ( & [
641+ . load_benchmark_request_index ( & [
642642 BenchmarkRequestStatus :: WaitingForArtifacts ,
643643 BenchmarkRequestStatus :: ArtifactsReady ,
644644 BenchmarkRequestStatus :: InProgress ,
0 commit comments