Inspired (Ireland) is pleased to announce that a demo version of JDBInsight is now available for download from www.jinspired.com/betaone. JDBInsight is a revolutionary product that will unlock the door to comprehensive understanding of any JDBC based solution, especially J2EE Enterprise Application servers that perform complex container managed persistence under the EJB 2.0 specification. The product can be used for comparisons of
- Posted by: William Louth
- Posted on: December 12 2001 09:36 EST
different CMP engine's internal execution, along with the performance characteristics of JDBC drivers and datasources.
The demo version contains a snapshot of ECperf running in a single instance of the Borland Application Server 4.5.1. Using the demo product you can get inside ECperf and see the database internal interaction and how it is mapped
and executed by the high performance Borland Application Server 4.5.1 CMP engine.
Download JDBInsight ECperf Demo and view snapshots outlining transactional history , SQL performance, and J2EE database schema generation services of ECperf run inside the Borland Application Server 4.5.1.
JDBInsight 1.0 Standard Edition is currently in beta and is expected to ship in early January 2002. JDBInsight 1.0 Professional Edition will ship in late Q1 2002. The product has been tested with Borland Application Server 4.5.1, BEA WebLogic 6.1 and Oracle's Application Server (OC4J).
Visit www.jinspired.com/betaone to download the ECperf demo.
Chief Technology Officer
- Inspired announces JDBInsight ECperf Demo version by Floyd Marinescu on December 13 2001 13:29 EST
- Inspired announces JDBInsight ECperf Demo version by phil bradley on December 14 2001 06:46 EST
After looking at the JDBC stats for ECperf on Borland, are there any general conclusions you can draw on how effective ECperf is at testing application server performance, the efficiency of the CMP impelementation/mapping, etc?
Basically, what 'knowledge' can one extract from observing the CMP mapping stats using JDBInsight, particularly using the example in your demo?
The ECperf data is not ideal considering the hardware it was run on; a small NT system which had the database and application server collocated. JDBinsight was used previously in a real world ECperf run and here is an extract from the report by the architect:
"....very quickly William was able to show me some performance issues, and some anomalous behavior.
One of the performance issues had to do with queries against a particular table. Interestingly, this exact same issue had been brought to the attention of the ECperf expert group just a week prior (unbeknowst to William). XXX had done an analysis of ECperf running on XXX (presumably using some XXX-specific tools) and had determined that a particular table needed a different indexing scheme. It should be noted that XXX discovered the issue over a year after they first started running ECperf in their labs. William, in a matter of a few
minutes, was able to discover this same issue, of a badly indexed table."
I have not really looked the the figure provided because its not optimal in many ways. The data was provided not for the purpose of performance tuning but so that I could show that the product can provide a wealth of insightful information.
aside: looking at the transaction tree I can see many areas where I could fix ECperf to run faster such as pre bulk loading before some loops but that would not be standard and is against ECperf rules.
Comparing ECperf with a snapshot of PetStore and you will see why ECperf is a good test whereas PetStore is a sad no runner. I know PetStore was not built for performance stressing but it could have had at least one transaction, which consisted of more that one statement. Even the statements have all got values hard coded (semi prepared). I suspect the project was done in 2 time periods or by 2 different developers.
Contrast this with ECPerf which has a tx depth of more than 12 that does not take into account the tx compaction that JDBInsight performs.
Any company claiming performance superiority with this little system is seriously insulting our intelligence.
Can you explain who needs JBInsight? I am well aware that many EJB performance problems are due to the database tier. So as a developer of J2EE apps should I use JBInsight to identify where my EJB to DB performance issues are irrespective of ECperf?
I would say everybody but of course I would say that. Lets break it down into groups:
i) Application Server Vendors
Yes, you might be surprised by this but I have been testing some of the cmp engines shipping with the more popular AppServer’s and I have in some cases found strange behavior which I suspect would probably have never been found out if it was not for JDBInsight (we are dealing with a black box here). I have not reported them all as yet as I would like to retest and also understand the 'why' before reporting them (the blind leading the blind).
ii) Architects & Developers
The problem with making things simple as does EJB, is that its also makes it simple to get it wrong. Errors can be made during the mapping mechanism, which might not be so obvious when looking at the XML descriptor file.
Because JDBInsight provides visualization of the table and columns accessed, the type of access along with the SQLs referenced you can understand the real behavior of your system and not the one you perceived to be the case in your mapping. Remember just like any development effort beans can be created during a time when you have not got a complete understanding of your system. JDBInsight provides you the J2EE view of your database based on the analysis of the SQL statements executed not meta data access calls are made.
If you look at the schema view provided you can quickly see which tables are hit heavily and within each table which fields are being updated and queried which is important when considering indexing and table space allocations.
Looking at the JDBC view you can see the connections and statements being created. Whether they are cleaned up and unreferenced. I noticed with one application server that their connection pooling has improved over a previous version in reducing the number of statements being prepared and the unreferencing of closed connections (initially I thought it was a bug in my product when the connections where sitting around closed and not being garbage collected)
Moving onto the SQL view you can see which SQL statements are being executed across all connections tied to a particular URL. This is what you really need to have when working alongside your DBA. With the move to CMP it is virtually impossible to provide to your DBA the list of SQL statements that need fine tuning. Unlike DB trace tools this provides the cost in terms of the J2EE application which includes the roundtrips to the database (there really so much to talk about here but I need to move on).
The transaction view is where I hang out a lot when on performance tuning assignments. This tells me so much but I must admit in the standard edition it still requires some work to understand and pinpoint areas of concern. I think its good as it stands but I want it to be great (that’s the William in me). I cannot do justice to this view in such a short space of time but I can tell you that many architects have been surprised by some of the transactions shown here and have gone back to revisit their design and also check transaction demarcation settings.
JDBInsight Standard Edition approaches the problem of testing and performance tuning from 4 perspectives. The standard edition does not ship with any statistical charts and that’s because
a. I need to prove that the product is needed
b. I am a one-man army
c. I am busy researching this area, pouring over 3 Tufte books and others.
d. I have respect for the field of statistical graphics and would not like to do any disservice to it by simply plopping some charts on a frame for the sake of marketing.
JDBInsight Professional Edition, which I am currently planning, is going to bring more light to this area including time series data analysis and statistical graphics. The Enterpise Edition, that’s all in my head but all I can say is that I have spent time creating telecommunication management software and I am aiming to repeat this in the J2EE/EJB world.