package com.avaje.ebeaninternal.server.autotune; import com.avaje.ebean.AutoTune; import com.avaje.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. *

*/ public interface AutoTuneService extends AutoTune { /** * 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. *

*/ boolean tuneQuery(SpiQuery query); /** * Fire a garbage collection (hint to the JVM). Assuming garbage collection * fires this will gather the usage profiling information. */ 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. */ void shutdown(); }