Friday, 30 December 2016

Brain Storm to sustain load by Software Systems


I am always been bothered by one of the Questions. How would one scale is j2ee application to cater to more and more load/user requests.
I suppose these kind of thoughts would pave paths to Design patterns.

In this context let me tell you some thing about different scaling techniques.

The Basic one: 


  • Use the Firewall, Loadbalancer and couple of servers and manage to run your applications. Handle the static content to web-servers or Loadbalancers. DB servers, Internal cache mechanism
  • If situation worsens then run profilers, change GC algorithms.
  • still not in good form? resort to next  technique

Vertical Scaling:

  • Add power to your machines in terms of CPU, RAM. This would incur more cost to the business. 
  • if situation worsens then implement above steps and also think on mechanism to cache static content by using more load balancers , install squids with white and black lists etc.,
  • DB servers scale up add power to them, so the full table scan is possible seamlessly with proper page size available for the DB query results. I am not convinced by the question people ask me ""Why can't we use Horizontal scaling for DB servers?". I am not sure, how can one scale the MYSql horizontally as these traditional DBs are not designed for that. Apache Casandra is kind of DB which perimits this horizontal scaling distrubutedly.
  • DB partition. I will focus on DB partition in next blog. We can discuss on Row level , Vertical partitioning and Column level , Horizontal DB partition.
  • still not in good form? resort to next technique

Horizontal scaling:

  • Add more Machines/Servers to process requests.
  • DB partition into READ/ WRITE SANs.
  • Optimize code. 
  • Partition you server prototype to different geo graphics. 
  • Use User clusters to deploy the features of the app relevant only to those users
  • Manage a Master DB Table to route which user belongs to which cluster.
  • Still not in good form? resort to CLOUD the future. 

No comments:

Post a Comment