diff --git a/pom.xml b/pom.xml
index b13fb5e2784285b468c0c0064e0ea8953529ffaf..4ac1cdcbe4aa15b93654e096cf1c51dd345e4fbd 100644
--- a/pom.xml
+++ b/pom.xml
@@ -5,7 +5,7 @@
 
 	<groupId>au.edu.unimelb.mf</groupId>
 	<artifactId>unimelb-mf-clients</artifactId>
-	<version>0.3.7</version>
+	<version>0.3.8</version>
 	<packaging>jar</packaging>
 	<name>unimelb-mf-clients</name>
 	<url>https://gitlab.unimelb.edu.au/resplat-mediaflux/unimelb-mf-clients</url>
diff --git a/src/main/java/unimelb/mf/client/sync/MFSyncApp.java b/src/main/java/unimelb/mf/client/sync/MFSyncApp.java
index 446f34c73a17eb5baa2468f234c32805096efe63..2b4a4490b4f5abdf892770a00e155bca5d45ee09 100644
--- a/src/main/java/unimelb/mf/client/sync/MFSyncApp.java
+++ b/src/main/java/unimelb/mf/client/sync/MFSyncApp.java
@@ -21,7 +21,7 @@ import java.util.EnumSet;
 import java.util.List;
 import java.util.Timer;
 import java.util.TimerTask;
-import java.util.concurrent.LinkedBlockingQueue;
+import java.util.concurrent.ArrayBlockingQueue;
 import java.util.concurrent.ThreadFactory;
 import java.util.concurrent.ThreadPoolExecutor;
 import java.util.concurrent.TimeUnit;
@@ -218,7 +218,7 @@ public abstract class MFSyncApp extends AbstractMFApp<unimelb.mf.client.sync.set
         }
 
         _queriers = new ThreadPoolExecutor(settings().numberOfQueriers(), settings().numberOfQueriers(), 0,
-                TimeUnit.MILLISECONDS, new LinkedBlockingQueue<Runnable>(), new ThreadFactory() {
+                TimeUnit.MILLISECONDS, new ArrayBlockingQueue<Runnable>(100), new ThreadFactory() {
 
                     @Override
                     public Thread newThread(Runnable r) {
@@ -227,7 +227,7 @@ public abstract class MFSyncApp extends AbstractMFApp<unimelb.mf.client.sync.set
                 }, new ThreadPoolExecutor.CallerRunsPolicy());
 
         _workers = new ThreadPoolExecutor(settings().numberOfWorkers(), settings().numberOfWorkers(), 0,
-                TimeUnit.MILLISECONDS, new LinkedBlockingQueue<Runnable>(), new ThreadFactory() {
+                TimeUnit.MILLISECONDS, new ArrayBlockingQueue<Runnable>(100), new ThreadFactory() {
 
                     @Override
                     public Thread newThread(Runnable r) {
diff --git a/src/main/scripts/unix/unimelb-mf-check b/src/main/scripts/unix/unimelb-mf-check
index a3a68c338e644d84e327a08708a6a03d43bd06f0..8dd2713054f9a34c91822da1c65465cb0f54f404 100644
--- a/src/main/scripts/unix/unimelb-mf-check
+++ b/src/main/scripts/unix/unimelb-mf-check
@@ -25,4 +25,4 @@ JAR=${LIB}/unimelb-mf-clients.jar
 [[ -z $(which java) ]] && echo "Java is not found." >&2 && exit 1
 
 # execute the command
-java -XX:+UseG1GC -XX:+UseStringDeduplication -Xms512m -Xmx1g -cp "${JAR}" unimelb.mf.client.sync.cli.MFCheck ${1+"$@"}
+java -XX:+UseG1GC -XX:+UseStringDeduplication -Xmx1g -cp "${JAR}" unimelb.mf.client.sync.cli.MFCheck ${1+"$@"}
diff --git a/src/main/scripts/unix/unimelb-mf-download b/src/main/scripts/unix/unimelb-mf-download
index f67b329fc8a382fb8f266b0bdebcdb6770a48b31..636d27f64daf0a16414a381620c1f9926c5ae676 100644
--- a/src/main/scripts/unix/unimelb-mf-download
+++ b/src/main/scripts/unix/unimelb-mf-download
@@ -25,4 +25,4 @@ JAR=${LIB}/unimelb-mf-clients.jar
 [[ -z $(which java) ]] && echo "Java is not found." >&2 && exit 1
 
 # execute the command
-java -XX:+UseG1GC -XX:+UseStringDeduplication -Xms512m -Xmx1g -cp "${JAR}" unimelb.mf.client.sync.cli.MFDownload ${1+"$@"}
+java -XX:+UseG1GC -XX:+UseStringDeduplication -Xmx1g -cp "${JAR}" unimelb.mf.client.sync.cli.MFDownload ${1+"$@"}
diff --git a/src/main/scripts/unix/unimelb-mf-instrument-upload b/src/main/scripts/unix/unimelb-mf-instrument-upload
index 3448734dd4efbe600af6f69f6ad5e2a673a2fb96..b64a328975ac3a46f455d98c17b1daeccace63f7 100644
--- a/src/main/scripts/unix/unimelb-mf-instrument-upload
+++ b/src/main/scripts/unix/unimelb-mf-instrument-upload
@@ -25,4 +25,4 @@ JAR=${LIB}/unimelb-mf-clients.jar
 [[ -z $(which java) ]] && echo "Java is not found." >&2 && exit 1
 
 # execute the command
-java -XX:+UseG1GC -XX:+UseStringDeduplication -Xms512m -Xmx1g -cp "${JAR}" unimelb.mf.client.sync.cli.MFInstrumentUpload ${1+"$@"}
+java -XX:+UseG1GC -XX:+UseStringDeduplication -Xmx1g -cp "${JAR}" unimelb.mf.client.sync.cli.MFInstrumentUpload ${1+"$@"}
diff --git a/src/main/scripts/unix/unimelb-mf-upload b/src/main/scripts/unix/unimelb-mf-upload
index d30a69bb2285609802b2b8144492aa47487c0f7b..d79ce0c15bf2a5ae3c43ce84f1b0a378bf9cde24 100644
--- a/src/main/scripts/unix/unimelb-mf-upload
+++ b/src/main/scripts/unix/unimelb-mf-upload
@@ -25,4 +25,4 @@ JAR=${LIB}/unimelb-mf-clients.jar
 [[ -z $(which java) ]] && echo "Java is not found." >&2 && exit 1
 
 # execute the command
-java -XX:+UseG1GC -XX:+UseStringDeduplication -Xms512m -Xmx1g -cp "${JAR}" unimelb.mf.client.sync.cli.MFUpload ${1+"$@"}
+java -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:+UseStringDeduplication -Xmx1g -cp "${JAR}" unimelb.mf.client.sync.cli.MFUpload ${1+"$@"}