mirror of
https://github.com/honeymoose/OpenSearch.git
synced 2025-02-23 13:26:02 +00:00
This commit is contained in:
parent
b59ecde041
commit
e21deae535
@ -97,6 +97,7 @@ class DatafeedJob {
|
|||||||
|
|
||||||
void isolate() {
|
void isolate() {
|
||||||
isIsolated = true;
|
isIsolated = true;
|
||||||
|
timingStatsReporter.disallowPersisting();
|
||||||
}
|
}
|
||||||
|
|
||||||
boolean isIsolated() {
|
boolean isIsolated() {
|
||||||
|
@ -33,12 +33,15 @@ public class DatafeedTimingStatsReporter {
|
|||||||
private volatile DatafeedTimingStats currentTimingStats;
|
private volatile DatafeedTimingStats currentTimingStats;
|
||||||
/** Object used to persist current timing stats. */
|
/** Object used to persist current timing stats. */
|
||||||
private final DatafeedTimingStatsPersister persister;
|
private final DatafeedTimingStatsPersister persister;
|
||||||
|
/** Whether or not timing stats will be persisted by the persister object. */
|
||||||
|
private volatile boolean allowedPersisting;
|
||||||
|
|
||||||
public DatafeedTimingStatsReporter(DatafeedTimingStats timingStats, DatafeedTimingStatsPersister persister) {
|
public DatafeedTimingStatsReporter(DatafeedTimingStats timingStats, DatafeedTimingStatsPersister persister) {
|
||||||
Objects.requireNonNull(timingStats);
|
Objects.requireNonNull(timingStats);
|
||||||
this.persistedTimingStats = new DatafeedTimingStats(timingStats);
|
this.persistedTimingStats = new DatafeedTimingStats(timingStats);
|
||||||
this.currentTimingStats = new DatafeedTimingStats(timingStats);
|
this.currentTimingStats = new DatafeedTimingStats(timingStats);
|
||||||
this.persister = Objects.requireNonNull(persister);
|
this.persister = Objects.requireNonNull(persister);
|
||||||
|
this.allowedPersisting = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Gets current timing stats. */
|
/** Gets current timing stats. */
|
||||||
@ -79,6 +82,11 @@ public class DatafeedTimingStatsReporter {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Disallows persisting timing stats. After this call finishes, no document will be persisted. */
|
||||||
|
public void disallowPersisting() {
|
||||||
|
allowedPersisting = false;
|
||||||
|
}
|
||||||
|
|
||||||
private void flushIfDifferSignificantly() {
|
private void flushIfDifferSignificantly() {
|
||||||
if (differSignificantly(currentTimingStats, persistedTimingStats)) {
|
if (differSignificantly(currentTimingStats, persistedTimingStats)) {
|
||||||
flush(WriteRequest.RefreshPolicy.NONE);
|
flush(WriteRequest.RefreshPolicy.NONE);
|
||||||
@ -87,7 +95,9 @@ public class DatafeedTimingStatsReporter {
|
|||||||
|
|
||||||
private void flush(WriteRequest.RefreshPolicy refreshPolicy) {
|
private void flush(WriteRequest.RefreshPolicy refreshPolicy) {
|
||||||
persistedTimingStats = new DatafeedTimingStats(currentTimingStats);
|
persistedTimingStats = new DatafeedTimingStats(currentTimingStats);
|
||||||
persister.persistDatafeedTimingStats(persistedTimingStats, refreshPolicy);
|
if (allowedPersisting) {
|
||||||
|
persister.persistDatafeedTimingStats(persistedTimingStats, refreshPolicy);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -132,6 +132,15 @@ public class DatafeedTimingStatsReporterTests extends ESTestCase {
|
|||||||
verifyNoMoreInteractions(timingStatsPersister);
|
verifyNoMoreInteractions(timingStatsPersister);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void testDisallowPersisting() {
|
||||||
|
DatafeedTimingStatsReporter reporter = createReporter(createDatafeedTimingStats(JOB_ID, 0, 0, 0.0));
|
||||||
|
reporter.disallowPersisting();
|
||||||
|
// This call would normally trigger persisting but because of the "disallowPersisting" call above it will not.
|
||||||
|
reporter.reportSearchDuration(ONE_SECOND);
|
||||||
|
|
||||||
|
verifyZeroInteractions(timingStatsPersister);
|
||||||
|
}
|
||||||
|
|
||||||
public void testTimingStatsDifferSignificantly() {
|
public void testTimingStatsDifferSignificantly() {
|
||||||
assertThat(
|
assertThat(
|
||||||
DatafeedTimingStatsReporter.differSignificantly(
|
DatafeedTimingStatsReporter.differSignificantly(
|
||||||
|
Loading…
x
Reference in New Issue
Block a user