Sanil15 commented on a change in pull request #1227: SAMZA-2404: [SEP-22] 
Container Placement Handler for dispatching container placement messages 
between metastore and JobCoordinator
URL: https://github.com/apache/samza/pull/1227#discussion_r366552846
 
 

 ##########
 File path: 
samza-core/src/main/java/org/apache/samza/clustermanager/ClusterBasedJobCoordinator.java
 ##########
 @@ -150,6 +152,13 @@
    */
   private final Optional<StreamRegexMonitor> inputStreamRegexMonitor;
 
+  /**
+   * Container placement action dispatcher and util
+   */
+  private final ContainerPlacementUtil containerPlacementUtil;
 
 Review comment:
   **Either rename this to ContainerPlacementMetastoreReader or make all its 
methods static so that it is really a Util.
   A Util should not be instantiated like this and have a complete lifecycle,**
   Sure, let me rename it to ContainerPlacementMetadataStore
   
   **"With this change there two lifecycle objects and a thread hanging in this 
class, can the two be merged into a single clean object that encapsulates the 
other and the thread?"**
   
   The first implementation was just once class ContainerPlacementHandler that 
encapsulated lifecycle of reader/writer and handler, but after discussing with 
@prateekm suggested I decided ContainerPlacementHandler into two things one 
that is just a Handler & another Metastore reader/writer with its own lifecycle 
because of following benefits
   1. External controllers do not instantiate the whole 
ContainerPlacementHandler, they just instantiate Metastore reader/writer for 
issuing actions
   2. We can treat ContainePlacementHandler (CPH) & ContainerPlacementSerivce 
as MVC, and controller job is just dispatching the request, the logic of 
read/write should not belong to the controller (CPH) here otherwise you would 
have to pass CPH to CPS for writing responses back
   3. Metastore reader can be independently tested and decouples from 
ContainerPlacementHandler
   4. Removing cyclic dependency between ContainerPlacementHandler & 
ContainerPlacementService 
   

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services

Reply via email to