mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-11-13 22:15:26 +00:00
Finished Replica/Non-Replica specific handling of MongoDB model
management
This commit is contained in:
1 parent
0b5870d9fa
commit
01481d2ce3
3 files changed
+18
-10
No files matched your search
+1
-1
@@ -81,7 +81,7 @@ public class IncrementalMstHmmWindEstimationForTrackedRaceTest extends OnlineTra
|
||||
throws MalformedURLException, URISyntaxException, ModelPersistenceException {
|
||||
dateFormat = new SimpleDateFormat("MM/dd/yyyy-HH:mm:ss");
|
||||
dateFormat.setTimeZone(TimeZone.getTimeZone("GMT+2")); // will result in CEST
|
||||
windEstimationFactoryService = new WindEstimationFactoryServiceImpl(false);
|
||||
windEstimationFactoryService = new WindEstimationFactoryServiceImpl();
|
||||
modelStore = new ClassPathReadOnlyModelStore("trained_wind_estimation_models", getClass().getClassLoader(),
|
||||
modelFilesNames);
|
||||
windEstimationFactoryService.importAllModelsFromModelStore(modelStore);
|
||||
|
||||
+15
-5
@@ -14,6 +14,8 @@ import com.sap.sailing.domain.windestimation.WindEstimationFactoryService;
|
||||
import com.sap.sailing.windestimation.model.exception.ModelLoadingException;
|
||||
import com.sap.sailing.windestimation.model.exception.ModelPersistenceException;
|
||||
import com.sap.sailing.windestimation.model.store.FileSystemModelStore;
|
||||
import com.sap.sailing.windestimation.model.store.MongoDbModelStore;
|
||||
import com.sap.sse.mongodb.MongoDBService;
|
||||
import com.sap.sse.replication.Replicable;
|
||||
import com.sap.sse.util.ClearStateTestSupport;
|
||||
|
||||
@@ -35,9 +37,7 @@ public class Activator implements BundleActivator {
|
||||
@Override
|
||||
public void start(BundleContext context) throws Exception {
|
||||
logger.info("Registering WindEstimationFactoryService");
|
||||
//FIXME determine whether this is a replica or not
|
||||
boolean replica = false;
|
||||
service = new WindEstimationFactoryServiceImpl(replica);
|
||||
service = new WindEstimationFactoryServiceImpl();
|
||||
final String windEstimationModelDataSourceURL = System
|
||||
.getProperty(WIND_ESTIMATION_MODEL_DATA_SOURCE_URL_PROPERTY_NAME);
|
||||
final String windEstimationModelDataSourceFolder = System
|
||||
@@ -49,9 +49,10 @@ public class Activator implements BundleActivator {
|
||||
}
|
||||
if (windEstimationModelDataSourceURL != null) {
|
||||
importWindEstimationModelsFromUrl(windEstimationModelDataSourceURL);
|
||||
}
|
||||
if (windEstimationModelDataSourceFolder != null) {
|
||||
} else if (windEstimationModelDataSourceFolder != null) {
|
||||
importWindEstimationModelsFromFolder(windEstimationModelDataSourceFolder);
|
||||
} else {
|
||||
importWindEstimationModelsFromMongoDb();
|
||||
}
|
||||
final ServiceRegistration<WindEstimationFactoryService> serviceRegistration = context
|
||||
.registerService(WindEstimationFactoryService.class, service, null);
|
||||
@@ -62,6 +63,15 @@ public class Activator implements BundleActivator {
|
||||
registrations.add(context.registerService(ClearStateTestSupport.class.getName(), service, null));
|
||||
}
|
||||
|
||||
private void importWindEstimationModelsFromMongoDb() {
|
||||
MongoDbModelStore modelStore = new MongoDbModelStore(MongoDBService.INSTANCE.getDB());
|
||||
try {
|
||||
service.importAllModelsFromModelStore(modelStore);
|
||||
} catch (ModelPersistenceException e) {
|
||||
throw new ModelLoadingException("Could not import wind estimation models from MongoDB", e);
|
||||
}
|
||||
}
|
||||
|
||||
private void importWindEstimationModelsFromFolder(String windEstimationModelDataSourceFolder) {
|
||||
FileSystemModelStore modelStore = new FileSystemModelStore(windEstimationModelDataSourceFolder);
|
||||
try {
|
||||
|
||||
+2
-4
@@ -19,9 +19,7 @@ import com.sap.sailing.windestimation.model.exception.ModelPersistenceException;
|
||||
import com.sap.sailing.windestimation.model.regressor.twdtransition.GaussianBasedTwdTransitionDistributionCache;
|
||||
import com.sap.sailing.windestimation.model.store.InMemoryModelStore;
|
||||
import com.sap.sailing.windestimation.model.store.ModelStore;
|
||||
import com.sap.sailing.windestimation.model.store.MongoDbModelStore;
|
||||
import com.sap.sailing.windestimation.model.store.PersistenceContextType;
|
||||
import com.sap.sse.mongodb.MongoDBService;
|
||||
|
||||
public class WindEstimationFactoryServiceImpl
|
||||
extends AbstractReplicableWithObjectInputStream<WindEstimationFactoryService, WindEstimationDataOperation<?>>
|
||||
@@ -46,8 +44,8 @@ public class WindEstimationFactoryServiceImpl
|
||||
private boolean modelsReady = false;
|
||||
private boolean shutdown = false;
|
||||
|
||||
public WindEstimationFactoryServiceImpl(boolean replica) {
|
||||
MODEL_STORE = replica ? new InMemoryModelStore() : new MongoDbModelStore(MongoDBService.INSTANCE.getDB());
|
||||
public WindEstimationFactoryServiceImpl() {
|
||||
MODEL_STORE = new InMemoryModelStore();
|
||||
maneuverClassifiersCache = new ManeuverClassifiersCache(MODEL_STORE, PRELOAD_ALL_MODELS,
|
||||
PRESERVE_LOADED_MODELS_MILLIS, MAX_MANEUVER_FEATURES);
|
||||
gaussianBasedTwdTransitionDistributionCache = new GaussianBasedTwdTransitionDistributionCache(MODEL_STORE,
|
||||
|
||||
Reference in new issue
Block a user