Kevin J. Jones

Does my bus look big in this?

Posted in Uncategorized by abahtowt on June 9, 2008

I watched QCon presentation from Martin Fowler & Jim Webber over at infoQ (great site) this morning. It’s entertaining, informative, presented by smart people, based on rational judgments but it still smells a bit to me. 

They argue very coherently that current ESBs are not the dog danglies (as we would say in england). They do this via an agile manifesto that while comforting to all stuck in corporate hell really fails to address the key point, that enterprise integration/messaging are very very hard, like parallel algorithm hard.

Putting aside the obvious agile agenda here, the root issue for me is that the WS-* and REST camps don’t represent a binary decision. They are extremes upon which we try and map to the simplest but no simpler. It’s hogwash to suggest that a REST model is good enough for anything, it’s just about good enough for web pages and really very little beyond that. It’s equally hogwash to think WS-* is a panacea, it creates as many difficulties as it solves. 

The real question is where is the middle ground that is better than both, maybe this really is like parallelization, fundamentally hard with little prospect of a solution, just some pills to take away some of the pain.

 

 

Spaghetti lives

Posted in Westfield by abahtowt on May 1, 2008

I used to think code spaghetti was one of the worst types of complexity you can have to deal with. I have just found another form of spaghetti that might actually be worse, fuel-injected engine wiring.

Engine wiring gone wrong

This is a new Yamaha R1 2007 engine being retro-fitted to my little sprint car. The car is a westfield that I built a few years a go while taking a break from the software world. Sprinting is a fairly low-key motor sport in the UK that involves timed runs over mostly open circuits. Here is a westy in typical sprint action.

The R1 is part of a plan to make us competitive in our class and have a bit more fun along the way, its always about performance with me…

Java v3 or JVM v3: To kill a creosote bush

Posted in Dynamic Languages, Intel, Java, invokedynamic by abahtowt on January 21, 2008

Bruce Eckel started an interesting debate with his article on artima. He elegantly puts forward the view that it’s perhaps time to stop adding to Java and to move on with new languages. I have struggled with issue in relation to JSR292, the invoke dynamic proposal. In some ways doing very little is entirely possible but it shifts significant burden to the JIT implementer to do a good job. More radical change will likely result in better end results but there is certainly a cost to be paid in backward compatibility and complexity for that. I have to vote for stability, just because that is what always won out for the x86 market.
 
What this debate reminded me of is a famous Craig Barret quote:
 
“Barrett compares Intel’s microprocessor business to the creosote bush, a tall desert plant that drips poisonous oil, killing off all vegetation that tries to grow anywhere near it. Microprocessors so dominated the company’s strategy, he says, that other businesses could not sprout around it.” – BusinessWeek 
 
In this case it’s the Java business/hype that has always hindered other JVM languages. Sun have clearly being trying to change this over the last year but it’s small steps so far. The crux for me is that the JVM is and always has been a slave to the Java language. Until this changes and it becomes independently managed for the benefit of many languages we are stuck. Maybe OpenJDK will make this possible but good opportunities are frequently lost due to poor business decisions.  

Tracing JIT for Javascript

Posted in Dynamic Languages, Java by abahtowt on December 31, 2007

This looks important.  Smart guys from UC Irvine have developed a technique for getting significant performance gains in a JVM using a much simpler (and therefore smaller & cheaper) JIT model. The Adobe team behind the Tamarin VM for Javascript have announced a branch which is trying to use this technique. The original paper shows gains of 7x over interpretation against 10x for Hotspot. It’s easy to get mislead by micro-benchmarks but lets hope this materialises into gains on everyday workloads.   

JAXB Scalability

Posted in JAXB, Java, XML by abahtowt on December 27, 2007

Here is some more on JAXB performance, the graph below shows the performance of the JAXB 2.0 Reference implementation and the Apache JaxMe project as the size of a data is increased for a trivial address book mapping. It also shows what happens to the JAXB-RI performance when schema validation is turned on, not a pretty picture. jaxbunmarshall-small.jpgThis is better than I had seen elsewhere because at 10k (about 13.5 on the graph) we are getting ~80% of peak performance. Obviously using JAXB with smaller messages or with validation on may be damaging to your applications health. The graph for marshaling is below,  this is a much more healthy for small messages but validation is again very costly.   jaxbmarshall-small.jpg  Profiles for these runs shows that un-marshal performance is being governed by startup time and the maximum speed of the XML parser. When marshaling the parser startup costs are obviously not a factor and so the results are more linear. In either case turning on schema validation has a dramatic effect.  

SIMD Code Generation, from Java?

Posted in Java, SIMD by abahtowt on December 8, 2007

One of the tricks to making good use of SIMD performance is to know all the parameters of the problem, it’s an 8×8 matrix or a 128byte vector etc. etc.  In practice though this is really hard in a number of domains, that kind of information is not known until the code runs. For that type of an application template-based metaprogramming for C++ may be a real bonus. A couple of libraries that use this approach are Macstl & EVE.

My question, what do you do from Java & please don’t suggest JNI is quick enough :-)  

What’s with JAXB Performance?

Posted in JAXB, Java, XML by abahtowt on December 7, 2007

I have been doing some rough benchmarks on JAXB 2.0 performance and there has to be something wrong. A couple of samples I have tried work out at mapping speeds in the 4-5MBytes/sec range. This is really poor in comparison to the speed of modern XML parsers, even parsing with full schema validation is quicker than this using stock processors.

The WS02 team did some benchmarks a while back that show 3k requests/sec. Despite the claim to the contary this is pretty poor for modern hardware but we will ignore that for now.  What is odd though is throughput is not at all constant, it really degrades with smaller messages which are of course the SOA bread & butter. The small message performance matches what I am seeing. I am guessing there has to be some serious start-up costs in the JAXB 2.0 RI to get this type of profile, either that or the up-scaling of the tests is causing odd things to happen. Time for some more digging I think.

Intel XML software suite is released

Posted in Intel, XML by abahtowt on December 6, 2007

The XML software suite has been released, it’s at http://www.intel.com/cd/software/products/asmo-na/eng/366637.htm. Be interested to know what you think about it.

There is some press coverage at TechRepublic, NetworkComputing, InformationWeek and SDTimes

Data layers

Posted in Java, XML, invokedynamic by abahtowt on November 29, 2007

I have become rather interested in understanding the interplay between all these data access technologies that keep spouting around our feet. SDO and the ADO.NET Entity model appear to be charging towards a new level of abstraction that is well overdue.

ADO.NET appears to have the lead here based on being able to leverage the LINQ model to give a better programmer experience. However if invokedynamic and closures come to Java this might change rather quickly.

The kicker in this is usually not how high you can go but what you lose in the process of getting there. It will take a while to understand what has been traded but it’s an interesting area to watch never the less.

Busy

Posted in Intel, Java, XML by abahtowt on November 29, 2007

So it’s been a while…. Much happening to keep me busy; the big event has been the release of the Intel XML Library beta, see here if you fancy having a look. There are Java (JAXP dropin) and C++ versions to play with.

I also got the chance to write up some details of the processing model for Extreme Markup Languages 2007, the paper describes the model we use to process very large (1GByte size) documents.