@@ -584,7 +584,7 @@ func TestJobsDB(t *testing.T) {
584
584
}
585
585
prefix := strings .ToLower (rand .String (5 ))
586
586
c .Set ("JobsDB.jobDoneMigrateThreshold" , 0.7 )
587
- c .Set ("JobsDB.jobMinRowsMigrateThreshold " , 0.6 )
587
+ c .Set ("JobsDB.jobMinRowsLeftMigrateThreshold " , 0.41 )
588
588
err := jobDB .Setup (ReadWrite , true , prefix )
589
589
require .NoError (t , err )
590
590
defer jobDB .TearDown ()
@@ -622,7 +622,7 @@ func TestJobsDB(t *testing.T) {
622
622
})
623
623
require .NoError (t , err )
624
624
625
- // process some jobs
625
+ // process first 15 jobs
626
626
for _ , job := range jobsResult .Jobs [:15 ] {
627
627
status := JobStatusT {
628
628
JobID : job .JobID ,
@@ -642,20 +642,36 @@ func TestJobsDB(t *testing.T) {
642
642
643
643
dsList = getDSList ()
644
644
require .Lenf (t , dsList , 5 , "dsList length is not 5, got %+v" , dsList )
645
- require .Equal (t , prefix + "_jobs_1_1" , dsList [0 ].JobTable )
646
- require .Equal (t , prefix + "_jobs_2" , dsList [1 ].JobTable )
647
- require .Equal (t , prefix + "_jobs_3" , dsList [2 ].JobTable )
648
- require .Equal (t , prefix + "_jobs_4" , dsList [3 ].JobTable )
649
- require .Equal (t , prefix + "_jobs_5" , dsList [4 ].JobTable )
645
+ require .Equal (t , prefix + "_jobs_1_1" , dsList [0 ].JobTable ) // 5 jobs
646
+ require .Equal (t , prefix + "_jobs_2" , dsList [1 ].JobTable ) // 20 jobs
647
+ require .Equal (t , prefix + "_jobs_3" , dsList [2 ].JobTable ) // 20 jobs
648
+ require .Equal (t , prefix + "_jobs_4" , dsList [3 ].JobTable ) // 20 jobs
649
+ require .Equal (t , prefix + "_jobs_5" , dsList [4 ].JobTable ) // 20 jobs
650
+
651
+ // process 1 more job
652
+ for _ , job := range jobsResult .Jobs [15 :16 ] {
653
+ status := JobStatusT {
654
+ JobID : job .JobID ,
655
+ JobState : "succeeded" ,
656
+ AttemptNum : 1 ,
657
+ ExecTime : time .Now (),
658
+ RetryTime : time .Now (),
659
+ ErrorCode : "202" ,
660
+ ErrorResponse : []byte (`{"success":"OK"}` ),
661
+ Parameters : []byte (`{}` ),
662
+ }
663
+ err := jobDB .UpdateJobStatus (context .Background (), []* JobStatusT {& status }, []string {customVal }, []ParameterFilterT {})
664
+ require .NoError (t , err )
665
+ }
650
666
651
- trigger () // jobs_1_1 will remain as is even though it is now a small table (5 < 10*0.6)
667
+ trigger () // jobs_1_1 will remain as is even though it is now a small table 4/10 = 0.4 < 0.41
652
668
dsList = getDSList ()
653
669
require .Lenf (t , dsList , 5 , "dsList length is not 5, got %+v" , dsList )
654
- require .Equal (t , prefix + "_jobs_1_1" , dsList [0 ].JobTable )
655
- require .Equal (t , prefix + "_jobs_2" , dsList [1 ].JobTable )
656
- require .Equal (t , prefix + "_jobs_3" , dsList [2 ].JobTable )
657
- require .Equal (t , prefix + "_jobs_4" , dsList [3 ].JobTable )
658
- require .Equal (t , prefix + "_jobs_5" , dsList [4 ].JobTable )
670
+ require .Equal (t , prefix + "_jobs_1_1" , dsList [0 ].JobTable ) // 4 jobs
671
+ require .Equal (t , prefix + "_jobs_2" , dsList [1 ].JobTable ) // 20 jobs
672
+ require .Equal (t , prefix + "_jobs_3" , dsList [2 ].JobTable ) // 20 jobs
673
+ require .Equal (t , prefix + "_jobs_4" , dsList [3 ].JobTable ) // 20 jobs
674
+ require .Equal (t , prefix + "_jobs_5" , dsList [4 ].JobTable ) // 20 jobs
659
675
660
676
// process some jobs
661
677
jobsResult , err = jobDB .GetUnprocessed (context .Background (), GetQueryParams {
@@ -664,7 +680,7 @@ func TestJobsDB(t *testing.T) {
664
680
ParameterFilters : []ParameterFilterT {},
665
681
})
666
682
require .NoError (t , err )
667
- for _ , job := range jobsResult .Jobs [5 :20 ] {
683
+ for _ , job := range jobsResult .Jobs [4 :20 ] { // process 16 jobs from jobs_2
668
684
status := JobStatusT {
669
685
JobID : job .JobID ,
670
686
JobState : Succeeded .State ,
@@ -682,10 +698,10 @@ func TestJobsDB(t *testing.T) {
682
698
trigger () // both jobs_1_1 and jobs_2 would be migrated to jobs_2_1
683
699
dsList = getDSList ()
684
700
require .Lenf (t , dsList , 4 , "dsList length is not 4, got %+v" , dsList )
685
- require .Equal (t , prefix + "_jobs_2_1" , dsList [0 ].JobTable )
686
- require .Equal (t , prefix + "_jobs_3" , dsList [1 ].JobTable )
687
- require .Equal (t , prefix + "_jobs_4" , dsList [2 ].JobTable )
688
- require .Equal (t , prefix + "_jobs_5" , dsList [3 ].JobTable )
701
+ require .Equal (t , prefix + "_jobs_2_1" , dsList [0 ].JobTable ) // 8 jobs
702
+ require .Equal (t , prefix + "_jobs_3" , dsList [1 ].JobTable ) // 20 jobs
703
+ require .Equal (t , prefix + "_jobs_4" , dsList [2 ].JobTable ) // 20 jobs
704
+ require .Equal (t , prefix + "_jobs_5" , dsList [3 ].JobTable ) // 20 jobs
689
705
})
690
706
691
707
t .Run (`migrates only moves non-terminal jobs to a new DS` , func (t * testing.T ) {
0 commit comments