package io.ebeaninternal.server.autotune;

import io.ebean.AutoTune;
import io.ebeaninternal.api.SpiQuery;

Collects and manages the the profile information.

The profile information is periodically converted into "tuned query details" - which is used to automatically tune the queries that use AutoTune.

The "tuned query details" effectively are part of the query that has the select() and join() information (but not the where clause, order by, limits etc). These are applied to the query when tuneQuery() is called.

/** * Collects and manages the the profile information. * <p> * The profile information is periodically converted into "tuned query details" - * which is used to automatically tune the queries that use AutoTune. * </p> * <p> * The "tuned query details" effectively are part of the query that has the * select() and join() information (but not the where clause, order by, limits * etc). These are applied to the query when tuneQuery() is called. * </p> */
public interface AutoTuneService extends AutoTune {
Load the query tuning information.
/** * Load the query tuning information. */
void startup();
Called when a query thinks it should be automatically tuned by AutoTune.

Returns true if the query was tuned.

/** * Called when a query thinks it should be automatically tuned by AutoTune. * <p> * Returns true if the query was tuned. * </p> */
boolean tuneQuery(SpiQuery<?> query);
Fire a garbage collection (hint to the JVM). Assuming garbage collection fires this will gather the usage profiling information.
/** * Fire a garbage collection (hint to the JVM). Assuming garbage collection * fires this will gather the usage profiling information. */
@Override void collectProfiling();
On shutdown fire garbage collection and collect statistics. Note that usually we add a little delay (100 milliseconds) to give the garbage collector plenty of time to do its thing and collect the profile information.
/** * On shutdown fire garbage collection and collect statistics. Note that * usually we add a little delay (100 milliseconds) to give the garbage * collector plenty of time to do its thing and collect the profile * information. */
void shutdown(); }