Comments on: High Availability Architectures (3/4) – Performances http://www.techiteasy.org/2007/11/08/high-availability-architectures-34-performances/ A Technology and Business Weblog provided to You by a Global Group of Friends. Wed, 16 Jun 2010 17:47:59 +0000 hourly 1 http://wordpress.org/?v=3.0 By: High Availability Architectures (4/4) - Technology Trends « Tech IT Easy http://www.techiteasy.org/2007/11/08/high-availability-architectures-34-performances/#comment-3400 High Availability Architectures (4/4) - Technology Trends « Tech IT Easy Fri, 09 Jan 2009 08:30:46 +0000 http://techiteasy.org/2007/11/08/high-availability-architectures-34-performances/#comment-3400 [...] In the previous episodes of this serie, we’ve addressed the Availability, Scalability and Performances aspects of HA Architecture. In this one we’ll concentrate on the future of these architectures [...] [...] In the previous episodes of this serie, we’ve addressed the Availability, Scalability and Performances aspects of HA Architecture. In this one we’ll concentrate on the future of these architectures [...]

]]>
By: ceciiil http://www.techiteasy.org/2007/11/08/high-availability-architectures-34-performances/#comment-3399 ceciiil Thu, 27 Dec 2007 14:54:15 +0000 http://techiteasy.org/2007/11/08/high-availability-architectures-34-performances/#comment-3399 Hey WP I almost believed it ! Okay it's Xmas Time so I wont flag as spam, but it's just for this time. Hey WP I almost believed it !

Okay it’s Xmas Time so I wont flag as spam, but it’s just for this time.

]]>
By: WP http://www.techiteasy.org/2007/11/08/high-availability-architectures-34-performances/#comment-3401 WP Thu, 27 Dec 2007 11:36:43 +0000 http://techiteasy.org/2007/11/08/high-availability-architectures-34-performances/#comment-3401 Very good article and explanation. Can you write about wordpress performance as well? Very good article and explanation. Can you write about wordpress performance as well?

]]>
By: Jeremy Fain http://www.techiteasy.org/2007/11/08/high-availability-architectures-34-performances/#comment-3397 Jeremy Fain Tue, 13 Nov 2007 14:31:36 +0000 http://techiteasy.org/2007/11/08/high-availability-architectures-34-performances/#comment-3397 Thank you for your time Cecil. As usual, you explanations just made everything crystal clear to me. Thank you for your time Cecil. As usual, you explanations just made everything crystal clear to me.

]]>
By: ceciiil http://www.techiteasy.org/2007/11/08/high-availability-architectures-34-performances/#comment-3398 ceciiil Tue, 13 Nov 2007 13:01:16 +0000 http://techiteasy.org/2007/11/08/high-availability-architectures-34-performances/#comment-3398 I certainly can Jeremy. Basically : the bottleneck in terms of performances but also development and complexity in any enterprise application is the Resource Access and the I/Os. In our 5 software layers architecture, the access to the I/O is the integration layer while the database actually is the resource access. The main objective of development frameworks for enterprise systems, such as EJBs and Hibernate, is to save the developers from being bothered with SQL and actual Database Physical implementation. The aim is for application developers to only focus on the business part of the development so that they can bring a real added value to the development. This type of proposal sounds like heaven choir to management ears : "developers are more productive and can really focus on business problems". The problem is that these frameworks are extremely heavy (Entity EJBs are a disaster in that respect) or abstract too much complexity (Hibernate) to the user. While developing it's great : you save a lot of time as the gory details (SQL request, DB Tables implementation) are hidden by the framework. It all works well on the developer local version of the server. The problem appears when the solution is tested on a server with many concurrent users. The actual interface development with the database is completely delegated to these tools. You end up with a layer of software automatically generated that hardly is optimised. You could have (i've seen this) thousands of objects incorrectly read from the DB flooding your memory and making the application slow as hell for all users for a mere delete. You also get SQL requests that are not optimised, tables that are not properly indexed etc ... Médéric told us that whenever he is asked for consulting mission regarding Performances, experience has shown that these always are the main suspects, in that order. Integraation as common mistakes are made there and database as this is the place where to search for potential improvements. Application problems may be in the form of multiple requests (DB, Network, etc ...) while a single global request would have done the trick. Standard development design patterns for distributed applications must be applied here (Facade etc ...). He gave us an example of an application doing 19 networks call to a Web Services. Changing the API of the service to have the correct granularity have saved 80% of them reducing the average request time from 25s down to 3s. I certainly can Jeremy.

Basically : the bottleneck in terms of performances but also development and complexity in any enterprise application is the Resource Access and the I/Os. In our 5 software layers architecture, the access to the I/O is the integration layer while the database actually is the resource access.

The main objective of development frameworks for enterprise systems, such as EJBs and Hibernate, is to save the developers from being bothered with SQL and actual Database Physical implementation.

The aim is for application developers to only focus on the business part of the development so that they can bring a real added value to the development. This type of proposal sounds like heaven choir to management ears : “developers are more productive and can really focus on business problems”.

The problem is that these frameworks are extremely heavy (Entity EJBs are a disaster in that respect) or abstract too much complexity (Hibernate) to the user.

While developing it’s great : you save a lot of time as the gory details (SQL request, DB Tables implementation) are hidden by the framework. It all works well on the developer local version of the server.

The problem appears when the solution is tested on a server with many concurrent users.

The actual interface development with the database is completely delegated to these tools. You end up with a layer of software automatically generated that hardly is optimised. You could have (i’ve seen this) thousands of objects incorrectly read from the DB flooding your memory and making the application slow as hell for all users for a mere delete. You also get SQL requests that are not optimised, tables that are not properly indexed etc …

Médéric told us that whenever he is asked for consulting mission regarding Performances, experience has shown that these always are the main suspects, in that order. Integraation as common mistakes are made there and database as this is the place where to search for potential improvements.

Application problems may be in the form of multiple requests (DB, Network, etc …) while a single global request would have done the trick. Standard development design patterns for distributed applications must be applied here (Facade etc …). He gave us an example of an application doing 19 networks call to a Web Services. Changing the API of the service to have the correct granularity have saved 80% of them reducing the average request time from 25s down to 3s.

]]>
By: Jeremy Fain http://www.techiteasy.org/2007/11/08/high-availability-architectures-34-performances/#comment-3402 Jeremy Fain Mon, 12 Nov 2007 18:43:01 +0000 http://techiteasy.org/2007/11/08/high-availability-architectures-34-performances/#comment-3402 Cecil, can you elaborate on why performance issues happen i) in the integration tier; ii) in the database tier - rather than on upper layouts? Thx for your clarifications man. Cecil, can you elaborate on why performance issues happen i) in the integration tier; ii) in the database tier – rather than on upper layouts? Thx for your clarifications man.

]]>