Advertisement
Guest User

Untitled

a guest
May 24th, 2019
182
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Latex 1.60 KB | None | 0 0
  1. \section*{Pain Points in Regards to Performance}      
  2. In the current state of the architecture there are two main categories of paint points that seem like good candidates for optimization:
  3. \begin{itemize}
  4.     \item Client-scheduler-engine communication
  5.     \item Data serialization in messages
  6. \end{itemize}
  7.  
  8. \paragraph*{Client-Scheduler-Engine Communication}  ~\\
  9. In the current architecture, the client communicates with the scheduler to execute tasks. The scheduler is then responsible for communicating with all the connected engines so that they can execute the tasks and return the results of the execution.
  10. The pain point in this becomes apparent when the scheduler has to communicate with a high number of engines (>100). Because the scheduler is sending its messages one by one to the engines, this doesn't scale well (O(n)) when you increase the number of engines. Also because the scheduler is listening to messages back from the engines, it will keep getting interrupted when trying to send its messages to the engines.
  11.  
  12. \paragraph*{Object Serialization} ~\\
  13. When data is sent in a message it get serialized by the scheduler. This data is serialized for every message that is sent out, even if the data is exactly the same for all the messages. That makes this an O(n) operation  when it could probably be an O(1) operation for situations where the same data is sent to \textit{n} engines.
  14. \begin{figure}
  15.         \includegraphics[width=15cm]{client-scheduler1.png}
  16.     \caption{Client-scheduler-engine Communcation in current architecture}\label{current architecture}
  17. \end{figure}    
  18.  
  19. \vspace*{\fill}
  20. \pagebreak
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement