import org.simantics.db.service.LifecycleSupport;
import org.simantics.db.service.QueryControl;
import org.simantics.utils.DataContainer;
-import org.simantics.utils.datastructures.Callback;
/**
* @author Tuukka Lehtonen
QueryControl qc = graph.getService(QueryControl.class);
ClusterControl cc = graph.getService(ClusterControl.class);
_monitor.beginTask("Collect clusters", IProgressMonitor.UNKNOWN);
- cc.gc(graph, clusterTarget);
+ //cc.gc(graph, clusterTarget);
+ if(clusterTarget == -1) {
+ int used = cc.used();
+ //System.err.println("session gc, cluster use = " + used);
+ int baseline = 32*(1<<20);
+ if(used > baseline) {
+ int dynamicTarget = (int)(0.95 * (used-baseline)) + baseline;
+ cc.gc(graph, dynamicTarget);
+ }
+ } else {
+ cc.gc(graph, clusterTarget);
+ }
_monitor.beginTask("Collect queries", IProgressMonitor.UNKNOWN);
qc.gc(graph, allowedTimeInMs);
}
Logger.defaultLogError(e);
}
} else {
- session.asyncRequest(request, new Callback<DatabaseException>() {
- @Override
- public void run(DatabaseException e) {
- if (e != null) {
- if (errorCallback != null)
- errorCallback.accept(e);
- else
- Logger.defaultLogError(e);
- }
+ session.asyncRequest(request, e -> {
+ if (e != null) {
+ if (errorCallback != null)
+ errorCallback.accept(e);
+ else
+ Logger.defaultLogError(e);
}
});
}