Skip to content

Commit

Permalink
Merge branch 'ecchronos-3.0' into ecchronos-4.0
Browse files Browse the repository at this point in the history
  • Loading branch information
masokol committed Aug 18, 2023
2 parents a9ab82a + b084efd commit 0351fd8
Show file tree
Hide file tree
Showing 6 changed files with 28 additions and 8 deletions.
6 changes: 6 additions & 0 deletions CHANGES.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

### Merged from 1.0

* Fix priority calculation for local queue - Issue #546
* Skip unnecessary reads from repair history - Issue #548

## Version 4.0.4
Expand Down Expand Up @@ -58,6 +59,7 @@

### Merged from 1.0

* Fix priority calculation for local queue - Issue #546
* Skip unnecessary reads from repair history - Issue #548
* Fix repair job priority - Issue #515

Expand All @@ -79,6 +81,7 @@

### Merged from 1.0

* Fix priority calculation for local queue - Issue #546
* Skip unnecessary reads from repair history - Issue #548
* Fix repair job priority - Issue #515
* Fix malformed IPv6 for JMX - Issue #306
Expand Down Expand Up @@ -202,6 +205,7 @@

### Merged from 1.0

* Fix priority calculation for local queue - Issue #546
* Skip unnecessary reads from repair history - Issue #548
* Fix repair job priority - Issue #515
* Fix malformed IPv6 for JMX - Issue #306
Expand All @@ -213,6 +217,7 @@

#### Merged from 1.0

* Fix priority calculation for local queue - Issue #546
* Skip unnecessary reads from repair history - Issue #548
* Fix repair job priority - Issue #515
* Fix malformed IPv6 for JMX - Issue #306
Expand Down Expand Up @@ -251,6 +256,7 @@

## Version 1.0.8 (Not yet released)

* Fix priority calculation for local queue - Issue #546
* Skip unnecessary reads from repair history - Issue #548
* Fix repair job priority - Issue #515
* Fix malformed IPv6 for JMX - Issue #306
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -221,8 +221,7 @@ private TableRepairJob getRepairJob(final TableReference tableReference,
.withRepairPolices(myRepairPolicies)
.withRepairHistory(myRepairHistory)
.build();

job.runnable();
job.refreshState();

return job;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -202,7 +202,7 @@ public Iterator<ScheduledTask> iterator()
.withRepairHistory(myRepairHistory)
.withJobId(getId());

taskList.add(builder.build(getRealPriority()));
taskList.add(builder.build(getRealPriority(replicaRepairGroup.getLastCompletedAt())));
}

return taskList.iterator();
Expand Down Expand Up @@ -265,6 +265,15 @@ public long getRunOffset()
*/
@Override
public boolean runnable()
{
return myRepairState.getSnapshot().canRepair() && super.runnable();
}

/**
* Refresh the repair state.
*/
@Override
public void refreshState()
{
try
{
Expand All @@ -274,8 +283,6 @@ public boolean runnable()
{
LOG.warn("Unable to check repair history, {}", this, e);
}

return myRepairState.getSnapshot().canRepair() && super.runnable();
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,16 @@ protected void finishJob()
// Do nothing
}

/**
* This method is called every time the scheduler creates a list of jobs to run.
* Use this if you need to do some updates before priority is calculated.
* Default is noop.
*/
protected void refreshState()
{
// NOOP by default
}

/**
* Set the job to be runnable again after the given delay has elapsed.
*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -118,6 +118,7 @@ final int size()
@Override
public final synchronized Iterator<ScheduledJob> iterator()
{
myJobQueues.values().forEach(q -> q.forEach(ScheduledJob::refreshState));
Iterator<ScheduledJob> baseIterator = new ManyToOneIterator<>(myJobQueues.values(), myComparator);

return new RunnableJobIterator(baseIterator);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -161,7 +161,6 @@ public void testPrevalidateNotRepairable()

assertThat(myRepairJob.runnable()).isFalse();

verify(myRepairState, times(1)).update();
verify(myRepairStateSnapshot, times(1)).canRepair();
}

Expand All @@ -173,7 +172,6 @@ public void testPrevalidateNeedRepair()
mockRepairGroup(0L);
assertThat(myRepairJob.runnable()).isTrue();

verify(myRepairState, times(1)).update();
verify(myRepairStateSnapshot, times(2)).canRepair();
}

Expand All @@ -186,7 +184,6 @@ public void testPrevalidateNotRepairableThenRepairable()
assertThat(myRepairJob.runnable()).isFalse();
assertThat(myRepairJob.runnable()).isTrue();

verify(myRepairState, times(2)).update();
verify(myRepairStateSnapshot, times(3)).canRepair();
}

Expand Down

0 comments on commit 0351fd8

Please sign in to comment.