From d0bccd7997113a6dec1599fb1db98e8818eda640 Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Fri, 11 Jan 2019 15:06:12 +0100 Subject: [PATCH] relax the write concern for bulk data such as GPS and Wind fixes to UNACKNOWLEDGED; this to increase throughput Change-Id: I27a5e9a1a8ca4959f9a33297b6726fd2dd84a893 --- .../sailing/domain/persistence/impl/MongoWindListener.java | 3 ++- .../racelog/tracking/impl/MongoSensorFixStoreImpl.java | 5 +++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/MongoWindListener.java b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/MongoWindListener.java index 73ae4cf00a0..bd063be3fda 100755 --- a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/MongoWindListener.java +++ b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/MongoWindListener.java @@ -2,6 +2,7 @@ package com.sap.sailing.domain.persistence.impl; import org.bson.Document; +import com.mongodb.WriteConcern; import com.mongodb.client.MongoCollection; import com.mongodb.client.MongoDatabase; import com.sap.sailing.domain.common.Wind; @@ -29,7 +30,7 @@ public class MongoWindListener implements com.sap.sailing.domain.tracking.WindLi @Override public void windDataReceived(Wind wind) { Document windTrackEntry = mongoObjectFactory.storeWindTrackEntry(trackedRace.getRace(), regattaName, windSource, wind); - windTracksCollection.insertOne(windTrackEntry); + windTracksCollection.withWriteConcern(WriteConcern.UNACKNOWLEDGED).insertOne(windTrackEntry); } @Override diff --git a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/racelog/tracking/impl/MongoSensorFixStoreImpl.java b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/racelog/tracking/impl/MongoSensorFixStoreImpl.java index bc2c09bd7a1..d295d335de2 100644 --- a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/racelog/tracking/impl/MongoSensorFixStoreImpl.java +++ b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/racelog/tracking/impl/MongoSensorFixStoreImpl.java @@ -18,6 +18,7 @@ import java.util.logging.Logger; import org.bson.Document; import org.bson.conversions.Bson; +import com.mongodb.WriteConcern; import com.mongodb.client.FindIterable; import com.mongodb.client.MongoCollection; import com.mongodb.client.model.Filters; @@ -210,7 +211,7 @@ public class MongoSensorFixStoreImpl implements MongoSensorFixStore { newTo = fixTP; } } - fixesCollection.insertMany(dbFixes); + fixesCollection.withWriteConcern(WriteConcern.UNACKNOWLEDGED).insertMany(dbFixes); final Document updateOperation = new Document(); final Document newMetadata = new Document(); newMetadata.put(FieldNames.DEVICE_ID.name(), dbDeviceId); @@ -225,7 +226,7 @@ public class MongoSensorFixStoreImpl implements MongoSensorFixStore { storeTimeRange(newTimeRange, newMetadata, FieldNames.TIMERANGE); updateOperation.append("$set", newMetadata); updateOperation.append("$inc", new Document(FieldNames.NUM_FIXES.name(), nrOfTotalFixes)); - metadataCollection.updateOne(getDeviceQuery(device), updateOperation, new UpdateOptions().upsert(true)); + metadataCollection.withWriteConcern(WriteConcern.UNACKNOWLEDGED).updateOne(getDeviceQuery(device), updateOperation, new UpdateOptions().upsert(true)); } catch (TransformationException e) { logger.log(Level.WARNING, "Could not store fix in MongoDB"); e.printStackTrace();