[VOL-4549] Improving event handling in order to reach a higher scale

- isSubscriberServiceProvisioned is not holding the lock for the full iteration on the map, but reading, releasing the lock and then iterating
- PORT_ADDED event for UNI ports are discarded as inconsequential, when they are discovered the status is always DISABLED, we start operating on the once the status changes and that happens in a PORT_UPDATED event. In case of ports up/down we always get a PORT_UPDATED as it's already known to the system.
- the executor now uses a custom pool for serving threads
- the queue add/remove now holds a lock for all the computation and uses the .compute method to process the operation

Change-Id: Icedea07d32d1cddb339d672f3b274a6c7f941903
diff --git a/impl/src/main/java/org/opencord/olt/impl/OsgiPropertyConstants.java b/impl/src/main/java/org/opencord/olt/impl/OsgiPropertyConstants.java
index a73a42b..35095b6 100644
--- a/impl/src/main/java/org/opencord/olt/impl/OsgiPropertyConstants.java
+++ b/impl/src/main/java/org/opencord/olt/impl/OsgiPropertyConstants.java
@@ -65,10 +65,14 @@
     public static final int REQUIRED_DRIVERS_PROPERTY_DELAY_DEFAULT = 5;
 
     public static final String FLOW_PROCESSING_THREADS = "flowProcessingThreads";
-    public static final int FLOW_PROCESSING_THREADS_DEFAULT = 8;
+    public static final int FLOW_PROCESSING_THREADS_DEFAULT = 32;
+
+    //Giving it a value of * 4 the number of flows.
+    public static final String FLOW_EXECUTOR_QUEUE_SIZE = "flowExecutorQueueSize";
+    public static final int FLOW_EXECUTOR_QUEUE_SIZE_DEFAULT = 128;
 
     public static final String SUBSCRIBER_PROCESSING_THREADS = "subscriberProcessingThreads";
-    public static final int SUBSCRIBER_PROCESSING_THREADS_DEFAULT = 8;
+    public static final int SUBSCRIBER_PROCESSING_THREADS_DEFAULT = 24;
 
     public static final String REQUEUE_DELAY = "requeueDelay";
     public static final int REQUEUE_DELAY_DEFAULT = 500;