Skip to content

Commit 1dd0d9c

Browse files
ahornaceVladimir Kotal
authored andcommitted
Do not schedule rebuild if most popular completion is disabled
1 parent 46a9326 commit 1dd0d9c

File tree

2 files changed

+18
-12
lines changed

2 files changed

+18
-12
lines changed

src/org/opensolaris/opengrok/configuration/SuggesterConfig.java

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ public class SuggesterConfig {
4848
public static final boolean SHOW_PROJECTS_DEFAULT = true;
4949
public static final boolean SHOW_TIME_DEFAULT = false;
5050
public static final String REBUILD_CRON_CONFIG_DEFAULT = "0 0 * * *"; // every day at midnight
51-
public static final int SUGGESTER_BUILD_TERMINATION_TIME_DEFAULT = 1800; // half an hour should be enough
51+
public static final int BUILD_TERMINATION_TIME_DEFAULT = 1800; // half an hour should be enough
5252
public static final int TIME_THRESHOLD_DEFAULT = 2000; // 2 sec
5353

5454
public static final Set<String> allowedProjectsDefault = null;
@@ -124,9 +124,10 @@ public class SuggesterConfig {
124124
private String rebuildCronConfig;
125125

126126
/**
127-
* Specifies after how much time the suggester should kill the threads that build the suggester data structures.
127+
* Specifies after how much time (in seconds) the suggester should kill the threads that build the suggester data
128+
* structures.
128129
*/
129-
private int suggesterBuildTerminationTimeSec;
130+
private int buildTerminationTime;
130131

131132
/**
132133
* Time threshold for suggestions in milliseconds. If the computation exceeds this time,
@@ -149,7 +150,7 @@ public SuggesterConfig() {
149150
setTimeThreshold(TIME_THRESHOLD_DEFAULT);
150151
// do not use setter because indexer invocation with --man will fail
151152
rebuildCronConfig = REBUILD_CRON_CONFIG_DEFAULT;
152-
setSuggesterBuildTerminationTimeSec(SUGGESTER_BUILD_TERMINATION_TIME_DEFAULT);
153+
setBuildTerminationTime(BUILD_TERMINATION_TIME_DEFAULT);
153154
}
154155

155156
public boolean isEnabled() {
@@ -262,15 +263,15 @@ public void setRebuildCronConfig(final String rebuildCronConfig) {
262263
this.rebuildCronConfig = rebuildCronConfig;
263264
}
264265

265-
public int getSuggesterBuildTerminationTimeSec() {
266-
return suggesterBuildTerminationTimeSec;
266+
public int getBuildTerminationTime() {
267+
return buildTerminationTime;
267268
}
268269

269-
public void setSuggesterBuildTerminationTimeSec(final int suggesterBuildTerminationTimeSec) {
270-
if (suggesterBuildTerminationTimeSec < 0) {
270+
public void setBuildTerminationTime(final int buildTerminationTime) {
271+
if (buildTerminationTime < 0) {
271272
throw new IllegalArgumentException("Suggester build termination time cannot be negative");
272273
}
273-
this.suggesterBuildTerminationTimeSec = suggesterBuildTerminationTimeSec;
274+
this.buildTerminationTime = buildTerminationTime;
274275
}
275276

276277
public int getTimeThreshold() {
@@ -302,7 +303,7 @@ public boolean equals(Object o) {
302303
showScores == that.showScores &&
303304
showProjects == that.showProjects &&
304305
showTime == that.showTime &&
305-
suggesterBuildTerminationTimeSec == that.suggesterBuildTerminationTimeSec &&
306+
buildTerminationTime == that.buildTerminationTime &&
306307
Objects.equals(allowedProjects, that.allowedProjects) &&
307308
Objects.equals(allowedFields, that.allowedFields) &&
308309
Objects.equals(rebuildCronConfig, that.rebuildCronConfig);
@@ -312,7 +313,7 @@ public boolean equals(Object o) {
312313
public int hashCode() {
313314
return Objects.hash(enabled, maxResults, minChars, allowedProjects, maxProjects, allowedFields,
314315
allowComplexQueries, allowMostPopular, showScores, showProjects, showTime, rebuildCronConfig,
315-
suggesterBuildTerminationTimeSec);
316+
buildTerminationTime);
316317
}
317318

318319
}

src/org/opensolaris/opengrok/web/api/v1/suggester/provider/service/impl/SuggesterServiceImpl.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -277,7 +277,7 @@ private void initSuggester() {
277277
File suggesterDir = new File(config.getDataRoot(), IndexDatabase.SUGGESTER_DIR);
278278
suggester = new Suggester(suggesterDir,
279279
suggesterConfig.getMaxResults(),
280-
Duration.ofSeconds(suggesterConfig.getSuggesterBuildTerminationTimeSec()),
280+
Duration.ofSeconds(suggesterConfig.getBuildTerminationTime()),
281281
suggesterConfig.isAllowMostPopular(),
282282
env.isProjectsEnabled(),
283283
suggesterConfig.getAllowedFields(),
@@ -319,6 +319,11 @@ private Runnable getRebuildAllProjectsRunnable() {
319319
private void scheduleRebuild() {
320320
cancelScheduledRebuild();
321321

322+
if (!env.getConfiguration().getSuggesterConfig().isAllowMostPopular()) { // no need to rebuild
323+
logger.log(Level.INFO, "Suggester rebuild not scheduled");
324+
return;
325+
}
326+
322327
Duration timeToNextRebuild = getTimeToNextRebuild();
323328
if (timeToNextRebuild == null) {
324329
logger.log(Level.INFO, "Suggester rebuild not scheduled");

0 commit comments

Comments
 (0)